- Bezkorpusa līdzstrāvas motors RC automašīnām
- Nepieciešamie materiāli
- RF vadības svira RC automašīnai, izmantojot Arduino
- Arduino RC automašīnas shēmas diagramma
- PCB izgatavošana Arduino RC automašīnai
- PCB montāža
- 3D drukāšanas riteņi un motora stiprinājums
- Arduino programmēšana
- Arduino RC automašīnas darbs
Ar RC automašīnām vienmēr ir jautri spēlēt, es personīgi esmu liels šo tālvadības automašīnu ventilators un esmu ar tām daudz spēlējis (joprojām spēlēju). Lielākā daļa šo automašīnu šodien nodrošina milzīgu griezes momentu, lai apstrādātu nelīdzenas reljefas, taču ir kaut kas, kas vienmēr atpalika, tā ātrums !!.. Tātad, šajā projektā mēs izveidosim pilnīgi atšķirīgu RC automašīnu, izmantojot galveno Arduino Šīs automašīnas mērķis ir sasniegt maksimālo ātrumu, tāpēc es nolēmu izmēģināt RC automašīnas bezstrāvas līdzstrāvas motoru. Šie motori parasti tiek izmantoti bezpilota lidaparātos, un to ātrums ir 39000 apgr./min kam vajadzētu būt vairāk nekā pietiekamam, lai remdētu mūsu ātruma slāpes. Automašīna tiks darbināta ar nelielu litija akumulatoru, un to var vadīt attālināti, izmantojot nRF24L01 RF moduli. Alternatīvi, ja jūs meklējat kaut ko vienkāršu, varat arī pārbaudīt šos vienkāršā RF robota un Raspberry Pi Bluetooth automašīnas projektus.
Bezkorpusa līdzstrāvas motors RC automašīnām
Coreless DC motors, kas tiek izmantots šajā projektā ir parādīts attēlā zemāk. Jūs tos varat viegli atrast, jo tos plaši izmanto mini dronos. Vienkārši meklējiet 8520 magnētisko mikrokorpusu motoru, un jūs tos atradīsit.
Tagad DC motoru izmantošanai RC automašīnā ir noteikti trūkumi. Pirmkārt, tie nodrošina ļoti mazu sākuma griezes momentu, tāpēc mūsu RC automašīnai jābūt pēc iespējas vieglākai. Tāpēc es nolēmu uzbūvēt visu automašīnu virs PCB, izmantojot SMD komponentus, un cik vien iespējams samazinātu dēļu izmēru. Otra problēma ir tā lielais ātrums, 39000 apgr./min (vārpstas apgriezieni minūtē) ir grūti apstrādājami, tāpēc mums ir nepieciešama ātruma vadības ķēde Arduino pusē, kuru izveidojām, izmantojot MOSFET. Trešā lieta ir tāda, ka šie motori darbosies ar vienu litija polimēra akumulatoru ar darba spriegumu no 3,6 V līdz 4,2 V, tāpēc mums ir jāveido ķēde, lai tā darbotos ar 3,3 V. Tāpēc mēs esam izmantojuši 3,3 V Arduino Pro minikā mūsu RC automašīnas smadzenes. Pēc šo problēmu sakārtošanas apskatīsim materiālus, kas nepieciešami šī projekta izveidošanai.
Nepieciešamie materiāli
- 3,3 V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2gab
- Kursorsviras modulis
- SI2302 MOSFET
- 1N5819 Diode
- Korpusa BLDC Motors
- AMS1117-3.3V
- Litija polimēra akumulators
- Rezistori, kondensatori,
- Savienojošie vadi
RF vadības svira RC automašīnai, izmantojot Arduino
Kā minēts iepriekš, RC automašīna tiks vadīta attālināti, izmantojot RF kursorsviru. Šis kursorsviru arī uzbūvēs, izmantojot Arduino kopā ar nRF24L01 RF moduli. Mēs arī izmantojām Joystick moduli, lai vadītu mūsu RC vajadzīgajā virzienā. Ja esat pilnīgi jauns šajos divos moduļos, varat apsvērt iespēju izlasīt Interfacing Arduino ar nRF24L01 un Interfacing Joystick ar Arduino rakstiem, lai uzzinātu, kā tie darbojas un kā tos izmantot. Lai izveidotu savu Arduino RF attālo kursorsviru, varat sekot zemāk esošajai shēmas shēmai.
RF vadības sviru var darbināt, izmantojot nano dēļa USB pieslēgvietu. NRF24L01 modulis darbojas tikai ar 3,3 V, tāpēc mēs esam izmantojuši 3,3 V tapu Arduino. Esmu izveidojis ķēdi uz paneļa, un tas izskatās kā zemāk, ja nepieciešams, varat arī izveidot šim nolūkam PCB.
Arduino kods RF Joystick ķēdes ir diezgan vienkārši, mums ir lasīt X vērtību un Y vērtību no mūsu Joystick un nosūta to uz RC auto caur nRF24L01. Pilna šīs shēmas programma ir atrodama šīs lapas apakšdaļā. Mēs to neiedziļināsimies, jo mēs to jau esam apsprieduši iepriekš aprakstītajā saskarnes projekta saitē.
Arduino RC automašīnas shēmas diagramma
Pilna mūsu tālvadības Arduino automašīnas shēma ir parādīta zemāk. Shēmas shēma ietver arī iespēju pievienot divus TCRT5000 IR moduļus mūsu automašīnai. Tas tika plānots, lai ļautu mūsu RC automašīnai darboties kā robotam pēc līnijas, lai tas varētu darboties pats, nekontrolējot to ārēji. Tomēr šī projekta labad mēs nekoncentrēsimies uz to, sekojiet līdzi citai projekta apmācībai, kurā mēģināsim izveidot “Ātrākās līnijas sekotāja robotu”. Esmu apvienojis abas shēmas vienā PCB, lai būtu vieglāk veidot. Jūs varat ignorēt IR sensoru un Op-amp sadaļu šim projektam.
RC automašīnu darbinās Lipo akumulators, kas savienots ar spaili P1. AMS117-3.3V tiek izmantots, lai regulētu 3.3V mūsu nRF24L01 un mūsu pro-mini-kuģa. Mēs varam arī darbināt Arduino dēli tieši uz neapstrādāta tapa, bet iebūvētais 3,3 V sprieguma regulators pro mini nespēs piegādāt pietiekami daudz strāvas mūsu RF moduļiem, tāpēc mēs esam izmantojuši ārēju sprieguma regulatoru.
Lai vadītu mūsu divus BLDC motorus, mēs esam izmantojuši divus SI2302 MOSFET. Ir svarīgi pārliecināties, ka šos MOSFETS var vadīt ar 3.3V. Ja nevarat atrast tieši to pašu detaļas numuru, varat meklēt līdzvērtīgus MOSFET ar šādiem pārsūtīšanas parametriem
Motori var patērēt maksimālo strāvu līdz 7A (nepārtraukti tika pārbaudīts kā 3A ar slodzi), tāpēc MOSFET iztukšošanas strāvai jābūt 7A vai vairāk, un tai pilnībā jāieslēdzas pie 3.3V. Kā redzat šeit, MOSFET, kuru izvēlējāmies, var nodrošināt 10A pat pie 2,25 V, tāpēc tā ir ideāla izvēle.
PCB izgatavošana Arduino RC automašīnai
Šī projekta jautrākā daļa bija PCB izstrāde. Šeit esošie PCB ne tikai veido ķēdi, bet arī darbojas kā mūsu automašīnas šasija, tāpēc mēs plānojām automašīnu, kas tai izskatījās, ar iespējām viegli uzstādīt mūsu motorus. Varat arī mēģināt izveidot savu PCB, izmantojot iepriekš minēto shēmu, vai arī varat izmantot manu PCB dizainu, kas pēc pabeigšanas izskatās šādi.
Kā redzat, es izveidoju PCB, lai viegli uzstādītu akumulatoru, motoru un citas sastāvdaļas. No saites varat lejupielādēt Gerber failu šai PCB. Kad esat gatavs ar Gerber failu, ir pienācis laiks to izgatavot. Lai PCBGOGO varētu viegli paveikt savus PCB, rīkojieties šādi
1. darbība: iekļūstiet vietnē www.pcbgogo.com, reģistrējieties, ja tā ir jūsu pirmā reize. Pēc tam cilnē PCB Prototype ievadiet sava PCB izmērus, slāņu skaitu un nepieciešamo PCB skaitu. Mana PCB ir 80 cm × 80 cm, tāpēc cilne izskatās šādi.
2. solis: turpiniet, noklikšķinot uz pogas Citēt tūlīt . Jūs tiksiet novirzīts uz lapu, kur, ja nepieciešams, iestatīsit dažus papildu parametrus, piemēram, izmantoto materiālu sliežu atstarpi utt. Bet galvenokārt noklusējuma vērtības darbosies labi. Vienīgais, kas mums šeit jāņem vērā, ir cena un laiks. Kā redzat, būvēšanas laiks ir tikai 2-3 dienas, un tas mūsu PSB maksā tikai 5 USD. Pēc tam varat izvēlēties vēlamo nosūtīšanas metodi, pamatojoties uz savām prasībām.
3. solis: pēdējais solis ir Gerber faila augšupielāde un maksājuma veikšana. Lai pārliecinātos, ka process ir vienmērīgs, pirms maksājuma turpināšanas PCBGOGO pārbauda, vai jūsu Gerber fails ir derīgs. Tādā veidā jūs varat pārliecināties, ka jūsu PCB ir izgatavošanai draudzīgs un ar jums sazināsies kā apņēmies.
PCB montāža
Pēc tam, kad dēlis tika pasūtīts, tas mani sasniedza pēc dažām dienām, kaut arī kurjers glīti marķētā, labi iesaiņotā kastē, un, tāpat kā vienmēr, PCB kvalitāte bija lieliska. Es jums kopīgoju dažus zemāk redzamo dēļu attēlus, lai jūs varētu tos vērtēt.
Es ieslēdzu savu lodēšanas stieni un sāku montēt dēli. Tā kā pēdas, spilventiņi, flakoni un sietspiede ir ideāli piemērotas formas un izmēra, man nebija problēmu montēt dēli. Dēlis bija gatavs tikai 10 minūtēs no kastes izpakošanas brīža.
Daži dēļa attēli pēc lodēšanas ir parādīti zemāk.
3D drukāšanas riteņi un motora stiprinājums
Kā jūs, iespējams, pamanījāt iepriekš redzamajā attēlā, mums 3D jāveido robota motora stiprinājums un riteņi. Ja esat izmantojis mūsu iepriekš koplietoto PCB Gerber failu, jūs varētu arī izmantot 3D modeli, lejupielādējot to no šīs universālās saites.
Es izmantoju Cura, lai sagrieztu savus modeļus un tos izdrukāju, izmantojot Tevo Terantuala bez balstiem un 0% pildījuma svara samazināšanai. Jūs varat mainīt iestatījumu, kas piemērots mūsu printerim. Tā kā motori griežas ļoti ātri, man šķita grūti izveidot riteni, kas cieši pieguļ motora vārpstai. Tāpēc es nolēmu izmantot bezpilota lidaparāta asmeņus riteņa iekšpusē, kā redzat zemāk
Es atklāju, ka tas ir uzticamāks un izturīgāks, tomēr eksperimentējiet ar dažādiem riteņu dizainiem un komentāru sadaļā dariet man zināmu, kas jums noderēja.
Arduino programmēšana
Pilna šī projekta programma (gan Arduino nano, gan pro mini) ir atrodama šīs lapas apakšdaļā. Jūsu RC programmas skaidrojums ir šāds
Mēs sākam programmu, iekļaujot nepieciešamo galvenes failu. Ņemiet vērā, ka nRF24l01 modulim nepieciešama bibliotēkas pievienošana jūsu Arduino IDE, izmantojot šo saiti, varat lejupielādēt RF24 bibliotēku no Github. Bez tam mēs jau esam definējuši minimālo ātrumu un maksimālo ātrumu mūsu robotam. Minimālais un maksimālais diapazons ir attiecīgi no 0 līdz 1024.
#define min_speed 200 #define max_speed 800 #include
Pēc tam iestatīšanas funkcijas iekšpusē mēs noformējam nRF24L01 moduli. Mēs esam izmantojuši 115 joslas, jo tā nav pārslogota un ir iestatījusi moduli darboties ar mazu jaudu. Varat arī spēlēt ar šiem iestatījumiem.
void setup () {Sērijas.sākt (9600); myRadio.begin (); myRadio.setChannel (115); // 115 josla virs WIFI signāliem myRadio.setPALevel (RF24_PA_MIN); // MIN jauda zema dusmas myRadio.setDataRate (RF24_250KBPS); // Minimālais ātrums}
Tālāk galvenās cilpas funkcijā mēs izpildīsim tikai funkciju ReadData, ar kuru mēs pastāvīgi lasīsim vērtību, kas nosūtīta no mūsu raidītāja kursorsviras moduļa. Ņemiet vērā, ka programmā minētajai caurules adresei jābūt tādai pašai kā raidītāja programmā. Mēs esam arī izdrukājuši vērtību, ko saņemam atkļūdošanas nolūkos. Kad vērtība ir veiksmīgi nolasīta, mēs izpildīsim Control Car funkciju, lai kontrolētu mūsu RC automašīnu, pamatojoties uz vērtību, kas saņemta no
Rf moduļa.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // kuru cauruli lasīt, 40 bitu adrese myRadio.startListening (); // Pārtrauciet pārsūtīšanu un sāciet Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nSaņemts:"); Serial.println (dati.msg); saņemts = dati.msg; Control_Car (); }}
Funkcijas Control Car iekšpusē mēs vadīsim motorus, kas savienoti ar PWM tapām, izmantojot analogās rakstīšanas funkciju. Mūsu raidītāja programmā esam pārveidojuši analogās vērtības no Nano A0 un A1 tapas uz 1 līdz 10, 11 līdz 20, 21 līdz 30 un 31 līdz 40, lai vadītu automašīnu attiecīgi uz priekšu, atpakaļgaitu, pa kreisi un pa labi. Zemāk redzamā programma tiek izmantota, lai vadītu robotu uz priekšu
ja (saņemts> = 1 && saņemts <= 10) // Pārvietot uz priekšu {int PWM_Value = karte (saņemts, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Līdzīgi mēs varam uzrakstīt vēl trīs funkcijas reversai, kreisai un labai vadībai, kā parādīts zemāk.
ja (saņemts> = 11 && saņemts = = 20) // pārtraukums {int PWM_Value = karte (saņemts, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } ja (saņemts> = 21 && saņemts = = 30) // Pagriezieties pa kreisi {int PWM_Value = karte (saņemts, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (saņemts> = 31 && saņemts = = 40) // Pagriezieties pa labi {int PWM_Value = karte (saņemts, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Arduino RC automašīnas darbs
Kad esat pabeidzis kodu, augšupielādējiet to savā mini-dēļī. Izmēģiniet FTDI moduli, izmantojot FTDI. Palaidiet kodu, atveriet sērijveida akumulatoru, un jums vajadzētu saņemt vērtību no raidītāja vadības sviras moduļa. Pievienojiet akumulatoru, un arī motoriem jāsāk griezties.
Pilnīga projekta darbība ir atrodama videoklipā, kas ir saistīts ar šīs lapas apakšdaļu. Ja jums ir kādi jautājumi, atstājiet tos komentāru sadaļā. Varat arī izmantot mūsu forumus, lai ātri saņemtu atbildes uz citiem tehniskajiem jautājumiem.