Представляю свой проект робомобиля на Arduino. На просторах интернета есть масса подобных статей, наткнувшись на одну из них решил реализовать увиденное со своими изменениями в конструкцию и функционал. Реализованы следующие возможности: управление робомобилем по Bluetooth со смартфона; автономное движение робомобиля с объездом препятствий.
Для реализации нам понадобится:
Комплект: рама, моторы, колёса, крепления (Car Chassis Kit for Arduino — фото)
Arduino Mega 2560
Motor Control Shield for Arduino L293D
Сервопривод MG995
Ультразвуковой дальномер HC-SR04
Bluetooth модуль HC-05 JY-MCU
Active High Level Buzzer Alarm / Speaker Buzzer Module
Диоды для фар
Соединительные провода
Держатели для дальномера и Bluetooth модуля (делал сам)
Блок питания (я взял от кассового аппарата)
Приложение на Android для управления робомобилем по Bluetooth Arduino Bluetooth RC Car (фото, при подключении к Bluetooth модулю пин-код по умолчанию «1234»)
Подключение комплектующих
Моторы | Motor Shield L293D | Фары | Arduino Mega 2560 |
П.Л. | М3 | П.Л. | «-» на GND, «+» на Pin 22 |
П.П. | М4 | П.П. | «-» на GND, «+» на Pin 24 |
З.Л. | М1 | З.Л. | «-» на GND, «+» на Pin 34 |
З.П. | М2 | З.П. | «-» на GND, «+» на Pin 35 |
Дальномер HC-SR04 | Arduino Mega 2560 | Bluetooth HC-05 | Arduino Mega 2560 | Buzzer | Arduino Mega 2560 |
Vcc | 5V | VCC | 5V | SIG | Pin A9 |
Trig | Pin 31 | GND | GND | VCC | Pin A8 |
Echo | Pin 30 | TXD | Pin 50 | GND | GND |
Gnd | GND | RXD | Pin 51 |
Сервопривод MG995 | Motor Shield L293D |
тройная клема | SERVO_2 (центральный провод «+» откусываем и запитываем напрямую от «+» Motor Shield — фото; при управлении по Bluetooth — клему снимайте, чтобы серва не дёргалась) |
Процесс сборки
К моторам припаиваем провода, обратите внимание, на всех нижних контактах у меня чёрные провода, на верхних — красные, не перепутайте полярность при подключении к Motor Shield.
Крепим сервопривод к верхней части рамы, моторы к нижней, собираем раму, ставим колёса. Устанавливаем Motor Shield сверху Arduino Mega и крепим на раму, подключаем всё по схеме выше, заливаем соответствующий скетч (в конце статьи) — наслаждаемся.
Управление по Bluetooth — устанавливаете приложение на свой смартфон, запускаете, подключаетесь (Connect) к Bluetooth модулю (при необходимости вводите пин-код); управлять можно классическим способом по стрелкам (Buttons), а так же в меню программы можно выбрать Accelerometer и управлять с помощью наклонов смартфона.
Автономное движение с объездом препятствий — алгоритм следующий: дальномер измеряет расстояние впереди, если оно > 30 см (в скетче параметр const int vmindistance), то продолжаем двигаться вперед, если < 30 см, то: останавливаем моторы; крутим сервопривод на углы от 0° до 180° с шагом в 15° и измеряем расстояния на этих углах; заносим полученные значения в массив; поворачиваем сервопривод прямо на угол 90°; ищем в массиве позицию с максимальным значением данных; если это значение < 30 см, то едем назад, если > 30 см, то проверяем какому углу поворота сервопривода оно соответствует и в зависимости от этого поворачиваем влево или вправо.
Небольшое видео.
Управление по Bluetooth:
Автономное движение с объездом препятствий:
Ссылки для скачивания:
→ Библиотека AFMotor
→ Скетч — управление по Bluetooth
→ Скетч — автономное движение с объездом препятствий
→ Мануал по Bluetooth модулю HC-05
Автор: alexbus84