- Mga Kinakailangan na Bahagi para sa Arduino RC Boat
- 433MHz RF Transmitter at Receiver Modules
- 433MHZ RF Transmitter
- I-block ang Diagram ng Arduino RC Boat Transmitter
- Circuit Diagram ng Arduino RC Remote (Transmitter)
- Pagbuo ng RC BOAT Transmitter Circuit
- Pagbuo ng Arduino RC Boat Transmitter Enclosure
- 433Mhz Module ng Tagatanggap
- I-block ang Diagram ng Arduino RC Boat Receiver
- Circuit Diagram ng Arduino RC Boat Receiver
- Pagbuo ng Receiver Circuit ng Arduino RC Boat
- Pagbuo ng RC-BOAT
- Mga Motors at Propeller para sa Arduino Air Boat
- Paggawa ng Arduino RC Boat
- Arduino Programming ng RC Boat
Sa proyektong ito, magtatayo kami ng isang remote-control na Arduino Air-Boat na maaaring kontrolin nang wireless gamit ang 433 MHz RF Radio Modules. Kinokontrol namin ang bangka na ito gamit ang isang homemade remote control sa pamamagitan ng pagbuo ng aming sariling 433 MHz transmitter at isang module ng receiver. Sa kaso ng mga aparatong kontrolado ng remote o komunikasyon sa pagitan ng dalawang aparato, marami kaming mga pagpipilian tulad ng IR, Bluetooth, internet, RF, atbp. Kung ihinahambing sa komunikasyon ng IR, ang mga komunikasyon sa radyo ay may ilang mga pakinabang tulad ng mas saklaw at hindi ito nangangailangan ng isang linya ng koneksyon sa paningin sa pagitan ng transmiter at tatanggap. Gayundin, ang mga modyul na ito ay maaaring gumawa ng dalawang paraan ng komunikasyon, nangangahulugang maaari itong magpadala at makatanggap nang sabay. Kaya't gamit ang 433MHz RF module na ito, magtayo tayo ng isang Arduino RC Boat sa tutorial na ito
Nakagawa na kami dati ng maraming mga proyekto na kontrolado ng remote gamit ang mga 433Mhz RF module na ito para sa alinman sa pagkontrol ng isang Robot tulad ng RF na kinokontrol na Robot na ito o para sa mga aplikasyon ng Home Automation upang Makontrol ang mga gamit sa Home gamit ang RF. Bukod sa paggamit ng mga RF module, nakabuo rin kami ng isang Bluetooth Controlled Raspberry Pi Car at isang DTMF Mobile phone na kontrolado ang Arduino Robot dati. Maaari mo ring suriin ang mga proyektong ito kung interesado ka.
Mga Kinakailangan na Bahagi para sa Arduino RC Boat
- 433MHz transmiter at tatanggap
- Arduino (anumang Arduino, upang mabawasan ang laki na ginagamit ko promini)
- HT12E at HT12D
- Itulak ang mga pindutan- 4No
- Mga resistors- 1mega ohm, 47k ohm
- L293d Motor Driver
- 9V Battery (Gumagamit ako ng 7.4-volt na baterya) - 2No
- 7805 regulator- 2No
- DC motor- 2No
- Dahon ng motor o propellor (gumagamit ako ng mga homemade propellor) - 2No
- .1uf capacitor- 2No
- Karaniwang PCB
433MHz RF Transmitter at Receiver Modules
Ang mga uri ng mga modyul na RF ay napakapopular sa mga gumagawa. Dahil sa kanilang mababang gastos at pagiging simple sa mga koneksyon. Ang mga modyul na ito ay pinakamahusay para sa lahat ng mga form ng mga proyekto sa komunikasyon na malayuan. Ang mga modyul na ito ay ASK (Amplitude Shift Keying) uri ng mga module ng RF, ang Amplitude-shift keying (ASK) ay isang form ng amplitude modulation na kumakatawan sa digital data bilang mga pagkakaiba-iba sa amplitude ng isang carrier wave. Sa isang ASK system, ang binary na simbolo 1 ay kinakatawan ng paglilipat ng isang nakapirming amplitude na alon ng carrier at naayos na dalas para sa isang medyo tagal ng T segundo. Kung ang halaga ng signal ay 1, pagkatapos ang signal ng carrier ay maililipat; kung hindi man, isang signal na halaga ng 0 ay maipapadala. Nangangahulugan iyon na karaniwang hindi sila kumukuha ng lakas kapag nagpapadala ng Logic na "zero". Ang mababang paggamit ng kuryente na ito ay ginagawang kapaki-pakinabang sa mga proyekto na pinapatakbo ng baterya.
433MHZ RF Transmitter
Ang uri ng modyul na ito ay napakaliit at mayroong 3 pin na VCC, ground, at data. Ang ilang iba pang mga module ay may dagdag na antenna pin. Ang nagtatrabaho boltahe ng module ng transmiter ay 3V-12V at ang module na ito ay walang anumang naaayos na mga bahagi. Ang isa sa mga pangunahing bentahe ng modyul na ito ay ang mababang kasalukuyang pagkonsumo, nangangailangan ito ng halos zero kasalukuyang upang magpadala ng bit zero.
I-block ang Diagram ng Arduino RC Boat Transmitter
Sa diagram ng block sa itaas, mayroong apat na pushbuttons (Control Buttons), ang mga pushbuttons na ito ay para sa pagkontrol sa direksyon ng bangka. Mayroon kaming apat sa kanila para sa pasulong, paatras, kaliwa, at kanan. Mula sa mga pushbutton, nakakakuha kami ng lohika para sa pagkontrol sa bangka ngunit hindi direktang makakonekta sa encoder kaya't ginamit namin ang Arduino. Maaari mong isipin kung bakit ginamit ko ang Arduino dito, ito ay simple dahil kailangan naming hilahin pababa ang dalawang mga parallel data input ng encoder nang sabay-sabay para sa isang paatras at pasulong na kilusan na hindi makakamit sa mga pushbuttons lamang. Pagkatapos ang encoder ay naka-encode ang darating na parallel data sa mga serial output. Pagkatapos ay maipapadala natin ang serial data na iyon sa tulong ng isang RF transmitter.
Circuit Diagram ng Arduino RC Remote (Transmitter)
Sa circuit sa itaas, maaari mong makita ang isang bahagi ng lahat ng apat na mga pindutan ng pindutan na nakakonekta sa apat na mga digital na pin ng Arduino (D6-D9) at lahat ng apat na iba pang panig na konektado sa lupa. Iyon ay kapag pinindot namin ang pindutan, ang mga kaukulang digital na pin ay nakakakuha ng isang mababang lohika. Ang apat na parallel input ng HT12E encoder na konektado sa isa pang apat na digital pin ng Arduino (D2-D5). Kaya sa tulong ng Arduino, maaari kaming magpasya ang input ng encoder.
At pinag- uusapan ang tungkol sa encoder HT12E ay isang 12-bit encoder at isang parallel input-serial output encoder. Sa 12 bits, ang 8-bit ay mga address bit na maaaring magamit para sa pagkontrol sa maraming mga tatanggap. Ang mga pin na A0-A7 ay ang mga address input pin. Sa proyektong ito, kumokontrol lamang kami sa isang tatanggap, kaya ayaw naming baguhin ang address nito, kaya't ikinonekta ko ang lahat ng mga pin ng address sa lupa. Kung nais mong kontrolin ang iba't ibang mga tagatanggap sa isang transmiter, maaari mong gamitin ang mga paglubog dito. Ang AD8-AD11 ay ang mga control bit input. Ang mga input na ito ay makokontrol ang mga output ng D0-D3 ng decoder na HT12D. Kailangan naming ikonekta ang isang oscillator para sa komunikasyon at ang dalas ng oscillator ay dapat na 3KHzpara sa operasyon ng 5V. Pagkatapos ang halaga ng risistor ay magiging 1.1MΩ para sa 5V. Pagkatapos ay ikinonekta ko ang output ng HT12E sa module ng transmiter. Nabanggit na namin, ang Arduino at rf transmitter module, ang parehong mga aparatong ito ay gumagana sa 5V mataas na boltahe ay papatayin ito, upang maiwasan ito, idinagdag ko ang 7805, boltahe na regulator. Ngayon ay maaari naming ikonekta (Vcc) 6-12volt ang anumang uri ng mga baterya upang mai-input.
Pagbuo ng RC BOAT Transmitter Circuit
Naghinang ako ng bawat bahagi sa isang karaniwang PCB. Tandaan na nagtatrabaho kami sa isang proyekto sa RF kaya maraming mga pagkakataon para sa iba't ibang mga uri ng pagkagambala kaya ikonekta ang lahat ng mga bahagi nang mas malapit hangga't maaari. Mas mahusay na gumamit ng mga babaeng pin header para sa Arduino at ang module ng transmiter. Gayundin, subukang panghinang ang lahat sa mga pad ng tanso sa halip na gumamit ng labis na mga wire. Panghuli, ikonekta ang isang maliit na kawad sa module ng transmitter na makakatulong upang madagdagan ang kabuuang saklaw. Bago ikonekta ang Arduino at transmitter module, i-double check ang boltahe ng output na lm7805.
Ipinapakita ng imahe sa itaas ang tuktok na pagtingin sa nakumpleto na circuit ng RC Boat transmitter at ang Ibabang pagtingin sa nakumpleto na RC Boat Transmitter circuit ay ipinapakita sa ibaba.
Pagbuo ng Arduino RC Boat Transmitter Enclosure
Ang isang disenteng katawan ay kinakailangan para sa remote. Ang hakbang na ito ay tungkol sa iyong mga ideya, maaari kang lumikha ng isang malayuang katawan sa iyong mga ideya. Ipinapaliwanag ko kung paano ko ito nagawa. Para sa paggawa ng isang malayong katawan, pipili ako ng 4mm MDF sheet, maaari mo ring piliin ang playwud, foam sheet, o karton, pagkatapos ay pinutol ko ang dalawang piraso mula sa na may haba na 10cm at ang lapad ng 5cm. Pagkatapos ay minarkahan ko ang mga posisyon para sa mga pindutan. Inilagay ko ang mga pindutan ng direksyon sa kaliwang bahagi at pasulong, paatras na mga pindutan sa kanan. Sa kabilang panig ng sheet, ikinonekta ko ang mga pindutan ng itulak sa pangunahing circuit na nagpapadala. Tandaan ang isang normal na pushbutton ay may 4 na mga pin na dalawang pin para sa bawat panig. Ikonekta ang isang pin sa Arduino at ang iba pang pin sa lupa. Kung ikaw ay nalilito doon, mangyaring suriin ito sa isang multimeter o suriin ang datasheet.
Matapos ikonekta ang lahat ng mga bagay na ito, inilagay ko ang control circuit sa pagitan ng dalawang mga MDF board at higpitan ng ilang mahabang bolt (mangyaring sumangguni sa mga imahe sa ibaba kung nais mo). Muli na ang paglikha ng isang mabuting katawan ay tungkol sa iyong mga ideya.
433Mhz Module ng Tagatanggap
Ang tagatanggap na ito ay napakaliit din at mayroong 4 na mga pin ng VCC, lupa, at ang dalawang gitnang mga pin ay lumabas ang data. Ang boltahe na nagtatrabaho ng modyul na ito ay 5v. Tulad ng module ng transmitter, ito rin ay isang mababang module ng kuryente. Ang ilang mga module ay may dagdag na antena pin ngunit sa aking kaso, wala iyon.
I-block ang Diagram ng Arduino RC Boat Receiver
Inilalarawan ng diagram ng block sa itaas ang pagtatrabaho ng circuit ng RF receiver. Una, maaari naming matanggap ang mga nailipat na signal gamit ang module ng RF receiver. Ang output ng tatanggap na ito ay serial data. Ngunit hindi namin makokontrol ang anuman sa serial data na ito kung kaya nakakonekta namin ang output sa decoder. Ang decoder ay nagde-decode ng serial data sa aming orihinal na parallel data. Sa seksyong ito, hindi kami nangangailangan ng anumang mga microcontroller, maaari naming direktang ikonekta ang mga output sa driver ng motor.
Circuit Diagram ng Arduino RC Boat Receiver
Ang HT12D ay isang 12-bit decoder na isang serial input-parallel output decoder. Ang input pin ng HT12D ay konektado sa isang tatanggap na may isang serial output. Kabilang sa 12-bit, 8 bits (A0-A7) ang mga address bit at tatanggalin ng HT12D ang input kung tumutugma lamang ito sa kasalukuyang address. Ang D8-D11 ang mga output bit. Upang maitugma ang circuit na ito sa transmitter circuit, ikinonekta ko ang lahat ng mga pin ng address sa lupa. Ang data mula sa modyul ay ang uri ng serial at ang decoder ay nai-decode ang serial data na ito sa orihinal na parallel data at nakalabas kami sa pamamagitan ng D8-D11. Upang maitugma ang dalas ng osilasyon ay dapat na ikonekta ang 33-56k risistor sa mga oscillator pin. Pinangunahan sa ika-17 na pin ay nagpapahiwatig ng wastong paghahatid, naiilawan lamang ito pagkatapos na konektado ang tagatanggap sa isang transmiter. Ang input ng boltahe ng tatanggap ay 6-12 volts din.
Upang makontrol ang mga motor, ginamit ko ang L293D IC, pipiliin ko ang IC na ito dahil upang mabawasan ang laki at timbang at ang IC na ito ay pinakamahusay para sa pagkontrol ng dalawang motor sa dalawang direksyon. Ang L293D ay may 16 na mga pin, ang diagram sa ibaba ay nagpapakita ng mga pinout.
Ang 1, 9 na pin ay ang pin na paganahin, ikonekta namin iyon sa 5 v upang paganahin ang mga motor na 1A, 2A, 3A, at 4A ang mga control pin. Ang motor ay liliko sa kanan kung ang pin 1A ay bumaba at ang 2A ay mataas, at ang motor ay liliko sa kaliwa kung ang 1A ay bumaba at 2A mataas. Kaya kinonekta namin ang mga pin na ito sa output ps ng decoder. Ang 1Y, 2Y, 3Y, at 4Y ay ang mga pin ng koneksyon sa motor. Ang Vcc2 ay ang pin na nagmamaneho ng boltahe na pin, kung gumagamit ka ng isang motor na mataas na boltahe, pagkatapos ay ikonekta mo ang pin na ito sa kaukulang mapagkukunan ng boltahe.
Pagbuo ng Receiver Circuit ng Arduino RC Boat
Bago itayo ang circuit ng tatanggap, dapat mong tandaan ang ilang mahahalagang bagay. Ang mahalaga ay ang laki at bigat dahil pagkatapos na maitayo ang circuit, kailangan nating ayusin ito sa bangka. Kaya't kung tumataas ang timbang, makakaapekto iyon sa buoyancy at paggalaw.
Gayundin kapareho sa transmiter circuit, maghinang ng bawat bahagi sa isang maliit na karaniwang PCB at subukang gumamit ng pinakamaliit na mga wire. Ikinonekta ko ang pin 8 ng driver ng motor sa 5v dahil gumagamit ako ng 5V na mga motor.
Pagbuo ng RC-BOAT
Sinubukan ko ang iba't ibang mga materyales upang maitayo ang katawan ng bangka. At nakuha ko ang isang mas mahusay na resulta sa sheet ng thermocol. Kaya't napagpasyahan kong itayo ang katawan sa thermocol. Una, kumuha ako ng isang 3cm na makapal na piraso ng thermocol at inilagay ang circuit ng receiver sa itaas, pagkatapos ay minarkahan ko ang hugis ng bangka sa thermocol at gupitin. Kaya ito ang aking paraan upang mabuo ang bangka, maaari kang bumuo alinsunod sa iyong mga ideya.
Mga Motors at Propeller para sa Arduino Air Boat
Muli ay mahalaga ang timbang. Kaya't ang pagpili ng wastong motor ay mahalaga, pipiliin ko ang 5volt, n20 uri ng normal na mga motor na dc na maliit at walang timbang. Upang maiwasan ang mga pagkagambala ng RF dapat na ikonekta ang 0.1uf capacitor kahilera sa mga input ng motor.
Sa kaso ng mga propeller, gumawa ako ng mga propeller gamit ang mga plastic sheet. Maaari kang bumili ng mga propeller mula sa tindahan o maaari kang bumuo ng iyong sariling kapwa gagana nang maayos. Upang maitayo ang mga propeller, una, kumuha ako ng isang maliit na plastic sheet at gupitin ang dalawang maliliit na piraso mula rito at yumuko ako ng mga piraso sa tulong ng init ng kandila. Sa wakas, naglagay ako ng isang maliit na butas sa gitna nito para sa motor at naayos sa motor na iyon.
Paggawa ng Arduino RC Boat
Ang bangka na ito ay may dalawang motor ay tinawag itong kaliwa at kanan. Kung ang motor ay gumagalaw din sa pakanan (ang posisyon ng propellor ay nakasalalay din) ang propellor ay sumipsip ng hangin mula sa harap at maubos sa likuran. Na bumubuo ng pasulong na drag.
Pagpasa ng paggalaw: Kung kapwa ang kaliwa at kanang mga motor ay paikutin sa pakanan na magpapasa ng paggalaw
Pagpapaatras ng paggalaw: Kung kapwa ang kaliwa at kanang mga motor ay paikutin nang paikot (iyon ang tagapagbunsod ay sumuso ng hangin mula sa likuran at maubos sa harap na bahagi) na gagawing paatras na paggalaw
Kaliwang paggalaw: Kung ang tamang motor lamang ay umiikot na ang bangka kumuha lamang ng drag mula sa kanang bahagi na ang bangka upang lumipat sa kaliwang bahagi
Tamang paggalaw: Kung ang kaliwang motor lamang ay umiikot na ang bangka ay nakakakuha lamang ng pag-drag mula sa kaliwang bahagi na magpapalipat-lipat sa bangka sa kanang bahagi.
Ikinonekta namin ang input ng driver ng motor sa apat na output bit ng decoder (D8-D11). makokontrol namin ang 4 na output na ito sa pamamagitan ng pagkonekta sa AD8-AD11 sa lupa na ang mga pindutan sa remote. Halimbawa, kung ikinonekta namin ang AD8 sa lupa na magpapagana ng D8. Kaya't sa paraang maaari nating makontrol ang dalawang motor sa dalawang direksyon gamit ang 4 na output na ito. Ngunit hindi namin makontrol ang dalawang motor sa pamamagitan lamang ng isang pindutan (kailangan namin iyon para sa pasulong at paatras na paggalaw) iyon ang dahilan kung bakit ginamit namin ang Arduino. Sa tulong ng Arduino, maaari naming piliin ang mga input ng data pin bilang nais namin.
Arduino Programming ng RC Boat
Ang pagprograma ng bangka na ito ay napaka-simple dahil nais namin ang ilang paglipat lamang ng lohika. At makakamit natin ang lahat sa pangunahing mga pagpapaandar ng Arduino. Ang kumpletong programa para sa proyektong ito ay matatagpuan sa ilalim ng pahinang ito. Ang paliwanag ng iyong programa ay ang mga sumusunod
Sinisimula namin ang programa sa pamamagitan ng pagtukoy sa mga integer para sa apat na mga pindutan ng pag-input at mga pin ng pag-input ng decoder.
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;
Sa seksyon ng pag-setup, tinukoy ko ang mga mode ng pin. Iyon ay, ang mga pindutan ay konektado sa mga digital na pin kaya ang mga pin na ito ay dapat tukuyin bilang input at kailangan nating makakuha ng output para sa pag-input ng decoder kaya dapat nating tukuyin ang mga pin bilang output.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Susunod sa pangunahing pagpapaandar ng loop, babasahin namin ang katayuan ng pindutan gamit ang pag- andar ng digitalread ng Arduino. Kung ang katayuan ng pin ay bumaba nangangahulugan na ang kaukulang pin ay pinindot pagkatapos ay isasagawa namin ang mga kundisyon tulad ng sumusunod-
kung (digitalRead (f_button) == LOW)
Nangangahulugan iyon na ang pindutang pasulong ay pinindot
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, TAAS); digitalWrite (m4, TAAS); }
Ito ay pulldown m1 at m2 ng encoder na ito ay buhayin ang parehong mga motor sa bahagi ng receiver. Katulad nito, para sa pabalik na paggalaw
{ digitalWrite (m1, TAAS); digitalWrite (m3, TAAS); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Para sa kaliwang paggalaw
{ digitalWrite (m1, LOW); digitalWrite (m3, TAAS); digitalWrite (m2, TAAS); digitalWrite (m4, TAAS); }
Para sa tamang paggalaw
{ digitalWrite (m1, TAAS); digitalWrite (m3, LOW); digitalWrite (m2, TAAS); digitalWrite (m4, TAAS); }
Pagkatapos maipon ang code, i-upload ito sa iyong Arduino board.
Pag-troubleshoot: Ilagay ang bangka sa ibabaw ng tubig at suriin kung gumagalaw ito nang tama kung hindi subukang baguhin ang polarity ng mga motor at propeller. Gayundin, subukang balansehin ang timbang.
Ang kumpletong pagtatrabaho ng proyekto ay matatagpuan sa video na naka-link sa ilalim ng pahinang ito. Kung mayroon kang anumang mga katanungan iwanan ang mga ito sa seksyon ng komento.