Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Управление "Смарт РОБО" через Bluetooth (UART) ====== ====== Описание ====== В этом проекте мы будем управлять нашим миниботом через смартфон с помощью Bluetooth. Для этого будет произведена установка специального приложения для работы с Bluetooth на смартфон и настроена работа с миниботом. ===== Дополнительные модули ===== Предполагается что у Вас уже есть набор Смарт РОБО, и вы собрали его по инструкции в руководстве пользователя. Тогда дополнительно понадобится на выбор один из двух Bluetooth модулей: [[httpss://smartelements.ru/collection/svyaz/product/bluetooth-modul-se|Bluetooth SE]] или HC-05. Мы остановимся на версии Bluetooth SE и ниже будет рассмотрен пример с его использованием. Однако, работа с модулем HC-05 аналогична и не вызовет трудностей. ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/svyaz/product/bluetooth-modul-se|Bluetooth модуль SE]] | 1 | ===== Библиотеки ===== * [[https://files.smartelements.ru/know_libs/robotSE.zip|Библиотека robotSE (для робота)]] ===== Порядок действий ===== ==== Шаг 1. Установите библиотеки ==== Установите в Arduino IDE библиотеки, которые представлены по ссылкам выше (в подпункте "Библиотеки"). О том как устанавливаются библиотеки описано в руководстве пользователя, входящем в комплект, либо посетите соответствующий [[main:info:libs|раздел Базы Знаний]]. ==== Шаг 2. Загрузите скетч на контроллер ==== В скетче мы описываем при получении каких команд с модуля наш робот должен двигаться. Например, команда "F" - означает движение вперёд. Общий список команд: ^ Команда ^ Движение робота ^ | F | Движение вперёд | | B | Движение назад | | L | Движение влево | | R | Движение вправо | | S | Остановка | Загрузите на контроллер следующий скетч, описывающий выполнение команд движения робота: <file Arduino> #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"); //поясняющая надпись в модуль } } </file> ==== Шаг 3. Подключите Bluetooth - модуль ==== <WRAP center round info 80%> Обратите внимание, что мы подключаем модуль к контроллеру уже после того как на контроллер загружен скетч. После подключения Bluetooth модуля к выводам UART, контроллер уже не сможет ими пользоваться для связи с компьютером. И Serial порт будет занят Bluettoth модулем. </WRAP> Схема подключения: ^ Вывод Bluetooth SE ^ Вывод Motor Shield ^ | + | + | | - | - | | TX | RXD | | RX | TXD | | SYS1 | | | SYS2 | | {{ :main:upgkits:hm-10_motorshield.png |}} ==== Шаг 4. Установка и настройка приложения ==== После того, как модуль подключен к контроллеру, нам нужно установить приложение для работы с блютус на смартфоне. На примере ОС Android рассмотрим процесс установки приложения. В магазине приложений найдите приложение serial bluetooth terminal и установите его. {{ :main:comm:install_app.jpg?nolink&400 |}} В настройках телефона активируйте Bluetooth соединения. {{ :main:comm:bt_activating.jpg?nolink&400 |}} Откройте приложение Serial Bluetooth Terminal, войдите в основное меню. {{ :main:comm:btapp_main_menu.jpg?nolink&400 |}} Выберите раздел Devices, перейдите на вкладку Bluetooth LE и нажмите Scan. {{ :main:comm:btapp_scan.jpg?nolink&400 |}} После сканирования устройств, выберите нужное устройство. (Если Вы до этого не меняли его имени, то имя должно содержать фразу "BT_SE"). {{ :main:comm:btapp_device_select_se.jpg?nolink&400 |}} При выборе устройства, приложение снова откроет начальную страницу (терминал) и отобразит состояние подключения. {{ :main:comm:btapp_just_connected_se.jpg?nolink&400 |}} Далее, в поле ввода, наберите с клавиатуры любую команду из описанных выше, и нажмите кнопку отправить. После отправки, сообщение отобразится в терминале. В терминал выведется информация о направлении движения робота. Робот начнёт двигаться в указанную сторону. {{ :main:upgkits:commands.jpg?nolink&400 |}} ==== Шаг 5. Быстрые команды ==== В прошлом шаге мы добились того, чтобы робот двигался в сторону, которую мы указываем. Но большой минус в том, что каждый раз команду вводить долго, и робот становится менее манёвренным. Сейчас мы выполним настройку приложения, чтобы команды отправлялись быстро. В нижней части приложения, можно заметить семь кнопок для быстрого ввода (М1, М2, М3, М4, М5, М6, М7). На эти кнопки можно установить команду, которая будет отправляться по нажатию на кнопку, а так же изменить название кнопки. Для этого выполните долгое нажатие по кнопке М1: {{ :main:upgkits:m1_long_pushing.jpg?nolink&400 |}} И в открывшемся окне редактирования быстрой команды, измените значение полей **Name** (имя) на **F**, и в поле **Value** (значение) также укажите команду **F**. И нажмите "галочку" для подтверждения. {{ :main:upgkits:m1_editing.jpg?nolink&400 |}} Аналогично отредактируйте остальные кнопки: ^ Кнопка ^ Значение Name ^ Значение Value ^ | M1 | F | F | | M2 | L | L | | M3 | S | S | | M4 | R | R | | M5 | B | B | После введённых значений, нажимая на кнопку команда отправляется сразу же на модуль и робот моментально выполняет указанные движения. {{ :main:upgkits:commands_final.jpg?nolink&300 |}} ==== Шаг 6. Запуск ==== Управляйте роботом с помощью отправляемых команд на Bluetooth-модуль через смартфон.