Управление "Смарт РОБО" через 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-модуль через смартфон.