- Az Arduino RC Boat alkatrészei szükségesek
- 433MHz RF adó és vevő modulok
- 433MHz RF adó
- Az Arduino RC csónak adó blokkdiagramja
- Az Arduino RC távirányító áramköri rajza (adó)
- Az RC BOAT adó áramkör kiépítése
- Az Arduino RC csónak adóegység házának felépítése
- 433Mhz vevő modul
- Az Arduino RC Boat Receiver blokkvázlata
- Az Arduino RC csónakvevő áramköri rajza
- Az Arduino RC csónak vevő áramkörének kiépítése
- Az RC-BOAT építése
- Motorok és propellerek az Arduino Air Boat-hoz
- Az Arduino RC Boat működése
- Az RC csónak Arduino programozása
Ebben a projektben egy távirányítású Arduino Air-Boat-ot építünk, amely vezeték nélkül vezérelhető a 433 MHz-es RF rádió modulok segítségével. Ezt a hajót házi távirányítóval fogjuk irányítani, saját 433 MHz-es adó és vevő modul megépítésével. Távvezérelt eszközök vagy két eszköz közötti kommunikáció esetén rengeteg lehetőségünk van, például IR, Bluetooth, Internet, RF stb. látóvonal-kapcsolatot igényel az adó és a vevő között. Ezenkívül ezek a modulok kétféle kommunikációs módra képesek, vagyis egyszerre képesek továbbítani és fogadni. Tehát ezzel a 433 MHz-es RF modullal építsünk egy Arduino RC Boat-ot ebben az oktatóanyagban.
Korábban számos távvezérelt projektet építettünk ezeknek a 433 MHz-es RF moduloknak a felhasználásával, akár egy ilyen robot vezérléséhez, mint ez az RF által vezérelt robot, akár otthoni automatizálási alkalmazásokhoz, amelyek a háztartási készülékeket RF használatával vezérlik. Az RF modulok használata mellett korábban építettünk egy Bluetooth vezérlésű Raspberry Pi autót és egy DTMF mobiltelefon vezérelt Arduino Robotot is. Ha érdekli, megnézheti ezeket a projekteket is.
Az Arduino RC Boat alkatrészei szükségesek
- 433MHz adó és vevő
- Arduino (bármely Arduino, a promini használatával)
- HT12E és HT12D
- Nyomógombok - 4Nos
- Ellenállások - 1 mega ohm, 47k ohm
- L293d motorvezérlő
- 9 V-os akkumulátor (7,4 voltos akkumulátort használok) - 2 Nem
- 7805 szabályozó - 2
- DC motorok - 2
- Motoros hajtóművek vagy propellerek (házi propellert használok) - 2 Nem
- .1uf kondenzátor- 2Nos
- Közös PCB
433MHz RF adó és vevő modulok
Az ilyen típusú RF modulok nagyon népszerűek a gyártók körében. Alacsony költségük és a kapcsolatok egyszerűsége miatt. Ezek a modulok a legjobbak a rövid hatótávolságú kommunikációs projektek minden formájához. Ezek a modulok ASK (Amplitude Shift Keying) típusú RF modulok, az Amplitude-shift Keying (ASK) az amplitúdó-moduláció egy olyan formája, amely a digitális adatokat a vivőhullám amplitúdójának variációiként jeleníti meg. Egy ASK rendszerben az 1 bináris szimbólumot rögzített amplitúdójú vivőhullám és rögzített frekvencia továbbításával ábrázoljuk T másodperces bit időtartamig. Ha a jel értéke 1, akkor a vivőjel továbbításra kerül; ellenkező esetben 0 jelérték kerül továbbításra. Ez azt jelenti, hogy általában nem merítenek áramot, amikor a logika „nullát” továbbítják. Ez az alacsony energiafogyasztás nagyon hasznosakká teszi őket akkumulátoros projekteknél.
433MHz RF adó
Ez a típusú modul nagyon apró, és 3 érintkezős VCC-vel, földeléssel és adatokkal rendelkezik. Néhány más modulhoz egy extra antennacsatlakozó tartozik. Az adómodul működési feszültsége 3V-12V, és ez a modul nem tartalmaz állítható alkatrészeket. Ennek a modulnak az egyik fő előnye az alacsony áramfogyasztás, a nulla bit küldéséhez szinte nulla áramra van szükség.
Az Arduino RC csónak adó blokkdiagramja
A fenti blokkdiagramon négy nyomógomb (vezérlőgomb) található, ezek a nyomógombok a hajó irányának szabályozására szolgálnak. Négyen vagyunk előre, hátra, balra és jobbra. A nyomógombokból megkapjuk a hajó vezérlésének logikáját, de nem tudunk közvetlenül csatlakozni a kódolóhoz, ezért használtuk az Arduino-t. Gondolhatja, miért használtam itt az Arduinót, egyszerűen azért, mert egyszerre le kell húznunk a kódoló két párhuzamos adatbemenetét egy előre és hátra mozgáshoz, amely nem érhető el csupán nyomógombokkal. Ezután a kódoló az érkező párhuzamos adatokat soros kimenetekre kódolja. Ezután továbbíthatjuk ezeket a soros adatokat egy RF adó segítségével.
Az Arduino RC távirányító áramköri rajza (adó)
A fenti áramkörben láthatja mind a négy nyomógomb egyik oldalát, amelyek az Arduino négy digitális érintkezőjéhez (D6-D9) vannak csatlakoztatva, és mind a négy másik oldalt a földhöz csatlakoztatják. Ekkor megnyomjuk a gombot, és a megfelelő digitális csapok logikailag alacsonyak lesznek. A HT12E kódoló négy párhuzamos bemenete az Arduino másik négy digitális érintkezőjéhez (D2-D5) csatlakozik. Tehát az Arduino segítségével eldönthetjük a kódoló bemenetét.
A kódolóról beszélve a HT12E egy 12 bites kódoló és egy párhuzamos bemenet-soros kimeneti kódoló. A 12 bitből a 8 bit olyan címbit, amely felhasználható több vevő vezérléséhez. Az A0-A7 csapok a cím beviteli csapjai. Ebben a projektben csak egy vevőt irányítunk, ezért nem akarjuk megváltoztatni a címét, ezért az összes címzettüskét a földhöz csatlakoztattam. Ha egy adóval különböző vevőket szeretne vezérelni, itt használhatja a dip kapcsolókat. Az AD8-AD11 a vezérlőbit bemenetek. Ezek a bemenetek vezérlik a HT12D dekóder D0-D3 kimeneteit. Csatlakoztatnunk kell egy oszcillátort a kommunikációhoz, és az oszcillátor frekvenciájának 3KHz-nek kell lennie5V-os működéshez. Ekkor az ellenállás értéke 1,1 MΩ lesz 5 V esetén. Ezután csatlakoztattam a HT12E kimenetét az adó modulhoz. Már említettük, hogy az Arduino és az rf adó modul, mindkét eszköz 5 V-os nagyfeszültségen működik, megöli, ezért ennek elkerülése érdekében hozzáadtam a 7805-ös feszültségszabályozót. Most 6-12 voltos (Vcc) típusú elemeket csatlakoztathatunk a bemenethez.
Az RC BOAT adó áramkör kiépítése
Minden alkatrészt egy közös NYÁK-ra forrasztottam. Ne feledje, hogy egy RF projekten dolgozunk, így sok esély van a különböző típusú interferenciákra, ezért kapcsolja össze az összes alkatrészt a lehető legszorosabban. Jobb, ha az Arduino számára női tűfejléceket és az adómodult használjuk. Ezenkívül próbáljon meg mindent forrasztani a réz betéteken, ahelyett, hogy extra vezetékeket használna. Végül csatlakoztasson egy kis vezetéket az adómodulhoz, amely segít növelni a teljes hatótávolságot. Az Arduino és az adó modul csatlakoztatása előtt ellenőrizze még egyszer az lm7805 kimenet feszültségét.
A fenti kép az elkészült RC hajó adó áramkörének felső nézetét mutatja, és az elkészült RC hajó adó áramkörének alsó nézete látható alább.
Az Arduino RC csónak adóegység házának felépítése
A távirányítóhoz tisztességes test szükséges. Ez a lépés az ötleteidről szól, ötleteivel létrehozhat egy távoli testet. Elmagyarázom, hogyan készítettem ezt. Távoli test készítéséhez 4 mm-es MDF lapokat választok, választhatunk rétegelt lemezt, hablemezt vagy kartont is, majd ebből két darabot levágtam 10 cm hosszú és 5 cm széles. Ezután megjelöltem a gombok pozícióit. A bal oldalon elhelyeztem az iránygombokat, jobbra pedig az előre, hátra gombokat. A lap másik oldalán a nyomógombokat csatlakoztattam a fő adó áramkörhöz. Ne feledje, hogy egy normál nyomógombnak 4 csapja van, amelyek két csap mindkét oldalon. Csatlakoztassa az egyik csapot az Arduino-hoz, a másikat a földhöz. Ha összetévesztette ezt, kérjük, ellenőrizze multiméterrel vagy ellenőrizze az adatlapot.
Miután összekötöttem ezeket a dolgokat, a vezérlő áramkört a két MDF kártya közé helyeztem, és meghosszabbítottam néhány hosszú csavarral (kérjük, olvassa el az alábbi képeket) Ismét egy jó test létrehozása szól ötleteiről.
433Mhz vevő modul
Ez a vevő nagyon pici, és 4 érintkezős VCC-vel van, földelve, és a két középső tű adatkimenet. Ennek a modulnak az üzemi feszültsége 5v. Az adómodulhoz hasonlóan ez is alacsony fogyasztású modul. Néhány modulhoz tartozik egy extra antennacsap, de az én esetemben ez nincs jelen.
Az Arduino RC Boat Receiver blokkvázlata
A fenti blokkdiagram leírja az RF vevő áramkör működését. Először az átvett jeleket az RF vevő modul segítségével tudjuk fogadni. A vevő kimenete soros adat. De ezekkel a soros adatokkal semmit sem tudunk ellenőrizni, ezért csatlakoztattuk a kimenetet a dekóderhez. A dekóder a soros adatokat az eredeti párhuzamos adatainkra dekódolja. Ebben a szakaszban nincs szükségünk mikrovezérlőkre, a kimeneteket közvetlenül csatlakoztathatjuk a motor meghajtójához.
Az Arduino RC csónakvevő áramköri rajza
A HT12D egy 12 bites dekóder, amely soros bemenettel párhuzamos kimeneti dekóder. A HT12D bemeneti tűje egy soros kimenettel rendelkező vevőhöz csatlakozik. A 12 bit közül 8 bit (A0-A7) címbit, és a HT12D dekódolja a bemenetet, ha csak az megfelel az aktuális címének. A D8-D11 a kimeneti bitek. Ahhoz, hogy ez az áramkör illeszkedjen az adó áramköréhez, az összes címzettüskét a földhöz csatlakoztattam. A modulon kívüli adatok soros típusúak, és a dekóder ezeket a soros adatokat dekódolja eredeti párhuzamos adatokká, és a D8-D11-en keresztül jutunk ki. Az oszcillációs frekvencia összehangolásához a 33-56k ellenállást az oszcillátor csapjaihoz kell csatlakoztatni. A 17. tűs LED az érvényes adást jelzi, csak akkor világít, ha a vevő csatlakozik egy adóhoz. A vevő feszültség bemenete szintén 6-12 volt.
A motorok vezérléséhez az L293D IC-t használtam, ezt az IC-t választottam, mert a méret és a súly csökkentése érdekében, és ez az IC a legjobb két motor kétirányú vezérléséhez. Az L293D 16 érintkezõvel rendelkezik, az alábbi ábra a rögzítõket mutatja.
1, 9 tüske az engedélyező tüske, ezt összekapcsoljuk 5 V-val az 1A, 2A, 3A és 4A motorok vezérléséhez. A motor jobbra fordul, ha az 1A csap alacsonyra és a 2A magasra megy, és a motor balra fordul, ha 1A alacsonyra és 2A magasra megy. Tehát ezeket a tűket összekötöttük a dekóder kimenetével. 1Y, 2Y, 3Y és 4Y a motorcsatlakozó csapok. A Vcc2 a motor meghajtó feszültségű csapja, ha nagyfeszültségű motort használ, akkor ezt a csapot csatlakoztassa a megfelelő feszültségforráshoz.
Az Arduino RC csónak vevő áramkörének kiépítése
Mielőtt felépítené a vevő áramkört, emlékeznie kell néhány fontos dologra. A legfontosabb a méret és a súly, mert az áramkör megépítése után rögzítenünk kell a hajón. Tehát, ha a súly növekszik, ez befolyásolja a felhajtóerőt és a mozgást.
Ugyanúgy, mint az adó áramkörében, forrasztjon minden alkatrészt egy kis közös NYÁK-ba, és próbáljon meg minimális vezetékeket használni. Csatlakoztattam a motor meghajtó 8. tűjét 5 V-hoz, mert 5 V-os motorokat használok.
Az RC-BOAT építése
Különböző anyagokat próbáltam felépíteni a hajó karosszériájával. És jobb eredményt kaptam a termokoládéval. Ezért úgy döntöttem, hogy a testet termokoládával építem meg. Először vettem egy 3 cm vastag hőcsokoládé darabot, és a tetejére helyeztem a vevő áramkört, majd a csónak alakját hőcsokoládéval megjelöltem és vágtam. Tehát ez az én módom a csónak megépítésére, az elképzeléseinek megfelelően építkezhet.
Motorok és propellerek az Arduino Air Boat-hoz
Ismét számít a súly. Tehát fontos a megfelelő motor kiválasztása, 5 voltos, n20 típusú normál egyenáramú motorokat választok, amelyek kicsiek és súlytalanok. Az RF interferenciák elkerülése érdekében 0,1uf kondenzátort kell párhuzamosan csatlakoztatni a motor bemeneteihez.
A propellerek esetében propellert készítettem műanyag lapok felhasználásával. Vásárolhat propellert az üzletből, vagy megépítheti sajátját, mindkettő remekül fog működni. A propellerek megépítéséhez először egy kis műanyag lepedőt vettem, és két kis darabot levágtam belőle, és a darabokat gyertyahő segítségével meghajlítottam. Végül egy közepébe tettem egy kis lyukat a motor számára, és rögzítettem a motorhoz.
Az Arduino RC Boat működése
Ennek a hajónak két motorja van, így balra és jobbra hívhatja. Ha a motor szintén az óramutató járásával megegyező irányba mozog (a propeller helyzete is függ), a propeller előlről és a kipufogóról a hátsó oldalra szívja a levegőt. Ez előremozdulást generál.
Előre mozgás: Ha mind a bal, mind a jobb motor az óramutató járásával megegyező irányba forog, az előre mozog
Hátrafelé mozgás: Ha mind a bal, mind a jobb motor az óramutató járásával ellentétes irányba forog (vagyis a légcsavar szívja a levegőt a hátsó oldalról és a kipufogót az első oldalra), akkor ez visszafelé mozog
Bal oldali mozgás: Ha csak a jobb motor forog, vagyis a hajó, akkor csak húzza azt a jobb oldalt, amely a hajót bal oldalra mozdítja
Jobb oldali mozgás: Ha csak a bal motor forog, akkor a hajó csak a bal oldalról húzza el a hajót, amely a jobb oldalra mozdul.
Csatlakoztattuk a motor meghajtójának bemenetét a dekóder négy kimeneti bitjéhez (D8-D11). ezt a 4 kimenetet úgy vezérelhetjük, hogy az AD8-AD11-et a távirányító gombjainak földjéhez csatlakoztatjuk. Például, ha csatlakoztatjuk az AD8-at a földhöz, amely aktiválja a D8-at. Tehát ilyen módon két irányba tudjuk irányítani a két motort ezen 4 kimenet segítségével. De két motort egyetlen gombbal nem tudunk irányítani (erre szükségünk van az előre és hátra mozgáshoz), ezért használtuk az Arduino-t. Az Arduino segítségével kiválaszthatjuk a bemeneti adat csapokat.
Az RC csónak Arduino programozása
Ennek a hajónak a programozása nagyon egyszerű, mert csak némi logikai váltást akarunk. És az Arduino alapvető funkcióival mindent elérhetünk. A projekt teljes programja az oldal alján található. Programjának magyarázata a következő
A programot úgy kezdjük, hogy meghatározzuk négy bemeneti gomb és dekóder bemeneti csapok egész számát.
int f_gomb = 9; int b_gomb = 8; int l_gomb = 7; int r_gomb = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
A beállítási részben meghatároztam a pin módokat. Vagyis a gombok digitális érintkezőkhöz vannak csatlakoztatva, így ezeknek a csapoknak bemenetként kell definiálódniuk, és kimenetet kell kapnunk a dekóder bemenetéhez, így ezeket a tűket kimenetként kell meghatároznunk.
pinMode (f_gomb, INPUT_PULLUP); pinMode (b_gomb, INPUT_PULLUP); pinMode (l_gomb, INPUT_PULLUP); pinMode (r_gomb, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Ezután a fő hurok funkcióban a gomb állapotát olvassuk el az Arduino digitális olvasási funkciójával. Ha a pin állapota alacsony lesz, ez azt jelenti, hogy a megfelelő csapot megnyomják, akkor a feltételeket a következőképpen hajtjuk végre:
if (digitalRead (f_gomb) == LOW)
Ez azt jelenti, hogy megnyomják az előre gombot
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Ez a kódoló m1 és m2 értékét lenyomja, ez aktiválja mindkét motort a vevő oldalán. Hasonlóképpen a hátrafelé irányuló mozgáshoz is
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Bal mozgáshoz
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
A helyes mozgáshoz
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
A kód összeállítása után töltse fel Arduino táblájára.
Hibaelhárítás: Helyezze a csónakot a víz felszínére, és ellenőrizze, hogy megfelelően mozog-e, ha nem próbálja megváltoztatni a motorok és a légcsavarok polaritását. Ezenkívül próbálja kiegyensúlyozni a súlyt.
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.