Bluetooth-машинка на Arduino: DIY радиоуправляемый автомобиль
Компоненты и расходные материалы
| Arduino UNO | × | 1 |
| DC-мотор 12 В 200 об/мин | × | 2 |
| L293D Motor Drive Shield для Arduino Uno | × | 1 |
| Bluetooth-модуль HC-05 | × | 1 |
| Макетная плата (Breadboard) | × | 1 |
| Перемычки (провода) | × | 1 |
Программное обеспечение
О проекте
Привет! Всё, чем можно управлять — круто. Люди любят контроль, поэтому автоматизация и робототехника так фокусируют.
Урок: создание Bluetooth-машинки. Используем HC-05 для приёма команд.
Нужен Android-приложение для отправки команд. Используем стороннее приложение (ссылка на скачивание в оригинале).
Сборка железа
Кузов машинки
Двухмоторная схема. Два мотора 12В 200 об/мин. Можно готовый шасси, я использовал лист ПВХ.


Базовая структура готова. Свой дизайн welcome, но вес минимален — два мотора.
Схема подключения



Следуйте схеме. Фото — как выглядит после монтажа.
Питание
Момент важный.
Arduino Uno питается от пауэрбанка (5В). Этого недостаточно для 12В моторов. Нужен отдельный источник.
Попробовал два 9В «Кроны» последовательно — 18В. Проблема: тока не хватает, моторы крутятся очень слабо.
Рекомендую 12В аккумулятор (Li-ion или SLA), иначе скорость будет низкой.
Код
Управление направлением вращения моторов:
- Вперёд — оба мотора вперёд
- Назад — оба назад
- Влево — левый назад, правый вперёд
- Вправо — левый вперёд, правый назад
- Стоп — оба стоп
void forward() { motor1.run(FORWARD); motor2.run(FORWARD); }
void backward() { motor1.run(BACKWARD); motor2.run(BACKWARD); }
void left() { motor1.run(BACKWARD); motor2.run(FORWARD); }
void right() { motor1.run(FORWARD); motor2.run(BACKWARD); }
void Stop() { motor1.run(RELEASE); motor2.run(RELEASE); }
----------------------------------------------------------
Всё!
- Загрузите код в Arduino.
- Сделайте соединения.
- Запустите приложение на телефоне.
- Сопрягите телефон с машинкой.
Готовая красавица!





Надеюсь, урок помог. Предложения — в комментариях.
Код
Полный скетч (C/C++)
#include <AFMotor.h>
AF_DCMotor motor1(1); // левый мотор
AF_DCMotor motor2(2); // правый мотор
int val;
void setup() {
Serial.begin(9600);
motor1.setSpeed(255);
motor2.setSpeed(255);
Stop();
}
void loop() {
val = Serial.read();
if(val == '1') forward(); // вперёд
if(val == '2') backward(); // назад
if(val == '3') left(); // влево
if(val == '4') right(); // вправо
if(val == '5') Stop(); // стоп
}
void forward() { motor1.run(FORWARD); motor2.run(FORWARD); }
void backward() { motor1.run(BACKWARD); motor2.run(BACKWARD); }
void left() { motor1.run(BACKWARD); motor2.run(FORWARD); }
void right() { motor1.run(FORWARD); motor2.run(BACKWARD); }
void Stop() { motor1.run(RELEASE); motor2.run(RELEASE); }
Схема
Подключите 12В источник к Motor Driver Shield. На схеме внешнее питание не показано.

Производственный процесс
- Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
- Превратите свой RC-автомобиль в Bluetooth-управляемый транспорт
- Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Простой калькулятор на Arduino UNO — базовый проект для начинающих
- Голосовой робот на Arduino Nano: Управление речью через Bluetooth
- Сборка портативного дисплея на основе эффекта сохранения изображения с Arduino UNO и ATtiny85
- Голосовое управление бытовыми приборами: Bluetooth-управление через Google Assistant
- Wi-Servo: управление сервоприводами по Wi-Fi через веб-браузер
- Самодельный RC Porsche на Arduino: Пошаговое руководство