- Kärnlös DC-motor för RC-bilar
- Material som krävs
- RF-joystick för RC-bil med Arduino
- Arduino RC Car Circuit Diagram
- Tillverkar PCB för Arduino RC Car
- Montering av kretskortet
- 3D-utskriftshjul och motorfäste
- Programmering av Arduino
- Arbetar med Arduino RC Car
RC-bilar är alltid roliga att spela med, jag är personligen ett stort fan av dessa fjärrstyrda bilar och har spelat (fortfarande) med dem i stor utsträckning. De flesta av dessa bilar ger idag ett enormt vridmoment för att hantera grova terränger, men det finns något som alltid släpar efter, dess hastighet !!.. Så i det här projektet kommer vi att bygga en helt annan typ av RC-bil med Arduino, den viktigaste Målet med den här bilen är att uppnå maximal hastighet, därför bestämde jag mig för att testa den kärnlösa DC-motorn för en RC-bil. Dessa motorer används normalt i drönare och är klassade för 39000 RPM som borde vara mer än tillräckligt för att släcka vår törst. Bilen kommer att drivas med ett litet litiumbatteri och kan fjärrstyras med nRF24L01 RF-modulen. Alternativt, om du letar efter något enkelt, kan du också kolla in detta Simple RF Robot och Raspberry Pi Bluetooth Car-projekt.
Kärnlös DC-motor för RC-bilar
Den kärnlösa likströmsmotorn som används i detta projekt visas på bilden nedan. Du hittar dem enkelt eftersom de används i stor utsträckning i minidroner. Leta bara efter 8520 Magnetic Micro Coreless Motor så hittar du dessa.
Nu finns det vissa nackdelar med att använda likströmsmotorer för en RC-bil. Det första är att de ger mycket lågt startmoment, därför bör vår RC-bil vara så lätt som möjligt. Det är därför jag bestämde mig för att bygga hela bilen ovanpå ett kretskort med hjälp av SMD-komponenter och minska kortstorleken så mycket som möjligt. Det andra problemet är dess höga hastighet, 39000 RPM (RPM för axeln) är svår att hantera, så vi behöver en hastighetskontrollkrets på Arduino-sidan, som vi byggde med en MOSFET. Det tredje är att dessa motorer kommer att drivas av ett enda litiumpolymerbatteri med en driftspänning mellan 3,6V och 4,2V, så vi måste utforma vår krets för att fungera på 3,3V. Det är därför vi har använt en 3,3 V Arduino Pro minisom hjärnan i vår RC-bil. Med dessa problem ordnade, låt oss titta på det material som krävs för att bygga detta projekt.
Material som krävs
- 3,3 V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2st
- Joystick-modul
- SI2302 MOSFET
- 1N5819 Diod
- Kärnlösa BLDC-motorer
- AMS1117-3.3V
- Litiumpolymerbatteri
- Motstånd, kondensatorer,
- Anslutande ledningar
RF-joystick för RC-bil med Arduino
Som tidigare nämnts fjärrstyrs RC-bilen med en RF-joystick. Denna joystick kommer också att byggas med hjälp av en Arduino tillsammans med en nRF24L01 RF-modul, vi har också använt joystickmodulen för att styra vår RC i önskad riktning. Om du är helt ny på dessa två moduler kan du överväga att läsa Interfacing Arduino med nRF24L01 och Interfacing Joystick med Arduino-artiklar för att lära dig hur de fungerar och hur du använder dem. För att bygga din Arduino RF-fjärrstyrspak kan du följa kretsschemat nedan.
RF-joystickkretsen kan drivas med hjälp av USB-porten på nano-kortet. NRF24L01-modulen fungerar endast på 3,3 V, därför har vi använt 3,3 V-stiftet på Arduino. Jag har konstruerat kretsen på en bräda och det ser ut som nedan, du kan också skapa ett kretskort för detta om det behövs.
Den Arduino Kod för RF Joystick krets är ganska enkelt, måste vi läsa X-värdet och Y-värdet från Joystick och skicka den till radiostyrd bil genom nRF24L01. Hela programmet för denna krets hittar du längst ner på denna sida. Vi kommer inte in på förklaringen av det eftersom vi redan har diskuterat det i gränssnittsprojektlänken som delas ovan.
Arduino RC Car Circuit Diagram
Det fullständiga kretsschemat för vår fjärrstyrda Arduino Car visas nedan. Kretsschemat innehåller också ett alternativ att lägga till två TCRT5000 IR-moduler i vår bil. Detta planerades för att göra det möjligt för vår RC-bil att fungera som en linjeföljande robot så att den kan arbeta på egen hand utan att styras externt. För detta projekts skull kommer vi dock inte att koncentrera oss på det, håll ögonen öppna för en annan projekthandledning där vi kommer att försöka bygga "Fastest Line Follower Robot". Jag har kombinerat båda kretsarna på en enda kretskort för att göra det enkelt att bygga, du kan ignorera IR-sensorn och Op-amp-sektionen för detta projekt.
RC-bilen drivs av Lipo-batteriet anslutet till terminal P1. Den AMS117-3.3V används för att reglera 3.3V för vår nRF24L01 och vår pro-mini-board. Vi kan också driva Arduino-kortet direkt på den råa stiftet men den inbyggda 3,3 V-spänningsregulatorn på pro mini kommer inte att kunna leverera tillräckligt med ström till våra RF-moduler, därför har vi använt en extern spänningsregulator.
För att köra våra två BLDC-motorer har vi använt två SI2302 MOSFET. Det är viktigt att se till att dessa MOSFETS kan drivas av 3.3V. Om du inte hittar exakt samma artikelnummer kan du leta efter motsvarande MOSFET med överföringsegenskaperna nedan
Motorerna kan förbruka toppström så högt som 7A (kontinuerligt testades för att vara 3A med belastning), därför skulle MOSFET-avloppsströmmen vara 7A eller mer och den ska sätta på helt vid 3,3V. Som du kan se här kan MOSFET som vi valde ge 10A även vid 2,25V så det är ett perfekt val.
Tillverkar PCB för Arduino RC Car
Det roliga med att bygga detta projekt var PCB-utvecklingen. PCB: erna här bildar inte bara kretsen utan fungerar också som ett chassi för vår bil, så vi planerade en bil som ser ut som den med alternativ för att enkelt montera våra motorer. Du kan också prova att designa din egen kretskort med kretsen ovan eller så kan du använda min kretskortsdesign som ser ut så här nedan när den är klar.
Som du kan se har jag designat kretskortet för att enkelt montera batteri, motor och andra komponenter. Du kan ladda ner Gerber-filen för denna PCB från länken. När du är redo med Gerber-filen är det dags att få den tillverkad. Följ stegen nedan för att enkelt få dina PCB: er gjort av PCBGOGO
Steg 1: Gå in på www.pcbgogo.com, registrera dig om det är första gången. På fliken PCB Prototype anger du måtten på din PCB, antalet lager och antalet PCB du behöver. Mitt kretskort är 80 cm × 80 cm så fliken ser ut så här nedan.
Steg 2: Fortsätt genom att klicka på knappen Citera nu . Du kommer till en sida där du kan ställa in några ytterligare parametrar om det behövs, till exempel det material som används spåravstånd etc. Men vanligtvis fungerar standardvärdena bra. Det enda som vi måste tänka på här är pris och tid. Som du kan se är byggtiden bara 2-3 dagar och det kostar bara 5 USD för vår PSB. Du kan sedan välja en föredragen leveransmetod baserat på dina krav.
Steg 3: Det sista steget är att ladda upp Gerber-filen och fortsätta med betalningen. För att säkerställa att processen är smidig verifierar PCBGOGO om din Gerber-fil är giltig innan du fortsätter med betalningen. På så sätt kan du vara säker på att din PCB är tillverkningsvänlig och når dig som engagerad.
Montering av kretskortet
Efter att tavlan beställdes nådde den mig efter några dagar, även om kurir i en snyggt märkt välpackad låda och som alltid var PCB-kvaliteten fantastisk. Jag delar några bilder av brädorna nedan så att du kan bedöma.
Jag slog på min lödstång och började montera brädet. Eftersom fotavtryck, dynor, vias och silkscreen är perfekta av rätt form och storlek hade jag inga problem att montera kortet. Brädet var klart på bara tio minuter från uppackningen.
Några bilder av brädet efter lödning visas nedan.
3D-utskriftshjul och motorfäste
Som du kanske har märkt i bilden ovan, måste vi 3D vårt motorfäste och hjul för roboten. Om du har använt vår PCB-Gerber-fil som delas ovan, kan du lika gärna använda en 3D-modell genom att ladda ner den från den här länken.
Jag har använt Cura för att skära mina modeller och skrivit ut dem med Tevo Terantuala utan stöd och 0% fyllning för att minska vikten. Du kan ändra inställningen som passar vår skrivare. Eftersom motorerna roterar mycket snabbt tyckte jag att det var svårt att utforma ett hjul som passar tätt och tätt mot motoraxeln. Därför bestämde jag mig för att använda drönarklingorna inuti hjulet som du kan se nedan
Jag tyckte att detta var mer pålitligt och robust, men experimentera med olika hjuldesigner och låt mig veta i kommentarsektionen vad som fungerade för dig.
Programmering av Arduino
Hela programmet (både Arduino nano och pro mini) för detta projekt finns längst ner på denna sida. Förklaringen till ditt RC-program är som följer
Vi startar programmet med att inkludera den önskade rubrikfilen. Observera att nRF24l01-modulen kräver att ett bibliotek läggs till i din Arduino IDE, du kan ladda ner RF24-biblioteket från Github med den här länken. Bortsett från det har vi redan definierat minsta hastighet och högsta hastighet för vår robot. Lägsta och högsta intervall är 0 till 1024 respektive.
#define min_hastighet 200 #define max_hastighet 800 # inkludera
Sedan inuti installationsfunktionen initialiserar vi vår nRF24L01-modul. Vi har använt de 115 banden eftersom den inte är överbelastad och har ställt in modulen att fungera med låg effekt, du kan också spela med dessa inställningar.
ogiltig installation () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 band ovanför WIFI signalerar myRadio.setPALevel (RF24_PA_MIN); // MIN kraft låg raseri myRadio.setDataRate (RF24_250KBPS); // Minsta hastighet}
Nästa i huvudslingfunktionen kommer vi bara att utföra ReadData-funktionen med vilken vi hela tiden kommer att läsa värdet som skickas från vår sändar joystick-modul. Observera att röradressen som nämns i programmet ska vara densamma som den som nämns i sändarprogrammet. Vi har också skrivit ut det värde vi får för felsökningsändamål. När värdet har lästs framgångsrikt kommer vi att utföra Control Car-funktionen för att styra vår RC-bil baserat på det värde som erhållits från
Rf-modulen.
ogiltig ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Vilket rör som ska läsas, 40-bitars Adress myRadio.startListening (); // Stoppa sändningen och börja granska om (myRadio.available ()) {medan (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nMottagna:"); Serial.println (data.msg); mottagen = data.msg; Control_Car (); }}
Inuti Control Car-funktionen styr vi motorer som är anslutna till PWM-stiften med den analoga skrivfunktionen. I vårt sändarprogram har vi konverterat de analoga värdena från A0 och A1-stift av Nano till 1 till 10, 11 till 20, 21 till 30 och 31 till 40 för att styra bilen i framåt, bakåt, vänster respektive höger. Nedanstående program används för att styra roboten framåt
if (mottaget> = 1 && mottaget <= 10) // Gå framåt {int PWM_Value = karta (mottaget, 1, 10, min_hastighet, max_hastighet); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
På samma sätt kan vi också skriva ytterligare tre funktioner för bakåt-, vänster- och högerstyrning som visas nedan.
if (mottaget> = 11 && mottaget <= 20) // Bryt {int PWM_Value = karta (mottaget, 11, 20, min_hastighet, max_hastighet); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } om (mottagen> = 21 && mottagen <= 30) // Sväng vänster {int PWM_Value = karta (mottagen, 21, 30, min_hastighet, max_hastighet); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } om (mottagen> = 31 && mottagen <= 40) // Sväng höger {int PWM_Value = karta (mottagen, 31, 40, min_hastighet, max_hastighet); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Arbetar med Arduino RC Car
När du är klar med koden laddar du upp den till ditt pro-mini-kort. Ta bort batteriet och kortet via FTDI-modulen för testning. Starta din kod, öppna seriellt batteri och du bör få värdet från din sändarens joystickmodul. Anslut ditt batteri och dina motorer bör också börja rotera.
Det fullständiga arbetet med projektet finns i den länkade videon längst ner på denna sida. Om du har några frågor lämnar du dem i kommentarsektionen. Du kan också använda våra forum för att få snabba svar på dina andra tekniska frågor.