Управление "Смарт РОБО" через Bluetooth (UART)
Описание
В этом проекте мы будем управлять нашим миниботом через смартфон с помощью Bluetooth. Для этого будет произведена установка специального приложения для работы с Bluetooth на смартфон и настроена работа с миниботом.
Дополнительные модули
Предполагается что у Вас уже есть набор Смарт РОБО, и вы собрали его по инструкции в руководстве пользователя. Тогда дополнительно понадобится на выбор один из двух Bluetooth модулей: Bluetooth SE или HC-05. Мы остановимся на версии Bluetooth SE и ниже будет рассмотрен пример с его использованием. Однако, работа с модулем HC-05 аналогична и не вызовет трудностей.
Что нужно | Кол-во, шт |
---|---|
Bluetooth модуль SE | 1 |
Библиотеки
Порядок действий
Шаг 1. Установите библиотеки
Установите в Arduino IDE библиотеки, которые представлены по ссылкам выше (в подпункте «Библиотеки»). О том как устанавливаются библиотеки описано в руководстве пользователя, входящем в комплект, либо посетите соответствующий раздел Базы Знаний.
Шаг 2. Загрузите скетч на контроллер
В скетче мы описываем при получении каких команд с модуля наш робот должен двигаться. Например, команда «F» - означает движение вперёд. Общий список команд:
Команда | Движение робота |
---|---|
F | Движение вперёд |
B | Движение назад |
L | Движение влево |
R | Движение вправо |
S | Остановка |
Загрузите на контроллер следующий скетч, описывающий выполнение команд движения робота:
#include <robotSE.h> //подключение библиотеки для работы с платформой. robotSE robot; //создание объекта робота void setup() { //инициализация Serial-соединения для получения команд от WiFi модуля Serial.begin(9600); } void loop() { String command = Serial.readStringUntil('\n'); //чтение строки из Serial-порта command.trim(); //обрезать строку (убрать незначащие символы) if (command == "F") { //если это команда F robot.move_forward(); //двигаться вперед Serial.println("FORWARD"); //поясняющая надпись в модуль } if (command == "L") { //если это команда L robot.move_left(); //двигаться влево Serial.println("LEFT"); //поясняющая надпись в модуль } if (command == "S") { //если это команда S robot.move_stop(); //остановиться Serial.println("STOP"); //поясняющая надпись в модуль } if (command == "R") { //если это команда R robot.move_right(); //двигаться вправо Serial.println("RIGHT"); //поясняющая надпись в модуль } if (command == "B") { //если это команда B robot.move_back(); //двигаться назад Serial.println("BACK"); //поясняющая надпись в модуль } }
Шаг 3. Подключите Bluetooth - модуль
Обратите внимание, что мы подключаем модуль к контроллеру уже после того как на контроллер загружен скетч. После подключения Bluetooth модуля к выводам UART, контроллер уже не сможет ими пользоваться для связи с компьютером. И Serial порт будет занят Bluettoth модулем.
Схема подключения:
Вывод Bluetooth SE | Вывод Motor Shield |
---|---|
+ | + |
- | - |
TX | RXD |
RX | TXD |
SYS1 | |
SYS2 |
Шаг 4. Установка и настройка приложения
После того, как модуль подключен к контроллеру, нам нужно установить приложение для работы с блютус на смартфоне. На примере ОС Android рассмотрим процесс установки приложения.
В магазине приложений найдите приложение serial bluetooth terminal и установите его.
В настройках телефона активируйте Bluetooth соединения.
Откройте приложение Serial Bluetooth Terminal, войдите в основное меню.
Выберите раздел Devices, перейдите на вкладку Bluetooth LE и нажмите Scan.
После сканирования устройств, выберите нужное устройство. (Если Вы до этого не меняли его имени, то имя должно содержать фразу «BT_SE»).
При выборе устройства, приложение снова откроет начальную страницу (терминал) и отобразит состояние подключения.
Далее, в поле ввода, наберите с клавиатуры любую команду из описанных выше, и нажмите кнопку отправить. После отправки, сообщение отобразится в терминале. В терминал выведется информация о направлении движения робота. Робот начнёт двигаться в указанную сторону.
Шаг 5. Быстрые команды
В прошлом шаге мы добились того, чтобы робот двигался в сторону, которую мы указываем. Но большой минус в том, что каждый раз команду вводить долго, и робот становится менее манёвренным.
Сейчас мы выполним настройку приложения, чтобы команды отправлялись быстро. В нижней части приложения, можно заметить семь кнопок для быстрого ввода (М1, М2, М3, М4, М5, М6, М7). На эти кнопки можно установить команду, которая будет отправляться по нажатию на кнопку, а так же изменить название кнопки. Для этого выполните долгое нажатие по кнопке М1:
И в открывшемся окне редактирования быстрой команды, измените значение полей Name (имя) на F, и в поле Value (значение) также укажите команду F. И нажмите «галочку» для подтверждения.
Аналогично отредактируйте остальные кнопки:
Кнопка | Значение Name | Значение Value |
---|---|---|
M1 | F | F |
M2 | L | L |
M3 | S | S |
M4 | R | R |
M5 | B | B |
После введённых значений, нажимая на кнопку команда отправляется сразу же на модуль и робот моментально выполняет указанные движения.
Шаг 6. Запуск
Управляйте роботом с помощью отправляемых команд на Bluetooth-модуль через смартфон.