Во многих проектах на ардуино предлагается сделать то же самое, что продается в магазинах, но с гораздо большими трудовыми и материальными затратами. Сегодняшний проект не такой, смарт-машинки продаются в магазинах, но стоят в среднем раз в 5 дороже, чем RC-машинки. Поэтому я решил поделиться, как можно переделать практически любую RC-машинку в модную нынче машинку с приставкой «смарт» при помощи ардуино. Вот демо видео того, что получилось в итоге:



Итак, переделывать я решил стандартную RC-машинку, купленную в магазине игрушек примерно за 500 рублей.



Переделку можно осуществить двумя основными способами:
1. Подключить ардуино к пульту ДУ от машинки
2. «Вживить» ардуино внутрь самой машинки

Я решил попробовать оба способа, но сегодня расскажу только про первый, поскольку он несколько проще, а начинать лучше с простого.

Чтобы подключиться к пульту ДУ, его нужно сначала разобрать и удалить те 4 кнопки, которые отвечают за движения вперед-назад и повороты вправо-влево. Можно их отпаять, а можно просто сломать корпус кнопок, оставив только контакты.



Вместо четырех кнопок подключаем четырехканальный блок реле по схеме:



Блок реле подключаем к ардуино, а она уже будет получать сигналы со смартфона посредством блютуз модуля. Скетч для ардуино
тут
unsigned long incomingByte;
int LED2 = 6;
int LED3 = 7;
int LED4 = 8;
int LED5 = 9;

void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.parseInt();
if(incomingByte == 2) {digitalWrite(LED2, LOW); }
if(incomingByte == 3) {digitalWrite(LED3, LOW);digitalWrite(LED2, LOW); }
if(incomingByte == 4) {digitalWrite(LED4, LOW); }
if(incomingByte == 5) {digitalWrite(LED5, LOW); digitalWrite(LED2, LOW);}
if(incomingByte == 18) {digitalWrite(LED2, HIGH); }
if(incomingByte == 18) {digitalWrite(LED3, HIGH); }
if(incomingByte == 18) {digitalWrite(LED4, HIGH); }
if(incomingByte == 18) {digitalWrite(LED5, HIGH); }
}
}

Теперь нужно сделать простенькое приложение для управления всем этим на подобии этого:



Приложение я сделал в среде визуальной разработки андроид приложений App Inventor 2.

Выглядит оно приложение так:



Логика у приложения очень простая: при касании пальцем кнопки оно отправляет сигнал на ардуино замкнуть соответствующее реле. При отпускании кнопки отсылается команда разомкнуть все реле. Скачать приложение можно тут, исходник тут, но если у кого-то есть полчаса-час лишнего времени, то можно сделать такое приложение «с нуля». На эту тему я снял отдельное видео, где подробно рассказываю что и как делать для тех, кто сталкивается с этой средой разработки в первый раз.



Ну и в конце фото того, как эта схема управления выглядит. Упаковывать все это в коробку не стал, поскольку в планах есть внедрение ардуино непосредственно в корпус этой машинки.

Комментарии (13)


  1. 23d
    27.01.2016 12:29
    +5

    А не проще вместо реле использовать саму выходы ардуины? Там как раз напряжение небольшое.


    1. malyazin_2010
      27.01.2016 15:08

      выходы ардуино не тянут


      1. MaxFilippov
        30.01.2016 20:55

        Сергей, всё здорово, но замени релюшки хотя бы полевиками что ли. А то такое решение довольно дико и топорно выглядит.


    1. edeldm
      28.01.2016 12:19

      +


  1. crmMaster
    27.01.2016 12:39

    Т.е. вы перетащили управление с нормальных аналоговых стиков хоть с каким-то ходом, на кнопки? Это я считаю не совсем успех.

    Интересно было бы увидеть навешивание на машинку дополнительного обвеса в виде ИК датчика столкновений или камеры — вот тогда был бы толк. А так вы только ухудшили изначальные характеристики.

    Очень надеюсь что это лишь начало и все у вас впереди.


    1. iSage
      27.01.2016 13:13
      +3

      Там нет аналоговых стиков. Это просто рычажки, которые жмут на кнопки.


  1. alexcom
    27.01.2016 14:04
    +4

    ОПТРОНЫ!!!


  1. iliasam
    27.01.2016 14:50
    +1

    Есть подозрение, что через аудиовыход планшета можно напрямую управлять передатчиком пульта (там всего одна линия и амплитудная модуляция сигнала).


  1. a_batyr
    27.01.2016 15:33

    Вижу ваша машинка не просто поворачивает, а по тому же нажатию едет вперёд.
    А может ли она поворачивая ехать назад?


    1. malyazin_2010
      27.01.2016 19:42

      не может. но если дописать 2 строчки кода то сможет


  1. Gho_st
    28.01.2016 11:47

    Ужасно. В идеале нужно было реверснуть передатчик на пульте и эмулировать его используя 433.92TX модуль.
    ну или раз уж на то пошло подпаяться к кнопкам напрямую ну или через транзистор. Но реле это, простите, не в какие ворота.


    1. iliasam
      28.01.2016 16:23

      А там и реверсить ничего не надо, в передатчике использована микросхема TX-2B, вся документация на нее есть в сети.


  1. xoxulin
    01.02.2016 19:04

    А чем заключается СМАРТ-овость? Ведь тут просто замена контроллера! Не так ли?