- Komponente, potrebne za Arduino RC Boat
- 433MHz RF oddajniški moduli
- RF oddajnik 433 MHz
- Blokovni diagram oddajnika čolna Arduino RC
- Shema vezja daljinskega upravljalnika Arduino RC (oddajnik)
- Izdelava oddajniškega krogotoka RC BOAT
- Gradnja ohišja oddajnika za čolne Arduino RC
- 433 MHz modul sprejemnika
- Blokovni diagram sprejemnika čolna Arduino RC
- Shema vezja sprejemnika čolna Arduino RC
- Izdelava sprejemnega vezja Arduino RC Boat
- Izdelava RC-BOAT
- Motorji in propelerji za Arduino Air Boat
- Delovanje Arduino RC Boat
- Arduino programiranje RC čolna
V tem projektu bomo zgradili daljinsko vodeni Arduino Air-Boat, ki ga je mogoče brezžično krmiliti z RF radijskimi moduli 433 MHz. Ta čoln bomo nadzirali z doma narejenim daljinskim upravljalnikom z izdelavo lastnega oddajnika in sprejemnega modula 433 MHz. V primeru naprav z daljinskim upravljanjem ali komunikacije med dvema napravama imamo veliko možnosti, kot so IR, Bluetooth, internet, RF itd. V primerjavi z IR komunikacijo imajo radijske komunikacije nekatere prednosti, kot je večji domet in ne zahtevajo vidno povezavo med oddajnikom in sprejemnikom. Ti moduli lahko na dva načina komunicirajo, kar pomeni, da lahko istočasno oddaja in sprejema. Torej, z uporabo tega 433MHz RF modula zgradimo Arduino RC Boat v tej vadnici.
Pred tem smo zgradili veliko projektov z daljinskim upravljanjem, ki uporabljajo te 433 MHz radijske module za krmiljenje robota, kot je ta RF nadzorovani robot, ali za aplikacije za avtomatizacijo doma za nadzor gospodinjskih aparatov, ki uporabljajo RF. Poleg uporabe RF modulov smo prej izdelali tudi avtomobil Raspberry Pi z nadzorom Bluetooth in mobilni telefon DTMF, ki ga je nadzoroval Arduino Robot. Te projekte lahko tudi preverite, če vas zanima.
Komponente, potrebne za Arduino RC Boat
- 433MHz oddajnik in sprejemnik
- Arduino (kateri koli Arduino, za zmanjšanje velikosti, ki ga uporabljam promini)
- HT12E in HT12D
- Tipke - 4Št
- Upori - 1mega ohm, 47k ohm
- L293d Motor voznik
- 9V baterija (uporabljam 7,4-voltno baterijo) - 2Nos
- 7805 regulator - 2 št
- Enosmerni motorji - 2 št
- Motorni list ali propelerji (uporabljam domače propelerje) - 2 št
- .1uf kondenzator - 2Št
- Skupni PCB
433MHz RF oddajniški moduli
Te vrste RF modulov so zelo priljubljene med proizvajalci. Zaradi nizke cene in preprostosti povezav. Ti moduli so najboljši za vse oblike komunikacijskih projektov kratkega dosega. Ti moduli so RF moduli tipa ASK (Amplitude Shift Keying), tipkanje z amplitudnim premikom (ASK) je oblika amplitudne modulacije, ki digitalne podatke predstavlja kot variacije amplitude nosilnega vala. V sistemu ASK je binarni simbol 1 predstavljen s prenosom nosilnega vala s fiksno amplitudo in fiksne frekvence v bitnem trajanju T sekund. Če je vrednost signala 1, se bo prenašal nosilec; v nasprotnem primeru bo posredovana vrednost signala 0. To pomeni, da pri oddajanju logike "nič" običajno ne porabijo moči. Zaradi majhne porabe energije so zelo koristni pri projektih na baterije.
RF oddajnik 433 MHz
Ta vrsta modula je zelo majhna in ima 3 nožice VCC, ozemljitev in podatke. Nekateri drugi moduli imajo dodatni antenski zatič. Delovna napetost oddajniškega modula je 3V-12V in ta modul nima nastavljivih komponent. Ena glavnih prednosti tega modula je majhna poraba toka, za pošiljanje bitov nič pa zahteva skoraj nič toka.
Blokovni diagram oddajnika čolna Arduino RC
V zgornjem blokovnem diagramu so štirje gumbi (gumbi za upravljanje), ti gumbi so namenjeni za nadzor smeri čolna. Imamo jih štiri za naprej, nazaj, levo in desno. S tipkami dobimo logiko za upravljanje čolna, vendar se ne moremo neposredno povezati z dajalnikom, zato smo uporabili Arduino. Morda si mislite, zakaj sem tukaj uporabil Arduino, preprosto zato, ker moramo hkrati potegniti navzdol dva vzporedna podatkovna vhoda kodirnika za premikanje nazaj in naprej, ki ga ni mogoče doseči samo s tipkami. Nato dajalnik kodira prihajajoče vzporedne podatke na serijske izhode. Nato lahko te serijske podatke posredujemo s pomočjo RF oddajnika.
Shema vezja daljinskega upravljalnika Arduino RC (oddajnik)
V zgornjem vezju lahko vidite eno stran vseh štirih gumbov, povezanih s štirimi digitalnimi zatiči Arduino (D6-D9), in vse štiri druge strani, povezane s tlemi. Takrat, ko pritisnemo gumb, ustrezni digitalni zatiči postanejo logično nizki. Štirje vzporedni vhodi dajalnika HT12E so povezani z drugimi štirimi digitalnimi zatiči Arduina (D2-D5). Tako lahko s pomočjo Arduina določimo vhod dajalnika.
In če govorimo o dajalniku, je HT12E 12-bitni kodirnik in vzporedni vhodno-serijski izhodni dajalnik. Od 12 bitov so 8-bitni naslovni biti, ki jih je mogoče uporabiti za nadzor več sprejemnikov. Zatiči A0-A7 so zatiči za vnos naslova. V tem projektu nadzorujemo samo en sprejemnik, zato ne želimo spreminjati njegovega naslova, zato sem vse naslovne nožice priključil na tla. Če želite z enim oddajnikom upravljati različne sprejemnike, lahko tukaj uporabite dip stikala. AD8-AD11 so krmilni bitni vhodi. Ti vhodi bodo nadzorovali izhode D0-D3 dekodirnika HT12D. Za komunikacijo moramo priključiti oscilator, frekvenca oscilatorja pa mora biti 3KHzza 5V delovanje. Potem bo vrednost upora 1,1MΩ za 5V. Nato sem izhod HT12E priključil na modul oddajnika. Omenili smo že, modul oddajnika Arduino in RF, obe napravi delujeta na 5V visoki napetosti, ga bosta ubili, zato sem v izogib temu dodal regulator napetosti 7805. Sedaj lahko na vhod priključimo (Vcc) 6-12volt katere koli baterije.
Izdelava oddajniškega krogotoka RC BOAT
Vsako komponento sem spajkal na skupni PCB. Ne pozabite, da delamo na projektu RF, zato obstaja veliko možnosti za različne vrste motenj, zato čim bolj povežite vse komponente. Za Arduino in oddajniški modul je bolje uporabiti ženske glave zatičev. Poskusite tudi spajkati vse na bakrenih blazinicah, namesto da bi uporabljali dodatne žice. Na koncu na oddajniški modul povežite majhno žico, ki bo pomagala povečati skupni domet. Preden priključite modul Arduino in oddajnik, dvakrat preverite napetost izhoda lm7805.
Zgornja slika prikazuje pogled od zgoraj dokončanega vezja RC Boat oddajnika, od spodaj pa dokončan pogled dokončanega vezja RC Boat Transmitter.
Gradnja ohišja oddajnika za čolne Arduino RC
Za daljinec je potrebno spodobno telo. Ta korak se nanaša na vaše ideje, s svojimi idejami lahko ustvarite oddaljeno telo. Pojasnjujem, kako sem to naredil. Za izdelavo daljinskega ohišja izberem 4 mm plošče MDF, lahko tudi vezane plošče, penaste plošče ali karton, nato pa od tega izrežem dva kosa dolžine 10 cm in širine 5 cm. Nato sem označil mesta gumbov. Gumbe za smer sem postavil na levo stran in gumbe za naprej, nazaj na desno. Na drugi strani lista sem tipke priključil na glavno oddajno vezje. Ne pozabite, da ima običajno tipko 4 zatiča, ki sta po dva zatiča za vsako stran. En zatič priključite na Arduino, drugega pa na tla. Če ste s tem zmedeni, preverite z multimetrom ali preverite podatkovni list.
Po priključitvi vseh teh stvari sem krmilno vezje postavil med dve plošči MDF in privil z dolgim vijakom (če želite, glejte spodnje slike). Ponovno ustvarjanje dobrega telesa je vse v vaših idejah.
433 MHz modul sprejemnika
Ta sprejemnik je prav tako majhen in ima 4 zatiče VCC, ozemljen, dva srednja zatiča pa sta izhodna. Delovna napetost tega modula je 5v. Tako kot oddajniški modul je tudi to modul z nizko porabo energije. Nekateri moduli imajo dodatni antenski zatič, v mojem primeru pa tega ni.
Blokovni diagram sprejemnika čolna Arduino RC
Zgornji blokovni diagram opisuje delovanje RF vezja sprejemnika. Najprej lahko sprejemamo oddane signale z uporabo RF sprejemnega modula. Izhod tega sprejemnika so serijski podatki. Toda s temi serijskimi podatki ne moremo ničesar nadzorovati, zato smo izhod priključili na dekoder. Dekoder dešifrira serijske podatke na naše prvotne vzporedne podatke. V tem poglavju ne potrebujemo nobenega mikrokrmilnika, izhode lahko neposredno priključimo na gonilnik motorja.
Shema vezja sprejemnika čolna Arduino RC
HT12D je 12-bitni dekodirnik, ki je serijsko vhodno-paralelni izhod dekoder. Vhodni zatič HT12D bo povezan s sprejemnikom s serijskim izhodom. Med 12-bitnimi 8-bitnimi (A0-A7) so naslovni biti in HT12D bo dekodiral vhod, če se le ujema s trenutnim naslovom. D8-D11 so izhodni bit. Da bi to vezje ujemalo z vezjem oddajnika, sem na tla priključil vse naslovne zatiče. Podatki iz modula so serijski in dekodirnik te serijske podatke dešifrira v izvirne vzporedne podatke in izstopimo skozi D8-D11. Da bi se ujemali s frekvenco nihanja, upor 33-56k priključite na oscilatorje. Lučka na 17. nožici označuje veljaven prenos, zasveti pa šele potem, ko je sprejemnik povezan z oddajnikom. Vhodna napetost sprejemnika je prav tako 6-12 voltov.
Za nadzor motorjev sem uporabil L293D IC, to IC sem izbral, ker za zmanjšanje velikosti in teže je ta IC najboljši za krmiljenje dveh motorjev v dveh smereh. L293D ima 16 nožic, spodnji diagram prikazuje priključke.
1, 9 zatiči so omogočilni zatič, to priključimo na 5 v, da omogočimo motorje 1A, 2A, 3A in 4A so krmilni zatiči. Če se zatič 1A spusti nizko in 2A visoko, se motor obrne v desno, če se 1A spusti nizko in 2A visoko, pa motor. Torej smo te nožice povezali z izhodnim psom dekoderja. 1Y, 2Y, 3Y in 4Y so zatiči motorja. Vcc2 je zatič pogonske napetosti motorja. Če uporabljate visokonapetostni motor, ga priključite na ustrezen vir napetosti.
Izdelava sprejemnega vezja Arduino RC Boat
Pred gradnjo sprejemniškega vezja se morate spomniti nekaterih pomembnih stvari. Pomembna je velikost in teža, ker jo moramo po izdelavi kroga pritrditi na čoln. Torej, če se teža poveča, bo to vplivalo na vzgon in gibanje.
Tako kot v vezju oddajnika spajkajte vsako komponento v majhnem skupnem tiskanem vezju in poskusite uporabiti najmanj žic. Zatič 8 gonilnika motorja sem priključil na 5v, ker uporabljam 5V motorje.
Izdelava RC-BOAT
Poskusil sem različne materiale za izdelavo telesa čolna. In boljši rezultat sem dosegel s termokol folijo. Zato sem se odločil, da bom telo zgradil s termokolom. Najprej sem vzel 3 cm debel košček termokola in postavil sprejemniško vezje na vrh, nato pa sem obliko čolna označil s termokolom in odrezal. Torej, to je moj način za izdelavo čolna, ki ga lahko gradite po svojih idejah.
Motorji in propelerji za Arduino Air Boat
Še enkrat teža je pomembna. Torej je izbira pravilnega motorja pomembna, jaz izberem običajne enosmerne motorje s 5 volti tipa n20, ki so majhni in brez teže. Da bi se izognili RF motnjam, priključite 0,1uf kondenzator vzporedno z vhodi motorja.
V primeru propelerjev sem propelerje izdeloval s pomočjo plastičnih folij. Propelere lahko kupite v trgovini ali pa jih lahko zgradite sami, oba bosta dobro delovala. Za izdelavo propelerjev sem najprej vzel majhno plastično folijo in iz nje odrezal dva majhna kosa ter jih s pomočjo toplote sveč upognil. Na koncu sem v njegovo sredino postavil majhno luknjo za motor in ga pritrdil na motor, ki je to.
Delovanje Arduino RC Boat
Ta čoln ima dva motorja, tako da ga lahko imenujemo levo in desno. Če se motor premakne tudi v smeri urnega kazalca (položaj pogona je odvisen tudi), poganja zrak od spredaj in izpuh na zadnjo stran. To ustvarja vleko naprej.
Premik naprej: Če se tako levi kot desni motor zavrtita v smeri urinega kazalca, se bo premikanje naprej
Gibanje nazaj: če se tako levi kot desni motor zavrtita v nasprotni smeri urnega kazalca (to je propeler, ki sesa zrak iz zadnje strani in izpuh na sprednjo stran), se bo vrtelo nazaj
Levo gibanje: Če se vrti le desni motor, to je čoln, le povlecite z desne strani, da se bo čoln premaknil na levo stran
Desno gibanje: Če se vrti le levi motor, je čoln le vlečen z leve strani, zaradi česar se čoln premakne na desno stran.
Vhod gonilnika motorjev smo povezali na štiri izhodne bite dekoderja (D8-D11). te 4 izhode lahko nadzorujemo tako, da AD8-AD11 priključimo na tla, ki so gumbi na daljinskem upravljalniku. Na primer, če AD8 priključimo na zemljo, ki bo aktivirala D8. Tako lahko s pomočjo teh 4 izhodov krmilimo motorja v dveh smereh. Vendar z enim gumbom ne moremo upravljati dveh motorjev (to potrebujemo za premikanje naprej in nazaj), zato smo uporabili Arduino. S pomočjo Arduina lahko po želji izberemo nožice za vhodne podatke.
Arduino programiranje RC čolna
Programiranje tega čolna je zelo preprosto, ker želimo le nekaj logičnega preklopa. In vse lahko dosežemo z osnovnimi funkcijami Arduino. Celoten program za ta projekt najdete na dnu te strani. Razlaga vašega programa je naslednja
Program zaženemo z definiranjem celih števil za štiri vhodne gumbe in dekodirne vhodne nožice.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
V razdelku za nastavitev sem določil načine zatičev. To pomeni, da so gumbi povezani z digitalnimi nožicami, zato jih je treba definirati kot vhodne podatke, za vhod dekodirnika pa moramo dobiti izhod, zato jih moramo določiti kot izhodne.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, IZHOD); pinMode (m2, IZHOD); pinMode (m3, IZHOD); pinMode (m4, IZHOD);
Nato bomo v funkciji glavne zanke prebrali stanje gumba s pomočjo funkcije digitalnega branja Arduino. Če je stanje zatiča nizko, to pomeni, da je pritisnjen ustrezni zatič, bomo izvedli pogoje, kot sledi:
če (digitalRead (f_button) == LOW)
To pomeni, da je pritisnjen gumb za naprej
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, VISOKO); digitalWrite (m4, HIGH); }
S tem se bosta spuščala m1 in m2 dajalnika, s čimer se bosta aktivirala oba motorja na strani sprejemnika. Podobno tudi za gibanje nazaj
{ digitalWrite (m1, HIGH); digitalWrite (m3, VISOKO); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Za levo gibanje
{ digitalWrite (m1, LOW); digitalWrite (m3, VISOKO); digitalWrite (m2, VISOKO); digitalWrite (m4, HIGH); }
Za pravilno gibanje
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, VISOKO); digitalWrite (m4, HIGH); }
Po sestavi kode jo naložite na ploščo Arduino.
Odpravljanje težav: Postavite čoln na vodno gladino in preverite, ali se premika pravilno, če ne poskusite spremeniti polarnosti motorjev in propelerjev. Poskusite tudi uravnotežiti težo.
Celotno delovanje projekta najdete v videoposnetku, ki je povezan na dnu te strani. Če imate kakršna koli vprašanja, jih pustite v oddelku za komentarje.