- Mag nélküli egyenáramú motor RC autókhoz
- Szükséges anyagok
- RF joystick RC autóhoz Arduino segítségével
- Arduino RC autó áramköri rajz
- NYÁK gyártása Arduino RC autóhoz
- A NYÁK összeállítása
- 3D nyomtatás kerekek és motor tartó
- Az Arduino programozása
- Az Arduino RC autó működése
Az RC autókkal mindig szórakoztató játék, én személy szerint nagy rajongója vagyok ezeknek a távirányítós autóknak, és sokat játszottam (még mindig) velük. Ezen autók többsége ma hatalmas nyomatékot nyújt a terepen, de van valami, ami mindig lemaradt, annak sebessége !!.. Tehát ebben a projektben egy teljesen más típusú RC autót fogunk építeni, a fő Arduino felhasználásával. Ennek az autónak a célja a maximális sebesség elérése, ezért úgy döntöttem, hogy kipróbálom egy RC autó nélküli mag nélküli egyenáramú motort. Ezeket a motorokat általában drónokban használják, és 39000 fordulat / perc névleges értékűek aminek többnek kell lennie a gyors szomjúságunk csillapításához. Az autó kis lítium akkumulátorral működik, és távvezérelhető az nRF24L01 RF modul segítségével. Alternatív megoldásként, ha valami egyszerűt keres, ellenőrizheti ezt az egyszerű RF robot és Raspberry Pi Bluetooth autó projekteket is.
Mag nélküli egyenáramú motor RC autókhoz
A projektben használt mag nélküli egyenáramú motor az alábbi képen látható. Könnyen megtalálhatja őket, mivel széles körben használják a mini drónokban. Csak keresse meg a 8520 mágneses mikrotest nélküli motort, és megtalálja ezeket.
Vannak bizonyos hátrányai az egyenáramú motorok RC autóhoz való használatának. Az első dolog az, hogy nagyon alacsony indulási nyomatékot biztosítanak, ezért RC autónknak a lehető legkönnyebbnek kell lennie. Ezért döntöttem úgy, hogy az egész autót egy NYÁK tetejére építem SMD alkatrészek felhasználásával, és a lehető legnagyobb mértékben csökkentem a tábla méretét. A második probléma a nagy sebessége, a 39000 / perc (a tengely fordulatszáma) nehezen kezelhető, ezért szükségünk van egy sebességszabályozó áramkörre az Arduino oldalán, amelyet egy MOSFET segítségével építettünk fel. A harmadik dolog az, hogy ezeket a motorokat egyetlen lítium-polimer akkumulátor táplálja, amelynek üzemi feszültsége 3,6 V és 4,2 V között van, ezért meg kell terveznünk áramkörünket, hogy 3,3 V feszültségen működjön. Ezért használtunk egy 3,3 V-os Arduino Pro mini-tmint RC autónk agya. Miután ezeket a problémákat rendezték, nézzük meg a projekt elkészítéséhez szükséges anyagokat.
Szükséges anyagok
- 3,3 V-os Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2db
- Joystick modul
- SI2302 MOSFET
- 1N5819 Dióda
- Mag nélküli BLDC motorok
- AMS1117-3.3V
- Lítium polimer akkumulátor
- Ellenállások, kondenzátorok,
- Csatlakozó vezetékek
RF joystick RC autóhoz Arduino segítségével
Amint azt korábban említettük, az RC autót távolról lehet vezérelni egy RF Joystick segítségével. Ezt a joystickot egy Arduino és egy nRF24L01 RF modul együttesen is felépítik, a Joystick modult is használtuk az RC-vel a kívánt irányba. Ha Ön teljesen új a két modul előtt, fontolja meg az Interfacing Arduino és az nRF24L01 közötti, valamint az Interfacing Joystick és Arduino cikkek elolvasását, hogy megtudja, hogyan működnek és hogyan kell használni őket. Az Arduino RF Remote Joystick felépítéséhez kövesse az alábbi áramköri ábrát.
Az RF Joystick áramkört a nano kártya USB portjával lehet táplálni. Az nRF24L01 modul csak 3,3 V-on működik, ezért az Arduino-n használtuk a 3,3 V-os tűt. Az áramkört kenyérlemezre építettem, és úgy néz ki, mint az alábbiakban, ehhez szükség esetén létrehozhat egy NYÁK-t is.
Az RF Joystick áramkör Arduino kódja meglehetősen egyszerű, le kell olvasnunk az X és Y értékeket a joystickunkról, és el kell küldenünk az RC autónak az nRF24L01-n keresztül. Az áramkör teljes programja az oldal alján található. Ennek magyarázatára nem térünk ki, mivel a fentiekben megosztott interfész projekt linken már tárgyaltuk.
Arduino RC autó áramköri rajz
Az alábbiakban bemutatjuk a távirányítású Arduino autó teljes kapcsolási rajzát. A kapcsolási rajz tartalmaz egy lehetőséget arra is, hogy két TCRT5000 IR modult adjunk az autónkhoz. Ezt úgy tervezték, hogy RC-kocsink vonalkövető robotként működhessen, így önállóan is működhet anélkül, hogy kívülről irányítanák. A projekt kedvéért azonban nem fogunk erre koncentrálni, maradjon egy másik projekt bemutatón, amelyben megpróbáljuk felépíteni a „leggyorsabb vonalkövető robotot”. Az építés megkönnyítése érdekében mindkét áramkört egyetlen nyomtatott áramköri lapon egyesítettem. A projektnél figyelmen kívül hagyhatja az IR érzékelőt és az Op-amp részt.
AAz RC autót a P1 terminálhoz csatlakoztatott Lipo akkumulátor táplálja. Az AMS117-3,3V az nRF24L01 és a pro-mini-alaplapunk 3,3 V-os szabályozására szolgál. Az Arduino kártyát közvetlenül a nyers csapra is táplálhatjuk, de a pro mini beépített 3,3 V-os feszültségszabályozó nem lesz képes elegendő áramot táplálni az RF moduljainkba, ezért külső feszültségszabályozót használtunk.
Két BLDC motorunk meghajtásához két SI2302 MOSFET-et használtunk. Fontos, hogy megbizonyosodjon arról, hogy ezeket a MOSFET-eket 3,3 V-os vezérléssel működtetheti. Ha nem találja pontosan ugyanazt a cikkszámot, akkor keressen egyenértékű MOSFET-eket az alábbi átviteli jellemzőkkel
A motorok csúcsáramot akár 7A-ig is el tudnak fogyasztani (a terhelést folytatólagosan 3A-nak tesztelték), ezért a MOSFET lefolyó áramának legalább 7A-nak kell lennie, és teljesen be kell kapcsolnia 3,3 V-on. Amint itt láthatja, a kiválasztott MOSFET 10A-t képes biztosítani még 2,25 V feszültség mellett is, így ideális választás.
NYÁK gyártása Arduino RC autóhoz
A projekt építésének szórakoztató része a PCB fejlesztés volt. Az itt található NYÁK nemcsak az áramkört alkotja, hanem alvázként is funkcionál az autónkban, ezért terveztünk egy olyan autót, amely formát keres számára, opcióival a motorjaink egyszerű felszerelésére. Megpróbálhatja megtervezni a saját NYÁK-ját is a fenti áramkör használatával, vagy használhatja a NYÁK-tervemet, amely az alábbiak szerint néz ki, ha elkészült.
Amint láthatja, úgy terveztem a NYÁK-t, hogy könnyen felszerelje az akkumulátort, a motort és más alkatrészeket. A linkről letöltheti a nyomtatott áramköri lap Gerber fájlját. Ha készen áll a Gerber fájlra, ideje elkészíteni. Kövesse az alábbi lépéseket, hogy a NYÁK-kat könnyen elvégezhesse a PCBGOGO
1. lépés: Keresse fel a www.pcbgogo.com oldalt, regisztráljon, ha ez az első alkalom. Ezután a NYÁK prototípus fülön adja meg a NYÁK méreteit, a rétegek számát és a szükséges NYÁK számát. A nyomtatott áramköri lapom 80 cm × 80 cm, így a fül az alábbiak szerint néz ki.
2. lépés: Folytassa az Idézés most gombra kattintva. Egy olyan oldalra kerül, ahol szükség esetén néhány további paramétert megadhat, például a használt anyag sávközét stb. De többnyire az alapértelmezett értékek működnek jól. Az egyetlen dolog, amit itt figyelembe kell vennünk, az az ár és az idő. Amint láthatja, az építési idő csak 2-3 nap, és csak 5 dollárba kerül a PSB-nknek. Ezután kiválaszthatja az igényeinek megfelelő preferált szállítási módot.
3. lépés: Az utolsó lépés a Gerber fájl feltöltése és a fizetés folytatása. Annak érdekében, hogy a folyamat zökkenőmentes legyen, a fizetés folytatása előtt a PCBGOGO ellenőrzi, hogy Gerber fájlja érvényes-e. Így biztos lehet abban, hogy a NYÁK gyártásbarát, és elkötelezetten eljut hozzád.
A NYÁK összeállítása
A tábla megrendelése után néhány nap múlva eljutott hozzám, bár futár egy szépen címkézett, jól csomagolt dobozban, és mint mindig, a PCB minősége fantasztikus volt. Néhány képet megosztok az alábbi táblákról, hogy megítélhessétek.
Bekapcsoltam a forrasztórudat, és elkezdtem összeszerelni a táblát. Mivel a lábnyomok, a betétek, az üvegcsék és a selyemképernyő tökéletesek, megfelelő alakúak és méretűek, nem okozott gondot a tábla összeszerelése. A tábla a doboz kibontásától számított 10 perc alatt készen állt.
Néhány kép a tábláról forrasztás után látható alább.
3D nyomtatás kerekek és motor tartó
Amint a fenti képen észrevehette, 3D-s motortartónkat és kerekeinket kell a robothoz rendelnünk. Ha a fentiekben megosztott NYÁK Gerber fájlunkat használta, akkor egy 3D-s modellt is használhat, ha letölti erről a tárgyról.
A Cura segítségével szeleteltem a modelljeimet, és a Tevo Terantuala segítségével nyomtattam őket, támaszok nélkül és 0% töltettel a súly csökkentése érdekében. Módosíthatja a nyomtatónknak megfelelő beállítást. Mivel a motorok nagyon gyorsan forognak, nehéznek láttam olyan kereket tervezni, amelyek szorosan illeszkednek a motor tengelyéhez. Ezért úgy döntöttem, hogy a drónlapátokat használom a kerék belsejében, amint az alább látható
Megállapítottam, hogy ez megbízhatóbb és masszívabb, azonban végezzen kísérleteket a különböző kerékkialakításokkal, és a megjegyzés részben tudassa velem, mi működött az Ön számára.
Az Arduino programozása
A projekt teljes programja (az Arduino nano és a pro mini egyaránt) az oldal alján található. RC programjának magyarázata a következő
A programot a szükséges fejlécfájl hozzáadásával indítjuk. Ne feledje, hogy az nRF24l01 modulhoz könyvtárat kell hozzáadni az Arduino IDE-hez. Az RF24 könyvtárat a Github webhelyről töltheti le ezen a linken. Ettől eltekintve már meghatároztuk robotunk minimális sebességét és maximális sebességét. A minimális és a maximális tartomány 0-1024.
#define min_speed 200 #define max_speed 800 #include
Ezután a beállítási funkción belül inicializáljuk az nRF24L01 modulunkat. A 115 sávot használtuk, mivel nincs túlterhelve, és a modult úgy állítottuk be, hogy alacsony energiával működjön. Ezekkel a beállításokkal is játszhat.
void setup () {Soros.kezdés (9600); myRadio.begin (); myRadio.setChannel (115); // 115 sáv feletti WIFI jelek myRadio.setPALevel (RF24_PA_MIN); // MIN teljesítmény alacsony düh myRadio.setDataRate (RF24_250KBPS); // Minimális sebesség}
Ezután a fő hurok funkcióban csak a ReadData függvényt hajtjuk végre, amellyel folyamatosan olvassuk az adó adó joystick moduljából küldött értéket. Vegye figyelembe, hogy a programban említett csőcímnek meg kell egyeznie az adóprogramban megadottal. Ki is nyomtattuk az értéket, amelyet hibakeresés céljából kaptunk. Miután az értéket sikeresen leolvastuk, végrehajtjuk a Control Car funkciót, hogy az
Rf modultól kapott érték alapján irányítsuk RC autónkat.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Melyik pipát kell olvasni, 40 bites cím myRadio.startListening (); // Állítsa le az átírást és indítsa el a Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Soros.nyomtatás ("\ nFogadott:"); Soros.println (data.msg); kapott = adatok.msg; Control_Car (); }}
A Control Car funkción belül a PWM csapokhoz csatlakoztatott motorokat fogjuk vezérelni az analóg írási funkció segítségével. Adóprogramunkban átalakítottuk az analóg értékeket a Nano A0 és A1 tűiről 1-re 10-re, 11-ről 20-ra, 21-ről 30-ra és 31-ről 40-re az autó előre, hátra, balra és jobbra történő irányításához. Az alábbi program a robot előre irányítására szolgál
if (kapott> = 1 && kapott <= 10) // Haladás előre {int PWM_Value = térkép (kapott, 1, 10, min_sebesség, max_sebesség); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
Hasonlóképpen írhatunk még három függvényt a hátramenet, a bal és a jobb irányításához, az alábbiak szerint.
if (kapott> = 11 && kapott <= 20) // Break {int PWM_Value = map (kapott, 11, 20, min_sebesség, max_sebesség); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (kapott> = 21 && kapott <= 30) // Forduljon balra {int PWM_Value = térkép (kapott, 21, 30, min_sebesség, max_sebesség); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (kapott> = 31 && kapott <= 40) // Forduljon jobbra {int PWM_Value = térkép (kapott, 31, 40, min_sebesség, max_sebesség); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Az Arduino RC autó működése
Miután végzett a kóddal, töltse fel a pro-mini-táblára. Teszteléshez vegye ki az akkumulátort és a kártyát az FTDI modulon keresztül. Indítsa el a kódot, nyissa meg a soros akkumulátort, és meg kell kapnia az értéket az adó Joystick moduljától. Csatlakoztassa az akkumulátort, és motorjainak is forogniuk kell.
A projekt teljes kidolgozása megtalálható az oldal alján linkelt videóban. Ha bármilyen kérdése van, hagyja őket a megjegyzés részben. Fórumunk segítségével gyorsan válaszokat kaphat egyéb technikai kérdéseire.