Все статьиHardware

Машинка на Arduino с Bluetooth-управлением со смартфона

БА
Бексултан Айтен
CTO, Alashed
9 июня 2025 г.
10 мин чтения
Машинка на Arduino с Bluetooth-управлением со смартфона

Пошаговая инструкция по сборке радиоуправляемой машинки на Arduino с модулем HC-05 и драйвером L298N. Управление со смартфона через Bluetooth.

Почему Bluetooth-машинка -- отличный проект

Радиоуправляемая машинка, собранная своими руками и управляемая со смартфона, -- один из самых зрелищных и мотивирующих Arduino-проектов. Он объединяет механику, электронику и программирование в одном устройстве. Ученик работает с беспроводной связью Bluetooth, управлением двигателями через H-мост, обработкой последовательных команд и основами робототехники.

Мы будем использовать модуль HC-05 для приёма команд со смартфона и драйвер L298N для управления четырьмя DC-моторами. Команды отправляются из бесплатного мобильного приложения и обрабатываются скетчем на Arduino в реальном времени.

Уровень сложности: средний-высокий, подходит для 8-10 классов.

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

  • Arduino Uno -- 1 шт.
  • Bluetooth-модуль HC-05 -- 1 шт.
  • Драйвер моторов L298N -- 1 шт.
  • DC-моторы с редуктором (3-12V) -- 4 шт.
  • Колёса для моторов -- 4 шт.
  • Шасси (пластиковая или акриловая платформа) -- 1 шт.
  • Аккумулятор или батарейный отсек (7-12V) -- 1 шт.
  • Светодиод белый (для фар, опционально) -- 2 шт.
  • Провода-перемычки -- 15 шт.
  • USB-кабель для программирования Arduino
Сборка Bluetooth-машинки: плата Arduino и драйвер L298N на шасси
Сборка Bluetooth-машинки: плата Arduino и драйвер L298N на шасси

Схема подключения

Подключение Bluetooth-модуля HC-05:

HC-05Arduino
VCC5V
GNDGND
TXDпин 0 (RX)
RXDпин 1 (TX)

Критически важно: при загрузке скетча в Arduino отсоедините провода от модуля HC-05. Пины 0 и 1 используются для USB-связи с компьютером, и подключённый Bluetooth-модуль помешает загрузке. Подключайте HC-05 только после успешной загрузки программы.

Подключение драйвера L298N:

L298NНазначение
IN1пин 9 Arduino
IN2пин 10 Arduino
IN3пин 11 Arduino
IN4пин 12 Arduino
ENAперемычка (макс. скорость)
ENBперемычка (макс. скорость)
OUT1-OUT2Левые моторы
OUT3-OUT4Правые моторы
+12VПлюс аккумулятора
GNDМинус аккумулятора и GND Arduino
LED (+)пин 13 Arduino
Схема подключения Bluetooth-модуля HC-05 и драйвера L298N к Arduino
Схема подключения Bluetooth-модуля HC-05 и драйвера L298N к Arduino

Левые два мотора подключаются параллельно к выходам OUT1-OUT2, правые два -- к OUT3-OUT4. Перемычки ENA и ENB оставляем на месте -- моторы будут работать на максимальной скорости. Обязательно соедините GND Arduino с GND драйвера -- без общей земли система не будет функционировать.

Сборка шасси

Закрепите четыре мотора с колёсами на шасси -- по два с каждой стороны. Arduino и драйвер L298N установите на платформу сверху. Аккумулятор можно разместить снизу для лучшего баланса. Проложите провода аккуратно, следя за тем, чтобы они не попадали в колёса и не натягивались при повороте.

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

Полный код проекта

```cpp

// Bluetooth-машинка на Arduino

// Управление со смартфона через модуль HC-05

// Команды: F-вперёд, B-назад, L-влево, R-вправо, S-стоп

// Пины управления моторами через L298N

const int IN1 = 9; // левые моторы -- направление

const int IN2 = 10; // левые моторы -- направление

const int IN3 = 11; // правые моторы -- направление

const int IN4 = 12; // правые моторы -- направление

// Пин светодиода (фары)

const int LED_PIN = 13;

// Переменная для хранения принятой команды

char command;

void setup() {

// Запускаем последовательную связь на 9600 бод

// HC-05 по умолчанию работает на этой скорости

Serial.begin(9600);

// Настраиваем пины моторов как выходы

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

// Пин светодиода

pinMode(LED_PIN, OUTPUT);

// Всё выключено при старте

stopCar();

digitalWrite(LED_PIN, LOW);

}

// Остановка -- все пины в LOW

void stopCar() {

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

// Движение вперёд -- оба мотора крутятся в одну сторону

void moveForward() {

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

}

// Движение назад -- оба мотора крутятся в обратную сторону

void moveBackward() {

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

}

// Поворот влево -- правые моторы вперёд, левые стоят

void turnLeft() {

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

}

// Поворот вправо -- левые моторы вперёд, правые стоят

void turnRight() {

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

void loop() {

// Проверяем, пришли ли данные по Bluetooth

if (Serial.available() > 0) {

command = Serial.read();

// Обрабатываем полученную команду

switch (command) {

case 'F': // вперёд (Forward)

moveForward();

break;

case 'B': // назад (Backward)

moveBackward();

break;

case 'L': // поворот влево (Left)

turnLeft();

break;

case 'R': // поворот вправо (Right)

turnRight();

break;

case 'S': // стоп (Stop)

stopCar();

break;

case 'W': // включить фары

digitalWrite(LED_PIN, HIGH);

break;

case 'w': // выключить фары

digitalWrite(LED_PIN, LOW);

break;

default:

// Неизвестная команда -- останавливаемся

stopCar();

break;

}

}

}

`

Разбор кода

Связь через Serial. Bluetooth-модуль HC-05 подключён к аппаратному UART (пины 0 и 1). С точки зрения Arduino, данные от HC-05 приходят так же, как и от USB-компьютера -- через Serial. Функция Serial.available() проверяет, есть ли непрочитанные байты, а Serial.read() считывает один символ.

Протокол команд. Мы используем простейший протокол: один символ -- одна команда. Буква F означает движение вперёд, B -- назад, L и R -- повороты, S -- остановка. Этот протокол совместим с большинством бесплатных Bluetooth-контроллеров из Google Play и App Store, таких как Arduino Bluetooth Controller или BotDrive.

Управление моторами через H-мост. Драйвер L298N содержит два H-моста, каждый управляет парой моторов. Направление вращения определяется комбинацией сигналов HIGH и LOW на входах IN1-IN4. Для движения вперёд: IN1=HIGH, IN2=LOW (левые), IN3=HIGH, IN4=LOW (правые). Для заднего хода все сигналы инвертируются.

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

Настройка мобильного приложения. Установите на смартфон приложение Arduino Bluetooth Controller. Включите Bluetooth, выполните сопряжение с модулем HC-05 (пароль по умолчанию: 1234 или 0000). В приложении назначьте кнопкам направлений символы F, B, L, R, а кнопке «стоп» -- символ S.

Советы по отладке и сборке

Машинка не двигается после подключения. Убедитесь, что аккумулятор заряжен. Слабый источник питания -- самая частая причина проблем. Проверьте все контакты на драйвере L298N -- они должны быть надёжно зафиксированы.

Машинка едет не в ту сторону. Если при команде «вперёд» машинка едет назад, поменяйте местами провода на обоих моторах. Если машинка поворачивает не в ту сторону, поменяйте провода только на одной паре моторов.

Один мотор крутится быстрее другого. Это нормально для дешёвых DC-моторов. Для компенсации замените перемычки ENA/ENB проводами к ШИМ-пинам Arduino и регулируйте скорость каждой стороны отдельно через analogWrite().

Загрузка кода не проходит. Отключите провода от HC-05 перед загрузкой. Bluetooth-модуль занимает пины Serial и конфликтует с USB-программатором.

Идеи для развития проекта

Добавьте ультразвуковой датчик HC-SR04 на переднюю часть шасси для автоматического объезда препятствий. Реализуйте регулировку скорости через ШИМ -- передавайте цифры 1-9 как уровни скорости. Подключите сервопривод для поворота датчика и сканирования пространства впереди. Можно добавить инфракрасные датчики снизу и реализовать режим следования по чёрной линии.

Как Alashed помогает

В каталоге Alashed Hardware вы найдёте полные наборы для сборки Bluetooth-машинки: шасси с моторами и колёсами, драйвер L298N, модуль HC-05, Arduino Uno и аккумулятор -- всё в одной коробке с инструкцией. Среда Alashed CodeStudio позволяет загружать скетчи в Arduino прямо из браузера и использовать встроенный Serial Monitor для отладки Bluetooth-команд, что делает сборку и программирование доступными даже без установки Arduino IDE.

Попробуйте Alashed бесплатно

Подключите школу к пилоту. Генерируйте КМЖ за 2 минуты, ведите CodeStudio уроки, заказывайте оборудование — всё в одном месте.

Попробовать бесплатноДемо