- „Arduino RC Boat“ reikalingi komponentai
- 433MHz radijo siųstuvo ir imtuvo moduliai
- 433MHZ RF siųstuvas
- Blokinė „Arduino RC“ valčių siųstuvo schema
- „Arduino RC“ nuotolinio valdymo pulto (siųstuvo) grandinės schema
- RC BOAT siųstuvo grandinės sukūrimas
- „Arduino RC“ valčių siųstuvo gaubto statyba
- 433 MHz imtuvo modulis
- Blokinė „Arduino RC“ valties imtuvo schema
- „Arduino RC“ valčių imtuvo grandinės schema
- „Arduino RC Boat“ imtuvo grandinės sukūrimas
- RC-BOAT statyba
- Varikliai ir oro sraigtai „Arduino Air Boat“
- „Arduino RC Boat“ darbas
- RC valties „Arduino“ programavimas
Šiame projekte sukursime nuotoliniu būdu valdomą „Arduino Air-Boat“, kurį galima valdyti belaidžiu būdu naudojant 433 MHz radijo dažnio modulius. Mes valdysime šią valtį naudodami naminį nuotolinio valdymo pultą, sukurdami savo 433 MHz siųstuvą ir imtuvo modulį. Nuotoliniu būdu valdomų įrenginių arba ryšio tarp dviejų įrenginių atveju mes turime daugybę galimybių, tokių kaip IR, „Bluetooth“, internetas, RF ir kt. Palyginti su IR ryšiu, radijo ryšiai turi tam tikrų pranašumų, pvz., Didesnis diapazonas, o ne reikalingas matymo linijos ryšys tarp siųstuvo ir imtuvo. Be to, šie moduliai gali atlikti du bendravimo būdus, tai reiškia, kad jie gali perduoti ir priimti vienu metu. Taigi naudodami šį 433MHz RF modulį sukursime „ Arduino RC Boat“ šioje pamokoje.
Anksčiau mes sukūrėme daug nuotoliniu būdu valdomų projektų, naudodami šiuos 433 MHz RF modulius, norėdami valdyti robotą, pavyzdžiui, šį RF valdomą robotą, arba namų automatikos programoms, skirtoms valdyti buitinius prietaisus naudojant RF. Be RF modulių naudojimo, mes taip pat anksčiau sukūrėme „Bluetooth“ valdomą „Raspberry Pi“ automobilį ir „DTMF“ mobiliuoju telefonu valdomą „Arduino Robot“. Taip pat galite peržiūrėti šiuos projektus, jei jus domina.
„Arduino RC Boat“ reikalingi komponentai
- 433MHz siųstuvas ir imtuvas
- „Arduino“ (bet koks „Arduino“, norėdamas sumažinti dydį, kurį naudoju „promini“)
- HT12E ir HT12D
- Mygtukai - 4Nos
- Rezistoriai - 1mega omas, 47k omas
- L293d variklio tvarkyklė
- 9 V akumuliatorius (naudoju 7,4 voltų bateriją) - 2 Ne
- 7805 reguliatorius- 2Nos
- Nuolatinės srovės varikliai - 2
- Variklio varikliai ar sraigtai (aš naudoju naminius sraigtus) - 2Nos
- .1uf kondensatorius- 2Nos
- Bendra PCB
433MHz radijo siųstuvo ir imtuvo moduliai
Tokio tipo RF moduliai yra labai populiarūs tarp gamintojų. Dėl jų mažos kainos ir paprastumo jungtims. Šie moduliai geriausiai tinka visų formų trumpojo nuotolio komunikacijos projektams. Šie moduliai yra ASK (Amplitude Shift Keying) tipo RF moduliai, Amplitude-shift keying (ASK) yra amplitudės moduliacijos forma, vaizduojanti skaitmeninius duomenis kaip nešiklio bangos amplitudės svyravimus. ASK sistemoje dvejetainis simbolis 1 vaizduojamas perduodant fiksuotos amplitudės nešiklio bangą ir fiksuotą dažnį bitų trukmei T sekundes. Jei signalo reikšmė yra 1, tada bus perduodamas nešlio signalas; priešingu atveju bus perduodama 0 signalo reikšmė. Tai reiškia, kad perduodant „Logic“ nulį, jie paprastai neturi energijos. Dėl mažos energijos sąnaudos jie yra labai naudingi projektuojant baterijas.
433MHZ RF siųstuvas
Šio tipo modulis yra labai mažas ir turi 3 kontaktus VCC, žemę ir duomenis. Kai kuriuose kituose moduliuose yra papildomas antenos kaištis. Darbinė siųstuvo modulio įtampa yra 3–12 V, o šiame modulyje nėra jokių reguliuojamų komponentų. Vienas iš pagrindinių šio modulio privalumų yra mažas srovės suvartojimas, norint išsiųsti bitų nulį, reikia beveik nulio srovės.
Blokinė „Arduino RC“ valčių siųstuvo schema
Pirmiau pateiktoje blokinėje diagramoje yra keturi mygtukai (valdymo mygtukai), šie mygtukai skirti valties krypčiai valdyti. Mes turime keturis iš jų priekiui, atgal, kairėn ir dešinėn. Iš mygtukų gauname laivo valdymo logiką, tačiau negalime tiesiogiai prisijungti prie kodavimo įrenginio, todėl naudojome „Arduino“. Galite pagalvoti, kodėl aš čia naudojau „Arduino“, tiesiog dėl to, kad mes turime vienu metu nutraukti du lygiagrečius kodavimo įvestis, kad judėtume atgal ir į priekį, o to neįmanoma pasiekti tik mygtukais. Tada koduotojas užkoduoja būsimus lygiagrečius duomenis į nuoseklius išėjimus. Tada mes galime perduoti tuos nuoseklius duomenis RF siųstuvo pagalba.
„Arduino RC“ nuotolinio valdymo pulto (siųstuvo) grandinės schema
Pirmiau pateiktoje grandinėje galite pamatyti visų keturių mygtukų, sujungtų su keturiais skaitmeniniais „Arduino“ (D6-D9) kaiščiais, pusę ir visas kitas keturias šonus, sujungtas su žeme. Būtent tada, kai paspaudžiame mygtuką, atitinkami skaitmeniniai kaiščiai gauna žemą logiką. Keturi lygiagretūs HT12E kodavimo įėjimai, prijungti prie kitų keturių „Arduino“ (D2-D5) skaitmeninių kaiščių. Taigi su „Arduino“ pagalba galime nuspręsti, kokio kodavimo įvesties kodą naudoti reikia.
„ HT12E“ yra 12 bitų kodavimo įrenginys ir lygiagretus įvesties serijinis išvesties koderis. Iš 12 bitų 8 bitai yra adreso bitai, kuriuos galima naudoti valdant kelis imtuvus. Kaiščiai A0-A7 yra adreso įvesties kaiščiai. Šiame projekte mes valdome tik vieną imtuvą, todėl nenorime keisti jo adreso, todėl visus adreso kaiščius prijungiau prie žemės. Jei norite valdyti skirtingus imtuvus vienu siųstuvu, čia galite naudoti panardinimo jungiklius. AD8-AD11 yra valdymo bitų įėjimai. Šie įėjimai valdys HT12D dekoderio D0-D3 išėjimus. Turime prijungti osciliatorių ryšiui ir osciliatoriaus dažnis turėtų būti 3KHz5 V veikimui. Tada 5V rezistoriaus vertė bus 1,1MΩ. Tada aš prijungiau HT12E išvestį prie siųstuvo modulio. Mes jau minėjome, „Arduino“ ir „RF“ siųstuvo modulis, abu šie įrenginiai veikia 5 V aukštos įtampos metu, jį nužudys, todėl, kad to išvengčiau, pridėjau 7805 įtampos reguliatorių. Dabar mes galime prijungti (Vcc) 6-12 voltų bet kokio tipo baterijas.
RC BOAT siųstuvo grandinės sukūrimas
Kiekvieną komponentą sulitavau ant bendrosios PCB. Atminkite, kad mes dirbame su RF projektu, todėl yra daugybė įvairių tipų trukdžių, todėl labai glaudžiai sujunkite visus komponentus. Geriau naudoti moteriškas kaiščių antraštes „Arduino“ ir siųstuvo moduliui. Be to, pabandykite viską lituoti ant varinių pagalvėlių, užuot naudoję papildomus laidus. Galiausiai prie siųstuvo modulio prijunkite mažą laidą, kuris padės padidinti bendrą diapazoną. Prieš prijungdami „Arduino“ ir siųstuvo modulį, dar kartą patikrinkite lm7805 išėjimo įtampą.
Aukščiau pateiktame paveikslėlyje parodytas baigtos RC valties siųstuvo grandinės vaizdas iš viršaus, o apačioje - užbaigtos RC valties siųstuvo grandinės vaizdas.
„Arduino RC“ valčių siųstuvo gaubto statyba
Pultui reikalingas padorus kūnas. Šis žingsnis yra skirtas jūsų idėjoms, su savo idėjomis galite sukurti nuotolinį kūną. Aš aiškinu, kaip aš tai padariau. Nuotolinio korpuso gamybai renkuosi 4 mm MDF lakštus, taip pat galite rinktis fanerą, putplasčio lakštą ar kartoną, tada aš iš jų supjaustiau dvi dalis, kurių ilgis 10 cm, o plotis 5 cm. Tada pažymėjau mygtukų vietas. Aš įdėjau krypties mygtukus kairėje pusėje ir į priekį, atgal į dešinę. Kitoje lapo pusėje prijungiau mygtukus prie pagrindinės perdavimo grandinės. Atminkite, kad įprastame mygtuke yra 4 kaiščiai, kurie yra po du kaiščius kiekvienai pusei. Prijunkite vieną kaištį prie „Arduino“, o kitą - prie žemės. Jei esate su tuo supainiotas, patikrinkite tai multimetru arba patikrinkite duomenų lapą.
Prijungęs visus šiuos dalykus, aš įdėjau valdymo grandinę tarp dviejų MDF plokščių ir priveržiau ilgą varžtą (jei norite, žr. Toliau pateiktus paveikslėlius). Dar kartą sukurkite gerą kūną apie savo idėjas.
433 MHz imtuvo modulis
Šis imtuvas taip pat labai mažas ir turi 4 kontaktus VCC, įžemintą, o du viduriniai kaiščiai yra duomenys. Šio modulio darbinė įtampa yra 5v. Kaip ir siųstuvo modulis, tai taip pat yra mažos galios modulis. Kai kuriuose moduliuose yra papildomas antenos kaištis, bet mano atveju to nėra.
Blokinė „Arduino RC“ valties imtuvo schema
Aukščiau pateiktoje blokinėje schemoje aprašytas RF imtuvo grandinės darbas. Pirma, perduotus signalus galime priimti naudodami RF imtuvo modulį. Šio imtuvo išvestis yra nuoseklūs duomenys. Bet mes negalime nieko kontroliuoti šiais serijiniais duomenimis, todėl mes prijungėme išvestį prie dekoderio. Dekoderis iššifruoja serijinius duomenis į mūsų pirminius lygiagrečius duomenis. Šiame skyriuje mums nereikia jokių mikrovaldiklių, mes galime tiesiogiai prijungti išėjimus prie variklio tvarkyklės.
„Arduino RC“ valčių imtuvo grandinės schema
HT12D yra 12 bitų dekoderis, kuris yra serijos įvesties-lygiagrečios išvada dekoderis. HT12D įvesties kaištis bus prijungtas prie imtuvo, kuris turi nuoseklųjį išėjimą. Tarp 12 bitų 8 bitai (A0-A7) yra adreso bitai, o HT12D iššifruos įvestį, jei tik ji atitiks dabartinį adresą. D8-D11 yra išvesties bitai. Norėdami suderinti šią grandinę su siųstuvo grandine, aš prijungiau visus adreso kaiščius prie žemės. Duomenys iš modulio yra serijinio tipo, o dekoderis iššifruoja šiuos nuoseklius duomenis į originalius lygiagrečius duomenis, ir mes išeiname per D8-D11. Norint suderinti svyravimo dažnį, 33-56k rezistorius reikia prijungti prie osciliatoriaus kaiščių. Šviesos ant 17-ojo kaiščio rodo galiojantį perdavimą, jis užsidega tik tada, kai imtuvas prijungtas prie siųstuvo. Imtuvo įtampa taip pat yra 6-12 voltų.
Varikliams valdyti naudojau L293D IC, renkuosi šį IC, nes norėčiau sumažinti dydį ir svorį, o šis IC geriausiai tinka valdyti du variklius dviem kryptimis. L293D turi 16 smeigtukų, žemiau esančioje diagramoje parodyti kištukai.
1, 9 kaiščiai yra įjungimo kaištis, mes prijungiame prie 5 V, kad 1A, 2A, 3A ir 4A varikliai būtų valdymo kaiščiai. Variklis pasisuks į dešinę, jei kaištis 1A eis žemai, o 2A - aukštai, o variklis pasuks į kairę, jei 1A eis žemai ir 2A aukštai. Taigi mes sujungėme šiuos kaiščius su dekoderio išvesties ps. 1Y, 2Y, 3Y ir 4Y yra variklio jungties kaiščiai. „Vcc2“ yra variklio varomosios įtampos kaištis, jei naudojate aukštos įtampos variklį, tada šį kaištį prijungiate prie atitinkamo įtampos šaltinio.
„Arduino RC Boat“ imtuvo grandinės sukūrimas
Prieš statydami imtuvo grandinę, turėtumėte prisiminti keletą svarbių dalykų. Svarbus yra dydis ir svoris, nes pastačius grandinę turime ją pritvirtinti prie valties. Taigi, jei svoris padidės, tai turės įtakos plūdrumui ir judėjimui.
Panašiai kaip siųstuvo grandinėje, sulituokite kiekvieną komponentą mažoje bendroje PCB ir pabandykite naudoti minimalius laidus. Aš prijungiau variklio tvarkyklės 8 kaištį prie 5v, nes naudoju 5V variklius.
RC-BOAT statyba
Išbandžiau įvairias medžiagas, norėdamas pastatyti valties kėbulą. Ir aš gavau geresnį rezultatą su termokoladu. Taigi nusprendžiau pastatyti kūną termokolu. Pirma, aš paėmiau 3 cm storio termokolado gabalėlį ir uždėjau imtuvo grandinę viršuje, tada aš pažymėjau valties formą termokolonu ir supjaustiau. Tai yra mano būdas pastatyti valtį, kurią galite pastatyti pagal savo idėjas.
Varikliai ir oro sraigtai „Arduino Air Boat“
Vėlgi svoris yra svarbus. Taigi svarbu pasirinkti tinkamą variklį, aš renkuosi 5 voltų, n20 tipo įprastus nuolatinės srovės variklius, kurie yra nedideli ir nesvarūs. Norėdami išvengti radijo dažnių trikdžių, 0.1uf kondensatorių reikia prijungti lygiagrečiai su variklio įėjimais.
Sraigtų atveju aš padariau sraigtus naudodamas plastikinius lakštus. Galite nusipirkti sraigtus iš parduotuvės arba galite patys pasistatyti abu. Norėdami pastatyti sraigtus, pirmiausia paėmiau mažą plastikinį lakštą ir iš jo supjaustiau du mažus gabalėlius, kuriuos sulenkiau žvakių šilumos pagalba. Galiausiai jo centre įdėjau nedidelę skylę varikliui ir pritvirtinau prie viso to variklio.
„Arduino RC Boat“ darbas
Ši valtis turi du variklius, kuriuos galima vadinti kairėn ir dešinėn. Jei variklis taip pat juda pagal laikrodžio rodyklę (propelerio padėtis taip pat priklauso), oro sraigtas siurbia orą iš priekio ir išmetimą į galinę pusę. Tai sukuria tempimą į priekį.
Judėjimas į priekį: Jei kairysis ir dešinysis varikliai sukasi į laikrodžio rodyklę, tai judės pirmyn
Judėjimas atgal: jei kairysis ir dešinysis varikliai sukasi prieš laikrodžio rodyklę (tai yra sraigtas, siurbiantis orą iš užpakalio ir išmetimo į priekinę pusę), tai sukels atgal
Kairysis judėjimas: jei sukasi tik dešinysis variklis, tai yra valtis, vilkite tik iš dešinės pusės, kuri valtį pajudės į kairę
Dešinysis judesys: jei sukasi tik kairysis variklis, tai yra valtis, vilkite tik iš kairės pusės, kad valtis judėtų į dešinę pusę.
Variklių vairuotojo įvestį sujungėme su keturiais išvesties bitais dekoderio (D8-D11). mes galime valdyti šiuos 4 išėjimus, prijungdami AD8-AD11 prie žemės, kuri yra mygtukai nuotolinio valdymo pulte. Pavyzdžiui, jei mes prijungsime AD8 prie žemės, kuri suaktyvins D8. Taigi tokiu būdu mes galime valdyti du variklius dviem kryptimis, naudodami šiuos 4 išėjimus. Bet mes negalime valdyti dviejų variklių tik vienu mygtuku (to reikia judėjimui pirmyn ir atgal), todėl naudojome „Arduino“. Su „Arduino“ pagalba mes galime pasirinkti įvesties duomenų kaiščius kaip savo norus.
RC valties „Arduino“ programavimas
Šios valties programavimas yra labai paprastas, nes mes norime tik tam tikro loginio perjungimo. Ir viską galime pasiekti naudodami pagrindines „Arduino“ funkcijas. Visą šio projekto programą galite rasti šio puslapio apačioje. Programos paaiškinimas yra toks
Mes pradedame programą apibrėždami sveikų skaičių keturiems įvesties mygtukams ir dekoderio įvesties kaiščiams.
int f_ mygtukas = 9; int b_ mygtukas = 8; int l_ mygtukas = 7; int r_ mygtukas = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Sąrankos skyriuje aš apibrėžiau kaiščių režimus. Tai reiškia, kad mygtukai yra prijungti prie skaitmeninių kaiščių, todėl šie kaiščiai turėtų būti apibrėžti kaip įvestis, ir mes turime gauti išvestį dekoderio įėjimui, todėl turėtume apibrėžti tuos kaiščius kaip išvestį.
pinMode (f_ mygtukas, INPUT_PULLUP); „pinMode“ (b_ mygtukas, INPUT_PULLUP); „pinMode“ (l_ mygtukas, INPUT_PULLUP); „pinMode“ (r_ mygtukas, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Toliau pagrindinės kilpos funkcijoje mes perskaitysime mygtuko būseną naudodami „ Arduino“ skaitmeninio skaitymo funkciją. Jei kaiščio būsena prasta, tai reiškia, kad atitinkamas kaištis yra paspaustas, mes vykdysime sąlygas taip, kaip nurodyta toliau.
jei („digitalRead“ (f_ mygtukas) == LOW)
Tai reiškia, kad paspaudžiamas pirmyn mygtukas
{ digitalWrite (m1, LOW); „digitalWrite“ (m3, LOW); „digitalWrite“ (m2, AUKŠTAS); „digitalWrite“ (m4, HIGH); }
Tai nulems kodavimo priemonės m1 ir m2, o tai suaktyvins abu variklius imtuvo pusėje. Panašiai ir judėjimui atgal
{ digitalWrite (m1, HIGH); „digitalWrite“ (m3, HIGH); „digitalWrite“ (m2, LOW); „digitalWrite“ (m4, LOW); }
Kairiajam judesiui
{ digitalWrite (m1, LOW); „digitalWrite“ (m3, HIGH); „digitalWrite“ (m2, AUKŠTAS); „digitalWrite“ (m4, HIGH); }
Už teisingą judėjimą
{ digitalWrite (m1, HIGH); „digitalWrite“ (m3, LOW); „digitalWrite“ (m2, AUKŠTAS); „digitalWrite“ (m4, HIGH); }
Surinkę kodą, įkelkite jį į savo „Arduino“ lentą.
Trikčių šalinimas: pastatykite valtį ant vandens paviršiaus ir patikrinkite, ar ji juda teisingai, jei nemėginsite pakeisti variklių ir sraigtų poliškumo. Be to, pabandykite subalansuoti svorį.
Išsamų projekto darbą galite rasti vaizdo įraše, susietame šio puslapio apačioje. Jei turite klausimų, palikite juos komentarų skiltyje.