- „Walkie Talkie“ naudojant „nRF24L01“ RF modulį
- Komponentas reikalingas „Arduino“ pagrindu veikiančiai „Walkie Talkie“
- „Arduino Walkie Talkie“ grandinės schema
- „Walkie Talkie“ „Arduino“ kodas
Mes gyvename 5G ir 5G palaikančių įrenginių eroje; tačiau senos technologijos, tokios kaip racija ir radijo ryšio sistema, vis dar yra svarbiausios scenarijuose, kai reikalingas nuotolinis, trumpas atstumas, pigus ir nebrangus ryšys. Pavyzdžiui, jei turite statybų ar sunkiasvorių statybų įmonę, jūsų darbuotojai turi bendrauti tarpusavyje, kad dirbtų koordinuotai. Racijos pagalba jie gali bendrauti tarpusavyje ir paskleisti trumpą masažą ar instrukcijas tiesiog paspausdami mygtuką „PTT“, kad perduotų balsą kitiems darbuotojams, kad jie klausytųsi ir vykdytų instrukcijas. Kita programa gali būti išmaniuosiuose šalmuosenorint ilgai bendrauti tarp lenktynininkų būrio, siūlomas modelis vienu metu gali bendrauti tarp šešių žmonių. Jei norite patikrinti kitų rūšių mažo nuotolio bevielio garso perdavimo projektus, apsilankykite IR pagrindu veikiančio belaidžio garso siųstuvo ir „Li-Fi“ garso siųstuvo projektuose naudodami nuorodas.
„Walkie Talkie“ naudojant „nRF24L01“ RF modulį
Pagrindinis šio projekto komponentas yra NRF24L01 RF modulis ir „ Arduino Uno“, kuris yra smegenys arba procesorius. Mes jau išmokome sąsają Nrf24L01 su „Arduino“ valdyti servo variklį nuotoliniu būdu. Šiam projektui pasirinktas NRF24L01 RF modulis, nes jis turi keletą pranašumų, palyginti su skaitmenine ryšio terpe. Jis turi 2,4 GHz labai aukšto dažnio ISM juostą, o duomenų perdavimo greitis gali būti 250 kbps, 1 Mbps, 2 Mbps. Tarp 1Mhz tarpų yra 125 galimi kanalai, todėl modulis gali naudoti 125 skirtingus kanalus, o tai leidžia vienoje vietoje turėti 125 savarankiškai veikiančių modemų tinklą.
Svarbiausia, kad NRF24L01 signalai nepersidengia ir nesusikerta su kitomis racijos sistemomis, tokiomis kaip policijos racija ir geležinkelio racija, ir tai netrikdo kitų racijų. Vienas nrf24l01 modulis gali bendrauti su kitais 6 nrf24l01 moduliais tuo metu, kai jie yra priimančiojoje būsenoje. Be to, tai yra mažas energijos suvartojimo modulis, kuris yra papildomas pranašumas. Yra dviejų tipų NRF24L01 moduliai, kurie yra plačiai prieinami ir dažniausiai naudojami, vienas yra NRF24L01 +, kitas - NRF24L01 + PA + LNA (parodyta žemiau) su įmontuota antena.
„ NRF24L01 +“ turi borto anteną ir tik 100 metrų nuotolį. Jis yra tinkamas naudoti tik patalpose ir nėra tinkamas tolimojo susisiekimo lauke komunikacijai. Be to, jei tarp siųstuvo ir imtuvo yra siena, signalo perdavimas yra labai prastas. NRF24L01 + PA + LNA su išorine antena turi PA, kad didinančią prieš perdavimo signalo galia. LNA reiškia „Low Noise Amplifier“. Tai aišku, filtruoja triukšmą ir padidina ypač silpną ir neaiškų žemą iš antenos gaunamo signalo lygį. Tai padeda sukurti naudingą signalo lygį ir turi 2dB išorinę anteną, per kurią gali perduoti 1000 metrų eterio diapazoną, todėl jis puikiai tinka mūsų lauko racijos komunikacijos projektams.
Komponentas reikalingas „Arduino“ pagrindu veikiančiai „Walkie Talkie“
- NRF24L01 + PA + LNA su išorine 2DB antena (2 vnt.)
- „Arduino UNO“ arba bet kuri „Arduino“ versija
- Garso stiprintuvas (2vnt)
- Mikrofono grandinė: galite tai padaryti patys (aptarti vėliau) arba įsigyti garso jutiklio modulį.
- DC - DC pakopinis stiprintuvas (2vnt)
- 3,3 V AMS1117 įtampos reguliatoriaus modulis
- Maitinimo indikatoriaus LED (2vnt)
- 470 omų varža (2vnt)
- 4 colių garsiakalbis (2 vnt.)
- mygtukas (skirtas TR mygtukui)
- 104 PF PTT mygtuko gamybai (2vnt)
- 100 NF kondensatorius NRF24L01 (2vnt)
- 1k atsparumas PTT mygtukui (2vnt)
- 2 ličio jonų akumuliatorių rinkiniai
- Ličio jonų akumuliatoriaus įkrovimo ir akumuliatoriaus apsaugos modulis (2vnt)
- Kai kuri megztinė viela, vyriškas antraštės kaištis, taškuota vero lenta
„Arduino Walkie Talkie“ grandinės schema
Visa „ Arduino Walkie Talkie“ grandinės schema parodyta paveikslėlyje žemiau. Grandinės schemoje parodytos visos jungtys, įskaitant PTT mygtuką, mikrofono grandinę ir stereo garso išvestį.
Svarbu: NRF24L01 modulio įtampos įvesties diapazonas yra nuo 1,9 iki 3,6 voltų, o įtampos ir srovės stabilumui užtikrinti turite naudoti 100 nf kondensatorių į + VCC ir - GND, tačiau kiti nrf24l01 modulio kaiščiai gali toleruoti 5 voltų signalą lygius.
1 žingsnis: Aš pradėjau gamindamas naminį individualų PCB ir „Arduino Atmega328p“ plokštę. Aš buvau įdėjęs IC „Atmega328p“ į programuotoją, jį mirktelėjau ir įkėliau kodą. Tada aš pridėjau 16 MHz kristalą ant „Atmega328p IC“ (PB6, PB7) 9 ir 10 kaiščių. Žemiau parodytos mano specialiai pagamintos PCB ir surinktos plokštės su užprogramuotu IC nuotraukos.
2 žingsnis: Aš prijungiau NRF24L01 modulius, kaip parodyta schemoje, tokia tvarka. CE prie skaitmeninio kaiščio numerio 7, CSN prie 8 kontakto, SCK prie skaitmeninio kaiščio 13, MOSI prie skaitmeninio kaiščio 11, MISO prie skaitmeninio kaiščio 12 ir IRQ prie skaitmeninio kaiščio 2.
Maitinimo šaltiniui pirmiausia turite sumažinti įtampą nuo 5 voltų iki 3.3v, esant geram srovės stabilumui. Be to, jūs turite įdėti 100nF kondensatorių ant modulio nrf24l01 VCC ir žemės. Taigi, aš naudojau AMS1117, kuris yra 3,3 voltų įtampos reguliatorius, modulis taip pat sumažina jūsų projekto dydį ir daro jį kompaktišką.
Jei norite patys pasidaryti šią įtampos reguliatoriaus plokštę, galite nusipirkti tik 3,3 voltų reguliatoriaus IC ir galite tai padaryti pridėdami keletą dangtelių, atsparumą įėjime ir išėjime, nes tai labai svarbu jūsų RF moduliui, nes tai yra jautrus įrenginys. Arba galite naudoti kintamos įtampos reguliatorių LM317, kad sukurtumėte 3,3 V reguliuojamą grandinę, kaip tai darėme „Breadboard“ maitinimo projekte.
3 žingsnis: galite įsigyti garso jutiklį arba sukurti paprastą mikrofono grandinę, kaip parodyta schemoje. Jį sudaro tik vienas tranzistorius - 2n3904 NPN tranzistorius. Žemiau pateiktame paveikslėlyje parodyta namų mikrofono grandinė, pastatyta ant „Vero“ plokštės. Taip pat galite patikrinti šią paprastą garso išankstinio stiprintuvo grandinę, kad gautumėte daugiau informacijos.
Norėdami geriau suprasti, aš dar kartą pavaizdavau visą ryšį su komponentų vertėmis, kaip matote žemiau
4 žingsnis: norėdamas užmegzti ryšį iš savo mikrovaldiklio skaitmeninio kaiščio numerio 9 ir 10 su garso stiprintuvu, aš naudojau PAM8403 stereo garso stiprintuvą, nes pagal numatytuosius nustatymus „Arduino“ garso išvestis yra labai maža (paprastai garsą galite girdėti tik naudodamiesi tik ausinėmis), o ne garsiakalbis, todėl mums reikia stiprinimo pakopos). Modulis gali lengvai valdyti du nešiojamojo kompiuterio garsiakalbius ir yra prieinamas už labai mažą kainą. Be to, jis turi labai galingą garso stiprintuvą SMD pakuotėje, kuriam reikia labai mažai vietos. PAM8403 garso stiprintuvo modulis parodytas žemiau.
APrijungimas yra labai paprastas, garso stiprintuvui maitinti reikalingas 3,7–5 V maitinimo šaltinis. Kairiojo ir dešiniojo kanalo garso įvestis iš „Arduino“ kaiščių 9 ir 10 kartu su įžeminimo kaiščiu turėtų būti pateikiama kaip šio stiprintuvo modulio įvestis, kaip parodyta grandinės schemoje. Mano atveju naudojau vieną 4 colių 8 omų garsiakalbį ir naudojau tik dešiniojo kanalo išvestį. Jei norite, galite naudoti du garsiakalbius su šiuo moduliu.
5 žingsnis: Tada aš sukūriau PTT jungiklį naudodamas paprastą mygtuką. Pridėjau 104PF arba 0.1uf kondensatorių, kad būtų išvengta jungiklio atšokimo ar nepastovių signalų, kai paspaudžiamas jungiklis. 4 kaištis dabar yra tiesiogiai sujungtas su „Arduino Digital“ kaiščiu D3, nes kodavimui priskiriamas pertrauktas kaištis.
NRF24L01 + PA + LNA, siunčiant garso signalą ar DATA paketus, sunaudoja daugiau energijos, taigi sunaudoja daugiau srovės. Staiga paspaudus tiesioginio ryšio mygtuką, energijos sąnaudos padidėja. Norėdami tvarkyti šią staiga padidėjusią apkrovą, norėdami perduoti NRF24L01 + PA + LNA modulį, turite naudoti 100nF kondensatorių + vcc ir Ground.
Paspaudus jungiklį, „Arduino“ plokštė gauna „Arduino“ pertraukimą ant savo kaiščio D3. Programoje mes paskelbsime, kad „Arduino“ skaitmeninis kaištis 3 nuolat tikrina jo įėjimo įtampą. Jei įėjimo įtampa yra maža, racija palaikoma priėmimo režimu, o jei skaitmeninis kaiščio numeris 3 yra didelis, jis perjungia raciją į perdavimo režimą, kad būtų galima siųsti mikrofono proceso metu paimamą balso signalą per mikrovaldiklį ir perduoti per NRF24L01 + PA + LNA su išorine antena.
6 žingsnis: maitinimo šaltiniui pasirinkau šią ličio jonų bateriją. Norėdami maitinti visus komponentus, pvz., „Arduino IC Atmega328p“, NRF24L01 + PA + LNA, garso stiprintuvą, PTT mygtuką ir mikrofono grandinę, šiam projektui naudojau 2 rinkinius ličio jonų akumuliatorių, kaip parodyta žemiau.
Geras elementas turi nuo 3,8 iki 4,2 voltų įtampos lygį, o įkrovimo įtampa yra tik nuo 4 iki 4,2 voltų. Norėdami sužinoti daugiau apie ličio baterijas, galite peržiūrėti susietą straipsnį. Šios baterijos yra labai populiarios nešiojamiesiems elektroniniams prietaisams ir elektrinėms transporto priemonėms. Tačiau ličio jonų akumuliatorių elementai nėra tokie patvarūs kaip kitos baterijos, juos reikia apsaugoti nuo per greito perkrovimo ir iškrovimo, o tai reiškia, kad įkrovimo / iškrovimo srovė ir įtampa turėtų būti saugios. Todėl naudojau daugiausia sraigto ličio jonų akumuliatorių įkrovimo modulį - TP4056. Anksčiau mes naudojome šį modulį statydami nešiojamąjį maitinimo banką. Norėdami sužinoti daugiau informacijos šioje lentoje, galite tai patikrinti.
7 žingsnis: Aš naudoju 2 amperų nuolatinės srovės nuolatinės srovės stiprinimo modulį, nes „Arduino atmega328p“, garso stiprintuvą, mikrofono grandinę, PTT mygtuką viskam reikia 5 voltų, bet mano akumuliatorius gali tiekti tik nuo 3,7 V iki 4,2 V, taigi man reikia stiprintuvo keitiklio pasiekti 5 V įtampą su daugiau nei 1 A stabilios galios.
Sukūrę grandinę, galite ją surinkti mažame korpuse. Aš naudojau plastikinę dėžę ir įdėjau savo grandines, kaip parodyta paveikslėlyje žemiau
„Walkie Talkie“ „Arduino“ kodas
Visą „Arduino“ racijos programą rasite šio puslapio apačioje. Šiame skyriuje aptarkime, kaip veikia programa. Prieš atvykdami turite įtraukti keletą toliau išvardytų bibliotekų.
- nRF24 biblioteka
- „nRF24“ garso biblioteka
- „Maniaxbug RF24“ biblioteka
Pradėkite programavimą įtraukdami radijo ir garso bibliotekos antraštes, kaip parodyta žemiau
# įtraukti
Inicializuokite radijo imtuvą ant 7 ir 8 kaiščių ir nustatykite garso radijo numerį į 0. Taip pat inicializuokite ppt mygtuką 3 kaištyje.
RF24 radijas (7,8); // Nustatykite radiją naudodami kaiščius 7 (CE) 8 (CS) RF24Audio rfAudio (radijas, 0); // Nustatykite garsą naudodamiesi radiju ir nustatykite radijo numerį 0 int talkButton = 3;
Vykdydami sąrankos funkciją, pradėkite nuoseklųjį monitorių 115200 baudų greičiu, kad galėtumėte derinti. Tada inicializuokite ppt mygtuko prijungimą prie 3 kaiščio kaip pertraukimo kaištį.
negaliojanti sąranka () {Serial.begin (115200); printf_begin (); radijas.prasideda (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // nustato pertraukimą, kad patikrintų, ar nėra mygtuko kalbėjimo mygtuko, paspauskite attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // nustato numatytąją būseną kiekvienam moduliui, kad gautų rfAudio.receive (); }
Toliau mes turime funkciją, vadinamą talk (), kuri yra iškviesta kaip atsakas į pertraukimą. Programa patikrina mygtuko būseną, jei mygtukas paspaudžiamas ir laikomas, jis persijungia į perdavimo režimą garso siuntimui. Atleidus mygtuką, jis pereina į priėmimo režimą.
negaliojantis pokalbis () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
Visą šio projekto darbą galite rasti žemiau esančiame vaizdo įraše. „Walkie Talkie“ veikia šiek tiek triukšmo, tai yra „nRF24L01“ modulio nešlio dažnio keliamas triukšmas. Jį galima sumažinti naudojant gerą garso jutiklį ar mikrofono modulį. Jei turite klausimų apie šį projektą, galite juos palikti komentarų skiltyje žemiau. Taip pat galite naudoti mūsų forumus, kad greitai gautumėte atsakymus į kitas technines užklausas.