- Walkie Talkie med nRF24L01 RF-modul
- Komponent krävs för Arduino-baserad Walkie Talkie
- Arduino Walkie Talkie Circuit Diagram
- Walkie Talkie Arduino-kod
Vi lever i en tid med 5G- och 5G-aktiverade enheter; gamla tekniker som walkie-talkiesystemet och RF-kommunikationssystemet är dock fortfarande avgörande i scenarier där fjärrkommunikation, kortdistans, billig och låg kostnadskommunikation krävs. Till exempel, om du har ett byggföretag eller ett tungt bärande byggföretag, måste dina arbetare kommunicera med varandra för samordnat arbete. Med hjälp av en walkie-talkie kan de kommunicera med varandra och sprida kort massage eller instruktioner genom att bara trycka på "PTT" -knappen för att överföra röst till andra arbetare, så att de kan lyssna och följa instruktionerna. En annan applikation kan vara i de smarta hjälmarnaför att kommunicera mellan ett förarpaket under en lång bilresa kan den föreslagna modellen här kommunicera mellan sex personer åt gången. Om du vill kolla in andra typer av kortdistansprojekt för trådlös ljudöverföring, besök IR-baserad trådlös ljudsändare och Li-Fi ljudsändarprojekt med länkarna.
Walkie Talkie med nRF24L01 RF-modul
Huvudkomponenten i detta projekt är RF-modulen NRF24L01 och Arduino Uno som är hjärnan eller processorn. Vi har redan lärt oss hur man gränssnitt Nrf24L01 med Arduino genom att fjärrstyra en servomotor. För detta projekt väljs NRF24L01 RF-modulen eftersom den har flera fördelar jämfört med ett digitalt kommunikationsmedium. Den har 2,4 GHz mycket högfrekvent ISM-band och datahastigheten kan vara 250 kbps, 1 Mbps, 2 Mbps. Den har 125 möjliga kanaler mellan 1 MHz avstånd så att modulen kan använda 125 olika kanaler vilket gör det möjligt att ha ett nätverk av 125 oberoende fungerande modem på ett ställe.
Viktigast är att NRF24L01-signaler inte överlappar eller korsar gränssnitt med andra walkie-talkie-system som polis walkie-talkie och järnväg walkie-talkie och det stör inte andra walkie-talkies. En enda nrf24l01-modul kan kommunicera med de andra 6 nrf24l01-modulerna i taget när de är i mottagningstillstånd. Det är också en låg strömförbrukningsmodul som är en extra fördel. Det finns två typer av NRF24L01-moduler som är allmänt tillgängliga och vanligt förekommande, en är NRF24L01 + och en annan är NRF24L01 + PA + LNA (visas nedan) med inbyggd antenn.
Den nRF24L01 + har en fordonsbaserad antenn och endast en 100 meters räckvidd. Den är endast bra för inomhusbruk och är inte lämplig för kommunikation utomhus med långa avstånd. Dessutom, om det finns en vägg mellan sändare och mottagare, är signalöverföringen mycket dålig. Den nRF24L01 + PA + LNA med extern antenn har en PA som ökar kraften av signalen före sändning. LNA står för Low Noise Amplifier. Det är tydligt, filtrerar bort bruset och ökar den extremt svaga och osäkra låga nivån på signalen som tas emot från antennen. Det hjälper till att skapa användbara nivåer av signal och den har 2dB extern antenn genom vilken den kan sända 1000 meters täckning i luften, så det är perfekt för våra kommunikationsprojekt för walkie-talkie utomhus.
Komponent krävs för Arduino-baserad Walkie Talkie
- NRF24L01 + PA + LNA med extern 2DB-antenn (2 st)
- Arduino UNO eller någon version av Arduino
- Ljudförstärkare (2st)
- Mikrofonkrets: Du kan göra det själv (diskuteras senare) eller köpa en ljudsensormodul.
- DC till DC step-up boostermodul (2st)
- 3,3 V AMS1117 spänningsregulatormodul
- Strömindikator LED (2st)
- Motstånd 470 ohm (2st)
- En 4-tums högtalare (2st)
- tryckknapp (för PTT-knapp)
- 104 PF för tillverkning av PTT-knapp (2st)
- 100 NF kondensator för NRF24L01 (2st)
- 1k motstånd för PTT-knapp (2st)
- 2 uppsättningar litiumjonbatteri
- Li-ion batteriladdning och batteriskyddsmodul (2st)
- Några bygeln, manlig toppstift, prickad vero-tavla
Arduino Walkie Talkie Circuit Diagram
Det fullständiga kretsschemat för Arduino Walkie Talkie visas i bilden nedan. Kretsschemat visar alla anslutningar inklusive PTT-knappen, mikrofonkretsen och stereoljudutgången.
Viktigt: NRF24L01-modulens spänningsingång är 1,9v till maximalt 3,6 volt och för spännings- och strömstabilitet måste du använda en 100nf kondensator i + VCC och - GND, men andra stift på nrf24l01-modulen tål 5-volts signal nivåer.
Steg 1: Jag började med att göra hemlagad anpassad PCB och Arduino Atmega328p-kort. Jag hade lagt IC Atmega328p på programmeraren och blinkat den och sedan laddat upp koden. Sedan lade jag till 16 MHz kristall på Atmega328p IC på (PB6, PB7) stift 9 och 10. Bilderna på min skräddarsydda PCB och det monterade kortet med programmerad IC visas nedan.
Steg 2: Jag anslöt NRF24L01-moduler som visas i kretsschemat i följande ordning. CE till digital stift nummer 7, CSN till stift nummer 8, SCK till digital stift 13, MOSI till digital stift 11, MISO till digital stift 12 och IRQ till digital stift 2.
För strömförsörjningen måste du först släppa spänningen från 5 volt till 3,3 V med god strömstabilitet. Du måste också sätta en 100nF kondensator på VCC och jord på nrf24l01-modulen. Så jag använde AMS1117 som är en 3,3-volt spänningsregulator, modulen minskar också din projektstorlek och gör den kompakt.
Om du vill göra detta spänningsregulatorkort själv kan du bara köpa 3,3-volts regulator IC och kan göra det genom att lägga till några lock, motstånd i in- och utgång eftersom det är mycket viktigt för din RF-modul eftersom det är en känslig enhet. Eller så kan du använda den variabla spänningsregulatorn LM317 för att bygga en 3,3 V-reglerad krets som vi gjorde i Breadboard-strömförsörjningsprojektet.
Steg 3: Du kan köpa en ljudsensor eller skapa en enkel mikrofonkrets som visas i kretsschemat. Den består av endast en transistor - 2n3904 NPN-transistor. Bilden nedan visar den hemlagade mikrofonkretsen byggd på ett Vero-kort. Du kan också kontrollera denna enkla ljudförstärkarkrets för mer information.
För bättre förståelse har jag gjort en annan representation av hela anslutningen till komponentvärden som du kan se nedan
Steg 4: För att skapa en anslutning från din mikrokontroller digitala stift nummer 9 och 10 till din ljudförstärkare har jag använt PAM8403 stereoljudförstärkaren eftersom Arduino-ljudutgången som standard är mycket låg (vanligtvis hör du bara ljud med bara hörlurar, inte en högtalare, så vi behöver ett förstärkningssteg). Modulen kan enkelt styra två bärbara högtalare och finns till en mycket låg kostnad. Den levereras också med en mycket kraftfull ljudförstärkare i ett SMD-paket som kräver mycket lite utrymme. PAM8403-ljudförstärkarmodulen visas nedan.
Anslutningen är mycket enkel, en 3,7V till 5V strömförsörjning krävs för att driva ljudförstärkaren. Ljudingången till vänster och höger kanal från Arduino-stift 9 och 10 tillsammans med jordstiftet ska ges som ingång för denna förstärkarmodul som visas i kretsschemat. I mitt fall har jag använt en enda 4-tums 8 ohm högtalare och endast använt höger kanalutgång. Om du vill kan du använda två högtalare med den här modulen.
Steg 5: Därefter byggde jag PTT-omkopplaren med en enkel tryckknapp. Jag lade till en kondensator på 104PF eller 0.1uf för att förhindra strömbrytare eller oregelbundna signaler när strömbrytaren trycks in. Stift 4 är nu direkt anslutet till Arduino Digital-stift D3 eftersom en avbruten stift tilldelas kodningen.
NRF24L01 + PA + LNA när den sänder en ljudsignal eller DATA-paket förbrukar mer ström, därför förbrukar den mer ström. När du plötsligt trycker på PTT-knappen ökar strömförbrukningen. För att hantera denna plötsligt ökade belastning måste du använda en 100nF kondensator på + vcc och Ground för överföringsstabiliteten för NRF24L01 + PA + LNA-modulen.
När du trycker på omkopplaren får Arduino-kortet ett Arduino-avbrott på sin stift D3. I programmet kommer vi att förklara den digitala stift 3 av Arduino ständigt kontrollera dess ingångsspänning. Om ingångsspänningen är låg håller den walkie-talkien i mottagningsläge och om den digitala stiftet nummer 3 är högt växlar det walkie-talkien till sändningsläge för att skicka röstsignal som plockas upp av mikrofonprocessen via mikroprocessorn och sänds NRF24L01 + PA + LNA med extern antenn.
Steg 6: För strömförsörjningen har jag valt detta Li-ion-batteri. För att driva, alla komponenter som Arduino IC Atmega328p, NRF24L01 + PA + LNA, ljudförstärkare, PTT-knapp och mikrofonkrets, använde jag 2 uppsättningar Li-ion-batteri för detta projekt som visas nedan.
En bra cell har en spänningsnivå 3,8 till 4,2 volt och laddningsspänningen är endast 4 till 4,2 volt. Om du vill veta mer om litiumbatterier kan du läsa den länkade artikeln. Dessa batterier används mycket populärt i bärbara elektroniska enheter och elektriska fordon. Men Li-ion-battericeller är inte lika robusta som andra batterier, de behöver skydd mot överladdning och urladdning för snabbt, vilket innebär att laddnings- / urladdningsströmmen och spänningen bör hållas inom säkra gränser. Därför använde jag den mest propellära Li-ion-batteriladdningsmodulen - TP4056. Vi har tidigare använt den här modulen för att bygga en bärbar kraftbank, du kan kolla in den för mer information om detta kort.
Steg 7: Jag har använt en 2 Amp dc för att dc step up booster- modul eftersom Arduino atmega328p, Ljudförstärkare, mikrofonkrets, PTT-knapp allt behöver 5 volt men mitt batteri kan bara leverera 3,7V till 4,2V, så jag behöver en boost-omvandlare för att nå 5V med mer än 1 Amp stabil uteffekt.
När du har byggt kretsen kan du montera den i ett litet hölje. Jag använde en plastlåda och placerade mina kretsar enligt bilden nedan
Walkie Talkie Arduino-kod
Det kompletta programmet för din Arduino walkie talkie finns längst ner på denna sida. I det här avsnittet ska vi diskutera hur programmet fungerar. Innan du kommer dit måste du inkludera några bibliotek som listas nedan.
- nRF24-bibliotek
- nRF24 Ljudbibliotek
- Maniaxbug RF24-bibliotek
Börja programmeringen med att inkludera rubrikerna för radio- och ljudbibliotek enligt nedan
#omfatta
Initiera RF-radio på stift 7 och 8 och ställ in ljudradionumret till 0. Initiera också ppt-knappen på stift 3.
RF24-radio (7,8); // Ställ in radio med stift 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Ställ in ljudet med radion och ställ in på radionummer 0 int talkButton = 3;
Inuti installationsfunktionen, börja seriell bildskärm vid 115200 baudrate för felsökning. Initiera sedan ppt-knappen för att ansluta till stift 3 som en avbrottsstift.
ogiltig installation () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // ställer in avbrott för att kontrollera om knappen pratar abutton tryck på attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // ställer in standardläget för varje modul att ta emot rfAudio.receive (); }
Därefter har vi en funktion som heter talk () som kallas som svar på avbrott. Programmet kontrollerar knappens tillstånd om knappen hålls intryckt och går in i sändningsläge för att skicka ljudet. Om knappen släpps går den över i mottagningsläge.
ogiltigt samtal () {if (digitalRead (talkButton)) rfAudio.transmit (); annars rfAudio.receive (); } ogiltig slinga () {}
Det fullständiga arbetet med detta projekt finns i videon som länkas nedan. Walkie Talkie producerar lite brus under drift, detta är bruset från bärfrekvensen på nRF24L01-modulen. Det kan minskas med en bra ljudsensor eller mikrofonmodul. Om du har några frågor om detta projekt kan du lämna dem i kommentarsektionen nedan. Du kan också använda våra forum för att få snabba svar på dina andra tekniska frågor.