NRF24 USB

Da GolemWiki.
Versione del 28 gen 2019 alle 13:40 di Giulio (discussione | contributi) (Creata pagina, da ultimare)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Golem-template-note-warning.png Pagina in scrittura, informazioni ancora parziali. Mancano le immagini


nRF24L01+ è un transceiver a 2.4GHz con gestione automatica di protocollo a pacchetti (Enhanced ShockBurst™). La comunicazione è punto punto fra due moduli. L'interfaccia con sistemi esterni (es. microcontrollori, Arduino) avviene via SPI. Attenzione! non è un modulo WiFi (non usa il protocollo 802.11).

Principi di funzionamento

Di base, ogni modulo è contraddistinto da una coppia di indirizzi (anche identici): trasmissione e ricezione. Ogni pacchetto inviato è marcato con l'indirizzo di trasmissione scelto e sarà processato da un modulo ricevente solamente se corrisponde al suo indirizzo in ricezione. Il protocollo Enhanced ShockBurst™ dispone nativamente di una utile funzione di conferma ricezione (autoACK), eventualmente disattivabile.

Eventualmente, è possibile configurare fino ad un massimo di 6 indirizzi di ricezione (pipes) su uno stesso modulo.

Per maggiori informazioni tecniche si consiglia la lettura del manuale del chip.

Pinout e connessione ad Arduino

File:Esempio.jpg
Pinout versione a 8pin
File:Esempio.jpg
Pinout versione a 10pin

È necessario scaricare la libreria RF24 dal gestore librerie. Negli esempi sono già presenti degli sketch di prova per testare il corretto funzionamento del modulo (es. pingpair).

Non ho provato, ma si può provare ad impostare uno stesso indirizzo di ricezione su più moduli per creare un canale simil-broadcast. Conviene disabilitare l'autoACK.

Funzionamento della penna usb

Gli adattatori USB in commercio permettono di collegare il modulo nRF24 al PC in modo diretto, senza passare da Arduino. Nel caso in esame si è usato l'adattatore commercializzato da LC Technology. Tale adattatore:

  • forza gli indirizzi di ricezione e trasmissione a 0x0110104334;
  • viene identificato dal PC come una comune porta seriale (su Linux, ad esempio: /dev/ttyUSB0) a 9600 baud;
  • si avvia per default in modalità trasmettitore. Per passare a ricevitore è necessario cortocircuitare i due pin SWIM e GND per qualche istante.

Utilizzando quindi un generico programma per comunicazione seriale (il monitor seriale di Arduino, minicom, miniterm, etc...) è sufficiente digitare un messaggio quindi battere invio per inviarlo. Si noti che è necessario abilitare LFCR[1]) affinché la stringa venga effettivamente inviata. Il modulo invia sempre una stringa di conferma che conferma l'avvenuta o fallita ricezione, nel nostro caso in cinese :/

Per testare la comunicazione si mette a disposizione il seguente sketch di esempio da caricare su Arduino. All'accensione invia un riepilogo della configurazione del modulo nRF24 e si pone in ascolto di pacchetti trasferiti, per passare in modalità trasmissione è sufficiente battere T.

Riferimenti

Note

  1. Il programma di comunicazione seriale invia la coppia di caratteri "a capo" e "ritorno carrello" ogni volta che si preme invio.