- Необходимый материал
- Модуль Bluetooth HC-06
- Принципиальная электрическая схема
- Настройка приложения Roboremo для управления сервоприводом:
- Код и объяснение
- Работа управления серводвигателем через Bluetooth:
В робототехнике часто используется серводвигатель для точного управления. В этом уроке мы покажем вам, как использовать серводвигатель по беспроводной сети с Arduino UNO и устройством Android через соединение Bluetooth. Мы уже управляли сервоприводом с помощью Arduino, на этот раз мы управляем сервомотором с помощью Arduino и Bluetooth.
Необходимый материал
- Arduino UNO
- Модуль Bluetooth HC-05 или HC-06
- Серводвигатель
- Приложение Roboremo из Playstore
- Макетная плата
- Соединительный провод
Модуль Bluetooth HC-06
Bluetooth может работать в следующих двух режимах:
- Командный режим
- Рабочий режим
В командном режиме мы сможем настроить свойства Bluetooth, такие как имя сигнала Bluetooth, его пароль, рабочую скорость передачи данных и т. Д. Рабочий режим - это тот, в котором мы сможем отправлять и получать данные между микроконтроллером PIC. и модуль Bluetooth. Следовательно, в этом руководстве мы будем играть только с рабочим режимом. Для командного режима будут оставлены настройки по умолчанию. Имя устройства будет HC-05 (я использую HC-06), а пароль будет 0000 или 1234 и, что наиболее важно, скорость передачи данных по умолчанию для всех модулей Bluetooth будет 9600.
Модуль работает от источника питания 5 В, а сигнальные контакты работают от напряжения 3,3 В, следовательно, в самом модуле присутствует регулятор 3,3 В. Следовательно, нам не о чем беспокоиться. Из шести контактов только четыре будут использоваться в рабочем режиме. Таблица соединений выводов приведена ниже.
S.No | Пин на доске HC-05 / HC-06 | Имя пина на MCU | Номер пина в PIC |
1 | Vcc | Vdd | 31 - й контактный |
2 | Vcc | Gnd | 32- й пин |
3 | Tx | RC6 / Tx / CK | 25 - й контактный |
4 | Rx | RC7 / Rx / DT | 26- й контакт |
5 | состояние | NC | NC |
6 | EN (включить) | NC | NC |
Ознакомьтесь с нашими другими проектами, чтобы узнать больше о Bluetooth-модуле HC-05 с другими микроконтроллерами:
- Игрушечная машинка с управлением по Bluetooth и Arduino
- Система домашней автоматизации с управлением по Bluetooth с использованием 8051
- Голосовое управление подсветкой с использованием Raspberry Pi
- FM-радио, управляемое смартфоном, с использованием Arduino и обработки
- Взаимодействие модуля Bluetooth HC-06 с микроконтроллером PIC
Также проверьте здесь все проекты, связанные с bluetooth.
Принципиальная электрическая схема
Принципиальная схема для этого проекта управления сервомотором Arduino Bluetooth приведена ниже:
Настройка приложения Roboremo для управления сервоприводом:
Шаг 1: - Загрузите приложение Roboremo из Android Play Store и установите его на свой смартфон. После его установки вы увидите окно приложения, как показано на рисунке 1, и, нажав кнопку «Меню» , вы увидите окно, показанное на рисунке 2 ниже:
Шаг 2: - Затем нажмите кнопку подключения , и вы увидите окно, показанное на рисунке 3 ниже, затем вам нужно выбрать « Bluetooth RFCOMM», после чего вы сможете подключить модуль Bluetooth HC-06 к своему приложению для Android «Roboremo».
Шаг 3: - После подключения к модулю Bluetooth HC-06 вернитесь к окну Figure2 и нажмите « Edit ui » для создания пользовательского интерфейса в соответствии с вашими потребностями.
При нажатии на «edit ui» вы снова увидите окно, показанное на рисунке 1, затем щелкните в любом месте экрана, вы увидите окно приложения, подобное рисунку 4, и выберите « Button », чтобы получить структуру кнопок.
Шаг 4: - После выбора кнопки на экране появится структура кнопок для редактирования. Вы можете изменять размер и перемещать структуру в любом месте экрана. Теперь, чтобы установить значение, которое будет отправляться при нажатии через Bluetooth, вы должны «установить действие при нажатии» (как показано на рисунке 6) и ввести значение, которое вы хотите отправить с этой конкретной кнопки. Например, мы отправляем «1» для поворота сервопривода, нажав кнопку «Пуск» в приложении Roboremo для Android.
Вы можете проверить все значения, отправляемые при нажатии на разные кнопки, в таблице в следующем разделе.
Шаг 5: - Наконец, у нас есть пользовательский интерфейс для управления серводвигателем с помощью смартфона.
Код и объяснение
Полный код для сервомотора управления Arduino через Bluetooth приведен в конце.
В Arduino есть библиотека для сервомоторов, и она обрабатывает все вещи, связанные с ШИМ, для поворота сервопривода, вам просто нужно ввести угол, на который вы хотите повернуть, и есть функция servo1.write (angle); который будет вращать сервопривод на желаемый угол.
Итак, мы начинаем с определения библиотеки для серводвигателя, а программная последовательная библиотека используется для определения выводов Rx и Tx.
#включают
В приведенном ниже коде мы инициализируем выводы Arduino для Rx и Tx, определяя переменные для сервопривода и других вещей .
Серво myServo; int TxD = 11; int RxD = 10; int сервопозиция; int servopos; int new1; Программное обеспечение Последовательный Bluetooth (TxD, RxD);
Теперь настройте все переменные и компоненты на начальную стадию. Здесь мы прикрепили сервопривод к 9- му контакту Arduino и установили начальное положение сервопривода на 0 градусов. Скорость передачи данных для последовательной связи и связи Bluetooth также установлена на 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // запускаем последовательную связь со скоростью 9600 бит / с bluetooth.begin (9600); }
В функции void loop Arduino будет постоянно проверять входящие значения и вращать сервопривод в соответствии со значением, полученным от смартфона. Все значения будут получены по последовательной связи.
Если значение равно 0, сервопривод повернется на 0 градусов. Точно так же, если мы отправим 45, 90, 135 и 180 из приложения Bluetooth, сервопривод будет вращаться на угол 45, 90, 135 и 180 градусов соответственно.
void loop () { if (bluetooth.available ()) { Строковое значение = bluetooth.readString (); сервопозиция = значение.toInt (); if (value.toInt () == 0) { Serial.println (сервопозиция); myServo.write (0); } if (value.toInt () == 45) { Serial.println (сервопозиция); myServo.write (45); } if (value.toInt () == 90) { Serial.println (сервопозиция); myServo.write (90); } if (value.toInt () == 135) { Serial.println (сервопозиция); myServo.write (135); } if (value.toInt () == 180) { Serial.println (сервопозиция); myServo.write (180); }
Если мы отправим значение «1», нажав кнопку Start , сервопривод будет вращаться непрерывно, пока не будет нажата кнопка остановки . Здесь мы направляем «2» при нажатии стоп кнопки, которая будет читаться в Arduino и сломается то время как петли и серво будет остановлен.
в то время как (значение.toInt () == 1) {если (bluetooth.available ()) {значение = bluetooth.readString (); Serial.println (значение); если (значение.toInt () == 2) {Serial.println ("ГГГ"); сломать; }} servopos ++; задержка (30); Serial.println (сервопо); myServo.write (сервопо); если (servopos == 180) {servopos = 0; break;}}}}
Работа управления серводвигателем через Bluetooth:
В этом проекте мы управляем серводвигателем с помощью Android-приложения «Roboremo». В интерфейсе этого приложения мы создали 5 кнопок для управления серводвигателем, как объяснялось ранее. Работа каждой кнопки приведена в таблице ниже:
S.No. |
Название кнопки |
Отправка значения |
Описание |
1. |
Начало |
1 |
Эта кнопка используется для запуска вращения сервопривода от 0⁰ до 180⁰. |
2. |
Стоп |
2 |
Эта кнопка используется для остановки сервопривода в любой момент. |
3. |
0⁰ |
0 |
Эта кнопка используется для поворота сервопривода на 0⁰. |
4. |
90⁰ |
90 |
Эта кнопка используется для поворота сервопривода на 90⁰. |
5. |
180⁰ |
180 |
Эта кнопка используется для поворота сервопривода на 180⁰. |
Таким образом, при нажатии этих кнопок в Android-приложении Roboremo данные будут отправлены через Bluetooth смартфона на модуль Bluetooth HC-06. Из этого модуля HC-06 данные принимаются Arduino, и Arduino вращает сервопривод под углом, определенным в коде для конкретной кнопки. Мы также закодировали угол 45 и 135, но из-за ограничений приложения Roboremo вы можете создать только 5 кнопок, поэтому мы пропустили две кнопки.
Вот как вы можете отправлять данные со смартфона на Arduino с помощью Bluetooth для управления сервоприводом по беспроводной сети. Это можно использовать во многих приложениях, таких как игрушечные машинки, роботы и т. Д.