- Tarvittavat komponentit Arduino RC Boatille
- 433 MHz: n RF-lähetin- ja vastaanotinmoduulit
- 433 MHz RF-lähetin
- Arduino RC -venelähettimen lohkokaavio
- Arduino RC -kaukosäätimen piirikaavio (lähetin)
- RC BOAT -lähetinpiirin rakentaminen
- Arduino RC -venelähettimen kotelon rakentaminen
- 433 MHz: n vastaanotinmoduuli
- Arduino RC -venevastaanottimen lohkokaavio
- Arduino RC -venevastaanottimen piirikaavio
- Arduino RC -veneen vastaanottopiirin rakentaminen
- RC-BOATin rakentaminen
- Arduino Air Boat -moottorit ja potkurit
- Arduino RC Boatin työskentely
- RC-veneen Arduino-ohjelmointi
Tässä projektissa rakennamme kauko-ohjattavan Arduino Air-Boatin, jota voidaan ohjata langattomasti 433 MHz: n radioradiomoduuleilla. Ohjaamme tätä venettä kotitekoisella kaukosäätimellä rakentamalla oman 433 MHz: n lähettimen ja vastaanotinmoduulin. Etäohjattujen laitteiden tai kahden laitteen välisen tiedonsiirron tapauksessa meillä on paljon vaihtoehtoja, kuten IR, Bluetooth, Internet, RF jne. Infrapunayhteyteen verrattuna radioviestinnällä on joitain etuja, kuten suurempi kantama, eikä se edellyttävät näköyhteyttä lähettimen ja vastaanottimen välillä. Nämä moduulit voivat myös tehdä kahta viestintätapaa, mikä tarkoittaa, että ne voivat lähettää ja vastaanottaa samanaikaisesti. Joten käyttämällä tätä 433 MHz: n RF-moduulia rakennetaan Arduino RC Boat tässä opetusohjelmassa.
Olemme aiemmin rakentaneet monia kaukosäätöisiä projekteja, jotka käyttävät näitä 433 MHz: n RF-moduuleja joko robotin ohjaamiseen, kuten tämä RF-ohjattava robotti, tai kodin automaatio-sovelluksiin kodinkoneiden ohjaamiseksi radiotaajuutta käyttämällä. RF-moduulien käytön lisäksi olemme aiemmin rakentaneet Bluetooth-ohjatun Raspberry Pi -auton ja DTMF-matkapuhelimen ohjaaman Arduino-robotin. Voit myös tarkistaa nämä projektit, jos olet kiinnostunut.
Tarvittavat komponentit Arduino RC Boatille
- Lähetin ja vastaanotin
- Arduino (mikä tahansa Arduino, pienentää kokoa, jota käytän prominillä)
- HT12E ja HT12D
- Painikkeet - 4
- Vastukset - 1mega ohm, 47k ohm
- L293d-moottorin ohjain
- 9 V: n akku (käytän 7,4 voltin akkua) - 2 Ei
- 7805-säädin - 2
- DC-moottorit - 2
- Moottorin lehti tai potkurit (käytän kotitekoisia potkureita) - 2 Ei
- .1uf kondensaattori - 2Nos
- Yhteinen piirilevy
433 MHz: n RF-lähetin- ja vastaanotinmoduulit
Tämäntyyppiset RF-moduulit ovat erittäin suosittuja valmistajien keskuudessa. Alhaisen hinnan ja yhteyksien yksinkertaisuuden vuoksi. Nämä moduulit sopivat parhaiten kaikenlaisiin lyhyen kantaman viestintäprojekteihin. Nämä moduulit ovat ASK (Amplitude Shift Keying) -tyyppisiä RF-moduuleja, Amplitude-shift Keying (ASK) on amplitudimodulaation muoto, joka edustaa digitaalista dataa vaihteluina kantoaallon amplitudissa. ASK-järjestelmässä binäärisymboli 1 esitetään lähettämällä kiinteän amplitudin kantoaalto ja kiinteä taajuus bittijaksoksi T sekuntia. Jos signaalin arvo on 1, kantoaaltosignaali lähetetään; muuten signaalin arvo 0 lähetetään. Tämä tarkoittaa, että he eivät yleensä käytä virtaa, kun he lähettävät logiikkaa "nolla". Tämä pieni virrankulutus tekee niistä erittäin hyödyllisiä paristokäyttöisissä projekteissa.
433 MHz RF-lähetin
Tämäntyyppinen moduuli on erittäin pieni ja mukana tulee 3 nastaa VCC, maa ja data. Joissakin muissa moduuleissa on ylimääräinen antennitappi. Lähetinmoduulin käyttöjännite on 3V-12V, ja tässä moduulissa ei ole säädettäviä komponentteja. Yksi tämän moduulin suurimmista eduista on pieni virrankulutus, se vaatii melkein nollavirran bittinollan lähettämiseksi.
Arduino RC -venelähettimen lohkokaavio
Yllä olevassa lohkokaaviossa on neljä painonappia (ohjauspainikkeet), nämä painikkeet ovat veneen suunnan ohjaamiseen. Meillä on neljä niistä eteenpäin, taaksepäin, vasemmalle ja oikealle. Painikkeista saamme logiikkaa veneen ohjaamiseen, mutta emme voi suoraan muodostaa yhteyttä kooderiin, minkä vuoksi käytimme Arduinoa. Voisit ajatella, miksi käytin Arduinoa täällä, se johtuu yksinkertaisesti siitä, että meidän on vedettävä kaksi enkooderin rinnakkaista datasyöttöä samanaikaisesti taaksepäin ja eteenpäin suuntautuvaa liikettä varten, jota ei voida saavuttaa vain painikkeilla. Sitten kooderi koodaa tulevan rinnakkaisdatan sarjalähtöihin. Sitten voimme lähettää sarjanumerot RF-lähettimen avulla.
Arduino RC -kaukosäätimen piirikaavio (lähetin)
Yllä olevassa piirissä näet kaikkien neljän painikkeen yhden puolen, jotka on kytketty Arduinon (D6-D9) neljään digitaaliseen tapiin, ja kaikki neljä muuta puolta, jotka on kytketty maahan. Silloin kun painamme painiketta, vastaavien digitaalisten nastojen logiikka on matala. HT12E- kooderin neljä rinnakkaista tuloa on kytketty toiseen Arduinon (D2-D5) digitaaliseen nastaan. Joten Arduinon avulla voimme päättää kooderin tulon.
Ja puhumalla enkooderista HT12E on 12-bittinen kooderi ja rinnakkainen tulo-sarjaulostulokooderi. 12 bitistä 8 bittiä ovat osoitebittejä, joita voidaan käyttää useiden vastaanottimien ohjaamiseen. Nastat A0-A7 ovat osoitteen syöttönastat. Tässä projektissa ohjaamme vain yhtä vastaanotinta, joten emme halua muuttaa sen osoitetta, joten liitin kaikki osoitetapit maahan. Jos haluat ohjata eri vastaanottimia yhdellä lähettimellä, voit käyttää tässä upotuskytkimiä. AD8-AD11 ovat ohjausbittien tulot. Nämä tulot ohjaavat HT12D-dekooderin D0-D3-lähtöjä. Meidän on liitettävä oskillaattori viestintää varten ja oskillaattorin taajuuden tulisi olla 3KHz5 V -käyttöön. Sitten vastuksen arvo on 1,1 MΩ 5 V: lle. Sitten liitin HT12E: n lähdön lähetinmoduuliin. Olemme jo maininneet, Arduino- ja RF-lähetinmoduuli, molemmat laitteet toimivat 5 V: n suurjännitteellä, tappaa sen, joten tämän välttämiseksi lisäsin 7805: n, jännitesäätimen. Nyt voimme liittää (Vcc) 6-12 voltin minkä tahansa tyyppisiä paristoja syöttöön.
RC BOAT -lähetinpiirin rakentaminen
Juotin kaikki komponentit yhteiselle piirilevylle. Muista, että työskentelemme radiotaajuushankkeen parissa, joten erityyppisille häiriöille on paljon mahdollisuuksia, joten yhdistä kaikki komponentit hyvin tiiviisti. On parempi käyttää naarasliittimiä Arduinolle ja lähetinmoduulille. Yritä myös juottaa kaikki kuparityynyihin ylimääräisten johtojen käyttämisen sijaan. Liitä lopuksi lähetinmoduuliin pieni johto, joka auttaa lisäämään kokonaisaluetta. Tarkista ennen LM7805-ulostulon jännitettä ennen Arduino- ja lähetinmoduulin liittämistä.
Yllä oleva kuva näyttää valmistuneen RC-veneen lähetinpiirin ylhäältä katsottuna ja alla olevan valmiin RC-venelähetinpiirin alhaalta.
Arduino RC -venelähettimen kotelon rakentaminen
Kaukosäätimelle tarvitaan kunnollinen runko. Tämä vaihe koskee ideasi, voit luoda etärungon ideoillasi. Selitän kuinka tein tämän. Etärungon tekemiseksi valitsen 4 mm: n MDF-levyt, voit myös valita vanerin, vaahtomuovilevyn tai pahvin, sitten leikan siitä kaksi kappaletta, joiden pituus on 10 cm ja leveys 5 cm. Sitten merkitsin painikkeiden sijainnit. Sijoitin suuntapainikkeet vasemmalle puolelle ja eteenpäin, taaksepäin painikkeet oikealle. Arkin toisella puolella kytkin painikkeet päälähetyspiiriin. Muista, että normaalissa painikkeessa on 4 nastaa, jotka ovat kaksi nastaa kummallekin puolelle. Liitä yksi tappi Arduinoon ja toinen tappi maahan. Jos olet hämmentynyt siihen, tarkista se yleismittarilla tai tarkista datalehti.
Kun kaikki nämä asiat on kytketty, sijoitin ohjauspiirin kahden MDF-levyn väliin ja kiristin pitkällä pultilla (katso alla olevia kuvia, jos haluat). Jälleen kerran hyvän kehon luominen on kyse ideastasi.
433 MHz: n vastaanotinmoduuli
Tämä vastaanotin on myös erittäin pieni ja siinä on 4 nastaa VCC, maa, ja kaksi keskimmäistä nastaa ovat dataa. Tämän moduulin käyttöjännite on 5v. Kuten lähetinmoduuli, tämä on myös pienitehoinen moduuli. Joissakin moduuleissa on ylimääräinen antennitappi, mutta minun tapauksessani sitä ei ole.
Arduino RC -venevastaanottimen lohkokaavio
Yllä oleva lohkokaavio kuvaa RF-vastaanotinpiirin toimintaa. Ensinnäkin voimme vastaanottaa lähetetyt signaalit RF-vastaanotinmoduulin avulla. Tämän vastaanottimen lähtö on sarjatietoa. Mutta emme voi hallita mitään tällä sarjatiedolla, minkä vuoksi yhdistimme lähdön dekooderiin. Dekooderi dekoodaa sarjatiedot alkuperäisiksi rinnakkaistiedoiksi. Tässä osassa emme vaadi mikro-ohjaimia, voimme liittää lähdöt suoraan moottoriohjaimeen.
Arduino RC -venevastaanottimen piirikaavio
HT12D on 12-bittinen dekooderi, joka on sarja panos-rinnakkain lähtödekooderin. HT12D: n tulotappi liitetään vastaanottimeen, jolla on sarjalähtö. 12-bittisten joukossa 8 bittiä (A0-A7) ovat osoitebittejä ja HT12D dekoodaa syötteen, jos vain se vastaa nykyistä osoitettaan. D8-D11 ovat lähtöbittejä. Tämän piirin sovittamiseksi lähetinpiiriin liitin kaikki osoitetapit maahan. Tiedot moduulista ovat sarjatyyppisiä ja dekooderi dekoodaa nämä sarjatiedot alkuperäisiksi rinnakkaisiksi tiedoiksi ja pääsemme ulos D8-D11: n kautta. Värähtelytaajuuden sovittamiseksi tulisi kytkeä 33-56k vastus oskillaattorin nastoihin. 17. nastassa oleva led osoittaa kelvollisen lähetyksen, se syttyy vasta, kun vastaanotin on kytketty lähettimeen. Vastaanottimen jännitesyöttö on myös 6-12 volttia.
Moottoreiden ohjaamiseen käytin L293D IC: tä, valitsin tämän IC: n, koska pienennän kokoa ja painoa ja tämä IC on paras kahden moottorin ohjaamiseen kahteen suuntaan. L293D: ssä on 16 nastaa, alla oleva kaavio näyttää pinoutit.
1, 9 nastaa ovat aktivointitappi, yhdistämme sen 5 v: iin, jotta moottorit 1A, 2A, 3A ja 4A ovat ohjaustapit. Moottori kääntyy oikealle, jos tappi 1A menee matalalle ja 2A menee korkealle, ja moottori kääntyy vasemmalle, jos 1A menee matalalle ja 2A korkealle. Joten yhdistimme nämä nastat dekooderin lähtöön ps. 1Y, 2Y, 3Y ja 4Y ovat moottorin kytkentätapit. Vcc2 on moottorin käyttöjännitteen tappi, jos käytät suurjännitemoottoria, kytket tämän nastan vastaavaan jännitelähteeseen.
Arduino RC -veneen vastaanottopiirin rakentaminen
Ennen kuin rakennat vastaanotinpiirin, sinun on muistettava joitain tärkeitä asioita. Tärkeä on koko ja paino, koska piirin rakentamisen jälkeen meidän on kiinnitettävä se veneeseen. Joten jos paino kasvaa, se vaikuttaa kelluvuuteen ja liikkumiseen.
Juota sama kuin lähetinpiirissä, juota kaikki komponentit pieneen yhteiseen piirilevyyn ja yritä käyttää mahdollisimman vähän johtoja. Yhdistin moottorin ohjaimen nastan 8 5V: iin, koska käytän 5V moottoreita.
RC-BOATin rakentaminen
Kokeilin erilaisia materiaaleja veneen rungon rakentamiseen. Ja sain paremman tuloksen termokarkkilevyllä. Joten päätin rakentaa rungon termokololla. Ensin otin 3 cm: n paksuisen termokolikappaleen ja asetin vastaanottopiirin päälle, sitten merkitsin veneen muodon termokololla ja leikattiin. Joten tämä on minun tapa rakentaa vene, voit rakentaa ideasi mukaan.
Arduino Air Boat -moottorit ja potkurit
Jälleen kerran painolla on merkitystä. Joten oikean moottorin valinta on tärkeää, valitsen 5 voltin, n20-tyyppiset normaalit tasavirtamoottorit, jotka ovat pieniä ja painottomia. RF-häiriöiden välttämiseksi tulee kytkeä 0,1 uf kondensaattori rinnan moottorin tulojen kanssa.
Potkurien tapauksessa tein potkurit muovilevyillä. Voit ostaa potkureita kaupasta tai voit rakentaa oman, molemmat toimivat hienosti. Potkurien rakentamiseksi otin ensin pienen muovilevyn ja leikkain siitä kaksi pientä palaa ja taivutan palat kynttilälämmön avulla. Lopuksi laitoin sen keskelle pienen reiän moottoria varten ja kiinnitin siihen siinä olevaan moottoriin.
Arduino RC Boatin työskentely
Tässä veneessä on kaksi moottoria, joiden avulla sitä voidaan kutsua vasemmalle ja oikealle. Jos moottori liikkuu myös myötäpäivään (potkurin sijainti riippuu myös), potkuri imee ilmaa edestä ja pakokaasua takapuolelle. Se tuottaa eteenpäin vetämistä.
Eteenpäin liike: Jos sekä vasen että oikea moottori pyörivät myötäpäivään, se liikkuu eteenpäin
Taaksepäin liike: Jos sekä vasen että oikea moottori pyörivät vastapäivään (eli potkuri imee ilmaa takaa ja pakoputken etupuolelle), se tekee taaksepäin liikkumisen
Vasen liike: Jos vain oikea moottori pyörii, se on vene, vedä vain oikealta puolelta, joka vene siirtyy vasemmalle puolelle
Oikea liike: Jos vain vasen moottori pyörii, se on veneen vetäminen vain vasemmalta puolelta, mikä saa veneen liikkumaan oikealle puolelle.
Yhdistimme moottorin kuljettajan tulon dekooderin neljään lähtöbitiin (D8-D11). voimme ohjata näitä 4 lähtöä kytkemällä AD8-AD11 maahan, joka on kaukosäätimen painikkeet. Esimerkiksi, jos yhdistämme AD8: n maahan, joka aktivoi D8: n. Joten tällä tavalla voimme ohjata kahta moottoria kahteen suuntaan käyttämällä näitä 4 lähtöä. Mutta emme voi hallita kahta moottoria yhdellä painikkeella (tarvitsemme sitä eteen- ja taaksepäin liikkumiseen), minkä vuoksi käytimme Arduinoa. Arduinon avulla voimme valita haluamamme tulodatanastat.
RC-veneen Arduino-ohjelmointi
Tämän veneen ohjelmointi on hyvin yksinkertaista, koska haluamme vain jonkin logiikan vaihtamisen. Ja voimme saavuttaa kaiken Arduino-perustoiminnoilla. Tämän projektin täydellinen ohjelma löytyy tämän sivun alaosasta. Ohjelman selitys on seuraava
Aloitamme ohjelman määrittämällä kokonaisluvut neljälle tulopainikkeelle ja dekooderin tulotapille.
int f_painike = 9; int b_painike = 8; int l-painike = 7; int r_painike = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Asennusosassa määritin nastatilat. Toisin sanoen painikkeet on kytketty digitaalisiin nastoihin, joten näiden nastojen tulisi määritellä syötteeksi, ja meidän on saatava lähtö dekooderin tulolle, joten meidän pitäisi määritellä nämä nastat lähtökohtana.
pinMode (f_painike, INPUT_PULLUP); pinMode (b_painike, INPUT_PULLUP); pinMode (l-painike, INPUT_PULLUP); pinMode (r_painike, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Seuraavaksi tärkein loop-toiminto, Luemme -painikkeen tila käyttämällä DigitalLisätietoja toimintaa Arduino. Jos tapin tila laskee, mikä tarkoittaa, että vastaavaa tapia painetaan, suoritamme ehdot seuraavasti:
if (digitalRead (f_painike) == LOW)
Tämä tarkoittaa, että eteenpäin-painiketta painetaan
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, KORKEA); digitalWrite (m4, HIGH); }
Tämä pudottaa kooderin m1 ja m2 ja aktivoi molemmat moottorit vastaanottimen puolella. Samoin taaksepäin liikkumista varten
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Vasemmalle liikkeelle
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, KORKEA); digitalWrite (m4, HIGH); }
Oikea liike
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, KORKEA); digitalWrite (m4, HIGH); }
Koodin laatimisen jälkeen lataa se Arduino-levyllesi.
Vianetsintä: Aseta vene veden pinnalle ja tarkista, että se liikkuu oikein, ellet yritä muuttaa moottoreiden ja potkurien napaisuutta. Yritä myös tasapainottaa painoa.
Projektin täydellinen toiminta löytyy videosta, joka on linkitetty tämän sivun alaosaan. Jos sinulla on kysyttävää, jätä ne kommenttiosioon.