- Komponenty potřebné pro Arduino RC Boat
- 433MHz RF vysílací a přijímací moduly
- 433MHZ RF vysílač
- Blokové schéma vysílače lodí Arduino RC Boat
- Schéma zapojení dálkového ovladače Arduino RC (vysílač)
- Sestavení obvodu vysílače RC BOAT
- Budování skříně vysílače lodi Arduino RC
- Přijímací modul 433 MHz
- Blokové schéma přijímače lodí Arduino RC
- Schéma zapojení přijímače lodí Arduino RC
- Budování přijímacího obvodu Arduino RC Boat
- Budování RC-BOATU
- Motory a vrtule pro letecký člun Arduino
- Práce s Arduino RC Boat
- Arduino programování RC lodi
V tomto projektu postavíme dálkově ovládaný Arduino Air-Boat, který lze ovládat bezdrátově pomocí RF radiomodulů 433 MHz. Tuto loď budeme ovládat pomocí domácího dálkového ovládání vytvořením vlastního vysílače 433 MHz a modulu přijímače. V případě dálkově ovládaných zařízení nebo komunikace mezi dvěma zařízeními máme spoustu možností, jako je IR, Bluetooth, internet, RF atd. Ve srovnání s IR komunikací mají rádiové komunikace některé výhody, jako je větší dosah a ne vyžadují přímé viditelné spojení mezi vysílačem a přijímačem. Tyto moduly také umožňují dva způsoby komunikace, což znamená, že mohou vysílat a přijímat současně. Takže pomocí tohoto 433MHz RF modulu postavme Arduino RC Boat v tomto tutoriálu.
Dříve jsme vytvořili mnoho dálkově ovládaných projektů pomocí těchto 433MHz RF modulů pro ovládání robota, jako je tento RF řízený robot, nebo pro aplikace Home Automation pro ovládání domácích spotřebičů pomocí RF. Kromě použití RF modulů jsme dříve také postavili Bluetooth Controlled Raspberry Pi Car a DTMF Mobile phone ovládaný Arduino Robot. Pokud máte zájem, můžete si tyto projekty také prohlédnout.
Komponenty potřebné pro Arduino RC Boat
- 433MHz vysílač a přijímač
- Arduino (jakékoli Arduino, aby se zmenšila velikost, kterou používám promini)
- HT12E a HT12D
- Tlačítka - 4 č
- Rezistory - 1mega ohm, 47k ohm
- Ovladač motoru L293d
- 9V baterie (používám 7,4voltovou baterii) - 2Nos
- 7805 regulátor - 2 č
- Stejnosměrné motory - 2Nos
- Motorový list nebo vrtule (používám domácí vrtule) - 2 č
- .1uf kondenzátor - 2Nos
- Společné PCB
433MHz RF vysílací a přijímací moduly
Tyto typy RF modulů jsou mezi výrobci velmi populární. Kvůli jejich nízké ceně a jednoduchosti připojení. Tyto moduly jsou nejlepší pro všechny formy komunikačních projektů krátkého dosahu. Tyto moduly jsou RF moduly typu ASK (Amplitude Shift Keying), Amplitude-shift keying (ASK) je forma amplitudové modulace, která představuje digitální data jako variace amplitudy nosné vlny. V systému ASK je binární symbol 1 reprezentován vysíláním nosné vlny s pevnou amplitudou a pevné frekvence po dobu bitů T sekund. Pokud je hodnota signálu 1, bude vysílán signál nosné; jinak se přenese hodnota signálu 0. To znamená, že při přenosu logické „nuly“ obvykle nečerpají žádnou energii. Tato nízká spotřeba energie je činí velmi užitečnými v projektech napájených z baterie.
433MHZ RF vysílač
Tento typ modulu je mimořádně malý a je dodáván se 3 piny VCC, zemí a daty. Některé další moduly jsou vybaveny zvláštním kolíkem antény. Pracovní napětí vysílacího modulu je 3V-12V a tento modul nemá žádné nastavitelné komponenty. Jednou z hlavních výhod tohoto modulu je nízká spotřeba proudu, pro odeslání bitové nuly vyžaduje téměř nulový proud.
Blokové schéma vysílače lodí Arduino RC Boat
Ve výše uvedeném blokovém schématu jsou čtyři tlačítka (ovládací tlačítka), která slouží k ovládání směru lodi. Máme čtyři z nich dopředu, dozadu, doleva a doprava. Z tlačítek získáváme logiku pro ovládání lodi, ale nemůžeme se přímo připojit k kodéru, proto jsme použili Arduino. Možná si myslíte, proč jsem zde použil Arduino, je to jednoduše proto, že potřebujeme stáhnout dva paralelní datové vstupy kodéru současně pro pohyb zpět a dopředu, kterého nelze dosáhnout pouhými tlačítky. Potom kodér kóduje přicházející paralelní data na sériové výstupy. Pak můžeme tato sériová data přenášet pomocí RF vysílače.
Schéma zapojení dálkového ovladače Arduino RC (vysílač)
Ve výše uvedeném obvodu můžete vidět jednu stranu všech čtyř tlačítek připojených ke čtyřem digitálním pinům Arduino (D6-D9) a všechny čtyři další strany připojené k zemi. To je, když stiskneme tlačítko, odpovídající digitální piny dostanou logicky minimum. Čtyři paralelní vstupy kodéru HT12E připojené k dalším čtyřem digitálním pinům Arduino (D2-D5). Takže pomocí Arduina můžeme rozhodnout o vstupu kodéru.
A když už mluvíme o kodéru HT12E, je to 12bitový kodér a paralelní vstupně-sériový výstupní kodér. Z 12 bitů jsou 8 bity adresní bity, které lze použít pro ovládání více přijímačů. Piny A0-A7 jsou piny pro zadávání adresy. V tomto projektu ovládáme pouze jeden přijímač, takže nechceme měnit jeho adresu, takže jsem připojil všechny kolíky adresy k zemi. Pokud chcete ovládat různé přijímače pomocí jednoho vysílače, můžete zde použít DIP přepínače. AD8-AD11 jsou vstupy řídicích bitů. Tyto vstupy budou řídit výstupy D0-D3 dekodéru HT12D. Musíme pro komunikaci připojit oscilátor a frekvence oscilátoru by měla být 3KHzpro provoz 5V. Pak bude hodnota rezistoru 1,1 MΩ pro 5V. Poté jsem připojil výstup HT12E k modulu vysílače. Již jsme zmínili, že modul vysílače Arduino a rf, obě tato zařízení fungují na vysokém napětí 5 V, to zabije, takže aby se tomu zabránilo, přidal jsem regulátor napětí 7805. Nyní můžeme ke vstupu připojit (Vcc) 6-12voltové baterie libovolného typu.
Sestavení obvodu vysílače RC BOAT
Každou součástku jsem připájel na společnou desku plošných spojů. Nezapomeňte, že pracujeme na projektu RF, takže existuje mnoho šancí na různé typy interferencí, takže připojte všechny komponenty co nejtěsněji. Pro Arduino a modul vysílače je lepší použít samičí konektory. Zkuste také místo měděných vodičů pájet vše na měděných podložkách. Nakonec připojte k modulu vysílače malý vodič, který pomůže zvýšit celkový dosah. Před připojením modulu Arduino a vysílače zkontrolujte napětí na výstupu lm7805.
Obrázek nahoře ukazuje pohled shora na dokončený obvod vysílače RC Boat a pohled zdola na dokončený obvod vysílače RC Boat je zobrazen níže.
Budování skříně vysílače lodi Arduino RC
Dálkové ovládání vyžaduje slušné tělo. Tento krok je o vašich nápadech, můžete vytvořit vzdálené tělo se svými nápady. Vysvětluji, jak jsem to udělal. Pro výrobu vzdáleného těla jsem si vybral 4mm MDF plechy, můžete si také vybrat překližku, pěnový plech nebo lepenku, z toho pak odříznu dva kusy o délce 10cm a šířce 5cm. Pak jsem označil pozice pro tlačítka. Umístil jsem směrová tlačítka na levé straně a dopředu, dozadu tlačítka na pravé straně. Na druhé straně listu jsem připojil tlačítka k hlavnímu vysílacímu obvodu. Nezapomeňte, že normální tlačítko má 4 piny, což jsou dva piny pro každou stranu. Připojte jeden kolík k Arduinu a druhý kolík k zemi. Pokud jste s tím zmateni, zkontrolujte to pomocí multimetru nebo zkontrolujte datový list.
Po připojení všech těchto věcí jsem umístil řídicí obvod mezi dvě desky MDF a utáhl je nějakým dlouhým šroubem (pokud chcete, podívejte se na níže uvedené obrázky). Vytvoření dobrého těla je opět o vašich nápadech.
Přijímací modul 433 MHz
Tento přijímač je také velmi malý a je dodáván se 4 piny VCC, zemí a dvěma středními piny jsou data out. Pracovní napětí tohoto modulu je 5V. Stejně jako modul vysílače je to také modul s nízkou spotřebou. Některé moduly jsou dodávány s extra kolíkem antény, ale v mém případě to není.
Blokové schéma přijímače lodí Arduino RC
Výše uvedené blokové schéma popisuje fungování obvodu RF přijímače. Nejprve můžeme přijímat přenášené signály pomocí modulu RF přijímače. Výstupem tohoto přijímače jsou sériová data. S těmito sériovými daty ale nemůžeme nic ovládat, proto jsme připojili výstup k dekodéru. Dekodér dekóduje sériová data na naše původní paralelní data. V této části nepotřebujeme žádné mikrokontroléry, můžeme přímo připojit výstupy k ovladači motoru.
Schéma zapojení přijímače lodí Arduino RC
HT12D je 12-bitový dekodér, který je sériový vstup-paralelní výstup dekodéru. Vstupní kolík HT12D bude připojen k přijímači se sériovým výstupem. Mezi 12 bity je 8 bitů (A0-A7) bitů adresy a HT12D dekóduje vstup, pokud odpovídá pouze jeho aktuální adrese. D8-D11 jsou výstupní bity. Abychom tento obvod spojili s obvodem vysílače, připojil jsem všechny kolíky adresy k zemi. Data z modulu jsou sériového typu a dekodér dekóduje tato sériová data na původní paralelní data a dostaneme se přes D8-D11. Aby odpovídala oscilační frekvenci, měla by být připojena rezistor 33-56k k pinům oscilátoru. LED na 17. kolíku označuje platný přenos, rozsvítí se až poté, co je přijímač připojen k vysílači. Napěťový vstup přijímače je také 6-12 voltů.
Pro ovládání motorů jsem použil IC L293D, zvolil jsem tento IC, protože ke snížení velikosti a hmotnosti a tento IC je nejlepší pro ovládání dvou motorů ve dvou směrech. L293D má 16 pinů, níže uvedený diagram ukazuje pinouts.
1, 9 pinů je aktivační pin, připojíme je na 5 V k povolení motorů 1A, 2A, 3A a 4A jsou ovládací kolíky. Motor se otočí doprava, pokud kolík 1A klesne a 2A jde vysoko, a motor se otočí doleva, pokud 1A poklesne a 2A vysoko. Takže jsme připojili tyto piny k výstupu ps dekodéru. 1Y, 2Y, 3Y a 4Y jsou připojovací kolíky motoru. Vcc2 je kolík hnacího napětí motoru, pokud používáte vysokonapěťový motor, připojte tento kolík k odpovídajícímu zdroji napětí.
Budování přijímacího obvodu Arduino RC Boat
Před sestavením obvodu přijímače byste si měli pamatovat několik důležitých věcí. Důležitá je velikost a hmotnost, protože po sestavení okruhu je třeba jej opravit na lodi. Pokud se tedy váha zvýší, ovlivní to vztlak a pohyb.
Stejně jako v obvodu vysílače pájejte každou součástku na malém společném PCB a zkuste použít minimum vodičů. Připojil jsem pin 8 ovladače motoru na 5v, protože používám 5V motory.
Budování RC-BOATU
Zkoušel jsem různé materiály pro stavbu těla lodi. A dosáhl jsem lepšího výsledku s termocolovou fólií. Takže jsem se rozhodl postavit tělo pomocí termocolu. Nejprve jsem vzal 3 cm silný kus termocolu a položil obvod přijímače na vrchol, poté jsem označil tvar lodi v termocolu a řezal. Toto je můj způsob, jak postavit loď, můžete stavět podle svých představ.
Motory a vrtule pro letecký člun Arduino
Opět záleží na hmotnosti. Takže výběr správného motoru je důležitý, já volím normální stejnosměrné motory typu 5volt, n20, které jsou malé a bez tíhy. Abyste se vyhnuli vysokofrekvenčnímu rušení, měli byste k vstupům motoru připojit paralelně kondenzátor 0,1uf.
V případě vrtulí jsem vyráběl vrtule pomocí plastových fólií. Můžete si koupit vrtule v obchodě nebo si můžete postavit vlastní, obě budou fungovat dobře. Při stavbě vrtulí jsem nejprve vzal malou plastovou fólii a odřízl jsem z ní dva malé kousky a kousky ohnuli pomocí tepla svíčky. Nakonec jsem do jeho středu vložil malý otvor pro motor a připevnil k motoru, který je ono.
Práce s Arduino RC Boat
Tato loď má dva motory, takže ji můžeme nazvat doleva a doprava. Pokud se motor posune také ve směru hodinových ručiček (závisí také poloha vrtule), vrtule nasává vzduch zepředu a výfuk do zadní části. To generuje dopředný odpor.
Pohyb vpřed: Pokud se levý i pravý motor otáčí ve směru hodinových ručiček, bude pohyb vpřed
Zpětný pohyb: Pokud se levý i pravý motor otáčejí proti směru hodinových ručiček (tj. Vrtule nasává vzduch ze zadní strany a výfuk na přední stranu), bude se pohybovat dozadu
Pohyb doleva: Pokud se otáčí pouze pravý motor, což je loď, táhněte pouze z pravé strany, čímž se loď přesune na levou stranu
Pohyb doprava: Pokud se otáčí pouze levý motor, jedná se o člun, táhne se pouze z levé strany, čímž se člun přesune na pravou stranu.
Připojili jsme vstup ovladače motoru ke čtyřem výstupním bitům dekodéru (D8-D11). tyto 4 výstupy můžeme ovládat připojením AD8-AD11 k zemi, což jsou tlačítka na dálkovém ovladači. Například pokud připojíme AD8 k zemi, která aktivuje D8. Takto můžeme pomocí těchto 4 výstupů ovládat dva motory ve dvou směrech. Ale nemůžeme ovládat dva motory pouhým jedním tlačítkem (to potřebujeme pro pohyb vpřed a vzad), proto jsme použili Arduino. S pomocí Arduina si můžeme vybrat piny vstupních dat podle našeho přání.
Arduino programování RC lodi
Programování této lodi je velmi jednoduché, protože chceme pouze určité logické přepínání. Všechno můžeme dosáhnout základními funkcemi Arduino. Kompletní program tohoto projektu najdete ve spodní části této stránky. Vysvětlení vašeho programu je následující
Program spustíme definováním celých čísel pro čtyři vstupní tlačítka a piny dekodéru.
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 sekci nastavení jsem definoval režimy pinů. To znamená, že tlačítka jsou připojena k digitálním pinům, takže tyto piny by měly být definovány jako vstup a musíme získat výstup pro vstup dekodéru, takže bychom měli tyto piny definovat jako 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);
Dále ve funkci hlavní smyčky budeme číst stav tlačítka pomocí funkce digitálního čtení Arduina. Pokud stav kolíku klesne, což znamená, že je stisknut odpovídající kolík, provedeme podmínky následujícím způsobem -
if (digitalRead (f_button) == LOW)
To znamená, že je stisknuto tlačítko vpřed
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Tím se rozbalí m1 a m2 kodéru, čímž se aktivují oba motory na straně přijímače. Podobně pro zpětný pohyb
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Pro pohyb vlevo
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Pro správný pohyb
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Po sestavení kódu jej nahrajte na svoji desku Arduino.
Odstraňování problémů: Položte člun na vodní hladinu a zkontrolujte, zda se pohybuje správně, pokud se nepokoušíte změnit polaritu motorů a vrtulí. Pokuste se také vyvážit váhu.
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ářů.