- Walkie Talkie utilizzando il modulo RF nRF24L01
- Componente richiesto per Walkie Talkie basato su Arduino
- Schema del circuito del walkie-talkie di Arduino
- Walkie Talkie Arduino Code
Stiamo vivendo nell'era dei dispositivi abilitati per 5G e 5G; tuttavia, le vecchie tecnologie come il sistema walkie-talkie e il sistema di comunicazione RF sono ancora fondamentali negli scenari in cui è richiesta una comunicazione remota, a breve distanza, economica ea basso costo. Ad esempio, se hai un'impresa edile o un'impresa di costruzioni portanti pesanti, i tuoi lavoratori devono comunicare tra loro per un lavoro coordinato. Con l'aiuto di un walkie-talkie, possono comunicare tra loro e diffondere brevi massaggi o istruzioni premendo semplicemente il pulsante "PTT" per trasmettere la voce agli altri lavoratori, affinché ascoltino e seguano le istruzioni. Un'altra applicazione potrebbe essere nei caschi intelligentiper comunicare tra un gruppo di motociclisti durante un lungo viaggio, il modello suggerito qui può comunicare tra sei persone alla volta. Se desideri verificare altri tipi di progetti di trasmissione audio wireless a corto raggio, visita il progetto Trasmettitore audio wireless basato su IR e Trasmettitore audio Li-Fi utilizzando i collegamenti.
Walkie Talkie utilizzando il modulo RF nRF24L01
Il componente principale di questo progetto è il modulo RF NRF24L01 e Arduino Uno che è il cervello o il processore. Abbiamo già imparato come interfacciare Nrf24L01 con Arduino controllando a distanza un servomotore. Per questo progetto, viene scelto il modulo RF NRF24L01 perché presenta diversi vantaggi rispetto a un mezzo di comunicazione digitale. Ha una banda ISM ad altissima frequenza da 2,4 GHz e la velocità dei dati può essere di 250 kbps, 1 Mbps, 2 Mbps. Dispone di 125 canali possibili tra una spaziatura di 1 Mhz, quindi il modulo può utilizzare 125 canali diversi, il che rende possibile avere una rete di 125 modem funzionanti in modo indipendente in un unico posto.
Soprattutto, i segnali NRF24L01 non si sovrappongono o si interfacciano con altri sistemi walkie-talkie come walkie-talkie della polizia e walkie-talkie ferroviari e non disturba altri walkie-talkie. Un singolo modulo nrf24l01 può comunicare con gli altri 6 moduli nrf24l01 in un momento in cui si trovano nello stato di ricezione. Inoltre, è un modulo a basso consumo energetico che è un ulteriore vantaggio. Esistono due tipi di moduli NRF24L01 ampiamente disponibili e comunemente utilizzati, uno è NRF24L01 + e un altro è NRF24L01 + PA + LNA (mostrato sotto) con antenna incorporata.
Il NRF24L01 + ha un'antenna a bordo e soltanto 100 metri di raggio. È adatto solo per uso interno e non è adatto per comunicazioni esterne a lunga distanza. Inoltre, se è presente un muro tra il trasmettitore e il ricevitore, la trasmissione del segnale è molto scarsa. Il NRF24L01 + PA + LNA con un'antenna esterna ha una PA che potenzia del segnale prima della trasmissione. LNA sta per Low Noise Amplifier. È chiaro, filtra il rumore e aumenta il livello estremamente debole e incerto del segnale ricevuto dall'antenna. Aiuta a creare livelli utili di segnale e dispone di un'antenna esterna da 2dB attraverso la quale può trasmettere 1000 metri di copertura di portata in onda, quindi è perfetto per i nostri progetti di comunicazione walkie-talkie all'aperto.
Componente richiesto per Walkie Talkie basato su Arduino
- NRF24L01 + PA + LNA con antenna 2DB esterna (2 pz)
- Arduino UNO o qualsiasi versione di Arduino
- Amplificatore audio (2 pezzi)
- Circuito del microfono: puoi farlo da solo (discusso in seguito) o acquistare un modulo sensore audio.
- Modulo booster step-up da CC a CC (2 pezzi)
- Modulo regolatore di tensione AMS1117 da 3,3 V
- LED indicatore di alimentazione (2 pezzi)
- Resistenza di 470 ohm (2 pezzi)
- Un altoparlante da 4 pollici (2 pezzi)
- pulsante (per pulsante PTT)
- 104 PF per la realizzazione del pulsante PTT (2 pezzi)
- Condensatore 100 NF per NRF24L01 (2pz)
- Resistenza 1k per pulsante PTT (2 pezzi)
- 2 set di batterie agli ioni di litio
- Modulo di ricarica e protezione della batteria agli ioni di litio (2 pezzi)
- Alcuni ponticelli, pin di intestazione maschio, scheda vero tratteggiata
Schema del circuito del walkie-talkie di Arduino
Lo schema elettrico completo per Arduino Walkie Talkie è mostrato nell'immagine qui sotto. Lo schema del circuito mostra tutte le connessioni incluso il pulsante PTT, il circuito del microfono e l'uscita audio stereo.
Importante: l'intervallo di tensione in ingresso del modulo NRF24L01 va da 1,9 V a un massimo di 3,6 V e per la stabilità di tensione e corrente è necessario utilizzare un condensatore da 100 nf nel + VCC e - GND, ma altri pin del modulo nrf24l01 possono tollerare un segnale a 5 volt livelli.
Passaggio 1: ho iniziato con la creazione di PCB personalizzati fatti in casa e scheda Arduino Atmega328p. Avevo messo l'IC Atmega328p sul programmatore e l'avevo installato e poi caricato il codice. Quindi, ho aggiunto un cristallo da 16 MHz su Atmega328p IC su (PB6, PB7) pin 9 e 10. Le immagini del mio PCB personalizzato e della scheda assemblata con IC programmato sono mostrate sotto.
Passaggio 2: ho collegato i moduli NRF24L01 come mostrato nello schema del circuito nell'ordine seguente. CE al pin digitale numero 7, CSN al pin numero 8, SCK al pin digitale 13, MOSI al pin digitale 11, MISO al pin digitale 12 e IRQ al pin digitale 2.
Per l'alimentazione, è necessario prima abbassare la tensione da 5 volt a 3.3v con una buona stabilità di corrente. Inoltre, devi mettere un condensatore da 100nF sul VCC e la massa del modulo nrf24l01. Quindi, ho usato AMS1117 che è un regolatore di tensione a 3,3 volt, il modulo riduce anche le dimensioni del progetto e lo rende compatto.
Se vuoi realizzare da solo questa scheda del regolatore di tensione, puoi acquistare solo un IC regolatore da 3,3 volt e puoi farlo aggiungendo alcuni cappucci, resistenza in ingresso e uscita poiché è molto importante per il tuo modulo RF perché è un dispositivo sensibile. Oppure puoi utilizzare il regolatore di tensione variabile LM317 per costruire un circuito regolato a 3,3 V come abbiamo fatto nel progetto di alimentazione Breadboard.
Passaggio 3: è possibile acquistare un sensore del suono o creare un semplice circuito del microfono come mostrato nello schema del circuito. Consiste di un solo transistor - 2n3904 NPN transistor. L'immagine sotto mostra il circuito del microfono fatto in casa costruito su una scheda Vero. Puoi anche controllare questo semplice circuito del preamplificatore audio per ulteriori informazioni.
Per una migliore comprensione, ho fatto un'altra rappresentazione dell'intera connessione con i valori dei componenti come puoi vedere di seguito
Passaggio 4: per effettuare una connessione dal pin digitale numero 9 e 10 del microcontrollore all'amplificatore audio, ho utilizzato l' amplificatore audio stereo PAM8403 perché per impostazione predefinita l'uscita audio di Arduino è molto bassa (di solito puoi sentire il suono solo usando solo le cuffie, non un altoparlante, quindi abbiamo bisogno di uno stadio di amplificazione). Il modulo può pilotare facilmente due altoparlanti per laptop ed è disponibile a un costo molto basso. Inoltre, viene fornito con un amplificatore audio molto potente in un pacchetto SMD che richiede pochissimo spazio. Di seguito è mostrato il modulo amplificatore audio PAM8403.
Il collegamento è molto semplice, è necessario un alimentatore da 3,7 V a 5 V per alimentare l'amplificatore audio. L'ingresso audio del canale sinistro e del canale destro dai pin 9 e 10 di Arduino insieme al pin di messa a terra dovrebbero essere forniti come ingresso per questo modulo amplificatore come mostrato nello schema del circuito. Nel mio caso, ho usato un singolo altoparlante da 4 pollici e 8 ohm e ho usato solo l'uscita del canale destro. Se vuoi, puoi usare due altoparlanti con questo modulo.
Passaggio 5: Successivamente, ho costruito l'interruttore PTT utilizzando un semplice pulsante. Ho aggiunto un condensatore 104PF o 0.1uf per evitare il rimbalzo dell'interruttore o segnali irregolari quando l'interruttore viene premuto. Il pin 4 è ora collegato direttamente al pin D3 di Arduino Digital poiché un pin interrotto viene assegnato alla codifica.
NRF24L01 + PA + LNA durante la trasmissione di un segnale audio o di pacchetti DATI consuma più energia, quindi consuma più corrente. Quando si preme improvvisamente il pulsante PTT, il consumo di energia aumenta. Per gestire questo carico improvvisamente aumentato, è necessario utilizzare un condensatore da 100 nF su + vcc e terra per la stabilità di trasmissione del modulo NRF24L01 + PA + LNA.
Quando l'interruttore viene premuto, la scheda Arduino riceve un interrupt Arduino sul suo pin D3. Nel programma dichiareremo il pin digitale 3 di Arduino controllandone costantemente la tensione in ingresso. Se la tensione di ingresso è bassa, mantiene il walkie-talkie in modalità di ricezione e se il pin digitale numero 3 è alto, commuta il walkie-talkie in modalità di trasmissione per inviare il segnale vocale raccolto dal processo del microfono attraverso il microcontrollore e trasmettere NRF24L01 + PA + LNA con un'antenna esterna.
Passaggio 6: per l'alimentazione, ho scelto questa batteria agli ioni di litio. Per alimentare, tutti i componenti come Arduino IC Atmega328p, NRF24L01 + PA + LNA, amplificatore audio, pulsante PTT e circuito microfono, ho usato 2 set di batterie agli ioni di litio per questo progetto come mostrato di seguito.
Una buona cella ha un livello di tensione da 3,8 V a 4,2 V e la tensione di carica è solo da 4 V a 4,2 V. Per saperne di più sulle batterie al litio puoi controllare l'articolo collegato. Queste batterie sono molto comunemente utilizzate nei dispositivi elettronici portatili e nei veicoli elettrici. Ma le celle della batteria agli ioni di litio non sono robuste come le altre batterie, hanno bisogno di protezione dal sovraccarico e dallo scaricamento troppo veloce, il che significa che la corrente e la tensione di carica / scarica devono essere mantenute entro limiti di sicurezza. Pertanto, ho usato il modulo di ricarica della batteria agli ioni di litio più elica - TP4056. Abbiamo già utilizzato questo modulo per costruire un Portable Power Bank, puoi verificarlo per maggiori dettagli su questa scheda.
Passaggio 7: Ho usato un modulo booster da 2 Amp da cc a cc perché Arduino atmega328p, amplificatore audio, circuito del microfono, pulsante PTT tutto ha bisogno di 5 volt ma la mia batteria può fornire solo 3,7 V a 4,2 V, quindi ho bisogno di un convertitore boost per raggiungere 5V con più di 1 Amp di potenza stabile.
Dopo aver costruito il circuito, puoi assemblarlo in un piccolo recinto. Ho usato una scatola di plastica e ho posizionato i miei circuiti come mostrato nell'immagine qui sotto
Walkie Talkie Arduino Code
Il programma completo per il tuo walkie talkie Arduino è disponibile in fondo a questa pagina. In questa sezione, discutiamo di come funziona il programma. Prima di arrivarci, è necessario includere alcune librerie elencate di seguito.
- Libreria nRF24
- nRF24 Audio Library
- Libreria Maniaxbug RF24
Inizia la programmazione includendo le intestazioni Radio e Libreria audio come mostrato di seguito
#includere
Inizializza la radio RF sui pin 7 e 8 e imposta il numero della radio audio su 0. Inoltre, inizializza il pulsante ppt sul pin 3.
Radio RF24 (7,8); // Imposta la radio utilizzando i pin 7 (CE) 8 (CS) RF24Audio rfAudio (radio, 0); // Configura l'audio utilizzando la radio e imposta il numero di radio 0 int talkButton = 3;
All'interno della funzione di configurazione, avviare il monitor seriale a 115200 baudrate per il debug. Quindi inizializza il pulsante ppt connettiti al pin 3 come pin di interruzione.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // imposta l'interrupt per verificare la presenza di pulsanti talk abutton press attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // imposta lo stato predefinito per ogni modulo per ricevere rfAudio.receive (); }
Successivamente, abbiamo una funzione chiamata talk () che viene chiamata in risposta all'interrupt. Il programma controlla lo stato del pulsante se il pulsante viene tenuto premuto entra in modalità di trasmissione per inviare l'audio. Se il pulsante viene rilasciato, entra in modalità di ricezione.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); else rfAudio.receive (); } void loop () {}
Il funzionamento completo di questo progetto può essere trovato nel video collegato sotto. Il Walkie Talkie produce del rumore durante il funzionamento, questo è il rumore della frequenza portante del modulo nRF24L01. Può essere ridotto utilizzando un buon sensore del suono o un modulo microfono. Se hai domande su questo progetto puoi lasciarle nella sezione commenti qui sotto. Puoi anche utilizzare i nostri forum per ottenere risposte rapide ad altre tue domande tecniche.