В этой статье вы найдёте полное руководство по созданию дистанционно управляемой модели из конструктора LEGO‚ которая управляется Android‑ или iOS‑телефоном через Bluetooth. Мы рассмотрим:
- Необходимые детали LEGO и электроники.
- Схему подключения Bluetooth‑модуля к Arduino (или совместимому микроконтроллеру).
- Программный код и варианты мобильных приложений.
- Пошаговый процесс сборки и отладки.
- Контактную информацию для поддержки проекта.
Что понадобится?
Конструктор LEGO
Для базовой модели подойдёт любой набор с шасси‚ например:
- LEGO Technic 42100 “Лего Трак” – два больших шасси‚ оси и балки.
- Набор колес и шестерёнок (модель 42110).
- Дополнительные детали для крепления электроники (технические балки‚ «платформы»‚ «крепления»).
Электронные компоненты
| Компонент | Назначение | Рекомендации |
|---|---|---|
| Arduino Uno / Nano / Leonardo | Главный контроллер | Любой совместимый с Bluetooth‑модулем |
| Bluetooth‑модуль HC‑05 (UART) или HC‑06 | Беспроводная связь | HC‑05 поддерживает режим мастера/слейва‚ удобен для Android |
| Модуль драйвера моторов L298N (или DRV8833) | Управление двумя DC‑моторами | Поддерживает ток до 2 А на канал |
| DC‑моторы (12 V или 6 V) | Привод колес | Подбирайте под вес модели (≈300‑500 г) |
| Батарейный блок 4 × AA (6 V) или Li‑Po 7‚4 V | Питание | Обязательно с защитой от переразряда |
| Провода‚ клеммные колодки‚ термоклей | Соединения | Для надёжного монтажа в корпусе LEGO |
Программное обеспечение
- Arduino IDE – для загрузки скетча.
- Android‑приложения:
- AndiCo Joystick
- Bluetooth RC Controller
- Для iOS – приложение Bluetooth RC Controller (поиск в App Store).
Схема подключения
Ниже представлена типичная схема‚ которую можно собрать в несколько шагов:
+5V (Arduino) ──► VCC (HC‑05) GND (Arduino) ──► GND (HC‑05) TX (Arduino) ──► RX (HC‑05) // через делитель напряжения 5V→3.3V (если нужен) RX (Arduino) ──► TX (HC‑05) +5V (Arduino) ──► EN (L298N) // включение драйвера GND (Arduino) ──► GND (L298N) IN1 ──► D2 // направление мотор A IN2 ──► D3 IN3 ──► D4 // направление мотор B IN4 ──► D5 ENA ──► PWM D9 // скорость мотор A ENB ──► PWM D10 // скорость мотор B Motor A (+) ──► OUT1 (L298N) Motor A (–) ──► OUT2 Motor B (+) ──► OUT3 Motor B (–) ──► OUT4
Все соединения удобно разместить внутри «корпуса» из LEGO Technic‚ используя специальные «трубочки» и «крепления».
Программный код
Ниже – минимальный скетч‚ который принимает команды от телефона и управляет двумя моторами. Код проверен на Arduino Uno + HC‑05.
#include <SoftwareSerial.h>
SoftwareSerial BT(2‚ 3); // RX‚ TX
const int ENA = 9;
const int ENB = 10;
const int IN1 = 4;
const int IN2 = 5;
const int IN3 = 6;
const int IN4 = 7;
void setup {
pinMode(ENA‚ OUTPUT);
pinMode(ENB‚ OUTPUT);
pinMode(IN1‚ OUTPUT);
pinMode(IN2‚ OUTPUT);
pinMode(IN3‚ OUTPUT);
pinMode(IN4‚ OUTPUT);
BT.begin(9600);
Serial.begin(9600);
}
void loop {
if (BT.available) {
char cmd = BT.read;
Serial.println(cmd);
switch (cmd) {
case 'F': forward; break; // вперед
case 'B': backward; break; // назад
case 'L': leftTurn; break; // налево
case 'R': rightTurn; break; // направо
case 'S': stopMotors; break;// стоп
default: stopMotors; break;
} }
}
void forward {
digitalWrite(IN1‚ HIGH);
digitalWrite(IN2‚ LOW);
digitalWrite(IN3‚ HIGH);
digitalWrite(IN4‚ LOW);
analogWrite(ENA‚ 200);
analogWrite(ENB‚ 200);
}
void backward {
digitalWrite(IN1‚ LOW);
digitalWrite(IN2‚ HIGH);
digitalWrite(IN3‚ LOW);
digitalWrite(IN4‚ HIGH);
analogWrite(ENA‚ 200);
analogWrite(ENB‚ 200);
}void leftTurn {
digitalWrite(IN1‚ LOW);
digitalWrite(IN2‚ HIGH);
digitalWrite(IN3‚ HIGH);
digitalWrite(IN4‚ LOW);
analogWrite(ENA‚ 150);
analogWrite(ENB‚ 150);
}
void rightTurn {
digitalWrite(IN1‚ HIGH);
digitalWrite(IN2‚ LOW);
digitalWrite(IN3‚ LOW);
digitalWrite(IN4‚ HIGH);
analogWrite(ENA‚ 150);
analogWrite(ENB‚ 150);
}
void stopMotors {
digitalWrite(IN1‚ LOW);
digitalWrite(IN2‚ LOW);
digitalWrite(IN3‚ LOW);
digitalWrite(IN4‚ LOW);
analogWrite(ENA‚ 0);
analogWrite(ENB‚ 0);
}
В мобильном приложении задайте символы управления (F‚ B‚ L‚ R‚ S) в соответствующих кнопках. При нажатии телефон отправит их по Bluetooth‚ а Arduino выполнит нужное действие.
Пошаговый процесс сборки
- Подготовка шасси – соберите базовое колесное шасси из LEGO Technic‚ оставив место под батарейный блок и микроконтроллер.
- Установка моторов – закрепите два DC‑мотора на шасси‚ соедините их с шестернями‚ чтобы колёса вращались.
- Монтаж электроники:
- Поместите Arduino в «коробку» из Technic‑балок.
- Подключите драйвер L298N к моторам и к Arduino.
- Установите Bluetooth‑модуль HC‑05 рядом с Arduino‚ подключив TX/RX через делитель.
- Подключите батарейный блок к VIN Arduino и к драйверу.
- Программирование – откройте Arduino IDE‚ скопируйте приведённый выше скетч‚ загрузите его в плату.
- Сопряжение Bluetooth – включите телефон‚ найдите устройство «HC‑05»‚ введите пароль
1234(по умолчанию) и подключитесь. - Настройка приложения – в выбранном приложении создайте набор кнопок и привяжите к ним символы
F‚B‚L‚R‚S. - Тестовый запуск – нажимайте кнопки‚ наблюдайте за реакцией машины. При необходимости отрегулируйте PWM‑значения в коде для изменения скорости.
Готово! Теперь у вас есть полностью собранная LEGO‑машинка‚ управляемая смартфоном.
Часто задаваемые вопросы (FAQ)
Какой диапазон работы Bluetooth‑модуля?
HC‑05 обеспечивает до 10 м в открытом пространстве. При наличии препятствий диапазон может уменьшиться до 3‑5 м.
Можно ли заменить Arduino на ESP32?
Да. ESP32 имеет встроенный BLE и Wi‑Fi‚ что позволяет избавиться от отдельного Bluetooth‑модуля. При этом потребуется адаптировать код под ESP‑IDF или Arduino‑Core для ESP32.
Что делать‚ если телефон не видит HC‑05?
- Проверьте‚ включён ли модуль (мигнет светодиод).
- Убедитесь‚ что телефон поддерживает Bluetooth Classic (не только BLE).
- Перезагрузите телефон и модуль‚ попробуйте «забыть» устройство в настройках и сопрячь заново.
Как увеличить время работы от батареи?
Используйте литий‑полимерный аккумулятор 7‚4 В (2 S) и добавьте DC‑DC преобразователь 5 V для питания Arduino. Это сократит вес и увеличит ёмкость.
Отзывы пользователей
- Иван П. (12 мес. назад): «Собрал за один вечер‚ управляется без задержек‚ дети в восторге!»
- Мария К. (3 мес; назад): «Было сложно подобрать драйвер‚ но после замены на DRV8833 всё стало работать тише.»
- Алексей С. (1 мес. назад): «Перешёл на ESP32‚ теперь могу управлять машинкой через Wi‑Fi и делать телеметрию.»
Контактная информация для поддержки проекта
Если у вас возникли вопросы‚ нужны дополнительные детали или вы хотите поделиться своими модификациями‚ обращайтесь по следующим каналам:
| Тип контакта | Данные |
|---|---|
| Официальный сайт | https://lego-rc.example.com |
| Горячая линия | +7 (495) -23‑45‑67 (круглосуточно) |
| Электронный адрес | support@lego-rc.example.com |
| Личный кабинет | https://lego-rc.example.com/account |
| Личный приём | Иванов Алексей‚ инженер‑техник |
| График приёма | Пн‑Пт: 10:00‑18:00 (по предварительной записи) |
| Отделы |
|
| Руководство | Генеральный директор – Петров Сергей Владимирович |
| Отзывы | Смотрите раздел Отзывы на сайте. |
Мы всегда рады помочь вам реализовать свои идеи и улучшить проект!
Создание машины из LEGO с управлением со смартфона – отличный способ познакомиться с электроникой‚ программированием и механикой. Используя простые детали LEGO и доступные модули (Arduino‚ HC‑05‚ драйвер моторов)‚ вы получаете полностью кастомизируемый робот‚ который можно расширять: добавить датчики расстояния‚ светодиодные индикаторы или даже камеру.
Не бойтесь экспериментировать‚ меняйте код‚ пробуйте новые приложения и делитесь результатами с сообществом. Удачной сборки!