27 January 2016

Переделка RC-машинки в смарт-машинку при помощи ардуино

Development of mobile applicationsDevelopment for AndroidRobotics developmentProgramming microcontrollersDevelopment for IOT
Во многих проектах на ардуино предлагается сделать то же самое, что продается в магазинах, но с гораздо большими трудовыми и материальными затратами. Сегодняшний проект не такой, смарт-машинки продаются в магазинах, но стоят в среднем раз в 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.

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



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



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


P.S. Сборник из более 100 обучающих материалов по ардуино для начинающих и профи тут
P.P.S. Онлайн курс по ардуино на гиктаймс здесь.
Tags:проргаммирование микрокрнтроллеровардуиноandroidarduino
Hubs: Development of mobile applications Development for Android Robotics development Programming microcontrollers Development for IOT
+9
29.8k 114
Comments 15
Popular right now
Lead Mobile Developer (Android)
from 200,000 to 250,000 ₽UpTeam Inc.Санкт-Петербург
Business Development Manager
from 60,000 to 270,000 ₽EVEN LabМосква
Dart / Flutter Engineer (remote)
from 2,300 $Petrosoft LLCRemote job
Web Developer (Kotlin Sites)
from 150,000 ₽JetBrainsМосква
Web Developer (Kotlin Sites)
from 150,000 ₽JetBrainsСанкт-Петербург