- Walkie Talkie utilizând modulul RF nRF24L01
- Componentă necesară pentru Walkie Talkie bazat pe Arduino
- Diagrama circuitului Arduino Walkie Talkie
- Walkie Talkie Arduino Code
Trăim în era dispozitivelor compatibile 5G și 5G; cu toate acestea, tehnologiile vechi, cum ar fi sistemul walkie-talkie și sistemul de comunicații RF, sunt încă primordiale în scenariile în care este necesară o comunicare la distanță, pe distanțe scurte, ieftine și cu preț redus. De exemplu, dacă aveți o companie de construcții sau de construcții cu greutăți mari, atunci lucrătorii dvs. trebuie să comunice între ei pentru o muncă coordonată. Cu ajutorul unui walkie-talkie, ei pot comunica între ei și pot răspândi masaje scurte sau instrucțiuni prin simpla apăsare a butonului „PTT” pentru a transmite voce celorlalți lucrători, pentru ca aceștia să asculte și să urmeze instrucțiunile. O altă aplicație ar putea fi în căștile inteligentepentru a comunica între un pachet de călăreți în timpul unei călătorii lungi, modelul sugerat aici poate comunica între șase persoane la un moment dat. Dacă doriți să verificați alte tipuri de proiecte de transmisie audio fără fir cu rază scurtă de acțiune, vizitați proiectul Transmițător audio fără fir bazat pe IR și proiectul Transmițător audio Li-Fi folosind linkurile.
Walkie Talkie utilizând modulul RF nRF24L01
Componenta principală a acestui proiect este modulul RF NRF24L01 și Arduino Uno, care este creierul sau procesorul. Am învățat deja cum să interfațăm Nrf24L01 cu Arduino controlând de la distanță un servomotor. Pentru acest proiect, modulul RF NRF24L01 este ales deoarece are mai multe avantaje față de un mediu de comunicație digitală. Are o bandă ISM cu frecvență foarte înaltă de 2,4 GHz și rata de date poate fi de 250 kbps, 1 Mbps, 2 Mbps. Are 125 de canale posibile între 1Mhz, astfel încât modulul poate folosi 125 de canale diferite, ceea ce face posibilă o rețea de 125 de modemuri care funcționează independent într-un singur loc.
Cel mai important, semnalele NRF24L01 nu se suprapun și nu se încrucișează cu alte sisteme walkie-talkie, cum ar fi walkie-talkie de poliție și walkie-talkie feroviar și nu deranjează alte walkie-talkie. Un singur modul nrf24l01 poate comunica cu celelalte 6 module nrf24l01 la un moment în care se află în starea de recepție. De asemenea, este un modul cu consum redus de energie, ceea ce reprezintă un avantaj suplimentar. Există două tipuri de module NRF24L01 care sunt disponibile pe scară largă și utilizate în mod obișnuit, unul este NRF24L01 + și altul este NRF24L01 + PA + LNA (prezentat mai jos) cu antenă încorporată.
NRF24L01 + are o antenă la bord și variază de la numai 100 de metri. Este bun numai pentru utilizare în interior și nu este potrivit pentru comunicații pe distanțe lungi în aer liber. Mai mult, dacă există un perete între emițător și receptor, transmisia semnalului este foarte slabă. NRF24L01 + PA + LNA cu o antenă externă are un AP care să stimuleze puterea semnalului înainte de transmisie. LNA înseamnă Amplificator cu zgomot redus. Este clar, filtrează zgomotul și mărește nivelul extrem de slab și incert al semnalului primit de la antenă. Ajută la realizarea unor niveluri utile de semnal și are o antenă externă de 2 dB prin care poate transmite 1000 de metri de acoperire a razei de transmisie on-air, deci este perfect pentru proiectele noastre de comunicare walkie-talkie în aer liber.
Componentă necesară pentru Walkie Talkie bazat pe Arduino
- NRF24L01 + PA + LNA cu antenă externă 2DB (2 buc)
- Arduino UNO sau orice versiune de Arduino
- Amplificator audio (2 buc)
- Circuit microfon: îl puteți realiza singur (discutat mai târziu) sau puteți achiziționa un modul senzor de sunet.
- Modul de rapel DC-DC (2buc)
- Modul regulator de tensiune AMS1117 de 3,3V
- LED indicator de alimentare (2 buc)
- Rezistență la 470 ohmi (2 buc)
- Un difuzor de 4 inci (2 buc)
- buton (pentru butonul PTT)
- 104 PF pentru realizarea butonului PTT (2 buc)
- Condensator 100 NF pentru NRF24L01 (2 buc)
- 1k rezistență pentru butonul PTT (2buc)
- 2 seturi de baterii Li-ion
- Modul de încărcare și protecție a bateriei Li-ion (2 buc)
- Câteva sârme jumper, știfturi masculine pentru antet, bord cu puncte vero
Diagrama circuitului Arduino Walkie Talkie
Schema completă a circuitului pentru Arduino Walkie Talkie este prezentată în imaginea de mai jos. Diagrama circuitului arată toate conexiunile, inclusiv butonul PTT, circuitul microfonului și ieșirea audio stereo.
Important: Gama de intrare a tensiunii modulului NRF24L01 este de 1,9v până la maximum 3,6 volți, iar pentru stabilitatea tensiunii și curentului trebuie să utilizați un condensator 100nf în + VCC și - GND, dar alți pini ai modulului nrf24l01 pot tolera semnalul de 5 volți niveluri.
Pasul 1: Am început să fac PCB personalizat de casă și placa Arduino Atmega328p. Pusesem IC Atmega328p pe programator și l-am aprins și apoi am încărcat codul. Apoi, am adăugat un cristal de 16 MHz pe Atmega328p IC pe pinul (PB6, PB7) 9 și 10. Imaginile PCB-ului meu personalizat și a plăcii asamblate cu IC programat sunt prezentate mai jos.
Pasul 2: Am conectat modulele NRF24L01 așa cum se arată în schema de circuit în următoarea ordine. CE la pinul digital numărul 7, CSN la pinul numărul 8, SCK la pinul digital 13, MOSI la pinul digital 11, MISO la pinul digital 12 și IRQ la pinul digital 2.
Pentru sursa de alimentare, trebuie să scăpați mai întâi de tensiune de la 5 volți la 3,3 v cu o bună stabilitate a curentului. De asemenea, trebuie să puneți un condensator 100nF pe VCC și la solul modulului nrf24l01. Așadar, am folosit AMS1117, care este un regulator de tensiune de 3,3 volți, modulul reduce și dimensiunea proiectului și îl face compact.
Dacă doriți să realizați această placă de regulator de tensiune dvs., puteți cumpăra doar regulator IC de 3,3 volți și o puteți face adăugând niște capace, rezistență la intrare și ieșire, deoarece este foarte important pentru modulul dvs. RF, deoarece este un dispozitiv sensibil. Sau puteți utiliza regulatorul de tensiune variabilă LM317 pentru a construi un circuit reglementat de 3,3 V, așa cum am făcut în proiectul de alimentare cu panou de alimentare.
Pasul 3: puteți achiziționa un senzor de sunet sau puteți realiza un circuit simplu de microfon așa cum se arată în schema circuitului. Se compune dintr-un singur tranzistor - tranzistor NPN 2n3904. Imaginea de mai jos arată circuitul de microfon de casă construit pe o placă Vero. De asemenea, puteți verifica acest circuit simplu de pre-amplificator audio pentru mai multe informații.
Pentru o mai bună înțelegere, am făcut o altă reprezentare a întregii conexiuni cu valorile componentelor așa cum puteți vedea mai jos
Pasul 4: Pentru, făcând o conexiune de la pinul digital numărul 9 și 10 al microcontrolerului la amplificatorul audio, am folosit amplificatorul audio stereo PAM8403, deoarece implicit ieșirea audio Arduino este foarte scăzută (de obicei, puteți auzi sunetul doar folosind căști), nu un difuzor, deci avem nevoie de o etapă de amplificare). Modulul poate conduce cu ușurință două difuzoare pentru laptop și este disponibil la un cost foarte mic. De asemenea, vine cu un amplificator audio foarte puternic într-un pachet SMD care necesită foarte puțin spațiu. Modulul amplificatorului audio PAM8403 este prezentat mai jos.
(…)Conexiunea este foarte simplă, este necesară o sursă de alimentare de 3,7V la 5V pentru a alimenta amplificatorul audio. Intrarea audio a canalului stâng și a canalului drept de la pinul Arduino 9 și 10 împreună cu pinul de masă ar trebui să fie date ca intrare pentru acest modul amplificator, așa cum se arată în diagrama circuitului. În cazul meu, am folosit un singur difuzor de 4 inch de 8 ohmi și am folosit doar ieșirea canalului drept. Dacă doriți, puteți utiliza două difuzoare cu acest modul.
Pasul 5: Apoi, am construit comutatorul PTT folosind un simplu buton. Am adăugat un condensator 104PF sau 0,1uf pentru a preveni semnalele de semnal neregulat sau neregulat la apăsarea butonului. Pinul 4 este acum conectat direct cu pinul Arduino Digital D3, deoarece un pin întrerupt este atribuit codării.
NRF24L01 + PA + LNA atunci când transmite un semnal audio sau pachetele DATA consumă mai multă energie, prin urmare, consumă mai mult curent. Când apăsați brusc butonul PTT, consumul de energie crește. Pentru a rezolva această sarcină crescută brusc, trebuie să utilizați un condensator 100nF pe + vcc și la masă pentru stabilitatea transmisiei modulului NRF24L01 + PA + LNA.
Când comutatorul este apăsat, placa Arduino primește o întrerupere Arduino pe pinul D3. În program, vom declara pinul digital 3 al Arduino verificându-i constant tensiunea de intrare. Dacă tensiunea de intrare este scăzută, menține walkie-talkie-ul în modul de recepție și dacă pinul digital numărul 3 este ridicat, comută walkie-talkie-ul în modul de transmisie pentru trimiterea semnalului vocal preluat de procesul microfonului prin microcontroler și transmiterea prin NRF24L01 + PA + LNA cu antenă externă.
Pasul 6: Pentru sursa de alimentare, am ales această baterie Li-ion. Pentru a alimenta toate componentele, cum ar fi Arduino IC Atmega328p, NRF24L01 + PA + LNA, amplificator audio, buton PTT și circuit de microfon, am folosit 2 seturi de baterii Li-ion pentru acest proiect, așa cum se arată mai jos.
O celulă bună are un nivel de tensiune de la 3,8v la 4,2 volți, iar tensiunea de încărcare este de numai 4v la 4,2 volți. Pentru a afla mai multe despre bateriile cu litiu, puteți consulta articolul legat. Aceste baterii sunt utilizate în mod popular în dispozitivele electronice portabile și vehiculele electrice. Dar celulele bateriei Li-ion nu sunt la fel de robuste ca alte baterii, au nevoie de protecție împotriva supraîncărcării și descărcării prea rapide, ceea ce înseamnă că curentul și tensiunea de încărcare / descărcare ar trebui menținute în limite de siguranță. Prin urmare, am folosit cel mai elic modul de încărcare a bateriei Li-ion - TP4056. Am folosit anterior acest modul pentru construirea unei bănci portabile de energie, puteți verifica acest lucru pentru mai multe detalii pe această placă.
Pasul 7: Am folosit un modul de amplificare DC de 2 Amp pentru DC, deoarece Arduino atmega328p, Amplificator audio, circuit microfon, buton PTT, totul are nevoie de 5 volți, dar bateria mea poate furniza doar 3,7 V până la 4,2 V, așa că am nevoie de un convertor boost pentru a ajunge la 5V cu mai mult de 1 Amp de putere stabilă.
După ce ați construit circuitul, îl puteți asambla într-o mică incintă. Am folosit o cutie de plastic și mi-am plasat circuitele așa cum se arată în imaginea de mai jos
Walkie Talkie Arduino Code
Programul complet pentru walkie-talkie-ul dvs. Arduino poate fi găsit în partea de jos a acestei pagini. În această secțiune, să discutăm cum funcționează programul. Înainte de a ajunge acolo, trebuie să includeți câteva biblioteci listate mai jos.
- Biblioteca nRF24
- Biblioteca audio nRF24
- Biblioteca Maniaxbug RF24
Începeți programarea prin includerea anteturilor Radio și Audio Library așa cum se arată mai jos
#include
Inițializați radioul RF pe pinii 7 și 8 și setați numărul radio audio la 0. De asemenea, inițializați butonul ppt de pe pinul 3.
Radio RF24 (7,8); // Configurați radioul folosind pinii 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Configurați sunetul utilizând radio și setați numărul radio 0 în talkButton = 3;
În interiorul funcției de configurare, începeți monitorul serial la 115200 baudrate pentru depanare. Apoi inițializați butonul ppt conectați la pinul 3 ca pin de întrerupere.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // setează întreruperea pentru a verifica butonul vorbește butonul apăsați attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // setează starea implicită pentru fiecare modul pentru a primi rfAudio.receive (); }
Apoi, avem o funcție numită talk () care este apelată ca răspuns la întrerupere. Programul verifică starea butonului dacă butonul este apăsat și menținut, acesta intră în modul de transmisie pentru a trimite sunetul. Dacă butonul este eliberat, acesta intră în modul de recepție.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } bucla nulă () {}
Funcționarea completă a acestui proiect poate fi găsită în videoclipul legat mai jos. Walkie Talkie produce ceva zgomot în timpul funcționării, acesta este zgomotul de la frecvența purtătoare a modulului nRF24L01. Poate fi redus utilizând un senzor de sunet bun sau un modul de microfon. Dacă aveți întrebări despre acest proiect, le puteți lăsa în secțiunea de comentarii de mai jos. De asemenea, puteți utiliza forumurile noastre pentru a obține răspunsuri rapide la celelalte întrebări tehnice.