- Walkie Talkie ved hjelp av nRF24L01 RF-modul
- Komponent påkrevd for Arduino-basert Walkie Talkie
- Arduino Walkie Talkie-kretsdiagram
- Walkie Talkie Arduino-kode
Vi lever i en tid med 5G- og 5G-aktiverte enheter; Imidlertid er gamle teknologier som walkie-talkie-systemet og RF-kommunikasjonssystemet fremdeles avgjørende i scenarier der det kreves en ekstern, kort avstand, billig og billig kommunikasjon. For eksempel, hvis du har et byggefirma eller et tungt bærende byggefirma, må arbeidstakerne dine kommunisere med hverandre for å koordinere arbeidet. Ved hjelp av en walkie-talkie kan de kommunisere med hverandre og spre kort massasje eller instruksjoner ved å bare trykke på “PTT” -knappen for å overføre stemmen til andre arbeidere, slik at de kan lytte og følge instruksjonene. En annen applikasjon kan være i de smarte hjelmenefor å kommunisere mellom en rytterpakke under en lang kjøretur, kan den foreslåtte modellen her kommunisere mellom seks personer om gangen. Hvis du vil sjekke ut andre typer trådløse lydoverføringsprosjekter med kort rekkevidde, kan du gå til det IR-baserte trådløse lydsenderen og Li-Fi lydsendingsprosjektet ved hjelp av koblingene.
Walkie Talkie ved hjelp av nRF24L01 RF-modul
Hovedkomponenten i dette prosjektet er NRF24L01 RF-modulen og Arduino Uno som er hjernen eller prosessoren. Vi har allerede lært hvordan vi kan grensesnitt Nrf24L01 med Arduino ved å kontrollere en servomotor eksternt. For dette prosjektet velges NRF24L01 RF-modulen fordi den har flere fordeler fremfor et digitalt kommunikasjonsmedium. Den har 2,4 GHz meget høyfrekvent ISM-bånd og datahastigheten kan være 250 kbps, 1 Mbps, 2 Mbps. Den har 125 mulige kanaler mellom 1 MHz avstand, slik at modulen kan bruke 125 forskjellige kanaler, noe som gjør det mulig å ha et nettverk med 125 uavhengig fungerende modemer på ett sted.
Viktigst er det at NRF24L01-signaler ikke overlapper eller krysser grensesnittet med andre walkie-talkie-systemer som politiets walkie-talkie og jernbane walkie-talkie, og det forstyrrer ikke andre walkie-talkies. En enkelt nrf24l01-modul kan kommunisere med de andre 6 nrf24l01-modulene på et tidspunkt når de er i mottakertilstand. Det er også en modul med lavt strømforbruk som er en ekstra fordel. Det er to typer NRF24L01-moduler som er allment tilgjengelige og ofte brukt, en er NRF24L01 + og en annen er NRF24L01 + PA + LNA (vist nedenfor) med innebygd antenne.
Den nRF24L01 + har en innebygd antenne, og bare et 100 meter rekkevidde. Det er bare bra for innendørs bruk og er ikke egnet for utendørs kommunikasjon over lang avstand. Dessuten, hvis det er en vegg mellom sender og mottaker, er signaloverføringen veldig dårlig. Den nRF24L01 + PA + LNA med en ekstern antenne har en PA som øker kraften av signalet før overføringen. LNA står for Low Noise Amplifier. Det er klart, filtrerer ut støyen og øker det ekstremt svake og usikre lave nivået av signalet som mottas fra antennen. Det hjelper til med å lage nyttige nivåer av signal, og den har 2dB ekstern antenne som den kan overføre 1000 meters dekning på luftområdet , så det er perfekt for våre utendørs walkie-talkie kommunikasjonsprosjekter.
Komponent påkrevd for Arduino-basert Walkie Talkie
- NRF24L01 + PA + LNA med ekstern 2DB-antenne (2 stk)
- Arduino UNO eller hvilken som helst versjon av Arduino
- Audioforsterker (2 stk)
- Mikrofonkrets: Du kan lage det selv (diskutert senere) eller kjøpe en lydsensormodul.
- DC til DC step-up boostermodul (2 stk)
- 3.3V AMS1117 spenningsreguleringsmodul
- Strømindikator LED (2 stk)
- Motstand på 470 ohm (2 stk)
- En 4-tommers høyttaler (2 stk)
- trykknapp (for PTT-knapp)
- 104 PF for å lage PTT-knapp (2 stk)
- 100 NF kondensator for NRF24L01 (2 stk)
- 1k motstand for PTT-knapp (2 stk)
- 2 sett med li-ion batteri
- Li-ion batterilading og batteribeskyttelsesmodul (2 stk)
- Noe hoppetråd, mannlig topptekst, prikket vero bord
Arduino Walkie Talkie-kretsdiagram
Hele kretsskjemaet for Arduino Walkie Talkie er vist på bildet nedenfor. Kretsskjemaet viser alle tilkoblingene inkludert PTT-knappen, mikrofonkretsen og stereolydutgangen.
Viktig: NRF24L01-modulens spenningsinngangsområde er 1,9v til maksimalt 3,6 volt, og for spennings- og strømstabilitet må du bruke en 100nf kondensator i + VCC og - GND, enda andre pinner i nrf24l01-modulen tåler 5 volt signal nivåer.
Trinn 1: Jeg begynte med å lage hjemmelaget tilpasset PCB og Arduino Atmega328p-kort. Jeg hadde satt IC Atmega328p på programmereren og blinket den og lastet opp koden. Deretter la jeg til 16 MHz krystall på Atmega328p IC på (PB6, PB7) pin 9 og 10. Bildene av min skreddersydde PCB og det monterte kortet med programmert IC er vist nedenfor.
Trinn 2: Jeg koblet til NRF24L01-moduler som vist i kretsskjemaet i følgende rekkefølge. CE til digital pin nummer 7, CSN til pin nummer 8, SCK til digital pin 13, MOSI til digital pin 11, MISO til digital pin 12 og IRQ til digital pin 2.
For strømforsyningen må du først slippe spenningen fra 5 volt til 3,3 v med god strømstabilitet. Du må også sette en 100nF kondensator på VCC og bakken til nrf24l01-modulen. Så jeg brukte AMS1117 som er en 3,3-volts spenningsregulator, modulen reduserer også prosjektstørrelsen og gjør den kompakt.
Hvis du vil lage dette spenningsregulatorbrettet selv, kan du bare kjøpe 3,3-volts regulator IC og kan lage det ved å legge til noen hetter, motstand i inngang og utgang, da det er veldig viktig for RF-modulen din fordi det er en følsom enhet. Eller du kan bruke LM317 regulator for variabel spenning til å bygge en 3,3 V regulert krets som vi gjorde i Breadboard-strømforsyningsprosjektet.
Trinn 3: Du kan kjøpe en lydsensor eller lage en enkel mikrofonkrets som vist i kretsskjemaet. Den består av bare en transistor - 2n3904 NPN-transistor. Bildet nedenfor viser den hjemmelagde mikrofonkretsen bygget på et Vero-kort. Du kan også sjekke denne enkle lydforsterkerkretsen for mer informasjon.
For bedre forståelse har jeg laget en annen fremstilling av hele forbindelsen med komponentverdier som du kan se nedenfor
Trinn 4: For å opprette en forbindelse fra mikrokontrollerens digitale pin nummer 9 og 10 til lydforsterkeren din, har jeg brukt PAM8403 stereolydforsterkeren fordi Arduino-lydutgangen som standard er veldig lav (vanligvis kan du bare høre lyd med bare hodetelefoner, ikke en høyttaler, så vi trenger et forsterkningstrinn). Modulen kan kjøre to bærbare høyttalere enkelt og er tilgjengelig til en veldig lav pris. Den kommer også med en veldig kraftig lydforsterker i en SMD-pakke som krever veldig lite plass. PAM8403 lydforsterkermodulen er vist nedenfor.
Tilkoblingen er veldig enkel, det kreves en 3,7V til 5V strømforsyning for å drive lydforsterkeren. Venstre kanal og høyre kanal lydinngang fra Arduino pin 9 og 10 sammen med jordpinnen skal gis som inngang for denne forsterkermodulen som vist i kretsskjemaet. I mitt tilfelle har jeg brukt en enkelt 4 tommer 8 ohm høyttaler og bare brukt høyre kanalutgang. Hvis du vil, kan du bruke to høyttalere med denne modulen.
Trinn 5: Deretter bygde jeg PTT-bryteren ved hjelp av en enkel trykknapp. Jeg la til en 104PF eller 0.1uf kondensator for å forhindre at brytere spretter eller uregelmessige signaler når bryteren trykkes. Pin 4 er nå direkte koblet til Arduino Digital pin D3 ettersom en avbrutt pin er tilordnet kodingen.
NRF24L01 + PA + LNA når du sender et lydsignal eller DATA-pakker, bruker mer strøm og bruker mer strøm. Når du plutselig trykker på PTT-knappen, øker strømforbruket. For å håndtere denne plutselig økte belastningen, må du bruke en 100nF kondensator på + vcc og Ground for overføringsstabiliteten til NRF24L01 + PA + LNA-modulen.
Når bryteren trykkes, mottar Arduino-kortet en Arduino Interrupt på pinnen D3. I programmet vil vi erklære at den digitale pin 3 av Arduino hele tiden sjekker inngangsspenningen. Hvis inngangsspenningen er lav, holder den walkie-talkien i mottakermodus, og hvis den digitale pin nummer 3 er høy, bytter den walkie-talkien til sendemodus for å sende talesignal plukket opp av mikrofonprosessen gjennom mikrocontroller og overføre NRF24L01 + PA + LNA med ekstern antenne.
Trinn 6: For strømforsyningen har jeg valgt dette Li-ion-batteriet. For å drive alle komponentene som Arduino IC Atmega328p, NRF24L01 + PA + LNA, lydforsterker, PTT-knapp og mikrofonkrets, brukte jeg 2 sett Li-ion-batteri for dette prosjektet som vist nedenfor.
En god celle har et spenningsnivå fra 3,8 til 4,2 volt, og ladespenningen er bare 4 til 4,2 volt. For å vite mer om litiumbatterier, kan du sjekke den koblede artikkelen. Disse batteriene brukes veldig populært i bærbare elektroniske enheter og elektriske kjøretøyer. Men Li-ion-battericeller er ikke like robuste som andre batterier, de trenger beskyttelse mot å bli overladet og utladet for raskt, noe som betyr at ladnings- / utladningsstrømmen og spenningen bør holdes innenfor sikre grenser. Derfor brukte jeg mest propell Li-ion batteriladingsmodul - TP4056. Vi har tidligere brukt denne modulen for å bygge en bærbar kraftbank, du kan sjekke ut det for mer informasjon om dette brettet.
Trinn 7: Jeg har brukt en 2 Amp likestrøm til likestrøm forsterker booster- modul fordi Arduino atmega328p, lydforsterker, mikrofonkrets, PTT-knapp alt trenger 5 volt, men batteriet mitt kan bare levere 3,7V til 4,2V, så jeg trenger en boost-omformer for å nå 5V med mer enn 1 ampere med stabil effekt.
Etter at du har bygget kretsen, kan du montere den i et lite kabinett. Jeg brukte en plastboks og plasserte kretsene mine som vist på bildet nedenfor
Walkie Talkie Arduino-kode
Hele programmet for din Arduino walkie talkie finner du nederst på denne siden. I denne delen, la oss diskutere hvordan programmet fungerer. Før du kommer dit, må du inkludere noen biblioteker som er oppført nedenfor.
- nRF24 Bibliotek
- nRF24 lydbibliotek
- Maniaxbug RF24-bibliotek
Begynn programmeringen med å inkludere overskriftene for radio- og lydbibliotek som vist nedenfor
#inkludere
Initialiser RF-radioen på pinne 7 og 8 og sett lydradionummeret til 0. Initialiser også ppt-knappen på pinne 3.
RF24 radio (7,8); // Sett opp radioen ved hjelp av pinnene 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Sett opp lyden ved hjelp av radioen, og sett til radionummer 0 int talkButton = 3;
Inne i installasjonsfunksjonen, begynn seriell skjerm ved 115200 baudrate for feilsøking. Initialiser deretter ppt-knappen, koble til pinne 3 som en avbruddspinne.
ugyldig oppsett () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // stiller avbrytelse for å sjekke om knapp snakkes abutton trykk attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // angir standardtilstanden for hver modul som skal motta rfAudio.receive (); }
Deretter har vi en funksjon som heter talk () som kalles som svar på avbrudd. Programmet kontrollerer tilstanden til knappen hvis knappen trykkes og holdes inne, og går inn i sendemodus for å sende lyden. Hvis knappen slippes, går den i mottaksmodus.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); annet rfAudio.receive (); } ugyldig sløyfe () {}
Fullstendig arbeid med dette prosjektet finner du i videoen som er lenket nedenfor. Walkie Talkie produserer litt støy under drift, dette er støy fra bærefrekvensen til nRF24L01-modulen. Det kan reduseres ved å bruke en god lydsensor eller mikrofonmodul. Hvis du har spørsmål om dette prosjektet, kan du legge dem igjen i kommentarfeltet nedenfor. Du kan også bruke forumene våre for å få raske svar på andre tekniske spørsmål.