Роботизированная машина на Arduino, управляемая по Bluetooth


В этом проекте мы рассмотрим создание роботизированной машины на основе платы Arduino Uno, управляемой по Bluetooth. Для этих целей мы будем использовать модуль Bluetooth HC-05 и приложение для операционной системы Android.

Внешний вид роботизированной машины на Arduino, управляемая по Bluetooth

На нашем сайте мы уже рассматривали похожие проекты на Arduino:
- робот, следующий вдоль линии;
- робот, управляемый с помощью жестов;
- робот, управляемый с помощью DTMF сигналов.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Bluetooth модуль HC-05 (купить на AliExpress).
  3. Драйвер двигателей L293D (купить на AliExpress).
  4. Двигатели постоянного тока.
  5. Батарейки на 6 и 9 Вольт.
  6. Соединитель батарей.
  7. Игрушечная машина.

Общие принципы управления машиной по Bluetooth

Разрабатываемая нами машина будет управляться по протоколу Bluetooth с помощью приложения, установленного на мобильном телефоне с операционной системой Android. Для управления машиной нужно будет всего лишь нажимать кнопки в этом приложении. То есть телефон с Android будет выступать в роли передающего устройства, а Bluetooth модуль, расположенный на машине – в качестве приемного устройства, выполняющего все команды, поступающие с телефона (движение вперед, назад, направо, налево, остановка).

Bluetooth модуль структурно состоит из двух блоков: модуль последовательного интерфейса (для последовательной передачи данных) и адаптер Bluetooth. Модуль последовательного интерфейса предназначен для конвертации данных Bluetooth в данные для передачи по последовательному порту.

После приобретения модуля Bluetooth в магазине вам нет никакой необходимости изменять его настройки – он полностью готов к работе. По умолчанию скорость передачи данных у него составляет 9600 бод/с. Вам просто необходимо подсоединить его контакты rx и tx к микроконтроллеру и подать питающее напряжение постоянного тока 5 В.

Bluetooth модуль может работать в двух режимах: главный режим (master mode) и подчинённый режим (slave mode). Любой из этих режимов можно установить с помощью соответствующих АТ команд. Далее приведены некоторые из АТ команд.

Первым делом при работе с данным модулем необходимо войти в AT режим со скоростью передачи 38400 бод/с при помощи нажатия кнопки EN на Bluetooth модуле или с помощью подачи сигнала высокого уровня на контакт EN. Примечание: все команды должны заканчиваться \r\n (0x0d и 0x0a) или нажатием клавиши ENTER на клавиатуре.

После того как вы передадите на модуль AT команду модуль ответит вам OK (после ее выполнения).

AT → Test Command
AT+ROLE=0 → Slave Mode select (выбор подчиненного режима)
AT+ROLE=1 → Master Mode select (выбор главного режима)
AT+NAME=xyz → Set Bluetooth Name (установка Bluetooth имени)
AT+PSWD=xyz → Set Password (установка пароля)
AT+UART=<value1>,<value2>,<value3> → set Baud rate (установка бодовой скорости)
Eg. AT+UART=9600,0,0

Распиновка Bluetooth модуля:
1. STATE → Open (открыто)
2. Rx → Serial receiving pin (контакт приема данных)
3. Tx → Serial transmitting pin (контакт передачи данных)
4. GND → ground (земля)
5. Vcc → +5volt dc (+5 В постоянного тока)
6. EN → to enter in AT mode (вход в AT режим)

Принципы работы разрабатываемого устройства

В этом проекте мы использовали игрушечную машину для демонстрации работы устройства. Игрушечная машина должны быть с радиоуправлением и рулевым механизмом, позволяющим поворачивать машину вправо и влево. После покупки данной машины мы заменили ее радиочастотную часть на нашу схему с Arduino. Машина имеет два двигателя постоянного тока. Двигатель, расположенный впереди машины, используется для поворота машины вправо или влево. Двигатель, расположенный сзади машины, используется для движения машины назад или вперед. Bluetooth модуль используется для приема команд от телефона на Android, а плата Arduino Uno используется для управления всей системой. Структурная схема работы устройства приведена на следующем рисунке.

Структурная схема работы машины, управляемой по Bluetooth

Разрабатываемая нами роботизированная машина на Arduino, управляемая по Bluetooth, подчиняется командам, формируемым приложением на телефоне с операционной системой Android. Поэтому первым делом нам необходимо скачать подобное приложение из Google play. Можно использовать любое Bluetooth приложение, которое поддерживает передачу данных. Пара примеров подобных приложений, с которыми наше устройство точно будет работать корректно:

  • Bluetooth Spp pro;
  • Bluetooth controller.

После установки подобного приложения вам необходимо открыть его и выбрать желаемое Bluetooth устройство. Затем сконфигурировать клавиши. Для примера в этом проекте мы использовали приложение Bluetooth controller. Последовательность действий в этом случае будет следующая:

  1. Скачать и установить Bluetooth Controller.
  2. Включить Bluetooth в настройках телефона.
  3. Открыть приложение Bluetooth controller.
  4. Нажать scan.
  5. Выбрать желаемое Bluetooth устройство.
  6. Установить клавиши – для этого необходимо нажать кнопку ‘set button’ и установить клавиши согласно приведенному рисунку.
  7. После установки клавиш нажать ok.

Установка клавиш в Bluetooth controller

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

Когда мы будем нажимать кнопку движения назад в приложении Bluetooth controller, то машина начнет двигаться в обратном направлении (назад) и будет двигаться в этом направлении пока не поступит следующая команда.

Когда мы будем нажимать кнопку движения влево в приложении Bluetooth controller, машина начнет поворачивать влево и будет делать это до поступления очередной команды. В этом случае передний двигатель машины повернет ее передние колеса влево, а задний двигатель будет двигать машину прямо.

Когда мы будем нажимать кнопку движения вправо в приложении Bluetooth controller, машина начнет поворачивать вправо и будет делать это до поступления очередной команды. В этом случае передний двигатель машины повернет ее передние колеса вправо, а задний двигатель будет двигать машину прямо.

После нажатия кнопки остановки в приложении Bluetooth controller машина остановится.

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема роботизированной машины на Arduino, управляемая по BluetoothДрайвер мотора используется для управления двигателями машины. Его контакты 2, 7, 10 и 15 подсоединены к цифровым контактам Arduino 12, 11, 10 и 9 соответственно. Один из двигателей подключен к выходным контактам драйвера мотора 3 и 6, а другой – к контактам 11 и 14. Батарейка 6 Вольт также используется для питания драйвера мотора – а через него для питания двигателей. Контакты rx и tx Bluetooth модуля непосредственно подключены к контактам tx и rx платы Arduino. Батарейка 9 Вольт используется для подачи питания на контакт Arduino Vin.

Исходный код программы

В программе первым делом необходимо инициализировать выходные контакты для подключения двигателей (через драйвер мотора).

Затем в функции setup задать направление работы для этих контактов (на вывод данных).

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

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

Условия для задания направления движения машины

Далее представлен полный текст программы.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
3 295 просмотров

Комментарии

Роботизированная машина на Arduino, управляемая по Bluetooth — 2 комментария

  1. Чувак, я делал гораздо круче с программой "Arduino Bluetooth RC Car". У тебя, честно говоря, какая-то фигня, нужно нажимать "Стоп" каждый раз.
    Если хочешь, напиши мне, выложу скетч.

    • Почему фигня, рабочий же проект. Если вам не сложно, загрузите ваш скетч на яндекс диск (или еще на какой-нибудь виртуальный диск) и здесь ссылку приведите на его скачивание. Если хотите, я могу даже опубликовать вашу статью на нашем сайте если вы напишите такую статью

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *