- Требования:
- Загрузка и установка программного обеспечения:
- Аппаратная часть Arduino и принципиальная схема:
- Программная часть Arduino:
- Мобильное приложение для Android для ультразвукового радара:
- Рабочее объяснение:
Это интересный проект, в котором мы исследуем возможности Arduino и Android для создания устройства наблюдения, которое использует Arduino и Ultra Sonic Sensor для передачи информации в мобильное приложение (Android) с помощью Bluetooth.
Безопасность и защита были нашей главной заботой на протяжении веков. Установка камеры видеонаблюдения с ночным режимом с возможностью наклона и поворота прожигает большую дыру в наших карманах. Поэтому давайте создадим экономичное устройство, которое делает почти то же самое, но без каких-либо функций видео.
Это устройство обнаруживает объекты с помощью ультразвукового датчика и, следовательно, может работать даже в ночное время. Также мы устанавливаем датчик US (Ultra Sonic) над серводвигателем, этот серводвигатель может быть настроен на автоматическое вращение для сканирования области или может вращаться вручную с помощью нашего мобильного приложения, чтобы мы могли сфокусировать ультразвуковой датчик в наше требуемое направление и ощущение присутствующих там объектов. Вся информация, полученная датчиком США, будет транслироваться на наш смартфон с помощью модуля Bluetooth (HC-05). Так что он будет работать как сонар или радар.
Интересно, правда ??…. Давайте посмотрим, что нам потребуется для реализации этого проекта.
Требования:
Оборудование:
- Источник питания +5 В (я использую свою плату Arduino (другую) для питания)
- Arduino Mega (можно использовать что угодно, от pro mini до Yun)
- Серводвигатель (любой рейтинг)
- Модуль Bluetooth (HC-05)
- Ультразвуковой датчик (HC-SR04)
- Макетная плата (не обязательно)
- Соединительные провода
- Android мобильный
- Компьютер для программирования
Программного обеспечения:
- Программное обеспечение Arduino
- Android SDK
- Обработка Android (для создания мобильного приложения)
Когда мы будем готовы с нашими материалами, давайте приступим к сборке оборудования. Я разделил это руководство на часть Arduino и часть обработки для облегчения понимания. Людям, которые плохо знакомы с обработкой, не нужно сильно бояться, потому что в конце руководства приводится полный код, который можно использовать как таковой.
Загрузка и установка программного обеспечения:
Arduino IDE можно установить здесь. Загрузите программное обеспечение в соответствии с вашей ОС и установите его. Для Arduino IDE потребуется драйвер для связи с вашим оборудованием Arduino. Этот драйвер должен быть установлен автоматически после подключения платы к компьютеру. Попробуйте загрузить программу мигания из примеров, чтобы убедиться, что ваша Arduino работает.
Processing IDE можно установить здесь. Processing - отличное приложение с открытым исходным кодом, которое можно использовать для многих вещей, оно имеет различные режимы. В «режиме Java» мы можем создавать компьютерные приложения Windows (файлы.EXE), а в «режиме Android» мы можем создавать мобильные приложения Android (файлы.APK). У него также есть другие режимы, такие как «режим Python», в которых вы можете писать программы на Python.. В этом руководстве не будут рассмотрены основы обработки, поэтому, если вы хотите изучить программирование на Java или обработку, перейдите на этот замечательный канал YouTube здесь.
Аппаратная часть Arduino и принципиальная схема:
Этот проект включает в себя множество компонентов, таких как серводвигатель, модуль Bluetooth, ультразвуковой датчик и т. Д. Следовательно, если вы абсолютный новичок, рекомендуется начать с некоторого базового руководства, которое включает эти компоненты, а затем вернуться сюда. Ознакомьтесь с нашими различными проектами по серводвигателю, модулю Bluetooth и ультразвуковому датчику здесь.
Все компоненты не питаются от самой Arduino, потому что серводвигатель, модуль Bluetooth и датчик США в целом потребляют большой ток, который Arduino не сможет получить. Поэтому строго рекомендуется использовать любой внешний источник + 5В. Если у вас нет внешнего источника питания + 5В, вы можете использовать компоненты между двумя платами Arduino, как это сделал я. Я подключил шины питания сервоприводов к другой плате Arduino (красный цвет) и подключил модуль Bluetooth HC-05 и ультразвуковой датчик HC-SR04 к Arduino Mega. ВНИМАНИЕ: включение всех этих модулей с помощью одной платы Arduino приведет к перегреву регулятора напряжения Arduino.
Схема подключения для этого проекта сонара на базе Arduino приведена ниже:
После того, как соединения будут выполнены, установите датчик США на серводвигатель, как показано ниже:
Я использовал небольшой кусок пластика, который был у меня в барахле, и двустороннюю ленту для крепления датчика. Вы можете придумать собственную идею сделать то же самое. На рынке также доступны держатели сервоприводов, которые можно использовать для той же цели.
После того, как сервопривод установлен и подключены, он должен выглядеть примерно так.
Следуйте схемам наверху, если возникли проблемы с подключением. Теперь давайте начнем программировать Arduino Mega с помощью Arduino IDE.
Программная часть Arduino:
Мы должны написать наш код, чтобы мы могли рассчитать расстояние между объектом и датчиком Ultra Sonic и отправить его в наше мобильное приложение. Мы также должны написать код для нашего серводвигателя, чтобы он работал, а также управлялся с помощью данных, полученных модулем Bluetooth. Но не волнуйтесь, программа намного проще, чем вы можете себе представить, благодаря Arduino и ее библиотекам. Полный код приведен ниже в разделе кода.
Нижеприведенная функция используется для автоматического поворота серводвигателя слева направо (от 170 до 10) и снова справа налево (от 10 до 170). Два цикла for используются для достижения того же. Функция us () вызывается внутри обеих функций для расчета расстояния между датчиком и объектом и передачи его в Bluetooth. Задержка 50 мс дана, чтобы сервопривод медленно вращался. Чем медленнее вращается двигатель, тем точнее становятся ваши показания.
// ** Функция для сервопривода для развертки ** // void servofun () {Serial.println ("Sweeping"); // для отладки for (posc = 10; posc <= 170; posc ++) // Использование от 10 до 170 градусов безопасно, чем от 0 до 180, потому что некоторые сервоприводы могут не работать при крайних углах {servo.write (posc); // устанавливаем положение задержки серводвигателя (50); нас(); // измеряем расстояние до объектов, попадающих на датчик США} for (posc = 170; posc> = 10; posc--) {servo.write (posc); задержка (50); нас(); // измеряем расстояние до объектов, попадающих на датчик США} Serial.println ("Scan Complete"); // для отладки flag = 0; } // ** Конец функции подметания сервопривода ** //
Как было сказано ранее, серводвигателем также можно управлять вручную со смартфона. Вы просто проводите пальцем вправо, чтобы двигатель двигался вправо, и проводите пальцем влево, чтобы двигатель двигался влево. Вышеупомянутая функция используется для достижения того же. Угол серводвигателя будет напрямую получен модулем Bluetooth и сохранен в переменной BluetoothData , затем сервопривод будет позиционироваться в этом конкретном ангеле с помощью строки servo.write (BluetoothData).
// ** Функция для ручного управления сервоприводом ** // void manualservo () {us (); // Получить значение от пользователя и управлять сервоприводом if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println («Написано»); если (BluetoothData == 'p') {flag = 0; }}} // __ Конец функции ручного управления __ //
Расстояние присутствует до объекта будет рассчитываться ниже функции. Он работает с простыми формулами: Скорость = Расстояние / время. Поскольку мы знаем скорость американской волны и затраченное время, расстояние можно рассчитать по приведенным выше формулам.
// ** Функция для измерения расстояния ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); расстояние = (продолжительность / 2) / 29,1; // Вычисляет расстояние от датчика if (distance <200 && distance> 0) Blueboy.write (distance); } // __ Конец функции измерения расстояния __ //
Если у вас есть сомнения по поводу программы, не стесняйтесь использовать раздел комментариев для своих запросов. Итак, как только мы будем готовы с нашим кодом, мы можем сразу же сбросить код в наше оборудование. Но устройство наблюдения не начнет работать, пока оно не будет подключено к приложению Android. Также проверьте видео в конце для полной работы.
Мобильное приложение для Android для ультразвукового радара:
Если вы не хотите создавать собственное приложение, а вместо этого просто хотите установить то же приложение, которое использовалось в этом руководстве, вы можете выполнить следующие шаги.
1. Вы можете напрямую скачать APK-файл по ссылке ниже. Этот APK-файл создан для Android версии 4.4.2 и выше (Kitkat и выше). Извлеките файл APK из zip-файла.
Приложение для Android для ультразвукового радара
2. Перенесите файл.Apk со своего компьютера на мобильный телефон.
3. Включите установку приложения из неизвестных источников в настройках вашего андроида.
4. Установите приложение.
В случае успешной установки на вашем телефоне будет установлено приложение Zelobt, как показано ниже:
Если вы установили этот APK, вы можете пропустить приведенную ниже часть и перейти к следующему разделу.
Программирование собственного приложения с использованием обработки:
Вы можете либо использовать файл.APK, указанный выше, либо создать собственное приложение с помощью обработки, как описано здесь. Обладая небольшими знаниями в программировании, очень легко написать собственный код для вашего приложения для Android. Однако, если вы только начинаете, не рекомендуется начинать с этого кода, поскольку он немного выше, чем уровень новичка.
В этой программе используются две библиотеки, а именно «библиотека Ketai» и «библиотека ControlP5» . Библиотека ketai используется для управления всем оборудованием, присутствующим в нашем мобильном телефоне. С помощью этой библиотеки можно легко получить доступ к таким вещам, как уровень заряда батареи телефона, значения датчика приближения, значения датчика акселерометра, параметры управления Bluetooth и т. Д. В этой программе мы используем эту библиотеку для установления связи между телефонами Bluetooth и Arduino Bluetooth (HC-05). «ControlP5 библиотека» используется для построения графиков для нашей радиолокационной системы.
Полная андроида программа прилагается, вы можете скачать его здесь.
ВНИМАНИЕ: Не забудьте установить вышеупомянутые библиотеки и не копируйте и вставляйте только часть кода, потому что код импортирует изображения из папки данных, которая в целом приведена в приложении выше. Следовательно, скачивайте и используйте только это.
После того, как вы закончили кодирование и успешно скомпилировали его, вы можете напрямую подключить свой мобильный телефон к компьютеру через кабель для передачи данных и нажать кнопку воспроизведения, чтобы отключить приложение на свой мобильный телефон. Также ознакомьтесь с другими нашими проектами обработки: игра в пинг-понг с использованием Arduino и FM-радио, управляемое смартфоном, с использованием обработки.
Рабочее объяснение:
Теперь мы готовы с нашим оборудованием и программной частью. Включите свое оборудование и соедините свой мобильный телефон с модулем Bluetooth. После создания пары откройте приложение «Zelobt», которое мы только что установили, и теперь подождите секунду, и вы должны заметить, что ваш модуль Bluetooth (HC-05) автоматически подключается к вашему смартфону. Как только соединение будет установлено, вы увидите следующий экран:
Вы можете заметить, что в верхней части экрана написано «Подключено к: Имя устройства (адрес оборудования)». Он также отображает текущий угол серводвигателя и расстояние между датчиком США. На красном фоне также отображается синий график на основе измеренного расстояния. Чем ближе объект становится, тем выше становится синяя область. График, измеренный при размещении рядом объектов, также показан на втором рисунке выше.
Как было сказано ранее, вы также можете управлять своим серводвигателем из мобильного приложения. Для этого просто нажмите кнопку остановки. Это остановит ваш сервопривод от автоматического подметания. Вы также можете найти круглое колесо в нижней части экрана, которое при смахивании будет вращаться по часовой или против часовой стрелки. Прокручивая это колесо, вы также можете заставить ваш серводвигатель вращаться в определенном направлении. Колесо и график, обновляемые при смахивании, показаны на рисунке ниже.
Код Arduino приведен ниже, а файл APK для приложения Android находится здесь. Работа всего проекта показана на видео ниже. Надеюсь, вы поняли проект. Если у вас есть какие-либо вопросы, пожалуйста, используйте раздел комментариев ниже.