- Bezdušový stejnosměrný motor pro RC auta
- Potřebné materiály
- RF Joystick pro RC auto pomocí Arduina
- Schéma zapojení Arduino RC automobilu
- Výroba PCB pro Arduino RC auto
- Montáž desky plošných spojů
- Kola pro 3D tisk a držák motoru
- Programování Arduina
- Práce s Arduino RC Car
RC auta jsou vždy zábavná, já osobně jsem velkým fanouškem těchto dálkově ovládaných automobilů a hodně jsem s nimi hrál (stále dělá). Většina z těchto vozů dnes poskytuje obrovský točivý moment, aby zvládla drsné terény, ale je tu něco, co vždy zaostávalo, jeho rychlost !!.. Takže v tomto projektu postavíme zcela odlišný typ RC automobilu pomocí Arduina, hlavního cílem tohoto vozu je dosáhnout maximální rychlosti, proto jsem se rozhodl vyzkoušet stejnosměrný motor bez jádra pro RC auto. Tyto motory se běžně používají v dronech a jsou dimenzovány na 39000 ot / min což by mělo být víc než dost, abychom uhasili naši rychlostní žízeň. Vůz bude napájen malou lithiovou baterií a lze jej dálkově ovládat pomocí RF modulu nRF24L01. Alternativně, pokud hledáte něco jednoduchého, můžete také zkontrolovat tyto projekty Simple RF Robot a Raspberry Pi Bluetooth Car.
Bezdušový stejnosměrný motor pro RC auta
Coreless DC motor, který je použit v tomto projektu je znázorněno na obrázku níže. Najdete je snadno, protože se běžně používají v mini dronech. Stačí se podívat na magnetický mikroskopický motor 8520 a tyto najdete.
Nyní existují určité nevýhody používání stejnosměrných motorů pro RC auto. První věc je, že poskytují velmi nízký počáteční točivý moment, proto by naše RC auto mělo být co nejlehčí. To je důvod, proč jsem se rozhodl postavit celé auto na desku plošných spojů pomocí SMD komponent a co nejvíce zmenšit velikost desky. Druhým problémem je jeho vysoká rychlost, 39000 ot./min (ot./min. Hřídele) je obtížné zvládnout, takže potřebujeme obvod řízení rychlosti na straně Arduino, který jsme postavili pomocí MOSFET. Třetí věc je, že tyto motory budou napájeny jednou lithium-polymerovou baterií s provozním napětím mezi 3,6 V až 4,2 V, takže musíme navrhnout náš obvod tak, aby fungoval na 3,3 V. Proto jsme použili 3,3 V Arduino Pro minijako mozek našeho RC vozu. Po vyřešení těchto problémů se podívejme na materiály potřebné k sestavení tohoto projektu.
Potřebné materiály
- 3,3 V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2ks
- Modul joysticku
- SI2302 MOSFET
- Dioda 1N5819
- Bezdušové BLDC motory
- AMS1117-3,3V
- Lithium-polymerová baterie
- Rezistory, Kondenzátory,
- Připojovací vodiče
RF Joystick pro RC auto pomocí Arduina
Jak již bylo zmíněno, RC auto bude ovládáno na dálku pomocí RF Joysticku. Tento joystick bude také postaven pomocí Arduina spolu s RF modulem nRF24L01, modul Joystick jsme také použili k ovládání našeho RC v požadovaném směru. Pokud jste v těchto dvou modulech úplně noví, můžete si přečíst články Interfacing Arduino s nRF24L01 a Interfacing Joystick with Arduino, kde se dozvíte, jak fungují a jak je používat. Chcete-li vytvořit svůj dálkový joystick Arduino RF, můžete postupovat podle níže uvedeného schématu zapojení.
Obvod RF Joystick lze napájet pomocí USB portu nano desky. Modul nRF24L01 pracuje pouze na 3,3 V, proto jsme na Arduinu použili pin 3,3 V. Zkonstruoval jsem obvod na prkénku a vypadá to níže, můžete také v případě potřeby vytvořit PCB.
Arduino Kód pro RF Joystick okruh je velmi jednoduchý, musíme číst hodnoty X a hodnota Y z naší Joystick a poslat ji do auta RC přes nRF24L01. Kompletní program pro tento okruh najdete ve spodní části této stránky. Nebudeme se zabývat vysvětlením toho, protože jsme o tom již hovořili ve výše uvedeném odkazu projektu rozhraní.
Schéma zapojení Arduino RC automobilu
Kompletní schéma zapojení pro naše dálkově ovládané auto Arduino je uvedeno níže. Schéma zapojení také zahrnuje možnost přidat do našeho vozu dva infračervené moduly TCRT5000. To bylo plánováno tak, aby umožnilo našemu RC vozu pracovat jako robot sledující linku, aby mohl pracovat samostatně, aniž by byl externě ovládán. Kvůli tomuto projektu se na něj nebudeme soustředit, zůstaňte naladěni na další projektový tutoriál, ve kterém se pokusíme vytvořit „Fastest Line Follower Robot“. Zkombinoval jsem oba obvody na jedné desce plošných spojů pro snadné sestavení, pro tento projekt můžete ignorovat IR senzor a sekci Op-amp.
Zloženie: 100% bavlna.RC auto bude napájeno z baterie Lipo připojené ke svorce P1. AMS117-3.3V se používá k regulaci 3.3V pro naše nRF24L01 a naší pro-mini-palubě. Můžeme také napájet desku Arduino přímo na surovém kolíku, ale palubní regulátor napětí 3,3 V na pro mini nebude schopen dodávat dostatek proudu do našich RF modulů, proto jsme použili externí regulátor napětí.
K pohonu našich dvou BLDC motorů jsme použili dva SI2302 MOSFETy. Je důležité zajistit, aby tyto MOSFETY mohly být poháněny 3.3V. Pokud nemůžete najít přesně stejné číslo dílu, můžete hledat ekvivalentní MOSFETy s níže uvedenými charakteristikami přenosu
Motory mohou odebírat špičkový proud až 7A (nepřetržitý byl testován na 3A se zátěží), proto by měl být odtokový proud MOSFET 7A nebo více a měl by se zcela zapnout na 3,3V. Jak vidíte zde, MOSFET, který jsme vybrali, může poskytnout 10A i při 2,25V, takže je to ideální volba.
Výroba PCB pro Arduino RC auto
Zábavnou částí stavby tohoto projektu byl vývoj PCB. Desky plošných spojů zde nejen tvoří obvod, ale také fungují jako podvozek pro naše auto, takže jsme naplánovali vůz, který by vypadal jako tvar s možností snadné montáže našich motorů. Můžete také zkusit navrhnout vlastní desku plošných spojů pomocí výše uvedeného obvodu nebo můžete použít můj design desky plošných spojů, který po dokončení vypadá takto níže.
Jak vidíte, navrhl jsem desku plošných spojů pro snadnou montáž baterie, motoru a dalších komponent. Soubor Gerber pro tuto desku plošných spojů si můžete stáhnout z odkazu. Jakmile jste připraveni na soubor Gerber, je čas si jej vyrobit. Chcete-li, aby vaše PCB byly snadno proveditelné pomocí PCBGOGO, postupujte podle následujících kroků
Krok 1: Vstupte na www.pcbgogo.com, zaregistrujte se, pokud jste poprvé. Poté na kartě Prototyp desky plošných spojů zadejte rozměry desky plošných spojů, počet vrstev a požadovaný počet desek plošných spojů. Moje deska plošných spojů je 80 cm × 80 cm, takže karta vypadá takto níže.
Krok 2: Pokračujte kliknutím na tlačítko Citovat nyní . Budete přesměrováni na stránku, kde můžete v případě potřeby nastavit několik dalších parametrů, jako je rozteč stopy použitého materiálu atd. Ale většinou budou výchozí hodnoty fungovat dobře. Jediná věc, kterou zde musíme vzít v úvahu, je cena a čas. Jak vidíte, doba sestavení je pouze 2–3 dny a stojí jen 5 $ za náš PSB. Poté můžete vybrat preferovaný způsob dopravy na základě vašich požadavků.
Krok 3: Posledním krokem je nahrání souboru Gerber a pokračování platby. Před pokračováním v platbě PCBGOGO ověří, zda je váš soubor Gerber platný, aby byl proces hladký. Tímto způsobem si můžete být jisti, že vaše deska plošných spojů je přátelská k výrobě a dostane se k vám jako oddaná.
Montáž desky plošných spojů
Poté, co byla deska objednána, dorazila ke mně po několika dnech, i když kurýr v úhledně označené dobře zabalené krabici a jako vždy byla kvalita desky plošných spojů úžasná. Sdílím několik obrázků z níže uvedených tabulí, abyste je mohli posoudit.
Zapnul jsem pájecí tyč a začal montovat desku. Vzhledem k tomu, že stopy, podložky, průchody a sítotisk jsou perfektního správného tvaru a velikosti, neměl jsem problém sestavit desku. Deska byla hotová za pouhých 10 minut od vybalení krabice.
Níže je uvedeno několik obrázků desky po pájení.
Kola pro 3D tisk a držák motoru
Jak jste si mohli všimnout na výše uvedeném obrázku, potřebujeme 3D uchycení motoru a kola robota provést 3D. Pokud jste použili náš soubor PCB Gerber sdílený výše, můžete také použít 3D model stažením z tohoto univerzálního odkazu.
Použil jsem Curu k rozřezání svých modelů a vytiskl je pomocí Tevo Terantuala bez podpěr a 0% výplně pro snížení hmotnosti. Můžete změnit nastavení vhodné pro naši tiskárnu. Vzhledem k tomu, že se motory otáčejí velmi rychle, považoval jsem za těžké navrhnout kolo, které bude těsně a těsně přiléhat k hřídeli motoru. Proto jsem se rozhodl použít lopatky dronů uvnitř kola, jak vidíte níže
Zjistil jsem, že je to spolehlivější a robustnější, ale experimentujte s různými konstrukcemi kol a dejte mi vědět v sekci komentářů, co pro vás fungovalo.
Programování Arduina
Kompletní program (Arduino nano i pro mini) pro tento projekt najdete ve spodní části této stránky. Vysvětlení vašeho RC programu je následující
Program spustíme zahrnutím požadovaného souboru záhlaví. Všimněte si, že modul nRF24l01 vyžaduje přidání knihovny do vašeho Arduino IDE, můžete si pomocí tohoto odkazu stáhnout knihovnu RF24 z Githubu. Kromě toho jsme pro našeho robota již definovali minimální a maximální rychlost. Minimální a maximální rozsah je 0 až 1024.
#define min_speed 200 #define max_speed 800 #include
Potom uvnitř funkce nastavení inicializujeme náš modul nRF24L01. Použili jsme 115 pásem, protože nejsou přetížené a nastavili jsme modul tak, aby fungoval s nízkou spotřebou, můžete si také s těmito nastaveními pohrát.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 pásem nad WIFI signály myRadio.setPALevel (RF24_PA_MIN); // MIN nízká spotřeba energie myRadio.setDataRate (RF24_250KBPS); // Minimální rychlost}
Dále ve funkci hlavní smyčky provedeme pouze funkci ReadData, pomocí které budeme neustále číst hodnotu odeslanou z našeho modulu joysticku Transmitter. Pamatujte, že adresa kanálu uvedená v programu by měla být stejná jako adresa uvedená v programu vysílače. Také jsme vytiskli hodnotu, kterou dostáváme pro účely ladění. Jakmile je hodnota úspěšně načtena, provedeme funkci Control Car pro ovládání našeho RC vozu na základě hodnoty přijaté z
modulu Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Který kanál ke čtení, 40 bitů Adresa myRadio.startListening (); // Přestaňte vysílat a spusťte Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nReceived:"); Serial.println (data.msg); obdrženo = data.msg; Control_Car (); }}
Uvnitř funkce Control Car budeme ovládat motory připojené k pinům PWM pomocí funkce analogového zápisu. V našem programu vysílače jsme převedli analogové hodnoty z pinů A0 a A1 na Nano na 1 až 10, 11 až 20, 21 až 30 a 31 až 40 pro ovládání vozu vpřed, vzad, vlevo a vpravo. Níže uvedený program slouží k ovládání robota dopředu
if (přijato> = 1 && přijato <= 10) // Přesunout vpřed {int PWM_Value = mapa (přijato, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Podobně můžeme také napsat tři další funkce pro zpětné, levé a pravé ovládání, jak je znázorněno níže.
if (přijato> = 11 && přijato <= 20) // Break {int PWM_Value = mapa (přijato, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (přijato> = 21 && přijato <= 30) // Odbočit doleva {int PWM_Value = mapa (přijato, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (přijato> = 31 && přijato <= 40) // Odbočit doprava {int PWM_Value = mapa (přijato, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Práce s Arduino RC Car
Až budete hotovi s kódem, nahrajte jej na svou pro-mini-desku. Vyjměte baterii a desku pomocí modulu FTDI pro testování. Spusťte kód, otevřete sériovou baterii a měli byste obdržet hodnotu z modulu vysílače Joystick. Připojte baterii a vaše motory by se také měly začít otáčet.
Kompletní fungování projektu najdete ve videu, na které odkazujete ve spodní části této stránky. Pokud máte nějaké dotazy, nechte je v sekci komentářů. Můžete také použít naše fóra a získat rychlé odpovědi na další technické dotazy.