- Walkie Talkie nRF24L01 RF -moduulin avulla
- Komponentti vaaditaan Arduino-pohjaiseen Walkie Talkie -laitteeseen
- Arduino Walkie Talkie -piirikaavio
- Walkie Talkie Arduino -koodi
Elämme 5G- ja 5G-yhteensopivien laitteiden aikakaudella; Vanhat tekniikat, kuten radiopuhelinjärjestelmä ja radiotaajuinen viestintäjärjestelmä, ovat kuitenkin ensiarvoisen tärkeitä tilanteissa, joissa tarvitaan etäyhteyttä, lyhyttä matkaa, halpaa ja edullista viestintää. Esimerkiksi, jos sinulla on rakennus- tai painava rakennusyritys, työntekijöiden on oltava yhteydessä toisiinsa koordinoitua työtä varten. Radiopuhelimen avulla he voivat kommunikoida keskenään ja levittää lyhyitä hierontoja tai ohjeita painamalla vain "PTT" -painiketta lähettääksesi äänen muille työntekijöille, jotta he voivat kuunnella ja noudattaa ohjeita. Toinen sovellus voi olla älykypärissäEhdotettu malli voi kommunikoida kuuden ihmisen kesken kerrallaan kommunikoidakseen joukon ratsastajia pitkän ajomatkan aikana. Jos haluat tutustua muun tyyppisiin lyhyen kantaman langattomiin äänensiirtoprojekteihin, käy IR-pohjaisessa langattomassa äänilähettimessä ja Li-Fi-audiolähettimessä linkkien avulla.
Walkie Talkie nRF24L01 RF -moduulin avulla
Tämän projektin pääkomponentti on NRF24L01 RF-moduuli ja Arduino Uno, joka on aivot tai prosessori. Olemme jo oppineet Nrf24L01: n liittämisen Arduinoon ohjaamalla servomoottoria etänä. Tätä projektia varten valitaan NRF24L01 RF-moduuli, koska sillä on useita etuja verrattuna digitaaliseen viestintävälineeseen. Siinä on 2,4 GHz: n erittäin korkeataajuinen ISM-kaista ja tiedonsiirtonopeus voi olla 250 kbps, 1 Mbps, 2 Mbps. Siinä on 125 mahdollista kanavaa 1 MHz: n välissä, joten moduuli voi käyttää 125 erilaista kanavaa, mikä mahdollistaa 125 itsenäisesti toimivan modeemin verkoston samassa paikassa.
Tärkeintä on, että NRF24L01-signaalit eivät ole päällekkäisiä tai ristiriidassa muiden radiopuhelinjärjestelmien kanssa, kuten poliisin radiopuhelimen ja rautatiepuhelimen kanssa, eikä se häiritse muita radiopuhelimia. Yksi nrf24l01-moduuli voi kommunikoida muiden 6 nrf24l01 -moduulin kanssa samanaikaisesti, kun ne ovat vastaanottavassa tilassa. Lisäksi se on pieni virrankulutusmoduuli, joka on lisäetu. NRF24L01-moduuleja on kahta tyyppiä, jotka ovat laajalti saatavilla ja joita käytetään yleisesti, yksi on NRF24L01 + ja toinen on NRF24L01 + PA + LNA (esitetty alla) sisäänrakennetulla antennilla.
NRF24L01 + on junan antennin ja vain 100 metrin etäisyydelle. Se on hyvä vain sisäkäyttöön eikä sovellu kaukoliikenteeseen ulkona. Lisäksi, jos lähettimen ja vastaanottimen välissä on seinä, signaalin siirto on erittäin heikkoa. NRF24L01 + PA + LNA ulkoisella antennilla on PA, joka parantaa signaalin teho ennen lähetystä. LNA tarkoittaa matalan melun vahvistinta. Se on selkeä, suodattaa melun ja lisää antennilta vastaanotetun signaalin erittäin heikkoa ja epävarmaa matalaa tasoa. Se auttaa tuottamaan hyödyllisiä signaalitasoja ja sillä on 2dB ulkoinen antenni, jonka kautta se voi lähettää 1000 metriä ilman kantamaa, joten se sopii täydellisesti ulkoisiin radiopuhelinprojekteihimme.
Komponentti vaaditaan Arduino-pohjaiseen Walkie Talkie -laitteeseen
- NRF24L01 + PA + LNA ulkoisella 2DB-antennilla (2 kpl)
- Arduino UNO tai mikä tahansa Arduinon versio
- Äänivahvistin (2kpl)
- Mikrofonipiiri: Voit tehdä sen itse (keskustellaan myöhemmin) tai ostaa äänianturimoduuli.
- DC-DC-tehostinmoduuli (2 kpl)
- 3,3 V: n AMS1117-jännitesäätimen moduuli
- Virran merkkivalo (2kpl)
- 470 ohmin vastus (2kpl)
- 4 tuuman kaiutin (2 kpl)
- painike (PTT-painiketta varten)
- 104 PF PTT-painikkeen tekemiseen (2kpl)
- 100 NF kondensaattori NRF24L01: lle (2kpl)
- 1k vastus PTT-painikkeelle (2kpl)
- 2 sarjaa litiumioniakkuja
- Litiumioniakun lataus ja akun suojausmoduuli (2kpl)
- Jotkut hyppääjälanka, uros otsikkotappi, pisteviiva vero-lauta
Arduino Walkie Talkie -piirikaavio
Arduino Walkie Talkien täydellinen kytkentäkaavio on esitetty alla olevassa kuvassa. Piirikaavio näyttää kaikki liitännät, mukaan lukien PTT-painike, mikrofonipiiri ja stereoäänilähtö.
Tärkeää: NRF24L01-moduulin jännitetulo on 1,9 V - enintään 3,6 volttia, ja jännitteen ja virran vakauden kannalta sinun on käytettävä 100 nf: n kondensaattoria + VCC: n ja - GND: n, mutta muut nrf24l01-moduulin nastat voivat sietää 5 voltin signaalin tasoilla.
Vaihe 1: Aloitin kotitekoisen mukautetun piirilevyn ja Arduino Atmega328p -levyn valmistamisesta. Olin laittanut IC Atmega328p: n ohjelmoijalle ja salama sen ja sitten ladannut koodin. Sitten lisäsin 16 MHz: n kiteen Atmega328p IC: n (PB6, PB7) nastoihin 9 ja 10. Kuvat mukautetusta piirilevystäni ja kootusta piirilevystä, jossa on ohjelmoitu IC, on esitetty alla.
Vaihe 2: Liitin NRF24L01-moduulit piirikaavion mukaisesti seuraavassa järjestyksessä. CE digitaaliseen nastanumeroon 7, CSN nastanumeroon 8, SCK digitaaliseen tapiin 13, MOSI digitaaliseen tapiin 11, MISO digitaaliseen tapiin 12 ja IRQ digitaaliseen tapiin 2.
Virtalähdettä varten sinun on pudotettava jännite ensin 5 voltista 3,3 volttiin hyvällä virran vakaudella. Lisäksi sinun on laitettava 100nF kondensaattori VGA: lle ja nrf24l01-moduulin maahan. Joten käytin AMS1117: tä, joka on 3,3 voltin jännitesäädin, moduuli pienentää myös projektisi kokoa ja tekee siitä pienikokoisen.
Jos haluat tehdä tämän jännitteen säätökortin itse, voit ostaa vain 3,3 voltin säädinpiirin ja tehdä sen lisäämällä joitain korkkeja, vastusta sisääntuloon ja lähtöön, koska se on erittäin tärkeää RF-moduulillesi, koska se on herkkä laite. Tai voit käyttää LM317-vaihtuvajännitesäätäjää 3,3 V: n säännellyn piirin rakentamiseen, kuten teimme leipälautan virtalähdehankkeessa.
Vaihe 3: Voit ostaa äänianturin tai tehdä yksinkertaisen mikrofonipiirin piirikaavion mukaisesti. Se koostuu vain yhdestä transistorista - 2n3904 NPN -transistori. Alla olevassa kuvassa on kotitekoinen mikrofonipiiri, joka on rakennettu Vero-kortille. Voit myös tarkistaa tämän yksinkertaisen äänivahvistinpiirin saadaksesi lisätietoja.
Paremman ymmärtämisen vuoksi olen esittänyt toisen kuvan koko yhteydestä komponenttiarvoihin, kuten alla voit nähdä
Vaihe 4: Yhteyden muodostamiseksi mikrokontrollerin digitaalisesta nastasta numero 9 ja 10 äänivahvistimeen olen käyttänyt PAM8403-stereoäänivahvistinta, koska Arduino-äänilähtö on oletusarvoisesti hyvin heikko (yleensä kuulet äänen vain kuulokkeilla), ei kaiutinta, joten tarvitsemme vahvistusvaiheen). Moduuli voi ajaa helposti kahta kannettavan tietokoneen kaiutinta ja on saatavana erittäin edullisilla hinnoilla. Lisäksi siinä on erittäin tehokas äänivahvistin SMD-paketissa, joka vaatii hyvin vähän tilaa. PAM8403-äänivahvistinmoduuli on esitetty alla.
ALiitäntä on hyvin yksinkertainen, äänivahvistimen virran saamiseksi tarvitaan 3,7 V - 5 V virtalähde. Arduino-nastojen 9 ja 10 vasemman ja oikean kanavan audiotulo yhdessä maadoitustapin kanssa tulisi antaa tälle vahvistinmoduulille tulona piirikaavion mukaisesti. Minun tapauksessani olen käyttänyt yhtä 4 tuuman 8 ohmin kaiutinta ja käyttänyt vain oikean kanavan lähtöä. Halutessasi voit käyttää kahta kaiutinta tämän moduulin kanssa.
Vaihe 5: Seuraavaksi rakennin PTT-kytkimen yksinkertaisella painikkeella. Lisäsin 104PF- tai 0.1uf-kondensaattorin estämään kytkimen pomppimista tai virheellisiä signaaleja kytkintä painettaessa. Tappi 4 on nyt kytketty suoraan Arduino Digital -tappiin D3, koska koodaukselle on osoitettu keskeytetty tappi.
NRF24L01 + PA + LNA lähettää audiosignaalia tai DATA-paketteja enemmän virtaa, joten se kuluttaa enemmän virtaa. Kun painat pikayhteyspainiketta yhtäkkiä, virrankulutus kasvaa. Tämän äkillisesti lisääntyneen kuorman käsittelemiseksi sinun on käytettävä 100 nF: n kondensaattoria + vcc: ssä ja Groundissa NRF24L01 + PA + LNA -moduulin siirtovakauden takaamiseksi.
Kun kytkintä painetaan, Arduino-kortti saa Arduino-keskeytyksen napaansa D3. Ilmoitamme ohjelmassa Arduinon digitaalisen nastan 3 jatkuvasti tarkistavan sen tulojännitettä. Jos syöttöjännite on matala, se pitää radiopuhelimen vastaanottotilassa ja jos digitaalinen nastanumero 3 on korkea, se kytkee radiopuhelimen lähetystilaan mikrofoniprosessin ottaman äänisignaalin lähettämiseksi mikro-ohjaimen kautta ja lähettämiseen NRF24L01 + PA + LNA ulkoisella antennilla.
Vaihe 6: Virtalähteenä olen valinnut tämän litiumioniakun. Virran saamiseksi, kaikki komponentit, kuten Arduino IC Atmega328p, NRF24L01 + PA + LNA, äänivahvistin, PTT-painike ja mikrofonipiiri, käytin tähän projektiin 2 sarjaa litiumioniakkuja alla olevan kuvan mukaisesti.
Hyvän kennon jännitetaso on 3,8–4,2 volttia ja latausjännite on vain 4–4,2 volttia. Jos haluat tietää enemmän litiumparistoista, tarkista linkitetty artikkeli. Näitä akkuja käytetään yleisesti kannettavissa elektronisissa laitteissa ja sähköajoneuvoissa. Li-ion-akkukennot eivät kuitenkaan ole yhtä kestäviä kuin muut paristot, ne tarvitsevat suojaa liian nopeasti ja liian nopeasti purkautumiselta, mikä tarkoittaa, että lataus- / purkausvirta ja -jännite tulisi pitää turvallisissa rajoissa. Siksi käytin eniten potkuria käyttävää litiumioniakun latausmoduulia - TP4056. Olemme aiemmin käyttäneet tätä moduulia kannettavan virtapankin rakentamiseen, voit tarkistaa sen saadaksesi lisätietoja tältä levyltä.
Vaihe 7: Olen käyttänyt 2 ampeerin DC-DC askel ylöspäin booster moduuli koska Arduino atmega328p, Äänenvahvistin, mikrofoni piiri, PTT painike kaiken on 5 voltin mutta minun akku voi toimittaa vain 3.7V ja 4.2V, joten tarvitsemme vauhtia muuntimen saavuttaa 5 V: n jännite yli 1 ampeerin vakaana lähtöteholla.
Kun olet rakentanut piirin, voit koota sen pieneen koteloon. Käytin muovilaatikkoa ja asetin piirini alla olevan kuvan mukaisesti
Walkie Talkie Arduino -koodi
Arduino-radiopuhelimesi täydellinen ohjelma löytyy tämän sivun alaosasta. Tässä osassa keskustellaan ohjelman toiminnasta. Ennen sinne saapumista sinun on sisällytettävä joitain alla lueteltuja kirjastoja.
- nRF24-kirjasto
- nRF24-äänikirjasto
- Maniaxbug RF24 -kirjasto
Aloita ohjelmointi sisällyttämällä radio- ja äänikirjaston otsikot alla olevan kuvan mukaisesti
#sisältää
Alusta RF-radio nastoilla 7 ja 8 ja aseta audioradion numero arvoon 0. Alusta myös nastan 3 ppt-painike.
RF24-radio (7,8); // Aseta radio käyttöön nastoilla 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Määritä ääni radion avulla ja aseta radionumeroksi 0 int talkButton = 3;
Aloita asetustoiminnon sisällä sarjavalvonta 115200 baudinopeudella virheenkorjausta varten. Alusta sitten ppt-painikekytkentä napaan 3 keskeytystapina.
void setup () {Sarja.alku (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // asettaa keskeytyksen tarkistamaan, onko painikkeella painettu painike paina attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // asettaa oletustilan kullekin moduulille vastaanottamaan rfAudio.receive (); }
Seuraavaksi meillä on toiminto nimeltä talk (), jota kutsutaan vastauksena keskeytykseen. Ohjelma tarkistaa painikkeen tilan, jos painiketta painetaan ja pidetään painettuna, se siirtyy lähetystilaan äänen lähettämiseksi. Jos painike vapautetaan, se siirtyy vastaanottotilaan.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
Tämän projektin täydellinen toiminta löytyy alla olevasta videosta. Walkie Talkie tuottaa jonkin verran melua käytön aikana, tämä on nRF24L01-moduulin kantotaajuuden aiheuttama melu. Sitä voidaan vähentää käyttämällä hyvää äänianturia tai mikrofonimoduulia. Jos sinulla on kysyttävää tästä projektista, voit jättää ne alla olevaan kommenttiosioon. Voit myös käyttää foorumeitamme saadaksesi nopeita vastauksia muihin teknisiin kysymyksiisi.