In English

Bluetooth_APP_Control-DFRobot

  1. подготовка
  2. Загрузите код тестирования
  3. Тест Bluetooth
  4. Загрузить код для дистанционного управления
  5. Сводка кода
  6. Дополнительная информация
  7. документы

Поскольку роботу позволено выполнять основные задачи, теперь мы добавили в него еще одну функцию, а именно управление роботом с мобильного телефона через Bluetooth. Кроме того, вы можете добавить больше интересных световых эффектов для вашего робота. В сочетании с нашим новым приложением, я верю, что вам это очень понравится. В то же время мы также оптимизировали код для управления Bluetooth, чтобы вам было удобнее им пользоваться.

подготовка

Примечание. На вашем телефоне должна быть установлена ​​iOS 8.1. После оптимизации вы можете легко пользоваться приложением на iPhone 5, iPhone 6 или iPhone 6 Plus. <br> В настоящее время мы только разработали приложение для iOS, но оно не доступно для Android.

Для пользователей iPhone: пожалуйста, скачайте GoBLE из App Store. Если экран показан на фотографии ниже, поздравляем! У вас есть правильное приложение!

У вас есть правильное приложение

Загрузите код тестирования

Пожалуйста, подключите плату Romeo BLE к компьютеру с помощью USB-кабеля. Код тестирования с именем GoBLE_Test.ino можно найти в программном пакете. Это только позволяет проверить сигнал с вашего iPhone на ПК. СКАЧАТЬ ЭТО И ПРОВЕРИТЬ.

Не забудьте загрузить Библиотека GoBLE перед загрузкой кода тестирования. После загрузки появится сообщение «Закончена загрузка».

<br> <br>

Тест Bluetooth

Если вы закончили загружать тестовый код, теперь давайте начнем Bluetooth-соединение, чтобы подключить вашего робота к iPhone. Во-первых, не забудьте включить мобильный Bluetooth, а затем откройте приложение GoBLE. Теперь ваш экран может выглядеть так! Если вы закончили загружать тестовый код, теперь давайте начнем Bluetooth-соединение, чтобы подключить вашего робота к iPhone Нажмите кнопку поиска Bluetooth (она выглядит как красное увеличительное стекло). Теперь она покажет вам все устройства Bluetooth, перечисленные на экране. Затем вам нужно только выбрать один из них, который соответствует названию доски Romeo BLE. Нажмите UUID, и они начнут связываться.

После подключения цвет ключа поиска Bluetooth изменится с красного на зеленый, как показано на рисунке ниже. После подключения цвет ключа поиска Bluetooth изменится с красного на зеленый, как показано на рисунке ниже В то же время загорится светодиод LINK на плате, это означает, что ваш iPhone был подключен к контроллеру Romeo BLE.

В то же время загорится светодиод LINK на плате, это означает, что ваш iPhone был подключен к контроллеру Romeo BLE

Теперь давайте проверим, может ли контроллер успешно принимать сигнал с вашего iPhone.

Вернитесь к интерфейсу Arduino IDE и нажмите Serial Monitor в верхнем правом углу

Во-первых, скорость передачи последовательного порта должна быть установлена ​​равной 115200, как показано красным кружком ниже

Загрузить код для дистанционного управления

Если все в порядке, давайте продолжим и загрузим код для удаленного управления на плату Arduino.

«Есть очень ключевой момент, о котором стоит помнить! '' 'Ваш iPhone уже был подключен к плате Romeo BLE на последнем этапе тестирования. Однако вы не можете загрузить код на плату Romeo BLE, если между вашим телефоном и платой установлен Bluetooth. Таким образом, вы должны сначала отключить соединение Bluetooth. Кроме того, вы можете загрузить код еще раз, если плата была отключена от телефона. ЭТА ТОЧКА ОЧЕНЬ ВАЖНА! Вы должны помнить это.

ino в пакете кода

Также вы можете нажать красную кнопку, чтобы включить или выключить светодиод на плате, подключенной с помощью PIN13

Сводка кода

Поиграв в робота, давайте начнем изучать, как использовать код. Больше нет слов для тестирования кода для GoBLE_test . Тогда мы просто перейдем к GoBLE_APP.

Нет необходимости обсуждать основной код - давайте просто посмотрим на часть, касающуюся управления bluethooth. Если вы хотите дистанционно управлять роботом, будут использоваться две библиотеки с именами Metro и GoBLE.

#include "Metro.h" #include "GoBLE.h" <br> int joystickX, joystickY; int buttonState [7]; <br>

ДжойстикX, джойстикY и buttonState [6], три переменные, определены для библиотеки GoBLE. Они используются для хранения значения состояния для оси X, оси Y и значений шести кнопок.

Карта ниже показывает расположение всех кнопок. Возможно, вы знаете значения + X, -X, + Y и –Y, если проанализировали изменение значений состояния. X & Y - направления движения джойстика. »+, -« показывают тренды значения. «+» Означает, что значение состояния увеличивается. А «-» означает, что значение состояния уменьшается.

Начальная настройка должна быть записана в функции Setup () .

Goble.begin ();

Эта строка используется для запуска настройки Bluetooth. И это нельзя пропустить, когда вы используете код Bluetooth на вашей доске.

Serial.begin (115200);

Фактически эта линия была использована на стадии тестирования. Он используется для инициирования последовательного порта. Если вы хотите прочитать значение из последовательного монитора, вы должны записать это утверждение в функцию настройки. И, также необходимо установить скорость передачи данных. Поскольку скорость передачи данных по Bluetooth особая, необходимо установить значение 115200. Убедитесь, что скорость передачи установлена, иначе это может вызвать некоторые проблемы.

«Пожалуйста, продолжайте смотреть вниз. '' 'Следующая строка является функцией Goble.available ()

if (Goble.available ()) {сделать что-нибудь; }

Это означает, что следующим действием будет получение фигуры через Bluetooth.

То, что написано в скобках, будет нашим следующим действием. Сначала нам нужно проанализировать полученную цифру. Следующие два утверждения должны прочитать значение по осям X и Y.

joystickX = Goble.readJoystickX (); joystickY = Goble.readJoystickY (); // Serial.print ("joystickX:"); // Serial.print (joystickX); // Serial.print ("joystickY:"); // Serial.println (joystickY);

Угадайте, что означают четыре оператора Serial.print () выше. Это связано с серийным. Сериал должен распечатывать полученные данные, что удобно для отладки и оптимизации кода.

«//» означает аннотацию следующего содержания. Эти четыре предложения не будут включены при компиляции кода. А именно, никакие данные не будут отправлены в серийный номер, как только мы используем аннотацию для этих четырех операторов.

'' 'Пожалуйста, обратитесь к справочной странице веб-сайта Arudino ( www.arduino.cc ) для дополнительной информации.

buttonState [SWITCH_UP] = Goble.readSwitchUp (); buttonState [SWITCH_DOWN] = Goble.readSwitchDown (); buttonState [SWITCH_LEFT] = Goble.readSwitchLeft (); buttonState [SWITCH_RIGHT] = Goble.readSwitchRight (); buttonState [SWITCH_SELECT] = Goble.readSwitchSelect (); buttonState [SWITCH_START] = Goble.readSwitchStart ();

Все содержимое выше используется для загрузки информации о состоянии кнопок. Расположение кнопок выглядит следующим образом.

SWITCH_UP - 1   SWITCH_RIGHT - 2   SWITCH_DOWN - 3   SWITCH_LEFT - 4   SWITCH_SELECT - 5   SWITCH_START - 6

Нам нужно обработать все прочитанные данные, прежде чем мы начнем их использовать. Значение, считываемое с джойстика, должно быть сопоставлено с частотой вращения колес нашего робота. Таким образом, скорость вращения колес оказывается между -255 и 255.。

int SpeedX = 2 * джойстикX-256; int SpeedY = 2 * джойстикY-256;

Serial.print («Скорость:»); Serial.print (SpeedX); Serial.print (""); Serial.println (Speedy);

Также сериал распечатал бы скорость. Если в этом нет необходимости, вы можете добавить «//» в начале, чтобы удалить его.

Теперь давайте контролировать робота и заставить его двигаться.

Если (переместите джойстик вверх или (||) вниз) {робот двигается вперед или назад; } If (переместите джойстик вправо или (||) влево) {робот переместится вправо или влево} If (ось X джойстика удерживается в центре и (&&) ось Y джойстика удерживается в центр) {Робот останавливается; }

Соответствующие коды следующие:

if (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed ​​= SpeedX; RightWheelSpeed ​​= SpeedX; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed); } else if (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= -SpeedY-80; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed); } else if (SpeedX == 0 && SpeedY == 0) {Robot.Speed ​​(0,0); }

Контакт 13 должен быть определен в начале кода.

int ledPin = 13;

Последний код используется для управления светодиодом на плате, подключенной к PIN13.

pinMode (ledPin, OUTPUT);

Настройте режим вывода для светодиода, написав функцию setup (). Пожалуйста, обратитесь к инструкции для функции pinMode () на веб-сайте Arduino (www.arduino.cc).

Следующие выражения показывают состояние кнопок. После нажатия кнопки № 1 светодиод будет гореть. Это означает, что светодиодный контакт установлен на ВЫСОКИЙ.

if (buttonState [1] == PRESSED) {digitalWrite (ledPin, HIGH); }

После отпускания кнопки № 1 светодиод погаснет. Это означает, что светодиодный контакт установлен на НИЗКИЙ.

if (buttonState [1] == RELEASED) {digitalWrite (ledPin, LOW); }

Это все для кодирования сегодня. Разве это не весело? Так что, это не невозможно написать код для вас, верно? Вы можете попробовать изменить кнопку для управления светодиодной подсветкой, изменив код. Это определенно интереснее, когда вы можете управлять им с помощью своего кода. '' 'Теперь начните веселиться с вашим роботом! «»»

Дополнительная информация

Сервис UUID

DF Robot BLE Подробности: Сервис

UUID: 0000dfb0-0000-1000-8000-00805f9b34fb Характеристики

Имя: UUID последовательного порта: 0000dfb1-0000-1000-8000-00805f9b34fb Имя: UUID команды: 0000dfb2-0000-1000-8000-00805f9b34fb

документы

GoBle APP

Библиотеки

Вы нашли это?
Разве это не весело?
Так что, это не невозможно написать код для вас, верно?