- Walkie Talkie z uporabo RF modula nRF24L01
- Komponenta, potrebna za Walkie Talkie na osnovi Arduino
- Arduino Walkie Talkie vezje
- Koda Walkie Talkie Arduino
Živimo v dobi naprav, ki podpirajo 5G in 5G; vendar so stare tehnologije, kot sta sistem walkie-talkie in RF komunikacijski sistem, še vedno najpomembnejše v scenarijih, ko je potrebna komunikacija na daljavo, na kratke razdalje, poceni in poceni. Če imate na primer gradbeno ali gradbeno podjetje s težkimi nosilci, morajo vaši delavci komunicirati med seboj za usklajeno delo. S pomočjo walkie-talkie-ja lahko komunicirajo med seboj in širijo kratke masaže ali navodila, tako da preprosto pritisnejo gumb “PTT”, da oddajo glas drugim delavcem, da poslušajo in upoštevajo navodila. Druga aplikacija bi lahko bila v pametnih čeladahza komunikacijo med kopico kolesarjev med dolgo vožnjo lahko predlagani model tukaj komunicira med šestimi ljudmi hkrati. Če želite preveriti druge vrste projektov brezžičnega prenosa zvoka kratkega dosega, po povezavah obiščite IR brezžični avdio oddajnik in Li-Fi avdio oddajnik.
Walkie Talkie z uporabo RF modula nRF24L01
Glavna komponenta tega projekta sta RF modul NRF24L01 in Arduino Uno, ki je možgan ali procesor. Že smo se naučili, kako povezati Nrf24L01 z Arduino z daljinskim upravljanjem servo motorja. Za ta projekt je izbran RF modul NRF24L01, ker ima več prednosti pred digitalnim komunikacijskim medijem. Ima 2,4 GHz zelo visokofrekvenčni pas ISM in hitrost prenosa podatkov je lahko 250kbps, 1Mbps, 2 Mbps. Ima 125 možnih kanalov med razmikom 1 MHz, tako da lahko modul uporablja 125 različnih kanalov, kar omogoča omrežje 125 samostojno delujočih modemov na enem mestu.
Najpomembneje je, da se signali NRF24L01 ne prekrivajo in ne prekrivajo vmesnikov z drugimi sistemi walkie-talkie, kot so policijski walkie-talkie in železniški walkie-talkie, in ne moti drugih walkie-talkiejev. Posamezen modul nrf24l01 lahko komunicira z drugimi 6 moduli nrf24l01 v času, ko so v stanju sprejema. Poleg tega gre za modul z nizko porabo energije, kar je dodatna prednost. Obstajata dve vrsti modulov NRF24L01, ki sta široko dostopna in se pogosto uporabljata, eden je NRF24L01 +, drugi pa NRF24L01 + PA + LNA (prikazan spodaj) z vgrajeno anteno.
NRF24L01 + ima anteno na vozilu in le 100 metrov v razponu. Dober je samo za notranjo uporabo in ni primeren za zunanje komunikacije na dolge razdalje. Poleg tega, če je med oddajnikom in sprejemnikom prisotna stena, je prenos signala zelo slab. NRF24L01 + PA + LNA z zunanjo anteno je PA, ki poveča moč signala pred prenosom. LNA pomeni Ojačevalnik z nizkim šumom. Jasno je, filtrira hrup in poveča izredno šibko in negotovo nizko raven signala, ki ga prejema antena. Pomaga pri ustvarjanju uporabnih ravni signala in ima 2dB zunanjo anteno, skozi katero lahko prenaša 1000 metrov pokritosti v zraku, zato je kot nalašč za naše komunikacijske projekte v obliki walkie-talkieja na prostem.
Komponenta, potrebna za Walkie Talkie na osnovi Arduino
- NRF24L01 + PA + LNA z zunanjo anteno 2DB (2 kosa)
- Arduino UNO ali katera koli različica Arduina
- Avdio ojačevalnik (2 kos)
- Vezje mikrofona: Lahko ga izdelate sami (o tem bomo razpravljali kasneje) ali kupite modul zvočnega senzorja.
- DC-DC ojačevalni modul (2pcs)
- 3.3V modul regulatorja napetosti AMS1117
- LED indikator napajanja (2 kos)
- 470 ohmov upor (2pcs)
- 4-palčni zvočnik (2 kosa)
- tipka (za tipko PG)
- 104 PF za izdelavo gumba PG (2 kosa)
- 100 NF kondenzator za NRF24L01 (2pcs)
- 1k upor za gumb PTT (2pcs)
- 2 kompleta li-ionske baterije
- Modul za polnjenje in zaščito baterije z litij-ionsko baterijo (2 kosa)
- Nekaj žic za mostičke, moški zatič glave, pikasta vero deska
Arduino Walkie Talkie vezje
Popoln diagram vezja za Walkie Talkie Arduino je prikazan na spodnji sliki. Shema vezja prikazuje vse povezave, vključno z gumbom PTT, vezjem mikrofona in stereo zvočnim izhodom.
Pomembno: vhodno napetostno območje modula NRF24L01 znaša 1,9 v do največ 3,6 volta, za stabilnost napetosti in toka pa morate v + VCC in - GND uporabiti 100 nf kondenzator, drugi zatiči modula nrf24l01 pa lahko prenašajo 5-voltni signal ravni.
1. korak: Začel sem z izdelavo doma narejenih PCB in plošč Arduino Atmega328p. Na programator sem dal IC Atmega328p, ga utripal in nato naložil kodo. Nato sem na IC-ju Atmega328p na (PB6, PB7) pin 9 in 10. dodal kristal 16 MHz. Slike mojega PCB-ja in sestavljene plošče s programiranim IC-jem so prikazane spodaj.
2. korak: Priključil sem module NRF24L01, kot je prikazano na vezju, v naslednjem vrstnem redu. CE na digitalni pin številka 7, CSN na pin številka 8, SCK na digitalni pin 13, MOSI na digitalni pin 11, MISO na digitalni pin 12 in IRQ na digitalni pin 2.
Za napajanje morate napetost najprej s 5 voltov spustiti na 3,3 v z dobro stabilnostjo toka. Na VCC in ozemljitev modula nrf24l01 morate namestiti tudi 100nF kondenzator. Torej, uporabil sem AMS1117, ki je 3,3-voltni regulator napetosti, modul pa tudi zmanjša velikost vašega projekta in ga naredi kompakten.
Če želite to ploščo regulatorja napetosti izdelati sami, lahko kupite le 3,3-voltni IC regulatorja in ga lahko izdelate tako, da dodate nekaj pokrovčkov, odpornost na vhodu in izhodu, saj je za vaš RF modul zelo pomemben, ker je občutljiva naprava. Lahko pa uporabite regulator spremenljive napetosti LM317 za izdelavo reguliranega tokokroga 3,3 V, kot smo to storili v projektu napajanja Breadboard.
3. korak: Lahko kupite zvočni senzor ali naredite preprosto vezje mikrofona, kot je prikazano na vezju. Sestavljen je iz samo enega tranzistorja - 2n3904 NPN tranzistor. Spodnja slika prikazuje domače mikrofonsko vezje, zgrajeno na plošči Vero. Za več informacij lahko preverite tudi to preprosto vezje predojačevalnika zvoka.
Za boljše razumevanje sem naredil še en prikaz celotne povezave z vrednostmi komponent, kot lahko vidite spodaj
4. korak: Za vzpostavitev povezave z digitalnega pin-a številke 9 in 10 mikrokrmilnika na avdio ojačevalnik sem uporabil stereo avdio ojačevalnik PAM8403, ker je privzeto zvočni izhod Arduino zelo nizek (običajno lahko zvok slišite samo s slušalkami, ne zvočnika, zato potrebujemo stopnjo ojačanja). Modul lahko enostavno poganja dva zvočnika za prenosnike in je na voljo po zelo nizki ceni. Na voljo je tudi zelo močan ojačevalnik zvoka v paketu SMD, ki zahteva zelo malo prostora. Ojačevalni modul PAM8403 je prikazan spodaj.
UPovezava je zelo enostavna, za napajanje avdio ojačevalnika je potreben 3,7 V do 5 V napajalnik. Zvočni vhod levega in desnega kanala iz Arduino pin 9 in 10 skupaj z ozemljitvenim pinom je treba dati kot vhod za ta ojačevalni modul, kot je prikazano na vezju. V mojem primeru sem uporabil en sam 4-palčni 8-ohmski zvočnik in uporabil samo izhod desnega kanala. Če želite, lahko s tem modulom uporabite dva zvočnika.
5. korak: Nato sem s preprostim gumbom zgradil stikalo PTT. Dodal sem kondenzator 104PF ali 0,1uf, da preprečim odbijanje stikal ali nepravilne signale ob pritisku na stikalo. Pin 4 je zdaj neposredno povezan z Arduino Digital pin 3, ker je kodiranju dodeljen prekinjen pin.
NRF24L01 + PA + LNA pri prenosu zvočnega signala ali paketov DATA porabi več energije, zato porabi več toka. Ko nenadoma pritisnete gumb PG, se poraba energije poveča. Za ravnanje s to nenadno povečano obremenitvijo morate uporabiti kondenzator 100nF na + vcc in Ground za stabilnost prenosa modula NRF24L01 + PA + LNA.
Ko pritisnete stikalo, plošča Arduino prejme na zatič D3 prekinitev Arduino. V programu bomo razglasili digitalni pin 3 Arduina, ki nenehno preverja njegovo vhodno napetost. Če je vhodna napetost nizka, ohrani walkie-talkie v načinu sprejemanja in če je digitalna številka 3 velika, walkie-talkie preklopi v način oddajanja za pošiljanje glasovnega signala, ki ga mikrofonski proces zajame prek mikrokrmilnika in oddaja prek NRF24L01 + PA + LNA z zunanjo anteno.
6. korak: Za napajanje sem izbral to Li-ion baterijo. Za napajanje vseh komponent, kot so Arduino IC Atmega328p, NRF24L01 + PA + LNA, ojačevalnik zvoka, gumb PTT in vezje mikrofona, sem za ta projekt uporabil 2 kompleta Li-ionske baterije, kot je prikazano spodaj.
Dobra celica ima napetost od 3,8 do 4,2 volta, polnilna napetost pa je samo od 4 do 4,2 volta. Če želite izvedeti več o litijevih baterijah, si oglejte povezani članek. Te baterije se zelo pogosto uporabljajo v prenosnih elektronskih napravah in električnih vozilih. Toda celice Li-ionskih baterij niso tako robustne kot druge baterije, potrebujejo zaščito pred prekomernim polnjenjem in praznjenjem, kar pomeni, da je treba polnilni / praznilni tok in napetost vzdrževati v varnih mejah. Zato sem uporabil najbolj propelerski modul za polnjenje Li-ionske baterije - TP4056. Ta modul smo že uporabljali za izdelavo prenosne napajalne banke. To lahko preverite za več podrobnosti na tej plošči.
7. korak: Uporabil sem ojačevalni modul z napetostjo 2 A za enosmerni tok, ker Arduino atmega328p, ojačevalnik zvoka, mikrofonsko vezje, gumb PTT potrebuje vse 5 voltov, vendar moja baterija lahko napaja le 3,7 V do 4,2 V, zato potrebujem pretvornik za povečanje doseči 5V z več kot 1 A amp stabilne izhodne moči.
Ko ste zgradili vezje, ga lahko sestavite v majhno ohišje. Uporabil sem plastično škatlo in postavil vezja, kot je prikazano na spodnji sliki
Koda Walkie Talkie Arduino
Celoten program vašega voki-tokija Arduino najdete na dnu te strani. V tem poglavju se pogovorimo o delovanju programa. Preden pridete tja, morate vključiti nekaj knjižnic, ki so navedene spodaj.
- Knjižnica nRF24
- Zvočna knjižnica nRF24
- Knjižnica Maniaxbug RF24
Začnite s programiranjem tako, da vključite glave radijske in zvočne knjižnice, kot je prikazano spodaj
#include
Inicializirajte RF radio na nožicah 7 in 8 in nastavite številko zvočnega radia na 0. Inicializirajte tudi gumb ppt na zatiču 3.
Radio RF24 (7,8); // Nastavitev radia z zatiči 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Nastavite zvok z radiem in nastavite na radijsko številko 0 int talkButton = 3;
Znotraj nastavitvene funkcije zaženite serijski monitor s hitrostjo 115200 za odpravljanje napak. Nato gumb ppt inicializirajte, da se priključi na zatič 3 kot prekinitveni zatič.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // nastavi prekinitev za preverjanje gumba za pogovor o pritisku na gumb attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // nastavi privzeto stanje za vsak modul za prejemanje rfAudio.receive (); }
Nato imamo funkcijo, imenovano talk (), ki se pokliče kot odziv na prekinitev. Program preveri stanje gumba, če gumb pritisnete in zadržite, vstopi v način oddajanja za pošiljanje zvoka. Če gumb sprostite, preide v način prejema.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); sicer rfAudio.receive (); } void loop () {}
Celotno delovanje tega projekta najdete v spodnjem videoposnetku. Walkie Talkie med delovanjem proizvaja nekaj hrupa, to je šum iz nosilne frekvence modula nRF24L01. To lahko zmanjšate z uporabo dobrega zvočnega senzorja ali mikrofonskega modula. Če imate kakršna koli vprašanja o tem projektu, jih lahko pustite v spodnjem oddelku za komentarje. Na naših forumih lahko uporabite tudi hitre odgovore na vaša druga tehnična vprašanja.