- Bezdušový jednosmerný motor pre RC automobily
- Potrebné materiály
- RF joystick pre RC auto pomocou Arduina
- Schéma zapojenia RC auta Arduino
- Výroba DPS pre auto Arduino RC
- Montáž DPS
- Kolesá na 3D tlač a montáž na motor
- Programovanie Arduina
- Práce s Arduino RC automobilom
S RC autami sa hrá vždy dobre, osobne som veľkým fanúšikom týchto diaľkovo ovládaných automobilov a vo veľkej miere som s nimi hrával (stále hrám). Väčšina z týchto automobilov dnes poskytuje obrovský krútiaci moment na zvládnutie nerovných terénov, ale je tu niečo, čo vždy zaostávalo, jeho rýchlosť !!.. Takže v tomto projekte postavíme úplne iný typ RC auta pomocou Arduina, hlavného Cieľom tohto automobilu je dosiahnuť maximálnu rýchlosť, preto som sa rozhodol vyskúšať jednosmerný motor bez jadra pre RC automobil. Tieto motory sa bežne používajú v dronoch a sú dimenzované na 39 000 ot./min čo by malo byť viac než dosť na uhasenie našej rýchlosti smädu. Automobil bude napájaný malou lítiovou batériou a dá sa ovládať na diaľku pomocou RF modulu nRF24L01. Prípadne, ak hľadáte niečo jednoduché, môžete si tiež pozrieť tieto projekty Simple RF Robot a Raspberry Pi Bluetooth Car.
Bezdušový jednosmerný motor pre RC automobily
Coreless DC motor, ktorý je použitý v tomto projekte je znázornené na obrázku nižšie. Nájdete ich ľahko, pretože sú veľmi rozšírené v mini dronoch. Stačí vyhľadať magnetický mikroskopický motor 8520 a tieto nájdete.
Teraz existujú určité nevýhody použitia jednosmerných motorov pre RC auto. Prvá vec je, že poskytujú veľmi nízky počiatočný krútiaci moment, a preto by malo byť naše RC auto čo najľahšie. Preto som sa rozhodol postaviť celé auto na DPS s použitím SMD komponentov a čo najviac zmenšiť veľkosť dosky. Druhým problémom je jeho vysoká rýchlosť, 39000 ot./min (ot./min. Hriadeľa) je ťažko zvládnuteľný, preto potrebujeme obvod riadenia rýchlosti na strane Arduina, ktorý sme zostrojili pomocou MOSFET. Tretia vec je, že tieto motory budú poháňané jednou lítium-polymérovou batériou s pracovným napätím medzi 3,6 V až 4,2 V, takže musíme navrhnúť náš obvod tak, aby fungoval na 3,3 V. Preto sme použili 3,3 V Arduino Pro miniako mozog nášho RC auta. Po vyriešení týchto problémov sa pozrime na materiály potrebné na zostavenie tohto projektu.
Potrebné materiály
- 3,3 V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2ks
- Modul joysticku
- SI2302 MOSFET
- Dióda 1N5819
- Bezdušové motory BLDC
- AMS1117-3,3V
- Lítium-polymérová batéria
- Rezistory, kondenzátory,
- Pripojovacie vodiče
RF joystick pre RC auto pomocou Arduina
Ako už bolo spomenuté, RC auto bude ovládané na diaľku pomocou RF joysticku. Tento joystick bude tiež vyrobený pomocou Arduina spolu s RF modulom nRF24L01. Na ovládanie nášho RC v požadovanom smere sme tiež použili modul Joystick. Ak ste v týchto dvoch moduloch úplne nová, môžete zvážiť prečítanie článkov Interfacing Arduino s nRF24L01 a Interfacing Joystick s Arduino, kde sa dozviete, ako fungujú a ako ich používať. Ak chcete zostaviť svoj diaľkový ovládač Arduino RF Remote, môžete postupovať podľa nižšie uvedeného schémy zapojenia.
Obvod RF Joystick je možné napájať pomocou USB portu nano dosky. Modul nRF24L01 pracuje iba na 3.3V, preto sme na Arduine použili pin 3.3V. Obvod som zostrojil na doske a vyzerá to tak, že ak je to potrebné, môžete na to vytvoriť aj dosku plošných spojov.
Arduino Kód pre RF Joystick okruh je veľmi jednoduchý, musíme čítať hodnoty X a hodnota Y z našej Joystick a poslať ju do auta RC cez nRF24L01. Celý program pre tento okruh nájdete v spodnej časti tejto stránky. Nebudeme sa zaoberať vysvetlením toho, pretože sme o tom už hovorili vo vyššie uvedenom odkaze na prepojenie projektu.
Schéma zapojenia RC auta Arduino
Kompletná schéma zapojenia pre naše diaľkovo ovládané auto Arduino je uvedená nižšie. Schéma zapojenia obsahuje aj možnosť pridať do nášho automobilu dva infračervené moduly TCRT5000. Toto bolo naplánované tak, aby umožnilo nášmu RC vozidlu pracovať ako robot riadiaci linku, aby mohol pracovať samostatne bez toho, aby bol externe ovládaný. Kvôli tomuto projektu sa na neho však nebudeme sústreďovať, zostaňte naladení na ďalší projektový tutoriál, v ktorom sa pokúsime postaviť „Robota pre najrýchlejšiu linku“. Spojil som obidva obvody na jednej doske s plošnými spojmi, aby som uľahčil ich zostavenie, pre tento projekt môžete ignorovať sekciu infračerveného snímača a operačný zosilňovač.
RC auto bude napájané z Lipo batérie pripojenej k terminálu P1. AMS117-3.3V sa používa na reguláciu 3.3V pre naše nRF24L01 a našou pre-mini-palube. Môžeme tiež napájať dosku Arduino priamo na surový kolík, ale palubný regulátor napätia 3,3 V na pro mini nebude schopný dodávať dostatok prúdu do našich RF modulov, preto sme použili externý regulátor napätia.
Na pohon našich dvoch motorov BLDC sme použili dva SI2302 MOSFETy. Je dôležité uistiť sa, že tieto MOSFETY môžu byť poháňané 3,3V. Ak nenájdete presne rovnaké číslo dielu, môžete vyhľadať ekvivalentné MOSFETy s nasledujúcimi charakteristikami prenosu
Motory môžu spotrebovávať špičkový prúd až 7 A (testoval sa nepretržitý prúd so zaťažením 3 A), preto by mal byť odtokový prúd MOSFET 7 A alebo viac a mal by sa úplne zapnúť pri 3,3 V. Ako tu vidíte, MOSFET, ktorý sme vybrali, môže poskytnúť 10A aj pri 2,25V, takže je to ideálna voľba.
Výroba DPS pre auto Arduino RC
Zábavnou časťou pri budovaní tohto projektu bol vývoj PCB. DPS tu tvoria nielen obvod, ale tiež fungujú ako podvozok pre naše auto, takže sme naplánovali auto, ktoré by ho vyzeralo tvarovo s možnosťou ľahkej montáže našich motorov. Môžete tiež vyskúšať navrhnúť svoju vlastnú DPS pomocou vyššie uvedeného obvodu alebo môžete použiť môj návrh DPS, ktorý po dokončení vyzerá takto ďalej.
Ako môžete vidieť, navrhol som DPS tak, aby bolo možné ľahko namontovať batériu, motor a ďalšie komponenty. Súbor Gerber pre túto DPS si môžete stiahnuť z odkazu. Keď ste s pilníkom Gerber pripravení, je čas si ho vyrobiť. Ak chcete, aby vaše PCB boli jednoducho vyrobené pomocou PCBGOGO, postupujte podľa krokov uvedených nižšie
Krok 1: Choďte na www.pcbgogo.com, zaregistrujte sa, ak ste prvýkrát. Potom na karte Prototyp PCB zadajte rozmery vašej PCB, počet vrstiev a požadovaný počet PCB. Moja doska plošných spojov je 80 cm × 80 cm, takže karta vyzerá takto.
Krok 2: Pokračujte kliknutím na tlačidlo Citovať teraz . Budete presmerovaní na stránku, kde môžete v prípade potreby nastaviť niekoľko ďalších parametrov, ako je použitý rozstup koľají atď. Ale väčšinou budú fungovať predvolené hodnoty. Jediná vec, ktorú tu musíme brať do úvahy, je cena a čas. Ako vidíte, čas zostavenia je iba 2 - 3 dni a stojí iba 5 dolárov za náš PSB. Potom môžete zvoliť preferovaný spôsob dopravy na základe vašich požiadaviek.
Krok 3: Posledným krokom je nahranie súboru Gerber a pokračovanie v platbe. Pred pokračovaním v platbe PCBGOGO overuje, či je proces plynulý, či je váš súbor Gerber platný. Týmto spôsobom si môžete byť istí, že vaša doska s plošnými spojmi je vhodná pre výrobu a že sa k vám dostane ako zaviazaná.
Montáž DPS
Po objednaní dosky sa ku mne dostala po niekoľkých dňoch, hoci kuriér v pekne označenej dobre zabalenej krabici a ako vždy bola kvalita DPS úžasná. Zdieľam niekoľko obrázkov z nižšie uvedených tabúľ, aby ste ich mohli posúdiť.
Zapol som spájkovaciu tyč a začal som montovať dosku. Pretože Footprinty, podložky, priechody a sieťotlač sú perfektného správneho tvaru a veľkosti, nemal som problém s zostavením dosky. Doska bola hotová len za 10 minút od rozbalenia krabice.
Niekoľko obrázkov dosky po spájkovaní je zobrazených nižšie.
Kolesá na 3D tlač a montáž na motor
Ako ste si mohli všimnúť na obrázku vyššie, musíme robotovi 3D vyhotoviť držiak motora a kolesá. Ak ste použili náš súbor PCB Gerber zdieľaný vyššie, môžete tiež použiť 3D model stiahnutím z tohto univerzálneho odkazu.
Použil som Cura na rozrezanie svojich modelov a vytlačil ich pomocou Tevo Terantuala bez podpier a 0% výplne na zníženie hmotnosti. Môžete zmeniť nastavenie vhodné pre našu tlačiareň. Pretože sa motory otáčajú veľmi rýchlo, považoval som za ťažké navrhnúť koleso, ktoré bude tesne priliehať k hriadeľu motora. Preto som sa rozhodol použiť čepele dronov vo vnútri kolesa, ako vidíte nižšie
Zistil som, že je to spoľahlivejšie a robustnejšie, experimentujte však s rôznymi návrhmi kolies a dajte mi vedieť v sekcii komentárov, čo pre vás fungovalo.
Programovanie Arduina
Kompletný program (Arduino nano aj pro mini) pre tento projekt nájdete v spodnej časti tejto stránky. Vysvetlenie vášho RC programu je nasledovné
Program spustíme zahrnutím požadovaného hlavičkového súboru. Upozorňujeme, že modul nRF24l01 vyžaduje pridanie knižnice do vášho Arduino IDE. Knižnicu RF24 si môžete stiahnuť z Githubu pomocou tohto odkazu. Okrem toho sme pre nášho robota už definovali minimálnu a maximálnu rýchlosť. Minimálny a maximálny rozsah sú 0 až 1024.
#define min_speed 200 #define max_speed 800 #include
Potom vo vnútri funkcie nastavenia inicializujeme náš modul nRF24L01. Využili sme 115 pásiem, pretože nie sú preťažené a nastavili sme modul tak, aby pracoval s nízkou spotrebou energie. S týmito nastaveniami sa tiež môžete pohrať.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // pásmo 115 nad WIFI signály myRadio.setPALevel (RF24_PA_MIN); // MIN nízky výkon myRadio.setDataRate (RF24_250KBPS); // Minimálna rýchlosť}
Ďalej vo funkcii hlavnej slučky vykonáme iba funkciu ReadData, pomocou ktorej budeme neustále čítať hodnotu odoslanú z nášho modulu joysticku Transmitter. Pamätajte, že adresa spojenia uvedená v programe by mala byť rovnaká ako adresa uvedená v programe vysielača. Vytlačili sme tiež hodnotu, ktorú dostávame na účely ladenia. Akonáhle je hodnota úspešne načítaná, vykonáme funkciu Control Car na kontrolu nášho RC auta na základe hodnoty prijatej z
modulu Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Ktoré potrubie sa má načítať, 40 bitová adresa myRadio.startListening (); // Zastavte prenos a začnite reveicing, ak (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nPrijaty:"); Serial.println (data.msg); prijaté = data.msg; Control_Car (); }}
Vo vnútri funkcie Control Car budeme riadiť motory pripojené k pinom PWM pomocou funkcie analógového zápisu. V našom vysielacom programe sme prevádzali analógové hodnoty z pinov A0 a A1 na Nano na 1 až 10, 11 až 20, 21 až 30 a 31 až 40 na ovládanie vozidla vpred, vzad, vľavo a vpravo. Nasledujúci program sa používa na ovládanie robota v smere dopredu
if (prijaté> = 1 && prijaté <= 10) // Posunúť dopredu {int PWM_Value = mapa (prijaté, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Podobne môžeme napísať ďalšie tri funkcie pre riadenie vzad, doľava a doprava, ako je uvedené nižšie.
if (prijaté> = 11 && prijaté <= 20) // Break {int PWM_Value = mapa (prijaté, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (prijaté> = 21 && prijaté <= 30) // Odbočte doľava {int PWM_Value = mapa (prijaté, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (prijaté> = 31 && prijaté <= 40) // Odbočte doprava {int PWM_Value = mapa (prijaté, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Práce s Arduino RC automobilom
Po dokončení kódu ho nahrajte na svoju pro-mini-dosku. Vyberte a batériu pomocou FTDI modulu na testovanie. Spustite kód, otvorte sériovú batériu a hodnotu by ste mali dostať z modulu joysticku vysielača. Pripojte batériu a vaše motory by sa tiež mali začať otáčať.
Kompletné fungovanie projektu nájdete vo videu prepojenom v dolnej časti tejto stránky. Ak máte akékoľvek otázky, nechajte ich v sekcii komentárov. Môžete tiež použiť naše fóra a získať rýchle odpovede na ďalšie technické otázky.