- Brezžični enosmerni motor za RC avtomobile
- Potrebni materiali
- RF igralna palica za RC avtomobil z uporabo Arduina
- Shema avtomobila Arduino RC
- Izdelava PCB-ja za Arduino RC Car
- Sestavljanje PCB
- Kolesa za 3D tiskanje in nosilec za motor
- Programiranje Arduina
- Delovanje Arduino RC Car
Z RC avtomobili je vedno zabavno igrati, osebno sem velik oboževalec teh avtomobilov na daljinsko upravljanje in sem se z njimi veliko igral (še vedno). Večina teh avtomobilov danes ponuja velik navor za ravnanje po grobih terenih, vendar obstaja nekaj, kar je vedno zaostajalo, njegova hitrost !!.. V tem projektu bomo torej izdelali povsem drugačen tip RC avtomobila z uporabo Arduina, Cilj tega avtomobila je doseči največjo hitrost, zato sem se odločil preizkusiti enosmerni motor brez jedra za RC avtomobil. Ti motorji se običajno uporabljajo v brezpilotnih letalih in so ocenjeni na 39000 vrt / min kar bi moralo biti več kot dovolj za potešitev hitrostne žeje. Avto bo napajal z majhno litijevo baterijo in ga bo mogoče upravljati na daljavo z RF modulom nRF24L01. Če iščete nekaj preprostega, lahko preverite tudi ta projekta Simple RF Robot in Raspberry Pi Bluetooth Car.
Brezžični enosmerni motor za RC avtomobile
Coreless DC motor, ki se uporablja v tem projektu je prikazana na spodnji sliki. Lahko jih preprosto najdete, saj se pogosto uporabljajo v mini brezpilotnih letalih. Samo poiščite 8520 magnetni mikro-brezžični motor in našli jih boste.
Zdaj obstajajo nekatere pomanjkljivosti uporabe enosmernih motorjev za RC avtomobile. Prva stvar je, da zagotavljajo zelo nizek navor, zato bi moral biti naš RC avtomobil čim lažji. Zato sem se odločil, da bom celoten avto zgradil na PCB z uporabo SMD komponent in čim bolj zmanjšal velikost plošče. Druga težava je njegova visoka hitrost, 39000 vrtljajev na minuto (vrtljajev na gred) je težko obvladljiva, zato potrebujemo vezje za nadzor hitrosti na strani Arduino, ki smo ga zgradili z MOSFET-om. Tretja stvar je, da bo te motorje napajal en sam litij-polimerni akumulator z delovno napetostjo med 3,6 V in 4,2 V, zato moramo svoje vezje zasnovati tako, da deluje na 3,3 V. Zato smo uporabili 3,3 V Arduino Pro minikot možgani našega RC avtomobila. Ko bomo rešili te težave, si oglejmo materiale, potrebne za izdelavo tega projekta.
Potrebni materiali
- 3,3 V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2 kos
- Modul igralne palice
- SI2302 MOSFET
- 1N5819 Dioda
- Brezžični BLDC motorji
- AMS1117-3.3V
- Litij-polimerna baterija
- Upori, kondenzatorji,
- Priključne žice
RF igralna palica za RC avtomobil z uporabo Arduina
Kot smo že omenili, bo RC avtomobil nadzorovan na daljavo z RF džojstikom. Ta igralna palica bo izdelana tudi z uporabo Arduina skupaj z RF modulom nRF24L01, modul Joystick pa smo uporabili tudi za nadzor našega RC v želeni smeri. Če ste popolnoma novi v teh dveh modulih, lahko preberete članke o povezovanju Arduina z nRF24L01 in povezovanju igralne palice z Arduino, če želite izvedeti, kako delujejo in kako jih uporabljati. Če želite izdelati daljinski upravljalnik Arduino RF, sledite spodnjemu vezju.
Vezje RF-krmilne palice lahko napajate prek vrat USB nano plošče. Modul nRF24L01 deluje samo na 3,3 V, zato smo na Arduinu uporabili 3,3 V pin. Vezje sem zgradil na plošči in videti je spodaj, če je potrebno, lahko za to ustvarite tudi tiskano vezje.
Arduino Koda za RF Joystick vezje je zelo preprosta, moramo prebrati vrednosti X in Y vrednost iz našega Joystick in ga poslati na RC avto skozi nRF24L01. Celoten program za to vezje najdete na dnu te strani. Ne bomo se spuščali v razlago tega, ker smo o tem že govorili v zgornji povezavi povezave do projekta povezovanja.
Shema avtomobila Arduino RC
Popoln diagram vezja za naš daljinsko vodeni Arduino Car je prikazan spodaj. Shema vezij vključuje tudi možnost dodajanja dveh IR modulov TCRT5000 v naš avto. To je bilo načrtovano, da bo naš RC avtomobil lahko deloval kot robot, ki sledi robotu, tako da bo lahko delal sam, ne da bi ga nadzorovali zunaj. Vendar se zaradi tega projekta ne bomo osredotočali nanj, bodite pozorni na drugo projektno vadnico, v kateri bomo poskusili zgraditi "najhitrejšega sledilnega robota". Za enostavnost gradnje sem združil oba vezja na enem PCB, za ta projekt lahko prezrete IR senzor in odsek Op-amp.
URC avtomobil bo napajal Lipo akumulator, priključen na terminal P1. AMS117-3.3V se uporablja za regulacijo 3,3 za naše nRF24L01 in naše pro-mini-ploščo. Arduino ploščo lahko napajamo tudi neposredno na surovi zatič, vendar vgrajeni regulator napetosti 3,3 V na pro mini ne bo mogel dovajati dovolj toka na naše RF module, zato smo uporabili zunanji regulator napetosti.
Za pogon našega dveh BLDC motorjev smo uporabili dva MOSFET-a SI2302. Pomembno je zagotoviti, da te MOSFET-je lahko poganja 3,3 V. Če ne najdete popolnoma iste številke dela, lahko poiščete enakovredne MOSFET-je s spodnjimi značilnostmi prenosa
Motorji lahko porabijo največji tok do 7A (neprekinjeno je bilo preizkušeno, da je 3A z obremenitvijo), zato mora biti odtočni tok MOSFET 7A ali več in se mora popolnoma vklopiti pri 3,3V. Kot lahko vidite tukaj, MOSFET, ki smo ga izbrali, lahko zagotavlja 10A tudi pri 2,25V, zato je idealna izbira.
Izdelava PCB-ja za Arduino RC Car
Zabaven del gradnje tega projekta je bil razvoj PCB. Tukaj PCB ne tvori le vezja, temveč deluje tudi kot podvozje našega avtomobila, zato smo zanj načrtovali avtomobil, ki je videti v obliki z možnostmi za enostavno namestitev naših motorjev. Lahko poskusite tudi sami izdelati svojo tiskano vezje s pomočjo zgornjega vezja ali pa uporabite moj dizajn tiskanega vezja, ki je po zaključku videti takole spodaj.
Kot lahko vidite, sem tiskano vezje zasnoval tako, da je enostavno pritrditi baterijo, motor in druge komponente. Datoteko Gerber za ta PCB lahko prenesete s povezave. Ko ste pripravljeni na datoteko Gerber, je čas, da jo izdelate. Če želite PCBGOGO enostavno narediti vaše PCB, sledite spodnjim korakom
1. korak: Pojdite na www.pcbgogo.com in se prijavite, če ste prvič. Nato na zavihku Prototip PCB vnesite dimenzije PCB, število slojev in število PCB, ki ga potrebujete. Moj PCB je 80 cm × 80 cm, zato je zavihek videti spodaj.
2. korak: Nadaljujte s klikom na gumb Citiraj zdaj . Preusmerjeni boste na stran, kjer boste po potrebi nastavili nekaj dodatnih parametrov, kot je uporabljeni razmik skladbe itd. Toda večinoma bodo privzete vrednosti dobro delovale. Edino, kar moramo tu upoštevati, sta cena in čas. Kot lahko vidite, je čas izdelave le 2-3 dni in za naš PSB stane le 5 USD. Nato lahko izberete želeni način pošiljanja glede na vaše zahteve.
3. korak: Zadnji korak je nalaganje datoteke Gerber in nadaljevanje plačila. Preden nadaljuje s plačilom, PCBGOGO preveri, ali je vaša datoteka Gerber veljavna, da se prepriča, da je postopek nemoten. Tako se lahko prepričate, da je vaš PCB prijazen do izdelave in vas bo sprejel kot predan.
Sestavljanje PCB
Po naročilu plošče je čez nekaj dni prišel do mene, čeprav je kurir v lepo označeni dobro zapakirani škatli in kot vedno bila kakovost PCB-ja izjemna. Delim nekaj slik spodnjih desk, ki jih lahko presodite.
Vklopil sem spajkalno palico in začel sestavljati ploščo. Ker so Footprints, blazinice, steklenice in sitotisk popolne prave oblike in velikosti, nisem imel težav s sestavljanjem deske. Plošča je bila pripravljena v samo 10 minutah od razpakiranja škatle.
Nekaj slik plošče po spajkanju je prikazanih spodaj.
Kolesa za 3D tiskanje in nosilec za motor
Kot ste morda opazili na zgornji sliki, moramo za robota izdelati 3D nosilec motorja in kolesa. Če ste uporabili zgoraj navedeno datoteko PCB Gerber, potem lahko uporabite tudi 3D model, tako da ga prenesete s te povezave.
Curo sem uporabil za rezanje svojih modelov in jih natisnil z uporabo Tevo Terantuala brez podpore in 0% polnila za zmanjšanje teže. Nastavitev lahko spremenite tako, kot ustreza našemu tiskalniku. Ker se motorji vrtijo zelo hitro, se mi je zdelo težko oblikovati kolo, ki bo tesno in tesno prilegalo gredi motorja. Zato sem se odločil, da bom uporabil lopatice drona znotraj kolesa, kot lahko vidite spodaj
Zdelo se mi je, da je to bolj zanesljivo in trpežno, vendar poskusite z različnimi izvedbami koles in mi v oddelku za komentarje sporočite, kaj vam je uspelo.
Programiranje Arduina
Celoten program (tako Arduino nano kot pro mini) za ta projekt najdete na dnu te strani. Razlaga vašega RC programa je naslednja
Program zaženemo z vključitvijo zahtevane datoteke glave. Upoštevajte, da modul nRF24l01 zahteva dodajanje knjižnice v vaš Arduino IDE. Knjižnico RF24 lahko prenesete iz Githuba po tej povezavi. Poleg tega smo za našega robota že določili minimalno in največjo hitrost. Najmanjši in največji razpon sta od 0 do 1024.
#define min_speed 200 #define max_speed 800 #include
Nato v nastavitveni funkciji inicializiramo naš modul nRF24L01. Uporabili smo 115 pasov, ker ni preobremenjen in je modul nastavil tako, da deluje z majhno močjo, s temi nastavitvami pa se lahko tudi poigrate.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // pas 115 nad WIFI signali myRadio.setPALevel (RF24_PA_MIN); // MIN moči nizke stopnje myRadio.setDataRate (RF24_250KBPS); // Minimalna hitrost}
Nato bomo v glavni zanki izvedli samo funkcijo ReadData, s katero bomo neprestano prebirali vrednost, poslano iz našega modula krmilne palice oddajnika. Upoštevajte, da mora biti naslov cevi, omenjen v programu, enak tistemu, ki je omenjen v programu oddajnika. Natisnili smo tudi vrednost, ki smo jo prejeli za namene odpravljanja napak. Ko je vrednost uspešno odčitana, bomo izvedli funkcijo Control Car za nadzor našega RC avtomobila na podlagi vrednosti, prejete iz
modula Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Katero cev za branje, 40-bitni naslov myRadio.startListening (); // Nehajte pošiljati in začnite preverjati, če je (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nPrejeto:"); Serial.println (data.msg); prejeto = data.msg; Control_Car (); }}
Znotraj funkcije Control Car bomo nadzirali motorje, priključene na zatiče PWM, s funkcijo analognega zapisovanja. V našem oddajnem programu smo pretvorili analogne vrednosti iz navojev A0 in A1 na Nano v 1 do 10, 11 do 20, 21 do 30 in 31 do 40 za nadzor avtomobila naprej, nazaj, levo in desno. Spodnji program se uporablja za nadzor robota v smeri naprej
if (prejeto> = 1 && prejeto <= 10) // Premakni naprej {int PWM_Value = map (prejeto, 1, 10, min_hitrost, max_hitrost); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Podobno lahko napišemo še tri funkcije za krmiljenje nazaj, levo in desno, kot je prikazano spodaj.
if (prejeto> = 11 && prejeto <= 20) // Prekinitev {int PWM_Value = map (prejeto, 11, 20, min_hitrost, max_hitrost); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (prejeto> = 21 && prejeto <= 30) // Zavijte levo {int PWM_Value = map (sprejeto, 21, 30, min_hitrost, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (prejeto> = 31 && prejeto <= 40) // Zavijte desno {int PWM_Value = map (sprejeto, 31, 40, min_hitrost, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Delovanje Arduino RC Car
Ko končate s kodo, jo naložite na svojo pro-mini ploščo. Odstranite baterijo in ploščo prek modula FTDI za testiranje. Zaženite svojo kodo, odprite serijsko baterijo in vrednost boste prejeli od modula krmilne palice oddajnika. Priključite baterijo in tudi vaši motorji naj se začnejo vrteti.
Celotno delovanje projekta najdete v videoposnetku, ki je povezan na dnu te strani. Če imate kakršna koli vprašanja, jih pustite v oddelku za komentarje. Na naših forumih lahko dobite tudi hitre odgovore na druga tehnična vprašanja.