- Componente necesare pentru Arduino RC Boat
- Module emițător și receptor RF de 433 MHz
- Transmițător RF 433MHZ
- Diagrama bloc a transmițătorului pentru bărci RC Arduino
- Schema de circuit a telecomenzii Arduino RC (emițător)
- Construirea circuitului transmițătorului RC BOAT
- Construirea carcasei transmițătorului RC Arduino
- Modul receptor 433Mhz
- Schema bloc a receptorului Arduino RC Boat
- Diagrama circuitului receptorului Arduino RC Boat
- Construirea Circuitului Receptorului Arduino RC Boat
- Construirea RC-BOAT
- Motoare și elice pentru Arduino Air Boat
- Funcționarea Arduino RC Boat
- Programarea Arduino a RC Boat
În acest proiect, vom construi un Arduino Air-Boat controlat de la distanță, care poate fi controlat fără fir folosind modulele radio RF de 433 MHz. Vom controla această barcă folosind o telecomandă de casă, construind propriul nostru transmițător de 433 MHz și un modul receptor. În cazul dispozitivelor controlate de la distanță sau de comunicații între două dispozitive, avem o mulțime de opțiuni, cum ar fi IR, Bluetooth, internet, RF etc. necesită o conexiune de linie de vedere între emițător și receptor. De asemenea, aceste module pot face două modalități de comunicare, ceea ce înseamnă că poate transmite și primi în același timp. Deci, folosind acest modul RF de 433 MHz, să construim o barcă RC Arduino în acest tutorial.
Am construit anterior mai multe proiecte controlate de la distanță folosind aceste module RF de 433Mhz, fie pentru controlul unui robot precum acest robot controlat prin RF, fie pentru aplicații de automatizare la domiciliu pentru a controla aparatele electrocasnice folosind RF. În afară de utilizarea modulelor RF, am construit anterior o mașină controlată Raspberry Pi Bluetooth și un robot Arduino controlat de telefonul mobil DTMF. Puteți consulta și aceste proiecte dacă sunteți interesat.
Componente necesare pentru Arduino RC Boat
- Transmițător și receptor de 433 MHz
- Arduino (orice Arduino, pentru a reduce dimensiunea pe care o folosesc promini)
- HT12E și HT12D
- Apăsați butoanele- 4No
- Rezistoare - 1mega ohm, 47k ohm
- Driver motor L293d
- Baterie de 9V (folosesc o baterie de 7,4 volți) - 2Nos
- 7805 regulator- 2Nos
- Motoare de curent continuu - 2No
- Frunze motor sau elice (folosesc elice de casă) - 2Nos
- .1uf condensator- 2Nos
- PCB comun
Module emițător și receptor RF de 433 MHz
Aceste tipuri de module RF sunt foarte populare printre producători. Datorită costului redus și simplității conexiunilor. Aceste module sunt cele mai bune pentru toate formele de proiecte de comunicare pe distanțe scurte. Aceste module sunt module RF de tip ASK (Amplitude Shift Keying), Amplitude-shift keying (ASK) este o formă de modulare a amplitudinii care reprezintă datele digitale ca variații ale amplitudinii unei unde purtătoare. Într-un sistem ASK, simbolul binar 1 este reprezentat de transmiterea unei unde purtătoare de amplitudine fixă și a unei frecvențe fixe pentru o durată de biți de T secunde. Dacă valoarea semnalului este 1, atunci semnalul purtător va fi transmis; în caz contrar, va fi transmisă o valoare a semnalului 0. Asta înseamnă că, de obicei, nu consumă energie atunci când transmit Logic „zero”. Acest consum redus de energie le face foarte utile în proiecte cu baterii.
Transmițător RF 433MHZ
Acest tip de modul este foarte mic și vine cu 3 pini VCC, sol și date. Unele alte module vin cu un pin de antenă suplimentar. Tensiunea de lucru a modulului emițător este de 3V-12V și acest modul nu are componente reglabile. Unul dintre avantajele majore ale acestui modul este consumul redus de curent, necesită curent aproape zero pentru a trimite bitul zero.
Diagrama bloc a transmițătorului pentru bărci RC Arduino
În diagrama bloc de mai sus, există patru butoane (butoane de control), aceste butoane sunt pentru controlul direcției bărcii. Avem patru dintre ele pentru înainte, înapoi, stânga și dreapta. Din butoane, obținem logică pentru controlul bărcii, dar nu ne putem conecta direct la codificator, de aceea am folosit Arduino. S-ar putea să vă gândiți de ce am folosit Arduino aici, este pur și simplu pentru că trebuie să tragem în jos două intrări de date paralele ale codificatorului în același timp pentru o mișcare înapoi și înainte, care nu poate fi realizată cu doar butoane. Apoi, codificatorul codifică următoarele date paralele la ieșirile seriale. Apoi, putem transmite acele date seriale cu ajutorul unui transmițător RF.
Schema de circuit a telecomenzii Arduino RC (emițător)
În circuitul de mai sus, puteți vedea o parte a tuturor celor patru butoane conectate la patru pini digitali ai Arduino (D6-D9) și toate celelalte patru laturi conectate la sol. Atunci când apăsăm butonul, pinii digitali corespunzători au o logică scăzută. Cele patru intrări paralele ale codificatorului HT12E conectate la alți patru pini digitali ai Arduino (D2-D5). Deci, cu ajutorul Arduino, putem decide intrarea codificatorului.
Și vorbind despre codificatorul HT12E este un codificator de 12 biți și un codificator de intrare-ieșire serial paralel. Din 12 biți, 8 biți sunt biți de adresă care pot fi utilizați pentru controlul mai multor receptoare. Pinii A0-A7 sunt pinii de intrare a adresei. În acest proiect, controlăm un singur receptor, așa că nu vrem să îi schimbăm adresa, așa că am conectat toți pinii de adresă la sol. Dacă doriți să controlați diferite receptoare cu un singur transmițător, puteți utiliza aici switch-uri dip. AD8-AD11 sunt intrările de biți de control. Aceste intrări vor controla ieșirile D0-D3 ale decodorului HT12D. Trebuie să conectăm un oscilator pentru comunicare, iar frecvența oscilatorului ar trebui să fie de 3KHzpentru funcționare de 5V. Atunci valoarea rezistorului va fi de 1,1MΩ pentru 5V. Apoi am conectat ieșirea HT12E la modulul transmițător. Am menționat deja că modulul transmițător Arduino și RF, ambele dispozitive funcționează la tensiune înaltă de 5V îl vor ucide, așa că pentru a evita acest lucru, am adăugat regulatorul de tensiune 7805. Acum putem conecta (Vcc) 6-12volt baterii de orice tip la intrare.
Construirea circuitului transmițătorului RC BOAT
Am lipit fiecare componentă pe un PCB comun. Amintiți-vă că lucrăm la un proiect RF, deci există o mulțime de șanse pentru diferite tipuri de interferențe, deci conectați toate componentele cât mai aproape posibil. Este mai bine să utilizați anteturi pin feminine pentru Arduino și modulul transmițător. De asemenea, încercați să lipiți totul de pe tampoanele de cupru în loc să folosiți fire suplimentare. În cele din urmă, conectați un cablu mic la modulul transmițător care va ajuta la creșterea gamei totale. Înainte de a conecta modulul Arduino și emițător, verificați de două ori tensiunea ieșirii lm7805.
Imaginea de mai sus arată vederea de sus a circuitului transmițător RC Boat completat, iar vizualizarea de jos a circuitului RC Transmițător barca completat este prezentată mai jos.
Construirea carcasei transmițătorului RC Arduino
Un corp decent este necesar pentru telecomandă. Acest pas se referă la ideile tale, poți crea un corp la distanță cu ideile tale. Vă explic cum am făcut asta. Pentru realizarea unui corp la distanță, aleg foi de MDF de 4 mm, puteți alege și placaj, foaie de spumă sau carton, apoi am tăiat două bucăți din aceea cu o lungime de 10cm și lățimea de 5cm. Apoi am marcat pozițiile butoanelor. Am așezat butoanele de direcție pe partea stângă și înainte, butoanele înapoi în dreapta. Pe cealaltă parte a foii, am conectat butoanele la circuitul principal de transmisie. Amintiți-vă că un buton normal are 4 pini care sunt doi pini pentru fiecare parte. Conectați un pin la Arduino și celălalt pin la sol. Dacă sunteți confuz cu acest lucru, vă rugăm să-l verificați cu un multimetru sau să verificați fișa tehnică.
După conectarea tuturor acestor lucruri, am plasat circuitul de control între cele două plăci MDF și am strâns cu niște șuruburi lungi (vă rugăm să consultați imaginile de mai jos, dacă doriți). Încă o dată crearea unui corp bun înseamnă idei.
Modul receptor 433Mhz
Acest receptor este, de asemenea, foarte mic și vine cu 4 pini VCC, la sol, iar cei doi pini din mijloc sunt date afară. Tensiunea de lucru a acestui modul este de 5v. La fel ca modulul emițător, acesta este, de asemenea, un modul de putere redusă. Unele module vin cu un pin de antenă suplimentar, dar în cazul meu acest lucru nu este prezent.
Schema bloc a receptorului Arduino RC Boat
Diagrama bloc de mai sus descrie funcționarea circuitului receptorului RF. În primul rând, putem primi semnalele transmise utilizând modulul receptorului RF. Ieșirea acestui receptor este de date seriale. Dar nu putem controla nimic cu aceste date seriale, de aceea am conectat ieșirea la decodor. Decodificatorul decodează datele seriale la datele noastre paralele originale. În această secțiune, nu avem nevoie de microcontrolere, putem conecta direct ieșirile la driverul motorului.
Diagrama circuitului receptorului Arduino RC Boat
HT12D este un decodor de 12 biți, care este un decodor serial de ieșire-intrare în paralel. Pinul de intrare al HT12D va fi conectat la un receptor care are o ieșire serială. Dintre cei 12 biți, 8 biți (A0-A7) sunt biți de adresă și HT12D va decoda intrarea doar dacă se potrivește cu adresa sa curentă. D8-D11 sunt biții de ieșire. Pentru a potrivi acest circuit cu circuitul emițătorului, am conectat toți pinii de adresă la sol. Datele din modul sunt tipul de serie, iar decodificatorul decodifică aceste date seriale în date paralele originale și ieșim prin D8-D11. Pentru a se potrivi cu frecvența de oscilație, ar trebui să conectați rezistorul de 33-56k la pinii oscilatorului. Ledul de pe al 17-lea pin indică transmisia validă, s-a aprins numai după ce receptorul s-a conectat la un transmițător. Tensiunea de intrare a receptorului este de asemenea de 6-12 volți.
Pentru a controla motoarele, am folosit IC L293D, am ales acest IC deoarece pentru a reduce dimensiunea și greutatea și acest IC este cel mai bun pentru controlul a două motoare în două direcții. L293D are 16 pini, diagrama de mai jos prezintă pin-urile.
1, 9 pini sunt pinul de activare, conectăm că la 5 v pentru a activa motoarele 1A, 2A, 3A și 4A sunt pinii de control. Motorul se va roti spre dreapta dacă pinul 1A scade și 2A se ridică, iar motorul se va întoarce spre stânga dacă 1A scade și 2A ridică. Deci, am conectat acești pini la ieșirea ps a decodorului. 1Y, 2Y, 3Y și 4Y sunt pinii de conectare a motorului. Vcc2 este pinul de tensiune de acționare a motorului, dacă utilizați un motor de înaltă tensiune, atunci conectați acest pin la sursa de tensiune corespunzătoare.
Construirea Circuitului Receptorului Arduino RC Boat
Înainte de a construi circuitul receptorului, ar trebui să vă amintiți câteva lucruri importante. Cel mai important este dimensiunea și greutatea, deoarece după construirea circuitului, trebuie să-l fixăm pe barcă. Deci, dacă greutatea crește, aceasta va afecta flotabilitatea și mișcarea.
La fel ca în circuitul emițătorului, lipiți fiecare componentă într-un mic PCB comun și încercați să utilizați fire minime. Am conectat pinul 8 al driverului motorului la 5v, deoarece folosesc motoare de 5V.
Construirea RC-BOAT
Am încercat diferite materiale pentru a construi corpul bărcii. Și am obținut un rezultat mai bun cu foaia de termocol. Așa că am decis să construiesc corpul cu thermocol. Mai întâi, am luat o bucată de termocol de 3 cm grosime și am plasat circuitul receptorului deasupra, apoi am marcat forma bărcii în thermocol și am tăiat. Deci acesta este modul meu de a construi barca, puteți construi în funcție de ideile voastre.
Motoare și elice pentru Arduino Air Boat
Încă o dată greutatea contează. Deci, alegerea motorului corect este importantă, aleg motoare de curent continuu de 5 volt, de tip n20, care sunt mici și fără greutate. Pentru a evita interferențele RF, ar trebui să conectați condensatorul de 0.1uf paralel la intrările motorului.
În cazul elicelor, am făcut elice folosind foi de plastic. Puteți cumpăra elice din magazin sau vă puteți construi propria dvs. ambele vor funcționa foarte bine. Pentru a construi elicele, am luat mai întâi o foaie mică de plastic și am tăiat două bucăți mici din ea și îndoi bucățile cu ajutorul căldurii lumânării. În cele din urmă, am pus o mică gaură în centrul său pentru motor și am fixat-o pe motorul asta este.
Funcționarea Arduino RC Boat
Această barcă are două motoare care îi permit să o numească în stânga și în dreapta. Dacă motorul se deplasează și în sensul acelor de ceasornic (depinde și poziția elicei), elica aspiră aerul din față și evacuează spre partea din spate. Aceasta generează tragere înainte.
Mișcare înainte: dacă ambele motoare stânga și dreapta se rotesc în sensul acelor de ceasornic, aceasta va mișca înainte
Mișcare înapoi: dacă ambele motoare din stânga și din dreapta se rotesc în sens invers acelor de ceasornic (adică elicea aspiră aerul din spate și evacuează partea din față), care va face mișcarea înapoi
Mișcarea la stânga: dacă numai motorul din dreapta se rotește, aceasta este barca, trageți doar din partea dreaptă, care va muta barca în partea stângă
Mișcare dreaptă: dacă numai motorul din stânga se rotește, barca este trasă doar din partea stângă, ceea ce va face barca să se deplaseze în partea dreaptă.
Am conectat intrarea driverului motoarelor la patru biți de ieșire ai decodorului (D8-D11). putem controla aceste 4 ieșiri conectând AD8-AD11 la solul care este butoanele telecomenzii. De exemplu, dacă conectăm AD8 la sol, care va activa D8. Deci, astfel putem controla cele două motoare în două direcții folosind aceste 4 ieșiri. Dar nu putem controla două motoare printr-un singur buton (avem nevoie de asta pentru mișcare înainte și înapoi) de aceea am folosit Arduino. Cu ajutorul Arduino, putem selecta pinii de date de intrare după dorința noastră.
Programarea Arduino a RC Boat
Programarea acestei bărci este foarte simplă, deoarece vrem doar o anumită comutare logică. Și putem realiza totul cu funcțiile de bază Arduino. Programul complet pentru acest proiect poate fi găsit în partea de jos a acestei pagini. Explicația programului dvs. este următoarea
Începem programul definind numerele întregi pentru patru butoane de intrare și pinii de intrare a decodorului.
int f_button = 9; int b_buton = 8; int l_buton = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
În secțiunea de configurare, am definit modurile pin. Adică butoanele sunt conectate la pini digitali, astfel încât acești pini ar trebui să fie definiți ca intrare și trebuie să obținem ieșiri pentru intrarea decodorului, astfel încât să definim acei pini ca ieșire.
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);
În continuare, în funcția buclă principală, vom citi starea butonului folosind funcția de citire digitală a Arduino. Dacă starea pinului scade, înseamnă că pinul corespunzător este apăsat, atunci vom executa condițiile după cum urmează-
if (digitalRead (f_button) == LOW)
Asta înseamnă că butonul înainte este apăsat
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Acest lucru va derula m1 și m2 al codificatorului, acesta va activa ambele motoare pe partea receptorului. În mod similar, pentru mișcarea înapoi
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Pentru mișcare la stânga
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Pentru mișcare corectă
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
După compilarea codului, încărcați-l pe placa Arduino.
Depanare: Așezați barca pe suprafața apei și verificați dacă se mișcă corect dacă nu încercați să modificați polaritatea motoarelor și a elicelor. De asemenea, încearcă să echilibrezi greutatea.
Funcționarea completă a proiectului poate fi găsită în videoclipul legat în partea de jos a acestei pagini. Dacă aveți întrebări, lăsați-le în secțiunea de comentarii.