- Komponenti, kas nepieciešami Arduino RC Boat
- 433MHz RF raidītāju un uztvērēju moduļi
- 433MHZ RF raidītājs
- Arduino RC laivu raidītāja blokshēma
- Arduino RC tālvadības shēmas shēma (raidītājs)
- RC BOAT raidītāja ķēdes izbūve
- Arduino RC laivu raidītāja korpusa veidošana
- 433Mhz uztvērēja modulis
- Arduino RC laivu uztvērēja bloka diagramma
- Arduino RC laivu uztvērēja shēmas shēma
- Arduino RC laivas uztvērēja ķēdes izbūve
- RC-BOAT būve
- Arduino gaisa laivas motori un propelleri
- Arduino RC Boat darbs
- Arduino RC laivas programmēšana
Šajā projektā mēs uzbūvēsim Arduino Air-Boat ar tālvadību, kuru bez vadiem var vadīt, izmantojot 433 MHz RF radio moduļus. Mēs vadīsim šo laivu, izmantojot pašmāju tālvadības pulti, uzbūvējot savu 433 MHz raidītāju un uztvērēja moduli. Tālvadības ierīču vai divu ierīču sakaru gadījumā mums ir daudz iespēju, piemēram, IR, Bluetooth, internets, RF utt. Salīdzinot ar IR komunikāciju, radiosakariem ir dažas priekšrocības, piemēram, lielāks diapazons, un tas nav starp raidītāju un uztvērēju ir nepieciešama redzes līnijas savienojums. Arī šie moduļi var veikt divus saziņas veidus, kas nozīmē, ka tas var vienlaikus pārsūtīt un saņemt. Tātad, izmantojot šo 433MHz RF moduli, izveidosim Arduino RC Boat šajā apmācībā.
Iepriekš mēs esam izveidojuši daudzus attālināti vadāmus projektus, izmantojot šos 433Mhz RF moduļus, lai vadītu robotu, piemēram, šo RF vadīto robotu, vai arī mājas automatizācijas lietojumprogrammām, lai kontrolētu sadzīves tehniku, izmantojot RF. Bez RF moduļu izmantošanas mēs iepriekš esam izveidojuši arī Bluetooth vadāmu Raspberry Pi automašīnu un DTMF mobilo tālruni, ko kontrolē Arduino Robot. Jūs varat arī apskatīt šos projektus, ja jūs interesē.
Komponenti, kas nepieciešami Arduino RC Boat
- 433MHz raidītājs un uztvērējs
- Arduino (jebkurš Arduino, lai samazinātu izmēru, kuru izmantoju promini)
- HT12E un HT12D
- Spiedpogas- 4Nos
- Rezistori - 1mega omi, 47k omi
- L293d motora draiveris
- 9V akumulators (es izmantoju 7,4 voltu akumulatoru) - 2Nos
- 7805 regulators - 2Nr
- Līdzstrāvas motori - 2Nos
- Motora loksnes vai propelleri (es izmantoju pašgatavotus dzenskrūves) - 2Nos
- .1uf kondensators - 2Nos
- Kopējā PCB
433MHz RF raidītāju un uztvērēju moduļi
Šāda veida RF moduļi ir ļoti populāri starp veidotājiem. To zemo izmaksu un savienojumu vienkāršības dēļ. Šie moduļi ir vispiemērotākie visu veidu maza darbības sakaru projektiem. Šie moduļi ir ASK (Amplitude Shift Keying) tipa RF moduļi, Amplitude-shift keying (ASK) ir amplitūdas modulācijas forma, kas digitālos datus attēlo kā nesēja viļņa amplitūdas variācijas. ASK sistēmā bināro simbolu 1 attēlo fiksētas amplitūdas nesēja viļņa un fiksētas frekvences pārraide uz bitu ilgumu T sekundes. Ja signāla vērtība ir 1, tad nesējs signāls tiks pārraidīts; pretējā gadījumā tiks pārraidīta signāla vērtība 0. Tas nozīmē, ka, pārsūtot loģiku “nulle”, tie parasti neizmanto enerģiju. Šis mazais enerģijas patēriņš padara tos ļoti noderīgus projektos, kurus darbina ar akumulatoru.
433MHZ RF raidītājs
Šis moduļu veids ir ļoti niecīgs, un tam ir 3 kontaktu VCC, zemes un dati. Dažiem citiem moduļiem ir papildu antenas tapa. Raidītāja moduļa darba spriegums ir 3V-12V, un šim modulim nav nevienas regulējamas sastāvdaļas. Viena no šī moduļa galvenajām priekšrocībām ir zems strāvas patēriņš, lai nosūtītu nulles bitu, nepieciešama gandrīz nulles strāva.
Arduino RC laivu raidītāja blokshēma
Iepriekš minētajā blokshēmā ir četras spiedpogas (vadības pogas), šīs spiedpogas ir paredzētas laivas virziena kontrolei. Mums ir četri no tiem priekšpusē, atpakaļ, pa kreisi un pa labi. No spiedpogām mēs iegūstam loģiku laivas kontrolei, bet nevaram tieši izveidot savienojumu ar kodētāju, tāpēc mēs izmantojām Arduino. Jūs varētu domāt, kāpēc es šeit izmantoju Arduino, tas ir vienkārši tāpēc, ka mums vienlaikus jānovelk divas kodētāja paralēlās datu ievades, lai veiktu kustību atpakaļ un uz priekšu, ko nevar panākt, izmantojot tikai spiedpogas. Tad kodētājs kodē nākamos paralēlos datus sērijveida izvadiem. Tad mēs varam nosūtīt šos sērijas datus ar RF raidītāja palīdzību.
Arduino RC tālvadības shēmas shēma (raidītājs)
Iepriekš minētajā shēmā jūs varat redzēt visu četru spiedpogu vienu pusi, kas savienotas ar četrām Arduino (D6-D9) digitālajām tapām, un visas četras citas malas, kas savienotas ar zemi. Tas ir, kad mēs nospiežam pogu, atbilstošajiem digitālajiem tapām ir maz loģikas. Četras paralēlās HT12E kodētāja ieejas, kas savienotas ar vēl četrām Arduino digitālajām tapām (D2-D5). Tātad ar Arduino palīdzību mēs varam izlemt kodētāja ievadi.
Runājot par kodētāju, HT12E ir 12 bitu kodētājs un paralēls ievades-sērijas izejas kodētājs. No 12 bitiem 8 biti ir adreses biti, kurus var izmantot, lai kontrolētu vairākus uztvērējus. Piespraudes A0-A7 ir adreses ievades tapas. Šajā projektā mēs kontrolējam tikai vienu uztvērēju, tāpēc mēs nevēlamies mainīt tā adresi, tāpēc es pievienoju visas adreses tapas zemei. Ja vēlaties kontrolēt dažādus uztvērējus ar vienu raidītāju, šeit varat izmantot iegremdēšanas slēdžus. AD8-AD11 ir vadības bitu ieejas. Šīs ieejas kontrolēs HT12D dekodētāja D0-D3 izejas. Mums ir jāpieslēdz oscilators saziņai, un oscilatora frekvencei jābūt 3KHz5V darbībai. Tad rezistora vērtība būs 1.1MΩ 5V. Tad es savienoju HT12E izeju ar raidītāja moduli. Mēs jau minējām, ka Arduino un rf raidītāja modulis, abas šīs ierīces darbojas ar 5V augstu spriegumu, to nogalinās, tāpēc, lai to izvairītos, es pievienoju 7805, sprieguma regulatoru. Tagad mēs varam pievienot (Vcc) 6-12 voltu jebkura veida baterijas ieejai.
RC BOAT raidītāja ķēdes izbūve
Katru komponentu es pielodēju uz kopēja PCB. Atcerieties, ka mēs strādājam pie RF projekta, tāpēc ir daudz iespēju dažādu veidu traucējumiem, tāpēc pēc iespējas cieši savienojiet visus komponentus. Arduino un raidītāja modulim labāk izmantot sieviešu tapu galvenes. Mēģiniet arī visu lodēt uz vara spilventiņiem, nevis izmantot papildu vadus. Visbeidzot, raidītāja modulim pievienojiet nelielu vadu, kas palīdzēs palielināt kopējo diapazonu. Pirms Arduino un raidītāja moduļa pievienošanas vēlreiz pārbaudiet izejas spriegumu lm7805.
Iepriekš redzamajā attēlā redzams pabeigtās RC laivas raidītāja ķēdes augšējais skats, un zemāk redzams pabeigtās RC laivas raidītāja ķēdes apakšējais skats.
Arduino RC laivu raidītāja korpusa veidošana
Pultim ir nepieciešams pienācīgs ķermenis. Šis solis ir saistīts ar jūsu idejām, ar savām idejām varat izveidot attālu ķermeni. Es paskaidroju, kā es to izveidoju. Attālināta korpusa izgatavošanai es izvēlos 4 mm MDF loksnes, jūs varat izvēlēties arī saplāksni, putu loksni vai kartonu, pēc tam es no tā sagriezu divus gabalus, kuru garums ir 10 cm un platums 5 cm. Tad es atzīmēju pogu pozīcijas. Es novietoju virziena pogas kreisajā pusē un uz priekšu, aizmugurē - pa labi. Lapas otrā pusē es pieslēdzu spiedpogas galvenajai raidīšanas ķēdei. Atcerieties, ka parastajā spiedpogā ir 4 tapas, kas ir divas tapas katrā pusē. Savienojiet vienu tapu ar Arduino un otru tapu ar zemi. Ja jūs to sajaucat, lūdzu, pārbaudiet to ar multimetru vai datu lapu.
Pēc visu šo lietu pievienošanas es ievietoju vadības ķēdi starp diviem MDF dēļiem un pievelciet ar kādu garu skrūvi (ja vēlaties, lūdzu, skatiet zemāk redzamos attēlus). Vēlreiz laba ķermeņa izveide ir saistīta ar jūsu idejām.
433Mhz uztvērēja modulis
Šis uztvērējs ir arī ļoti mazs, un tam ir 4 kontakti VCC, iezemēts, un divi vidējie tapas ir dati. Šī moduļa darba spriegums ir 5v. Tāpat kā raidītāja modulis, arī šis ir mazjaudas modulis. Daži moduļi ir aprīkoti ar papildu antenas tapu, bet manā gadījumā tā nav.
Arduino RC laivu uztvērēja bloka diagramma
Iepriekšminētā blokshēma apraksta RF uztvērēja ķēdes darbību. Pirmkārt, mēs varam saņemt pārraidītos signālus, izmantojot RF uztvērēja moduli. Šī uztvērēja izeja ir sērijveida dati. Bet ar šiem sērijas datiem mēs neko nevaram kontrolēt, tāpēc mēs pievienojām izeju dekoderim. Dekoders sērijveida datus atšifrē līdz mūsu sākotnējiem paralēlajiem datiem. Šajā sadaļā mums nav nepieciešami nekādi mikrokontrolleri, mēs varam tieši savienot izejas ar motora draiveri.
Arduino RC laivu uztvērēja shēmas shēma
HT12D ir 12-bit dekoders, kas ir sērijas input-parallel izejas decoder. HT12D ievades tapa tiks pievienota uztvērējam, kuram ir sērijveida izeja. Starp 12 bitiem 8 biti (A0-A7) ir adreses biti, un HT12D atšifrēs ievadi, ja vien tas atbilst tā pašreizējai adresei. D8-D11 ir izejas biti. Lai saskaņotu šo shēmu ar raidītāja ķēdi, es pievienoju visas adreses tapas zemei. Dati ārpus moduļa ir sērijas tips, un dekodētājs šos sērijas datus atšifrē par sākotnējiem paralēlajiem datiem, un mēs izkļūstam caur D8-D11. Lai saskaņotu svārstību frekvenci, 33-56k rezistors jāpievieno oscilatora tapām. Led uz 17. kontakta norāda derīgu pārraidi, tas iedegas tikai pēc tam, kad uztvērējs ir pievienots raidītājam. Uztvērēja ieejas spriegums ir arī 6-12 volti.
Lai kontrolētu motorus, es izmantoju L293D IC, es izvēlos šo IC, jo, lai samazinātu izmēru un svaru, un šis IC ir labākais divu motoru vadīšanai divos virzienos. L293D ir 16 tapas, zemāk redzamajā diagrammā ir parādīti pinouts.
1, 9 tapas ir iespējošanas tapa, mēs savienojam to ar 5 v, lai iespējotu motorus 1A, 2A, 3A un 4A ir vadības tapas. Motors pagriezīsies pa labi, ja tapa 1A iet zemu un 2A iet augstu, un motors pagriezīsies pa kreisi, ja 1A iet zemu un 2A augstu. Tātad mēs savienojām šīs tapas ar dekodera izejas ps. 1Y, 2Y, 3Y un 4Y ir motora savienojuma tapas. Vcc2 ir motora piedziņas sprieguma tapa, ja izmantojat augstsprieguma motoru, tad šo tapu pievienojat attiecīgajam sprieguma avotam.
Arduino RC laivas uztvērēja ķēdes izbūve
Pirms uztvērēja ķēdes izveidošanas jums vajadzētu atcerēties dažas svarīgas lietas. Svarīgākais ir izmērs un svars, jo pēc ķēdes izveidošanas mums tas jāpiestiprina uz laivas. Tātad, ja svars palielinās, tas ietekmēs peldspēju un kustību.
Tāpat kā raidītāja ķēdē, lodējiet visus komponentus nelielā kopējā PCB un mēģiniet izmantot minimālos vadus. Es savienoju motora draivera 8. kontaktu ar 5v, jo es izmantoju 5V motorus.
RC-BOAT būve
Izmēģināju dažādus materiālus, lai uzbūvētu laivas virsbūvi. Un es saņēmu labāku rezultātu ar termokolādes loksni. Tāpēc es nolēmu uzbūvēt ķermeni ar termokolatu. Pirmkārt, es paņēmu 3 cm biezu termokola gabalu un uz augšu ievietoju uztvērēja ķēdi, tad es iezīmēju laivas formu termokolonā un sagriezu. Tātad, tas ir mans veids, kā uzbūvēt laivu, jūs varat būvēt atbilstoši savām idejām.
Arduino gaisa laivas motori un propelleri
Atkal svaram ir nozīme. Tāpēc ir svarīgi izvēlēties pareizo motoru, es izvēlos 5 voltu, n20 tipa normālos līdzstrāvas motorus, kas ir mazi un nesvarīgi. Lai izvairītos no RF traucējumiem, vajadzētu pieslēgt 0,1uf kondensatoru paralēli motora ieejām.
Propelleru gadījumā es izgatavoju dzenskrūves, izmantojot plastmasas loksnes. Jūs varat iegādāties dzenskrūves veikalā vai arī izveidot pats, un abi darbosies lieliski. Lai izveidotu dzenskrūves, vispirms paņēmu nelielu plastmasas palagu un no tās sagriezu divus mazus gabaliņus, un es tos salieku ar sveču siltuma palīdzību. Visbeidzot, es ievietoju nelielu atveri tās centrā motoram un piestiprināju to motoram.
Arduino RC Boat darbs
Šai laivai ir divi motori, kas ļauj to saukt pa kreisi un pa labi. Ja motors pārvietojas arī pulksteņrādītāja kustības virzienā (propellera stāvoklis ir atkarīgs arī no tā), dzenskrūve iesūc gaisu no priekšpuses un izplūdi uz aizmuguri. Tas rada vilcienu uz priekšu.
Kustība uz priekšu: Ja gan kreisais, gan labais motors pagriežas pulksteņrādītāja kustības virzienā, tas virzīsies uz priekšu
Kustība atpakaļ: Ja gan kreisais, gan labais motors griežas pretēji pulksteņrādītāja kustības virzienam (tas ir, dzenskrūve iesūc gaisu no aizmugures un izplūdes gāzēm uz priekšējo pusi), tas kustēs atpakaļ
Kreisā kustība: ja griežas tikai labais motors, tas ir, laiva, velciet tikai no labās puses, kas laivai virzīsies uz kreiso pusi
Labā kustība: ja griežas tikai kreisais motors, tas ir, laiva tiek vilkta tikai no kreisās puses, kas liks laivai virzīties uz labo pusi.
Mēs savienojām motora vadītāja ieeju ar četriem dekodera izejas bitiem (D8-D11). mēs varam kontrolēt šīs 4 izejas, savienojot AD8-AD11 ar zemi, kas ir pogas tālvadības pultī. Piemēram, ja mēs savienojam AD8 ar zemi, kas aktivizēs D8. Tātad tādā veidā mēs varam kontrolēt divus motorus divos virzienos, izmantojot šīs 4 izejas. Bet mēs nevaram kontrolēt divus motorus tikai ar vienu pogu (tas mums ir vajadzīgs kustībai uz priekšu un atpakaļ), tāpēc mēs izmantojām Arduino. Ar Arduino palīdzību mēs varam izvēlēties ievades datu tapas kā savu vēlmi.
Arduino RC laivas programmēšana
Šīs laivas programmēšana ir ļoti vienkārša, jo mēs vēlamies tikai nedaudz mainīt loģiku. Un mēs varam visu sasniegt ar Arduino pamatfunkcijām. Pilna šī projekta programma ir atrodama šīs lapas apakšdaļā. Jūsu programmas skaidrojums ir šāds
Mēs sākam programmu, nosakot veselo skaitli četrām ievades pogām un dekodera ievades tapām.
int f_poga = 9; int b_poga = 8; int l_poga = 7; int r_poga = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Iestatīšanas sadaļā es definēju tapu režīmus. Tas ir, pogas ir savienotas ar digitālajām tapām, tāpēc šīm tapām ir jābūt definētām kā ieeja, un mums jāiegūst izeja dekodera ieejai, tāpēc mums šīs tapas jādefinē kā izvadi.
pinMode (f_poga, INPUT_PULLUP); pinMode (b_poga, INPUT_PULLUP); pinMode (l_poga, INPUT_PULLUP); pinMode (r_poga, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Tālāk galvenās cilpas funkcijā mēs nolasīsim pogas statusu, izmantojot Arduino digitālās lasīšanas funkciju. Ja tapas statuss ir zems, tas nozīmē, ka atbilstošā tapa ir nospiesta, mēs izpildīsim nosacījumus šādi:
if (digitalRead (f_poga) == ZEMS)
Tas nozīmē, ka tiek nospiesta poga uz priekšu
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, AUGSTS); digitalWrite (m4, HIGH); }
Tas nolaidīs kodētāja m1 un m2 un aktivizēs abus motorus uztvērēja pusē. Līdzīgi arī kustībai atpakaļ
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Kreisajai kustībai
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, AUGSTS); digitalWrite (m4, HIGH); }
Pareizai kustībai
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, AUGSTS); digitalWrite (m4, HIGH); }
Pēc koda sastādīšanas augšupielādējiet to savā Arduino dēlī.
Problēmu novēršana: novietojiet laivu uz ūdens virsmas un pārbaudiet, vai tā pārvietojas pareizi, ja nemēģiniet mainīt motoru un propelleru polaritāti. Mēģiniet arī līdzsvarot svaru.
Pilnīga projekta darbība ir atrodama videoklipā, kas ir saistīts ar šīs lapas apakšdaļu. Ja jums ir kādi jautājumi, atstājiet tos komentāru sadaļā.