Робот, управляемый жестами: Arduino + MPU-6050 + Bluetooth
Компоненты и материалы
| Arduino UNO | 1 |
| Arduino Nano R3 | 1 |
| Bluetooth HC-05 | 2 |
| MPU-6050 (3-осевой гироскоп/акселерометр) | 1 |
| DC моторы 12В | 2 |
| Резиновые колёса | 1 комплект |
| Драйвер двигателей L293D | 1 |
| Батареи 9В (Крона) | 2 |
Инструменты
- Паяльник
- Припой без свинца
- Пенной скотч
- Мультитул/Отвёртка
Приложения
- Arduino IDE
О проекте
Как сделать жесткоуправляемую машинку своими руками. Простое применение MPU-6050 (3-осевой гироскоп + акселерометр). Понимая работу с датчиком, интерфейс с Arduino и передачу данных по Bluetooth — можно делать гораздо больше. Здесь фокус на Bluetooth-to-Bluetooth связи между двумя HC-05.
Следуйте видео для сборки корпуса и проводки. Схемы передатчика (пульта) и приёмника (робота) прилагаются.
Прямой заказ PCB на PCBWay: ссылка
Настройка Bluetooth-модулей
HC-05 из коробки — Slave. Можно слать данные с телефона, пароль 1234/0000. Но чтобы передавать данные из модуля в другой модуль — нужно настроить.
В проекте: первый модуль — Slave (на роботе, принимает команды), второй — Master (на пульте, шлёт данные от MPU-6050).
Настройка Slave-модуля
Подключите к Arduino по схеме, залейте скетч configure (SoftwareSerial на пинах 10/11, скорость 38400).
Отключите модуль. Зажмите кнопку (KEY) на модуле и подключите питание. LED мигает редко (раз в 2 сек) — режим AT-команд. Откройте Serial Monitor (9600, Both NL & CR). Отправьте AT — должен ответить OK.
Последовательно введите:
AT+ORGL // Заводские настройки
AT+RMAAD // Удалить старые пары
AT+UART? // Проверить бодрейт
AT+UART=38400,0,0 // Установить 38400
AT+ROLE? // Проверить роль (0=Slave, 1=Master)
AT+ROLE=0 // Установить Slave
AT+ADDR? // Узнать адрес — ЗАПИШИТЕ!
Настройка Slave завершена.
Настройка Master-модуля
Подключите второй модуль так же, войдите в AT-режим. Введите:
AT+ORGL
AT+RMAAD
AT+UART?
AT+UART=38400,0,0
AT+ROLE?
AT+ROLE=1 // Установить Master
AT+CMODE=0 // Подключение только к одному устройству
AT+BIND="адрес_Slave" // Привязка к Slave
Готово — модули будут автосоединяться при включении.
Библиотеки и код
Установите библиотеки для MPU-6050 и I2C. Скачайте исходники: gesture_control_robot.rar
Код робота (Car Unit) — Arduino UNO
// Gesture Controlled Robotic Car
int lm1=8, lm2=9, rm1=10, rm2=11;
char d=0;
void setup() {
pinMode(lm1,OUTPUT); pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT); pinMode(rm2,OUTPUT);
Serial.begin(38400); sTOP();
}
void loop() {
if(Serial.available()>0) {
d=Serial.read();
if(d=='F') ForWard();
else if(d=='B') BackWard();
else if(d=='L') Left();
else if(d=='R') Right();
else if(d=='S') sTOP();
}
}
void ForWard() { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void BackWard() { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void Left() { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void Right() { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void sTOP() { digitalWrite(lm1,LOW); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,LOW); }
Код пульта (Remote Unit) — Arduino Nano
Использует DMP MPU-6050 для получения yaw/pitch/roll. По pitch/roll определяет жест и шлёт F/B/L/R/S по Bluetooth (SoftwareSerial на 10/11, 38400). Кнопка на пине 8 переключает режим управления.
Полный код велик — см. исходник или GitHub.
Финальная сборка
Slave Bluetooth на роботе, Master на пульте. Включаем — играем!
Надеюсь, полезно. Лайк, репост, комментарии. Подпишись на YouTube!
Код
Пульт (Remote Unit) — полный скетч
Приведён в исходнике (около 300 строк). Основное: инициализация DMP MPU-6050, чтение кватернионов → yaw/pitch/roll, логика порогов (±25° pitch, ±20-25° roll) → отправка команд F/B/L/R/S по Bluetooth.
Схемы
Схема подключения прилагается.
Производственный процесс
- Создание робота на Arduino и Raspberry Pi: пошаговое руководство
- Сборка домашней машины для написания домашних заданий (плоттер-писатель)
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Автономный линий-следующий робот на Arduino UNO
- Создание настраиваемой «бьющейся» клавиши на Arduino: пошаговое руководство
- Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
- Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино
- Автоматическая дверь на Arduino с ультразвуковым датчиком HC-SR04
- Управление манипулятором LittleArm через Android-приложение по Bluetooth
- Набор для создания робота с умной внутренней навигацией на базе Arduino