- Coreless DC-motor for RC-biler
- Nødvendig materiale
- RF-joystick for RC-bil med Arduino
- Arduino RC Car Circuit Diagram
- Fabrikasjon av PCB for Arduino RC Car
- Montering av PCB
- 3D-utskriftshjul og motorfeste
- Programmering av Arduino
- Arbeid av Arduino RC Car
RC-biler er alltid morsomme å leke med, jeg er personlig en stor fan av disse fjernstyrte bilene og har spilt (fortsatt) mye med dem. De fleste av disse bilene i dag gir et enormt dreiemoment for å håndtere tøffe terreng, men det er noe som alltid ble hengende, dens hastighet!.. Så i dette prosjektet vil vi bygge en helt annen type RC-bil ved hjelp av Arduino, den viktigste Målet med denne bilen er å oppnå maksimal hastighet, og derfor bestemte jeg meg for å prøve den kjerneløse DC-motoren for en RC-bil. Disse motorene brukes vanligvis i droner og er rangert til 39000 RPM som burde være mer enn nok til å slukke vår tørst. Bilen får strøm med et lite litiumbatteri og kan fjernstyres ved hjelp av nRF24L01 RF-modulen. Alternativt, hvis du leter etter noe enkelt, kan du også sjekke denne Simple RF Robot og Raspberry Pi Bluetooth Car-prosjektene.
Coreless DC-motor for RC-biler
Den kjerneløse likestrømsmotoren som brukes i dette prosjektet er vist på bildet nedenfor. Du finner dem enkelt siden de brukes mye i minidroner. Bare se etter 8520 Magnetic Micro Coreless Motor, så finner du disse.
Nå er det visse ulemper ved å bruke DC-motorer til en RC-bil. Det første er at de gir veldig lavt startmoment, og derfor bør RC-bilen vår være så lett som mulig. Dette er grunnen til at jeg bestemte meg for å bygge hele bilen på et PCB ved hjelp av SMD-komponenter og redusere brettstørrelsen så mye som mulig. Det andre problemet er dens høye hastighet, 39000 RPM (RPM of the shaft) er vanskelig å håndtere, så vi trenger en hastighetskontrollkrets på Arduino-siden, som vi bygde ved hjelp av en MOSFET. Den tredje tingen er at disse motorene blir drevet av et enkelt litiumpolymerbatteri med en driftsspenning mellom 3,6V og 4,2V, så vi må designe kretsen vår for å fungere på 3,3V. Dette er grunnen til at vi har brukt en 3,3V Arduino Pro minisom hjernen til RC-bilen vår. Med disse problemene sortert ut, la oss se på materialene som kreves for å bygge dette prosjektet.
Nødvendig materiale
- 3,3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2stk
- Styrespakemodul
- SI2302 MOSFET
- 1N5819 Diode
- Kjerneløse BLDC-motorer
- AMS1117-3.3V
- Litiumpolymerbatteri
- Motstander, kondensatorer,
- Koble ledninger
RF-joystick for RC-bil med Arduino
Som nevnt tidligere vil RC-bilen fjernstyres ved hjelp av en RF-joystick. Denne styrespaken vil også bli bygget ved hjelp av en Arduino sammen med en nRF24L01 RF-modul, vi har også brukt joystick-modulen til å kontrollere RC i ønsket retning. Hvis du er helt ny på disse to modulene, kan du vurdere å lese Interfacing Arduino med nRF24L01 og Interfacing Joystick med Arduino-artikler for å lære hvordan de fungerer og hvordan du bruker dem. For å bygge Arduino RF Remote Joystick kan du følge kretsdiagrammet nedenfor.
RF-joystick-kretsen kan drives med USB-porten på nano-kortet. NRF24L01-modulen fungerer bare på 3,3 V, derfor har vi brukt 3,3 V-pinnen på Arduino. Jeg har konstruert kretsen på et brødbrett, og det ser ut som nedenfor, du kan også lage et PCB for dette om nødvendig.
Den Arduino koden for RF Joystick krets er ganske enkel, vi må lese X-verdien og Y-verdien fra vår Joystick og send den til RC bil gjennom nRF24L01. Hele programmet for denne kretsen finner du nederst på denne siden. Vi kommer ikke inn på forklaringen på det, siden vi allerede har diskutert det i grensesnittprosjektlenken som er delt ovenfor.
Arduino RC Car Circuit Diagram
Det komplette kretsskjemaet for vår fjernstyrte Arduino-bil er vist nedenfor. Kretsskjemaet inkluderer også et alternativ for å legge til to TCRT5000 IR-moduler til bilen vår. Dette var planlagt for å gjøre det mulig for RC-bilen vår å fungere som en linje som følger en robot, slik at den kan jobbe alene uten å bli styrt eksternt. Av hensyn til dette prosjektet vil vi imidlertid ikke konsentrere oss om det, følg med på en annen prosjektopplæring der vi vil prøve å bygge "Fastest Line Follower Robot". Jeg har kombinert begge kretsene på en enkelt PCB for å gjøre det enkelt å bygge, du kan ignorere IR-sensoren og Op-amp-delen for dette prosjektet.
RC-bilen blir drevet av Lipo-batteriet koblet til terminal P1. Den AMS117-3.3V brukes til å regulere 3.3V for vår nRF24L01 og våre pro-mini-bord. Vi kan også drive Arduino-kortet direkte på den rå pinnen, men den innebygde 3,3 V spenningsregulatoren på pro mini vil ikke kunne levere nok strøm til RF-modulene våre, og derfor har vi brukt en ekstern spenningsregulator.
For å kjøre de to BLDC-motorene våre, har vi brukt to SI2302 MOSFET-er. Det er viktig å sørge for at disse MOSFETS kan drives av 3,3 V. Hvis du ikke finner nøyaktig samme delenummer, kan du se etter tilsvarende MOSFET-er med overføringsegenskapene nedenfor
Motorene kan forbruke toppstrøm så høyt som 7A (kontinuerlig ble testet for å være 3A med belastning), og derfor bør MOSFET-avløpsstrømmen være 7A eller mer, og den skal slå på helt ved 3,3V. Som du kan se her, kan MOSFET som vi valgte gi 10A selv ved 2,25V, så det er et ideelt valg.
Fabrikasjon av PCB for Arduino RC Car
Den morsomme delen med å bygge dette prosjektet var PCB-utvikling. PCB-er her danner ikke bare kretsen, men fungerer også som et chassis for bilen vår, så vi planla en bil som ser ut som den med muligheter for enkelt å montere motorene våre. Du kan også prøve å designe din egen PCB ved å bruke kretsen ovenfor, eller du kan bruke PCB-designet mitt som ser slik ut nedenfor når du er ferdig.
Som du kan se, har jeg designet PCB for enkelt å montere batteri, motor og andre komponenter. Du kan laste ned Gerber-filen for denne PCB-en fra lenken. Når du er klar med Gerber-filen, er det på tide å få den fabrikkert. Følg trinnene nedenfor for å få PCB-ene dine enkelt ut av PCBGOGO
Trinn 1: Gå inn på www.pcbgogo.com, registrer deg hvis dette er første gang. Deretter skriver du inn dimensjonene på PCB, antall lag og antall PCB du trenger i kategorien PCB Prototype. PCB-en min er 80cm × 80cm, så fanen ser slik ut nedenfor.
Trinn 2: Fortsett ved å klikke på Sitat nå- knappen. Du blir ført til en side hvor du kan angi noen ekstra parametere hvis nødvendig, som materialet som brukes sporavstand osv. Men for det meste vil standardverdiene fungere bra. Det eneste vi må vurdere her er pris og tid. Som du kan se, er byggetiden bare 2-3 dager, og det koster bare $ 5 for PSB. Deretter kan du velge en foretrukket fraktmetode basert på dine krav.
Trinn 3: Det siste trinnet er å laste opp Gerber-filen og fortsette med betalingen. For å sikre at prosessen er jevn, verifiserer PCBGOGO om Gerber-filen din er gyldig før du fortsetter med betalingen. På denne måten kan du være sikker på at PCB-en din er fabrikasjonsvennlig og vil nå deg som engasjert.
Montering av PCB
Etter at brettet var bestilt, nådde det meg etter noen dager, selv om bud i en pent merket, godt pakket eske, og som alltid var kvaliteten på PCB fantastisk. Jeg deler noen bilder av tavlene nedenfor slik at du kan dømme.
Jeg skrudde på loddestangen og begynte å montere brettet. Siden Footprints, pads, vias og silkscreen er perfekte av riktig form og størrelse, hadde jeg ikke noe problem å montere brettet. Brettet var klart på bare 10 minutter fra pakken ble pakket ut.
Noen bilder av brettet etter lodding er vist nedenfor.
3D-utskriftshjul og motorfeste
Som du kanskje har lagt merke til i bildet ovenfor, må vi 3D motorfeste og hjul for roboten. Hvis du har brukt vår PCB Gerber-fil som er delt ovenfor, kan du like godt bruke en 3D-modell ved å laste den ned fra denne linken.
Jeg har brukt Cura til å skjære modellene mine og trykke dem med Tevo Terantuala uten støtter og 0% fyll for å redusere vekten. Du kan endre innstillingen som passer for skriveren vår. Siden motorene roterer veldig fort, syntes jeg det var vanskelig å designe et hjul som passer tett og tett til motorakselen. Derfor bestemte jeg meg for å bruke dronebladene inne i hjulet som du kan se nedenfor
Jeg syntes dette var mer pålitelig og solid, men eksperimenter med forskjellige hjuldesigner og gi meg beskjed i kommentarseksjonen hva som fungerte for deg.
Programmering av Arduino
Hele programmet (både Arduino nano og pro mini) for dette prosjektet finner du nederst på denne siden. Forklaringen på RC-programmet ditt er som følger
Vi starter programmet med å inkludere den nødvendige headerfilen. Merk at nRF24l01-modulen krever at et bibliotek legges til Arduino IDE, du kan laste ned RF24-biblioteket fra Github ved hjelp av denne lenken. Bortsett fra det, har vi allerede definert minimumshastighet og maksimal hastighet for roboten vår. Minimums- og maksimumsområdet er henholdsvis 0 til 1024.
#definer min_hastighet 200 #definer maks_hastighet 800 # inkluderer
Deretter initialiserer vi nRF24L01-modulen i installasjonsfunksjonen. Vi har brukt de 115 båndene siden den ikke er overbelastet og har satt modulen til å fungere med lav effekt, du kan også leke med disse innstillingene.
ugyldig oppsett () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 bånd over WIFI signaler myRadio.setPALevel (RF24_PA_MIN); // MIN kraft lav rage myRadio.setDataRate (RF24_250KBPS); // Minste hastighet}
Neste i hovedsløyfefunksjonen, vil vi bare utføre ReadData-funksjonen som vi hele tiden vil lese verdien som sendes fra sendestyrespakemodulen vår. Merk at røradressen nevnt i programmet skal være den samme som den som er nevnt i senderprogrammet. Vi har også skrevet ut verdien vi mottar for feilsøkingsformål. Når verdien er lest, vil vi utføre Control Car-funksjonen for å kontrollere RC-bilen vår basert på verdien du mottok fra
Rf-modulen.
ugyldig ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Hvilket rør som skal leses, 40 bit Adresse myRadio.startListening (); // Stopp transmittering og start gjenoppretting hvis (myRadio.available ()) {mens (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nMottatt:"); Serial.println (data.msg); mottatt = data.msg; Control_Car (); }}
Inne i Control Car-funksjonen vil vi kontrollere motorer koblet til PWM-pinnene ved hjelp av den analoge skrivefunksjonen. I vårt senderprogram har vi konvertert de analoge verdiene fra A0 og A1-pinnen til Nano til 1 til 10, 11 til 20, 21 til 30 og 31 til 40 for å kontrollere bilen i henholdsvis forover, bakover, venstre og høyre. Programmet nedenfor brukes til å styre roboten fremover
hvis (mottatt> = 1 && mottatt <= 10) // Gå fremover {int PWM_Value = kart (mottatt, 1, 10, min_hastighet, maks_hastighet); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
På samme måte kan vi også skrive tre flere funksjoner for revers, venstre og høyre kontroll som vist nedenfor.
hvis (mottatt> = 11 && mottatt <= 20) // Bryt {int PWM_Value = kart (mottatt, 11, 20, min_hastighet, maks_hastighet); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } hvis (mottatt> = 21 && mottatt <= 30) // Sving til venstre {int PWM_Value = kart (mottatt, 21, 30, min_hastighet, maks_hastighet); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } hvis (mottatt> = 31 && mottatt <= 40) // Sving til høyre {int PWM_Value = kart (mottatt, 31, 40, min_hastighet, maks_hastighet); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Arbeid av Arduino RC Car
Når du er ferdig med koden, laster du den opp til pro-mini-kortet. Fjern batteriet og kortet ditt gjennom FTDI-modulen for testing. Start koden din, åpne serielt batteri, og du bør motta verdien fra joystick-modulen din. Koble til batteriet, og motorene dine bør også begynne å rotere.
Fullstendig bearbeiding av prosjektet finner du i videoen som er lenket nederst på denne siden. Hvis du har spørsmål, la dem være i kommentarfeltet. Du kan også bruke forumene våre for å få raske svar på andre tekniske spørsmål.