- Súčasti potrebné pre čln Arduino RC
- 433MHz RF vysielacie a prijímacie moduly
- 433MHZ RF vysielač
- Bloková schéma vysielača lodí Arduino RC
- Schéma zapojenia diaľkového ovládača Arduino RC (vysielač)
- Budovanie obvodu vysielača RC BOAT
- Budovanie krytu vysielača lodí Arduino RC
- 433 MHz modul prijímača
- Bloková schéma prijímača lodí Arduino RC
- Schéma zapojenia prijímača lodí Arduino RC
- Budovanie prijímacieho obvodu člna Arduino RC
- Budovanie RC-BOATU
- Motory a vrtule pre letecký čln Arduino
- Fungovanie Arduino RC člna
- Arduino programovanie RC člna
V tomto projekte postavíme diaľkovo ovládaný Arduino Air-Boat, ktorý je možné ovládať bezdrôtovo pomocou 433 MHz RF rádiových modulov. Tento čln budeme ovládať pomocou domáceho diaľkového ovládania tak, že si postavíme vlastný vysielač a modul prijímača na 433 MHz. V prípade diaľkovo ovládaných zariadení alebo komunikácie medzi dvoma zariadeniami máme veľa možností ako IR, Bluetooth, internet, RF atď. V porovnaní s IR komunikáciou majú rádiové komunikácie niektoré výhody, napríklad väčší dosah a vyžadovať priame viditeľné spojenie medzi vysielačom a prijímačom. Tieto moduly tiež umožňujú dva spôsoby komunikácie, čo znamená, že môžu vysielať a prijímať súčasne. Takže pomocou tohto 433MHz RF modulu postavme Arduino RC Boat v tomto návode.
Predtým sme pomocou týchto 433MHz RF modulov vybudovali veľa diaľkovo ovládaných projektov na riadenie robotov, ako je tento RF riadený robot, alebo pre aplikácie domácej automatizácie na ovládanie domácich spotrebičov pomocou RF. Okrem používania RF modulov sme už predtým postavili aj Bluetooth Controlled Raspberry Pi Car a DTMF Mobile phone ovládaný Arduino Robot. Ak máte záujem, môžete si tieto projekty tiež pozrieť.
Súčasti potrebné pre čln Arduino RC
- 433MHz vysielač a prijímač
- Arduino (akékoľvek Arduino, aby sa zmenšila veľkosť, ktorú používam promini)
- HT12E a HT12D
- Tlačidlá - 4 č
- Rezistory - 1mega ohm, 47k ohm
- Ovládač motora L293d
- 9V batéria (používam 7,4 voltovú batériu) - 2 č
- Regulátor 7805- 2 č
- DC motory - 2Nos
- Motorový list alebo vrtule (používam domáce vrtule) - 2 č
- .1uf kondenzátor - 2č
- Spoločné PCB
433MHz RF vysielacie a prijímacie moduly
Tieto typy RF modulov sú medzi výrobcami veľmi populárne. Pre ich nízke náklady a jednoduchosť spojenia. Tieto moduly sú najlepšie pre všetky formy komunikačných projektov krátkeho dosahu. Tieto moduly sú RF moduly typu ASK (Amplitude Shift Keying), Amplitude-shift keying (ASK) je forma amplitúdovej modulácie, ktorá predstavuje digitálne údaje ako variácie v amplitúde nosnej vlny. V systéme ASK je binárny symbol 1 predstavovaný vysielaním nosnej vlny s pevnou amplitúdou a pevnej frekvencie po dobu bitov T sekúnd. Ak je hodnota signálu 1, bude sa prenášať nosný signál; inak sa prenesie hodnota signálu 0. To znamená, že pri prenose logickej „nuly“ zvyčajne nečerpajú žiadnu energiu. Táto nízka spotreba energie ich robí veľmi užitočnými v projektoch napájaných z batérie.
433MHZ RF vysielač
Tento typ modulu je veľmi malý a dodáva sa s 3 vývodmi VCC, zem a dáta. Niektoré ďalšie moduly sa dodávajú s extra kolíkom antény. Pracovné napätie modulu vysielača je 3V-12V a tento modul nemá žiadne nastaviteľné komponenty. Jednou z hlavných výhod tohto modulu je nízka spotreba prúdu, ktorá na vyslanie bitu nuly vyžaduje takmer nulový prúd.
Bloková schéma vysielača lodí Arduino RC
Vo vyššie uvedenom blokovom diagrame sú štyri tlačidlá (ovládacie tlačidlá), ktoré slúžia na ovládanie smeru člna. Máme ich štyri vpred, vzad, vľavo a vpravo. Z tlačidiel dostávame logiku ovládania člna, ale nemôžeme sa priamo pripojiť k kódovaču, preto sme použili Arduino. Možno si myslíte, prečo som tu použil Arduino, je to jednoducho preto, lebo potrebujeme strhnúť dva paralelné dátové vstupy kódovacieho zariadenia súčasne pre pohyb dozadu a dopredu, ktorý sa nedá dosiahnuť iba pomocou tlačidiel. Potom kódovač kóduje prichádzajúce paralelné údaje na sériové výstupy. Potom môžeme tieto sériové údaje preniesť pomocou RF vysielača.
Schéma zapojenia diaľkového ovládača Arduino RC (vysielač)
Vo vyššie uvedenom obvode môžete vidieť jednu stranu všetkých štyroch tlačidiel pripojených k štyrom digitálnym pinom Arduino (D6-D9) a všetky štyri ďalšie strany pripojené k zemi. To znamená, že keď stlačíme tlačidlo, príslušné digitálne piny sa dostanú logicky na minimum. Štyri paralelné vstupy kódovacieho zariadenia HT12E pripojené k ďalším štyrom digitálnym pinom Arduino (D2-D5). Takže pomocou Arduina môžeme rozhodnúť o vstupe kódovacieho zariadenia.
A keď hovoríme o kodéri, HT12E je 12-bitový kódovač a paralelný vstupno-sériový výstupný kódovač. Z 12 bitov je 8 bitov adresných bitov, ktoré sa dajú použiť na riadenie viacerých prijímačov. Kolíky A0-A7 sú kolíky vstupu adresy. V tomto projekte riadime iba jeden prijímač, takže nechceme meniť jeho adresu, takže som pripojil všetky kolíky adresy k zemi. Ak chcete ovládať rôzne prijímače jedným vysielačom, môžete tu použiť prepínače DIP. AD8-AD11 sú vstupy riadiacich bitov. Tieto vstupy budú riadiť výstupy D0-D3 dekodéra HT12D. Pre komunikáciu musíme pripojiť oscilátor a frekvencia oscilátora by mala byť 3KHzpre prevádzku 5V. Potom bude hodnota odporu 1,1 MΩ pre 5V. Potom som pripojil výstup HT12E k modulu vysielača. Už sme spomenuli, modul vysielača Arduino a rf, obe tieto zariadenia pracujú na vysokom napätí 5V ho zabijú, aby som tomu predišiel, pridal som regulátor napätia 7805. Teraz môžeme na vstup pripojiť (Vcc) 6-12voltové batérie ľubovoľného typu.
Budovanie obvodu vysielača RC BOAT
Každý komponent som spájkoval na spoločnom PCB. Pamätajte, že pracujeme na projekte RF, takže existuje veľa šancí na rôzne typy interferencií, takže všetky komponenty spojte čo najtesnejšie. Pre Arduino a modul vysielača je lepšie používať samičie konektory. Skúste tiež spájkovať všetko na medených podložkách namiesto použitia ďalších drôtov. Na záver pripojte k modulu vysielača malý drôt, ktorý pomôže zvýšiť celkový dosah. Pred pripojením modulu Arduino a vysielača dvakrát skontrolujte napätie na výstupe lm7805.
Vyššie uvedený obrázok zobrazuje pohľad zhora na dokončený obvod vysielača RC Boat a pohľad zdola na dokončený obvod vysielača RC Boat je zobrazený nižšie.
Budovanie krytu vysielača lodí Arduino RC
Pre diaľkové ovládanie je nevyhnutná slušná karoséria. Tento krok je predovšetkým o vašich nápadoch, pomocou ktorých môžete vytvoriť vzdialené telo. Vysvetľujem, ako som to urobil. Na výrobu vzdialeného tela volím 4mm MDF plechy, môžete zvoliť aj preglejku, penový plech alebo lepenku, potom som z toho odrezal dva kusy s dĺžkou 10cm a šírkou 5cm. Potom som označil polohy pre tlačidlá. Umiestnil som smerové tlačidlá na ľavú stranu a tlačidlá dopredu, dozadu na pravú stranu. Na druhú stranu hárku som pripojil tlačidlá k hlavnému vysielaciemu obvodu. Pamätajte, že normálne tlačidlo má 4 piny, čo sú dva piny pre každú stranu. Pripojte jeden pin k Arduinu a druhý pin k zemi. Ak ste s tým zmätení, skontrolujte to pomocou multimetra alebo si pozrite technický list.
Po pripojení všetkých týchto vecí som umiestnil riadiaci obvod medzi dve dosky MDF a utiahnite pomocou nejakej dlhej skrutky (ak chcete, pozrite si prosím obrázky nižšie). Vytvorenie dobrého tela je opäť len o vašich predstavách.
433 MHz modul prijímača
Tento prijímač je tiež veľmi malý a dodáva sa so 4 vývodmi VCC, zem a dva stredné vývody sú dátové. Pracovné napätie tohto modulu je 5v. Rovnako ako modul vysielača, aj toto je modul s nízkym výkonom. Niektoré moduly sú dodávané s extra kolíkom antény, ale v mojom prípade to nie je k dispozícii.
Bloková schéma prijímača lodí Arduino RC
Vyššie uvedená bloková schéma popisuje prácu obvodu RF prijímača. Najskôr môžeme prijímať vysielané signály pomocou modulu RF prijímača. Výstupom z tohto prijímača sú sériové dáta. S týmito sériovými dátami ale nemôžeme nič ovládať, preto sme pripojili výstup k dekodéru. Dekodér dekóduje sériové údaje na naše pôvodné paralelné údaje. V tejto časti nepotrebujeme žiadne mikrokontroléry, môžeme priamo pripojiť výstupy k ovládaču motora.
Schéma zapojenia prijímača lodí Arduino RC
HT12D je 12-bitový dekodér, ktorý je sériový vstup-paralelný výstup dekodéru. Vstupný pin HT12D bude pripojený k prijímaču, ktorý má sériový výstup. Medzi 12 bitmi je 8 bitov (A0-A7) bitov adresy a HT12D dekóduje vstup, iba ak sa zhoduje s jeho aktuálnou adresou. D8-D11 sú výstupné bity. Aby som priradil tento obvod k obvodu vysielača, pripojil som všetky kolíky adresy k zemi. Dáta z modulu sú sériového typu a dekodér tieto sériové dáta dekóduje na pôvodné paralelné dáta a my sa dostaneme von cez D8-D11. Aby sa kmitočet zhodoval, mal by sa pripojiť rezistor 33-56k k pinom oscilátora. LED na 17. kolíku označuje platný prenos. Svieti až potom, keď je prijímač pripojený k vysielaču. Napäťový vstup prijímača je tiež 6 - 12 voltov.
Na riadenie motorov som používal integrovaný obvod L293D, ktorý som si vybral práve preto, lebo kvôli zmenšeniu veľkosti a hmotnosti je tento integrovaný obvod najlepší na ovládanie dvoch motorov v dvoch smeroch. L293D má 16 pinov, nasledujúci diagram zobrazuje pinouty.
1, 9 pinov je aktivačný pin, pripájame ich na 5 V na povolenie motorov 1A, 2A, 3A a 4A sú ovládacie piny. Motor sa otočí doprava, ak kolík 1A klesne a 2A stúpne, a motor sa otočí doľava, ak poklesne 1A a vysoký 2A. Tieto piny sme teda pripojili k výstupu ps dekodéra. 1Y, 2Y, 3Y a 4Y sú pripájacie kolíky motora. Vcc2 je kolík napájacieho napätia motora, ak používate vysokonapäťový motor, pripojte tento kolík k zodpovedajúcemu zdroju napätia.
Budovanie prijímacieho obvodu člna Arduino RC
Pred zostavením obvodu prijímača by ste si mali pamätať na niekoľko dôležitých vecí. Dôležitá je veľkosť a hmotnosť, pretože po vybudovaní okruhu ho musíme opraviť na lodi. Ak sa teda hmotnosť zvýši, ovplyvní to vztlak a pohyb.
Rovnako ako v obvode vysielača, spájkujte každý komponent na malom spoločnom PCB a pokúste sa použiť minimum vodičov. Pripojil som pin 8 vodiča motora na 5v, pretože používam 5V motory.
Budovanie RC-BOATU
Skúšal som rôzne materiály na stavbu tela člna. A dosiahol som lepší výsledok s termocolovou fóliou. Preto som sa rozhodol, že si postavím telo pomocou termokolu. Najskôr som vzal 3 cm hrubý kus termocolu a položil obvod prijímača na vrch, potom som označil tvar člna termocolom a vyrezal. Takže toto je môj spôsob, ako postaviť loď, môžete stavať podľa svojich predstáv.
Motory a vrtule pre letecký čln Arduino
Opäť záleží na hmotnosti. Takže výber správneho motora je dôležitý, ja si vyberiem normálne jednosmerné motory typu 5volt, n20, ktoré sú malé a beztiažové. Aby ste sa vyhli interferenciám s VF, mali by ste paralelne pripojiť vstupy kondenzátora 0,1uf k vstupom motora.
V prípade vrtúľ som vrtule vyrobil pomocou plastových fólií. Môžete si kúpiť vrtule v obchode alebo si môžete postaviť vlastné, obe budú fungovať dobre. Na stavbu vrtúľ som najskôr vzal malú plastovú fóliu a odrezal som z nej dva malé kúsky a kúsky ohnem pomocou tepla na sviečky. Nakoniec som do jeho stredu vložil malý otvor pre motor a pripevnil som ho k motoru, ktorý je ono.
Fungovanie Arduino RC člna
Táto loď má dva motory, aby sme ju mohli nazvať vľavo a vpravo. Ak sa motor pohne tiež v smere hodinových ručičiek (závisí to aj od polohy pohonnej jednotky), pohonná jednotka nasáva vzduch spredu a výfuk smerom dozadu. To generuje ťah dopredu.
Pohyb vpred: Ak sa ľavý aj pravý motor otáčajú v smere hodinových ručičiek, bude pohyb vpred
Pohyb dozadu: Ak sa ľavý aj pravý motor otáčajú proti smeru hodinových ručičiek (tj. Vrtuľa nasáva vzduch zo zadnej strany a výfuk na prednú stranu), bude sa pohybovať dozadu.
Pohyb vľavo: Ak sa otáča iba pravý motor, ktorý je loďou, ťahajte iba z pravej strany, ktorou sa bude loď pohybovať na ľavú stranu.
Pohyb doprava: Ak sa otáča iba ľavý motor, čo je čln, potiahne sa iba z ľavej strany, čo spôsobí, že sa čln presunie na pravú stranu.
Vstup vodiča motora sme pripojili k štyrom výstupným bitom dekodéra (D8-D11). tieto 4 výstupy môžeme ovládať pripojením AD8-AD11 k zemi, čo sú tlačidlá na diaľkovom ovládaní. Napríklad, ak pripojíme AD8 k zemi, ktorá aktivuje D8. Týmto spôsobom môžeme pomocou týchto 4 výstupov ovládať dva motory v dvoch smeroch. Ale nemôžeme ovládať dva motory iba jedným tlačidlom (to potrebujeme pre pohyb dopredu a dozadu), preto sme použili Arduino. Pomocou Arduina môžeme zvoliť kolíky vstupných údajov podľa nášho želania.
Arduino programovanie RC člna
Programovanie tohto modulu je veľmi jednoduché, pretože chceme iba určité logické prepínanie. A všetko dokážeme základnými funkciami Arduina. Kompletný program tohto projektu nájdete v dolnej časti tejto stránky. Vysvetlenie vášho programu je nasledovné
Program začneme definovaním celých čísel pre štyri vstupné tlačidlá a kolíky vstupu dekodéra.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int ml = 2; int m2 = 3; int m3 = 4; int m4 = 5;
V časti nastavenia som definoval režimy pinov. To znamená, že tlačidlá sú pripojené k digitálnym pinom, takže tieto piny by sa mali definovať ako vstup a musíme získať výstup pre vstup dekodéra, aby sme tieto piny definovali ako výstup.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, VÝSTUP); pinMode (m2, VÝSTUP); pinMode (m3, VÝSTUP); pinMode (m4, VÝSTUP);
Ďalej vo funkcii hlavnej slučky prečítame stav tlačidla pomocou funkcie digitálneho čítania Arduina. Ak je stav kolíka nízky, čo znamená, že je stlačený príslušný kolík, vykonáme podmienky nasledovne -
if (digitalRead (f_button) == LOW)
To znamená, že je stlačené tlačidlo dopredu
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Roztiahne sa m1 a m2 kódovacieho zariadenia, čím sa aktivujú oba motory na strane prijímača. Podobne aj pre pohyb dozadu
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Pre pohyb vľavo
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Pre správny pohyb
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Po zostavení kódu ho nahrajte na svoju dosku Arduino.
Riešenie problémov: Položte čln na vodnú hladinu a skontrolujte, či sa pohybuje správne, pokiaľ neskúšate zmeniť polaritu motorov a vrtúľ. Snažte sa tiež vyvážiť váhu.
Kompletné fungovanie projektu nájdete vo videu prepojenom v dolnej časti tejto stránky. Ak máte akékoľvek otázky, nechajte ich v sekcii komentárov.