Превратите свой RC-автомобиль в Bluetooth-управляемый транспорт
Компоненты и материалы
![]() |
|
× | 1 | |||
![]() |
|
× | 1 |
Необходимые инструменты и станки
![]() |
|
Приложения и онлайн-сервисы
![]() |
|
О проекте

RC-автомобили — отличная платформа для хакинга и дешевый шасси для роботов, но выбор подходящего среди миллионов типов — головная боль. У младшего брата недавно был день рождения, и я хотел подарить что-то крутое, в итоге подарил этот RC-автомобиль. Хак RC-автомобилей и легок, и сложен из-за разных конструкций, нет единого определенного способа, но этот хак универсален. Я также постараюсь охватить основы всех деталей и теории за каждым модулем. Мы использовали модуль, но вы поощряетесь сделать свою схему, кроме Pro Mini.
Мне было неудобно с Pro Mini — он слишком мал, но это весело.
Посмотрите видео и подпишитесь на будущие видео.
Шаг 1: Получение правильного шасси

Список деталей
- ProMini
- Модуль L293D
- HC-05
- RC-автомобиль
Выбор правильного шасси
Выбор шасси — вопрос приводного механизма, существует много механизмов привода.
Поговорим о двух самых популярных механизмах.
Дифференциальный привод (Differential Drive). Что это?
Термин «дифференциальный» означает разницу между двумя сущностями, в контексте робототехники — просто разницу скорости между двумя моторами. На основе этой разницы скорости робот может двигаться в любом направлении на 2D плоскости.
Когда два мотора подключены к колесам в одной линии, противоположно друг другу (как пара колес на одном валу), скорость вращения каждого мотора определяет направление движения. Когда оба колеса вращаются с одинаковой скоростью, разница между моторами нулевая — робот движется прямо вперед. Робот может двигаться назад, если направление вращения обоих моторов реверсируется — снова прямо, если разница скоростей нулевая. Изменение скорости любого мотора приведет к движению в сторону от прямой линии. Например, снижение скорости правого мотора создаст разницу скоростей и изменение направления. Результирующая сила такова, что робот поворачивает вправо. Этот поворот можно контролировать до нужного угла дальнейшим снижением скорости мотора. Чем медленнее правый мотор, тем резче поворот вправо. То же самое для левого поворота.
Вывод: медленнее правый мотор — резче правый поворот. Медленнее левый мотор — резче левый поворот. Ниже сценарии работы дифференциального привода. M1 и M2 — моторы, вращающие левые и правые колеса соответственно.
Привод типа рулевое управление (Steer Type Drive)
Что это?
Автомобильный тип привода — самый распространенный в реальном мире, но не в мире роботов. Характеризуется парой приводных колес и отдельной парой рулевых колес. Трансляция и вращение независимы друг от друга. Но трансляция и вращение взаимосвязаны, поэтому система сталкивается с серьезными проблемами планирования пути. Четыре колеса эффективнее трех или двух. Первые два из четырех колес могут использоваться для рулевого управления, следующие два — для привода. Балансировка четырехколесного робота никогда не проблема. Обычные автомобили четырехколесны — достаточное доказательство существования и возможностей.
Недостатки автомобильного привода: Механизм поворота должен быть точно контролируем. Небольшая неточность может вызвать большие одометрические ошибки. Система неголономная — планирование пути крайне сложно и неточно. Нет прямых направляющих актуаторов.
Поэтому лучше использовать дифференциальный привод из-за его простоты и удобства.
Шаг 2: Управление моторами

Для управления мотором нам нужно нечто, называемое драйвером мотора.
Что такое драйвер мотора?
Драйвер мотора — небольшой усилитель тока; функция драйверов — взять низкоточный контрольный сигнал и превратить его в высокоточный сигнал, способный вращать мотор.
Существует много драйверов, я использую модуль драйвера мотора L293D.
L293D — интегральная схема драйвера мотора, используемая для вращения DC-моторов в любом направлении. Это 16-пиновая микросхема, способная управлять двумя DC-моторами одновременно. L293D использует 5В для собственного питания, внешнее питание нужно для моторов — до 36В и до 600мА. L293D работает на концепции типичного H-моста, схемы, позволяющей высокому напряжению течь в любом направлении. В одной микросхеме L293D есть две H-mostовые схемы, вращающие два DC-мотора независимо.
Описание пинов L293D
1 Enable pin для Мотора 1; активный высокий Enable 1,2
2 Input 1 для Мотора 1 Input 1
3 Output 1 для Мотора 1 Output 1
4 Ground (0V) Ground
5 Ground (0V) Ground
6 Output 2 для Мотора 1 Output 2
7 Input 2 для Мотора 1 Input 2
8 Supply voltage для Моторов; 9-12V (до 36V) Vcc 2
9 Enable pin для Мотора 2; активный высокий Enable 3,4
10 Input 1 для Мотора 1 Input 3
11 Output 1 для Мотора 1 Output 3
12 Ground (0V) Ground
13 Ground (0V) Ground
14 Output 2 для Мотора 1 Output 4
15 Input2 для Мотора 1 Input 4
16 Supply voltage; 5V (до 36V) Vcc 1
Шаг 3: О приложении

Существует много приложений для управления, я сделал свое. Логика очень проста: все кнопки отправляют символ при нажатии через Bluetooth, и Arduino обрабатывает его.
Функции символов
X — нулевое состояние
F — Движение вперед
B — Движение назад
L — Поворот влево
R — Поворот вправо
Шаг 4: Подключение всех частей

Подключения простые.
Вот подключения следующим образом:
Bluetooth-модуль
HC-05 — Arduino
Vcc — 5V
Gnd — Gnd
Rx — Tx
Tx — Rx
Драйвер мотора
Motor Driver — Arduino
pin 2 — 8
pin 7 — 7
pin 10 — 6
pin 4 — 9
pin 3 и 6 — Мотор 1
pin 11 и pin 14 — Мотор 2
pin 1 — 5V
pin 9 — 5V
Шаг 5: Код

void setup() { Serial.begin(9600); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(9, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); digitalWrite(4,LOW); digitalWrite(5,LOW); } // the loop function runs over and over again forever void loop() { var=Serial.read(); if(var=='F') { digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); digitalWrite(9,HIGH); } if(var=='H') { digitalWrite(frled1,HIGH); } if(var=='B') { analogWrite(speeden,150); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,HIGH); digitalWrite(9,LOW); digitalWrite(bcled1,HIGH); } if(var=='X') {digitalWrite(9,LOW); digitalWrite(8,LOW); digitalWrite(7,LOW); digitalWrite(6,LOW); digitalWrite(frled1,LOW); digitalWrite(bcled1,LOW ); } if(var=='L') {digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,HIGH); digitalWrite(9,LOW); } if(var=='R') {digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,LOW);; } }
Надеюсь, вы насладитесь созданием проекта так же, как я. Скоро выложу еще крутых проектов, так что подпишитесь на обновления. Также лайкните мою страницу https://www.facebook.com/makewithRex/
F09ZCJSIP2UG2XP.inoКод
- Фрагмент кода #1
Фрагмент кода #1Plain text
void setup() { Serial.begin(9600); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(9, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); digitalWrite(4,LOW); digitalWrite(5,LOW); } // the loop function runs over and over again forever void loop() { var=Serial.read(); if(var=='F') { digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); digitalWrite(9,HIGH); } if(var=='H') { digitalWrite(frled1,HIGH); } if(var=='B') { analogWrite(speeden,150); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,HIGH); digitalWrite(9,LOW); digitalWrite(bcled1,HIGH); } if(var=='X') {digitalWrite(9,LOW); digitalWrite(8,LOW); digitalWrite(7,LOW); digitalWrite(6,LOW); digitalWrite(frled1,LOW); digitalWrite(bcled1,LOW ); } if(var=='L') {digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,HIGH); digitalWrite(9,LOW); } if(var=='R') {digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,LOW);; } }
Схемы
Производственный процесс
- Конструкторы в C#: виды, примеры и продвинутые паттерны
- Отслеживание ежедневных упражнений хомяка с Raspberry Pi фитнес-трекером
- Как смартфоны формируют будущее подключённых автомобилей
- Превратите цепь поставок в генератор прибыли: 6 тактик
- От концепции к реальности: превращение креативных дизайнов в осязаемые продукты
- Быстрый ремонт кондиционера авто за 5 шагов
- Как выбрать турбину для авто: практическое руководство
- Пошаговое руководство по ремонту ручки автомобильной двери
- Как самостоятельно заправить кондиционер автомобиля: пошаговое руководство
- Быстрый гид по удалению ржавчины на кузове авто: защитите машину от коррозии


