Apri il menu principale

GolemWiki β

Modifiche

NRF24 USB

549 byte aggiunti, 22:17, 22 ago 2019
m
[Bozza] Aggiunte info sull'adattatore
== 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 'TL;DR'Enhanced ShockBurst™'' dispone nativamente di una utile funzione di conferma ricezione (autoACK), eventualmente disattivabile.
EventualmenteIn linea di massima ogni modulo è contraddistinto da una coppia di indirizzi (anche identici), in trasmissione e ricezione. Ogni pacchetto inviato è possibile configurare fino ad marcato con l'indirizzo di trasmissione scelto e sarà processato da un massimo modulo ricevente solamente se corrisponde al suo indirizzo in ricezione. Il protocollo dispone nativamente di 6 indirizzi una funzione autoACK: l'unità trasmittente attende la conferma di avvenuta ricezione (ACKnowledgement), altrimenti ritenta l'invio. Ogni modulo può ricevere o trasmettere, ma la comunicazione è ''pipeshalf duplex'') su uno : non è ammessa la bidirezionalità nello stesso moduloistante di tempo.
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 '''Da testare''': si può provare ad impostare uno tentare di creare un canale broadcast impostando lo stesso indirizzo di ricezione su a più moduli per creare un canale simil-broadcast. Conviene disabilitare e disabilitando l'autoACK, che diventa a questo punto deleterio.
=== 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 <code>0x0110104334</code>;
* 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.
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''.
 
==== Clone fatto in casa ====
Viste le esigenze richieste dal [[Archerino|Progetto Arcieri]] abbiamo realizzato una nostra versione dell'adattatore USB. I file del circuito stampato, del codice sorgente e le istruzioni di caricamento sono versionate su [https://git.golem.linux.it/giuliof/nRF24-key git].
 
Agendo opportunamente sul file di configurazione da caricare in memoria è possibile configurare ognuno dei registri dell'nRF24.
== Riferimenti ==