- Walkie Talkie az nRF24L01 RF modul használatával
- Komponens szükséges az Arduino-alapú Walkie Talkie-hoz
- Arduino Walkie Talkie áramkör diagram
- Walkie Talkie Arduino kód
Az 5G és 5G-kompatibilis eszközök korszakát éljük; azonban a régi technológiák, mint a rádió-adó rendszer és az RF kommunikációs rendszer, továbbra is elsődlegesek azokban az esetekben, amikor távoli, rövid távolságú, olcsó és olcsó kommunikációra van szükség. Például, ha van épülete vagy nagy teherbírású építőipari vállalata, akkor munkatársainak kommunikálniuk kell egymással a koordinált munkavégzés érdekében. A rádió segítségével kommunikálhatnak egymással, és rövid masszázsokat vagy utasításokat terjeszthetnek a „PTT” gomb megnyomásával, hogy továbbítsák a hangot a többi munkavállaló számára, hogy hallgassák és betartsák az utasításokat. Egy másik alkalmazás lehet az intelligens sisakokbanhogy hosszú autóút alatt kommunikáljon egy csoport lovas között, az itt javasolt modell egyszerre hat ember között kommunikálhat. Ha más típusú rövid hatótávolságú vezeték nélküli hangátviteli projekteket szeretne megnézni, keresse fel az IR alapú vezeték nélküli audio adó és a Li-Fi audio adó projekteket a hivatkozások segítségével.
Walkie Talkie az nRF24L01 RF modul használatával
A projekt fő eleme az NRF24L01 RF modul és az Arduino Uno, amely az agy vagy a processzor. Már megtanultuk, hogyan kell az Nrf24L01-et összekapcsolni az Arduino-val egy szervomotor távvezérlésével. Ehhez a projekthez az NRF24L01 RF modult választották, mivel annak számos előnye van a digitális kommunikációs közeggel szemben. Ez 2,4 GHz-es nagyon nagy frekvenciás ISM sávban, és az adatátviteli sebesség is 250kbps, 1Mbps, 2 Mbps. 125 lehetséges csatorna van az 1Mhz közötti távolságban, így a modul 125 különböző csatornát használhat, ami lehetővé teszi, hogy egy helyen 125 függetlenül működő modemből álljon egy hálózat.
Ami a legfontosabb, hogy az NRF24L01 jelek nem fedik át és keresztezik az interfészt más walkie-talkie rendszerekkel, mint a rendőrségi walkie-talkie és a vasúti walkie-talkie, és nem zavarja a többi walkie-talkie-t. Egyetlen nrf24l01 modul képes kommunikálni a többi 6 nrf24l01 modullal, amikor a fogadó állapotban vannak. Ez egy alacsony energiafogyasztású modul, amely további előnyt jelent. Kétféle NRF24L01 modul létezik, amelyek széles körben elérhetőek és általánosan használtak, az egyik az NRF24L01 +, a másik pedig az NRF24L01 + PA + LNA (az alábbiakban látható) beépített antennával.
Az NRF24L01 + fedélzeti antennával rendelkezik, és csak 100 méteres hatótávolsággal rendelkezik. Csak beltéri használatra jó, kültéri távolsági kommunikációra nem alkalmas. Sőt, ha az adó és a vevő között van egy fal, akkor a jelátvitel nagyon gyenge. Az NRF24L01 + PA + LNA külső antennával rendelkezik PA-val, amely növeli a jel teljesítményét az átvitel előtt. Az LNA az alacsony zajszintű erősítőt jelenti. Világos, kiszűri a zajt, és fokozza az antennától kapott jel rendkívül gyenge és bizonytalan alacsony szintjét. Segít a hasznos jelszint kialakításában, és 2dB külső antennával rendelkezik, amelyen keresztül 1000 méteres levegőtartományt képes továbbítani, így tökéletes kültéri walkie-talkie kommunikációs projektjeinkhez.
Komponens szükséges az Arduino-alapú Walkie Talkie-hoz
- NRF24L01 + PA + LNA külső 2DB antennával (2 db)
- Arduino UNO vagy az Arduino bármely verziója
- Hangerősítő (2db)
- Mikrofon áramkör: Ön is elkészítheti (később tárgyaljuk), vagy vásárolhat hangérzékelő modult.
- DC-DC fokozó erősítő modul (2db)
- 3,3 V-os AMS1117 feszültségszabályozó modul
- Teljesítményjelző LED (2db)
- 470 ohm ellenállás (2db)
- 4 hüvelykes hangszóró (2db)
- nyomógomb (PTT gombhoz)
- 104 PF PTT gomb készítéséhez (2db)
- 100 NF kondenzátor NRF24L01-hez (2db)
- 1k ellenállás a PTT gombhoz (2db)
- 2 készlet li-ion akkumulátor
- Li-ion akkumulátor töltő és akkumulátor védő modul (2db)
- Néhány jumper huzal, férfi fejléc csap, pontozott vero tábla
Arduino Walkie Talkie áramkör diagram
Az Arduino Walkie Talkie teljes kapcsolási rajza az alábbi képen látható. A kapcsolási rajz az összes csatlakozást mutatja, beleértve a PTT gombot, a mikrofon áramkört és a sztereó audio kimenetet.
Fontos: Az NRF24L01 modul feszültség bemeneti tartománya 1,9 V és legfeljebb 3,6 V között van, a feszültség és az áramerősség stabilizálásához pedig 100 nf kondenzátort kell használnia a + VCC és - GND egységekbe, az nrf24l01 modul más csapjai azonban elviselnek 5 V jelet szintek.
1. lépés: Elkezdtem házi készítésű egyedi PCB és Arduino Atmega328p tábla készítését. Felhelyeztem az Atmega328p IC-t a programozóra és felvillantottam, majd feltöltöttem a kódot. Ezután hozzáadtam 16 MHz-es kristályt az Atmega328p IC-n a (PB6, PB7) 9. és 10. érintkezőhöz. Az alábbiakban bemutatom az egyedi gyártmányú NYÁK-m és az összeszerelt táblám képeit.
2. lépés: Az NRF24L01 modulokat a kapcsolási rajz szerint a következő sorrendben csatlakoztattam. CE a 7., a CSN a 8., az SCK a 13., MOSI, a 11., MISO, a 12. és az IRQ a 2. digitális érintkezőhöz.
A tápellátáshoz először 5 V-ról 3,3 V-ra kell csökkentenie a feszültséget, jó áramstabilitás mellett. Ezenkívül egy 100nF kondenzátort kell elhelyezni az nrf24l01 modul VCC-jére és földjére. Tehát az AMS1117-et használtam, amely egy 3,3 voltos feszültségszabályozó, a modul csökkenti a projekt méretét és kompaktvá teszi.
Ha magának szeretné elkészíteni ezt a feszültségszabályozótáblát, akkor csak 3,3 voltos szabályozó IC-t vásárolhat, és néhány sapka, ellenállás be- és kimenet hozzáadásával készítheti el, mivel ez nagyon fontos az Ön RF modulja számára, mert ez egy érzékeny eszköz. Vagy használhatja az LM317 változó feszültségű szabályozót egy 3,3 V-os szabályozott áramkör felépítéséhez, ahogyan azt a Breadboard tápellátási projektjében tettük.
3. lépés: Vásárolhat hangérzékelőt, vagy elkészíthet egy egyszerű mikrofon áramkört a kapcsolási rajz szerint. Csak egy tranzisztorból áll - 2n3904 NPN tranzisztor. Az alábbi kép a Vero táblára épített házi mikrofon áramkört mutatja. Ezt az egyszerű audio előerősítő áramkört további információkért is ellenőrizheti.
A jobb megértés érdekében egy másik ábrázolást készítettem a komponensértékekkel való teljes kapcsolatról, amint az alább látható
4. lépés: Ahhoz, hogy kapcsolatot létesítsek a mikrovezérlő 9-es és 10-es digitális PIN- kódjával az audió erősítővel, a PAM8403 sztereó hangerősítőt használtam, mert alapértelmezés szerint az Arduino hangkimenet nagyon alacsony (általában csak fejhallgatóval hallhat hangot), nem hangszóró, ezért szükségünk van egy erősítési fokozatra). A modul két laptop hangszórót képes könnyen meghajtani, és nagyon alacsony költséggel elérhető. Ezenkívül nagyon erős hangerősítőt kap egy SMD csomagban, amely nagyon kevés helyet igényel. A PAM8403 hangerősítő modul az alábbiakban látható.
AA csatlakoztatás nagyon egyszerű, az audio erősítő táplálásához 3,7–5 V tápegységre van szükség. Az Arduino 9. és 10. érintkező bal és jobb csatornás audiobemenetét a földdugóval együtt kell megadni ennek az erősítőmodulnak a kapcsolási rajzon látható bemeneteként. Esetemben egyetlen 4 hüvelykes, 8 ohmos hangszórót használtam, és csak a jobb csatornás kimenetet használtam. Ha szeretné, két hangszórót használhat ezzel a modullal.
5. lépés: Ezután egy egyszerű nyomógomb segítségével megépítettem a PTT kapcsolót. Hozzáadtam egy 104PF vagy 0.1uf kondenzátort, hogy megakadályozzuk a kapcsoló pattogását vagy a hibás jeleket a kapcsoló megnyomásakor. A 4. érintkező most már közvetlenül kapcsolódik az Arduino Digital D3 tűhöz, mivel a kódoláshoz megszakított csap van rendelve.
Az NRF24L01 + PA + LNA audiojel vagy DATA csomagok továbbításakor több energiát fogyaszt, így több áramot fogyaszt. Ha hirtelen megnyomja a PTT gombot, az energiafogyasztás nő. Ennek a hirtelen megnövekedett terhelésnek a kezeléséhez 100nF kondenzátort kell használnia a + vcc és a Ground kapcsolókon az NRF24L01 + PA + LNA modul átviteli stabilitásához.
A kapcsoló megnyomásakor az Arduino kártya egy Arduino megszakítást kap a D3 csapon. A programban kijelentjük, hogy az Arduino 3-as digitális érintkezője folyamatosan ellenőrzi a bemeneti feszültségét. Ha a bemeneti feszültség alacsony, akkor a rádiót vételi üzemmódban tartja, és ha a 3-as digitális pin magas, akkor a rádiót átviteli üzemmódba kapcsolja, hogy a mikrofon által felvett hangjelet mikrokontrolleren keresztül küldje és továbbítsa NRF24L01 + PA + LNA külső antennával.
6. lépés: Az áramellátáshoz ezt a Li-ion akkumulátort választottam. A tápellátáshoz az összes komponens, például az Arduino IC Atmega328p, az NRF24L01 + PA + LNA, az erősítő, a PTT gomb és a mikrofon áramkör, 2 készlet Li-ion akkumulátort használtam ehhez a projekthez, az alábbiak szerint.
Egy jó cella feszültségszintje 3,8–4,2 volt, a töltőfeszültség pedig csak 4–4,2 volt. Ha többet szeretne tudni a lítium akkumulátorokról, nézze meg a linkelt cikket. Ezeket az akkumulátorokat nagyon népszerű módon használják hordozható elektronikus eszközökben és elektromos járművekben. De a Li-ion akkumulátorcellák nem olyan robusztusak, mint a többi elem, védelmet igényelnek a túl gyors és túl gyors lemerüléstől, vagyis a töltő / kisütő áramot és feszültséget biztonságos határok között kell tartani. Ezért a legtöbb propeller Li-ion akkumulátor töltő modult használtam - a TP4056-ot. Korábban már használtuk ezt a modult egy hordozható árambank felépítéséhez, ezt a táblán további részletekért ellenőrizheti.
7. lépés: 2 Amperes egyenáramot használtam az erősítő erősítő moduljához, mert Arduino atmega328p, hangerősítő, mikrofon áramkör, PTT gomb mindenhez 5 voltra van szükség, de az akkumulátorom csak 3,7 V-ról 4,2 V-ra képes, így szükségem van egy erősítő átalakítóra hogy elérje az 5 V-ot több mint 1 Amper stabil kimenettel.
Miután megépítette az áramkört, összeállíthatja egy kis házban. Műanyag dobozt használtam, és az áramköröket az alábbi képen látható módon helyeztem el
Walkie Talkie Arduino kód
Az Arduino walkie talkie teljes programja az oldal alján található. Ebben a részben beszéljük meg a program működését. Mielőtt odaérne, be kell foglalnia néhány könyvtárat, amelyeket az alábbiakban felsorolunk.
- nRF24 könyvtár
- nRF24 hangkönyvtár
- Maniaxbug RF24 könyvtár
Kezdje el a programozást a Rádió és Hangkönyvtár fejlécének beillesztésével az alábbiak szerint
#include
Inicializálja az RF rádiót a 7. és 8. lábon, és állítsa az audiorádió számát 0-ra. Inicializálja a 3. ppt ppt gombját is.
RF24 rádió (7,8); // Állítsa be a rádiót a 7 (CE) 8 (CS) csapok használatával RF24Audio rfAudio (rádió, 0); // Állítsa be a hangot a rádió használatával, és állítsa 0 rádiószámra int talkButton = 3;
A beállítási funkción belül kezdje el a soros monitort 115200 baudráta sebességgel a hibakereséshez. Ezután inicializálja a ppt gomb csatlakozását a 3. érintkezőhöz megszakító tűként.
void setup () {Soros.kezdés (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // megszakítást állít be, hogy ellenőrizze a gombbeszélés gombját, nyomja meg a attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // beállítja az egyes modulok alapértelmezett állapotát az rfAudio.receive () fogadásához; }
Ezután megvan a talk () nevű függvény, amelyet válaszként hívunk megszakításra. A program ellenőrzi a gomb állapotát, ha a gombot megnyomja és lenyomva tartja, az átvitel módba lép az audió küldéséhez. Ha a gombot elengedi, átvételi módba lép.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
A projekt teljes működése megtalálható az alábbi videóban. A Walkie Talkie működés közben némi zajt produkál, ez az nRF24L01 modul vivőfrekvenciájából származó zaj. Jó hangérzékelővel vagy mikrofon modullal csökkenthető. Ha bármilyen kérdése van a projekttel kapcsolatban, hagyja őket az alábbi megjegyzés részben. Fórumunkat arra is felhasználhatja, hogy gyors válaszokat kapjon egyéb technikai kérdéseire.