Close

Arduino Bluetooth RC auto

Arduino bluetooth vozítko

Předělejte si staré autíčko a ovládejte ho vlastním mobilem!

Pojďme si vytvořit jednoduché RC auto! Asi každý z nás má doma staré již nepoužívané autíčko, a to buď odložené a zapomenuté ještě z dětství, nebo zničené s odpálenou elektronikou v důsledku opravdu aktivního hraní. V mém případě se jedná o druhý uvedený příklad. V tomto článku se budu věnovat postupu, jak si předělat v podstatě jakékoliv autíčko na ovládání smartphonem přes Bluetooth pomocí Arduina. Postup i kód celého projektu jsou velmi jednoduché, a tak jsem přesvědčen, že tento upgrade zvládne vytvořit každý z vás.

Potřebné součásti na RC auto

  1. podvozek nějakého RC auta nebo jakýkoliv jiný podvozek nebo DC motory
  2. 1 x Arduino UNO
  3. 2 x relé (Arduino friendly)
  4. 1 x micro servo
  5. Bluetooth modul HC-05 nebo HC-06
  6. baterie (zde 12V / 1200mAh)
  7. LED (červenou a bílou) a piezo bzučák
  8. šrouby M3 (4 x 25 mm a 6 x 15 mm) + matice M3
  9. power banka
  10. mobil s androidem
  11. + ještě pár drobností uvedených v článku

Jdeme na to!

Stáhněte si aplikaci „Arduino Joystick Controller“ dostupnou na: https://play.google.com/store/apps/details?id=com.andico.control.joystick

V této apce je mimo jiné 7 tlačítek sloužících na: zapínání světel, klaksonu a řízení serv namontované kamery. Jsou k dispozici také 3 tlačítka (A,B,C) pro libovolné obsazení uživatelem (např. maják, světelná rampa). Ale o těch někdy příště.

Arduino Joystick Controller
Arduino Joystick Controller

Ještě potřebujeme destičku, která bude rozměrově sedět k velikosti auta. Na tuto desku budeme vše montovat a následně ji umístíme na šasi (podvozek) auta. Já používám 2 mm silné plexisklo. Dá se koupit v každém hobby marketu a jedna plotna o velikosti 25 x 50 cm se prodává asi za 80 Kč. Tuto destičku jsem si nařezal na potřebné rozměry pomocí plátku do ruční pilky. Na destičku jsem si přiložil Arduino součástky, relátka a BT modul a fixou jsem si poznačil jejich umístění a přes dírky tenkým fixem označil tečky pro vrtání děr. Součástky, které nemají díru uchytíme pomocí stahovacího pásku. V mém případě jsem pomocí stahovacího pásku uchytil Bluetooth modul.

Na obrázku vidíte namontované komponenty na plexiskle (bez světel a klaksonu).

Arduino Bluetooth RC auto - zapojené součásti
Arduino Bluetooth RC auto – zapojené součásti

Vybereme také vhodné místo pro servo, a pomocí šroubů nebo pásků (jako v mém případě) připevníme servo na tyč řízení.

Arduino Bluetooth RC auto - detail serva
Arduino Bluetooth RC auto – detail serva

Zapojení RC auta

Vše zapojíme dle následujícího schématu. Baterii dáme původní nebo s podobným napětím (baterie na schématu je pouze orientační).

Elektrické zapojení Arduino Bluetooth auta
Zapojení Arduino Bluetooth auta

Arduino program

Spustíme si Arduino IDE a stáhneme si zdrojový kód ZDE.

Otevřeme zdrojový kód a zvolíme COM port a vývojovou desku (já mám: ARDUINO UNO na COM5). Zkompiluj a nahraj do Arduina.

Otevři sériový monitor. Objeví se informace, že BT modul není připojen. Znamená to, že program čeká na spárování s telefonem.

Připojení Bluetooth modulu
Připojení Bluetooth modulu

Po spárování telefonu s modulem se objeví následující:

Spárování Bluetooth modulu s telefonem
Spárování Bluetooth modulu s telefonem

Jednotlivé hodnoty nám udávají směr, rychlost, úhel zatočení, příkazy pro světla, klakson a tlačítka.

Určitě jste byli při konstrukci a montování úspěšní a už si vesele jezdíte s vašim novým Arduino RC autíčkem!

Zbyněk Daněk

16 Comments on “Arduino Bluetooth RC auto

petammek
16.10.2019 at 10:23

Čau prosim o bližší fotku připojení relé k motoru a desce ….. točí se mi motor pouze na jednu stranu a to furt ….díky

florian35
19.3.2019 at 14:17

U programu fritzing jsem v zásobníku nenašel některé komponenty i když jsem zadal vše.Jak rozšířit zásobník nebo jak vložit např.motor controler L 298N nebo relé atd.Začínám a nějak mě schema auta klame a možná i hloupě se ptám nevidím napájení Arduina.Děkuji za odpověď.Florian

Zbyněk Daněk
19.3.2019 at 14:46

Ahoj Floriáne, máš pravdu ve schématu není napájení Arduina z baterie. Normálně připoj baterii k Arduinu. Do fritzing jsem se nikdy nepokoušel přidávat další komponenty. Pokus se obrátit na vývojáře fritzing.

florian35
5.3.2019 at 17:00

Dobrý den,
můžete mě poradit jakým způsobem vytváříte obrázek např.zapojení arduino blu.auta.Nebo i jiné podobné obrázky se zapojením arduina a komponentů.Používáte nějaký program?Děkuji Florian

Zbyněk Daněk
5.3.2019 at 21:52
HrebCZa
25.9.2018 at 23:35

Hjustne prosim pomoct..
video zde: https://goo.gl/Cfxusg
Toz ja jsem z toho debil..
Kdyz pripojim se pres bt tak zacne servo kmitat..
A jeste casto se odpojuje z bt :/

patas
23.11.2017 at 19:08

Dobrý den,
velice se mi líbil váš projekt.Tak jsem si ho chtěl také postavit, ale místo relé jsem použil Motor Shield L293D a nedaří se mi upravit program. Chtěl bych se zeptat zda nevíte jak by se to měl program upravit.
Děkuji moc Patrik

Zbyněk Daněk
24.11.2017 at 1:32

Ahoj patriku. Již jsem motor shield použil. Kód dohledám a pošlu ti jej. Popřípadě ti pomůžu s úpravou.

zauri8
18.11.2019 at 19:32

Dobrý den, mohl by jste zaslat upravený kód pro motor shield ? Děkuji

Zbyněk Daněk
20.11.2019 at 22:51

Kód pro motor shield už nemám. V googleplay je odkaz na domovskou stránku tvůrce aplikace pro ovládání telefonem. Ten kód pro motor shield uvádí

Zbyněk Daněk
12.6.2017 at 11:22

Při nahrávání kódu na server došlo k chybě, text kódu byl z části smazán a některé úseky byly přeházené. Což zkušení uživatelé poznali a nahlásili. Za vzniklé problémy se omlouvám. Vše jsme již napravili.
Nyní si už s autem určitě zajezdíte.

RKR2018RKR
6.4.2018 at 11:00

Dobrý den, měl bych prosbu, jestli bys Te mi mohl zaslat kompletní kód na to auto, abych mohl využít přední zadní světla, klakson a tlačítka A,B,C předem děkuji Krejčík

Zbyněk Daněk
6.4.2018 at 11:12
RKR2018RKR
7.4.2018 at 11:23

Dobrý den, mám prosbu o doplnění kódu ,abych mohl využít tlačítka A, B, C
předem moc děkuji

#include
#include
SoftwareSerial bt(0,1); // (RX,TX)
Servo myservo;
bool posledni=false;
int a[4]; //proměná pro příkazy

void setup() {
myservo.attach(9);
Serial.begin(9600);
bt.begin(9600);

pinMode(6,OUTPUT);
pinMode(7,OUTPUT);

digitalWrite(6,LOW);
digitalWrite(7,LOW);

}

void loop() {

if (bt.available()>4)
{
a[0]=bt.read(); // směr
a[1]=bt.read(); // rychlost
a[2]=bt.read(); // úhel zatáčení
a[3]=bt.read(); // zříkazy pro troubení, světla a tlačítka A,B,C

myservo.write(a[2]);
Serial.print(a[0]);
Serial.print(“ „);
Serial.print(a[1]);
Serial.print(“ „);
Serial.print(a[2]);
Serial.print(“ „);
Serial.print(a[3]);
Serial.println(“ „);
posledni=false;

}

if (bt.available()<1)
{

myservo.write(93);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);

if(posledni==false)

{
Serial.print("BT modul neni pripojen!");
Serial.println("zkontroluj pripojeni");
posledni=true;
}
}

if(a[0]==241)
{
digitalWrite(7,LOW);
}
else
{
digitalWrite(7,HIGH);
}

if(a[0]==242)
{
digitalWrite(6,LOW);
}
else
{
digitalWrite(6,HIGH);
}
}

Michal Pelousek
11.6.2017 at 14:15

Pěkný článek. Bohužel kód obsahuje pár chybiček. Mohli byste nahrát opravenou verzi? Díky.

Zbyněk Daněk
12.6.2017 at 4:22

Ahoj. Co přesně se ti nelíbí? Nebo ti to nefunguje?

Napsat komentář