Modifiche

Da GolemWiki.

NRF24 USB

3 620 byte aggiunti, 15:40, 28 gen 2019
Creata pagina, da ultimare
{{Note
|type=warning
|text=Pagina in scrittura, informazioni ancora parziali. Mancano le immagini
}}

[[File:Esempio.jpg|right|100px]]
nRF24L01+ è un [https://it.wikipedia.org/wiki/Ricetrasmettitore 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 [https://it.wikipedia.org/wiki/Serial_Peripheral_Interface 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 [https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf manuale] del chip.

== Pinout e connessione ad Arduino ==

[[File:Esempio.jpg|200px|thumb|none|Pinout versione a 8pin]] [[File:Esempio.jpg|200px|thumb|none|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 [http://www.chinalctech.com/index.php?_m=mod_product&_a=view&p_id=1207 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<ref>Il programma di comunicazione seriale invia la coppia di caratteri "a capo" e "ritorno carrello" ogni volta che si preme invio.</ref>) 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 ==
* [https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf Datasheet nRF24L01]
* [https://maniacbug.github.io/RF24/nRF24L01_8h_source.html Libreria RF24]

== Note ==
<!-- Automatiche -->
[[Categoria:Howto]]

Menu di navigazione