Oggi dedichiamo un altro articolo alle connessioni tra Arduini e in particolare tratteremo quella più attesa tra tutte: la comunicazione wireless (senza fili), che ci potrà tornare molto utile sia nell'ambito della domotica sia a bordo di un drone.

Per sfruttare la comunicazione wireless abbiamo bisogno di due componenti,che potete acquistare anche in bundle dal seguente link:

  • Almeno due moduli transceiver (uno per ogni Arduino) da 2.4 GHz.
  • Almeno due antenne (una per ogni modulo). 

ATTENZIONE: le antenne devono avere una terminazione “maschio”, quindi non pensate di smontare quelle del vostro modem WiFi, che pure lavorano a 2.4 GHz, ma sono “femmina”.
""""

Per connettere i moduli ad Arduino occorrono 7 jumper, che collegherete secondo il seguente schema:

""""

ATTENZIONE! L’alimentazione di ciascun modulo transceiver deve essere assolutamente a 3.3V, altrimenti con i 5V rischiereste di bruciare tutto. Questo è il principale difetto dei moduli: Arduino infatti è stato progettato per lavorare a 5V, mentre per dare i 3.3V utilizza il chip che vedete in figura come trasformatore

""""

 

Il problema è che tale chip non riesce a sopportare grossi carichi di corrente, quindi ci sono alcuni utenti che hanno lamentato un funzionamento “a singhiozzo” di tutti i transceivers della classe  nRF24L01P. 

Cosa fare nel caso dovesse succedere?
Bisogna saldare tra il positivo e il negativo della ricetrasmittente un condensatore da 3.3 μF che, fungendo da “serbatoio”, riuscirà a garantire al componente una corrente stabile. Se utilizzate un condensatore elettrolitico fate attenzione alla polarità e collegatelo nel verso giusto!

 

SOFTWARE

Una volta che ci siamo occupati di munire i due Arduini con transceivers e antenna, possiamo testare la comunicazione: in questo caso terremo uno dei due dispositivi collegati al computer tramite USB per avere un output seriale.

""""

Per sfruttare la comunicazione wireless è necessaria la libreria RF24 che potete scaricare qui. Il procedimento per installarla è sempre lo stesso:

  1. Scaricate il file zip
  2. Estraete il contenuto nella cartella “libraries” di Arduino.
    Se siete su Windows, il percorso predefinito è 
        C:\Programmi(x86)\Arduino\libraries
    Su Linux invece
        \usr\share\arduino\libraries

""""

Installata la libreria dobbiamo aprire due sketch (uno per ogni dispositivo da configurare) e caricare due esempi già integrati nella libreria. Per farlo, dall’IDE Arduino, andiamo su 
File-->RF24-->GettingStarted.

""""
 

A questo punto dobbiamo dare un nome a ciascun Arduino: chiameremo il primo 0 e il secondo 1, quindi modifichiamo di conseguenza la variabile bool radioNumber in ciascuno sketch, come mostrato di seguito:

""""

Ora caricate il codice su ciascun Arduino e impostate la velocità del monitor seriale a 115200 baud, che di fatto è la velocità a cui viene inizializzata la comunicazione seriale (tra pc e Arduino) nel codice di esempio
""""

Vi ritroverete in una situazione del genere:

""""

Adesso per avviare la comunicazione basta inviare il carattere “t” nel monitor seriale relativo all’Arduino che deve trasmettere i dati, mentre l’altro riceverà; in questo modo si avvierà una trasmissione che in gergo è detta “ping-pong”: un dispositivo (Arduino 0) invia un dato ad un altro (Arduino 1) e questo lo restituisce identico.

Finalmente adesso sapete configurare una comunicazione wireless tra Arduini da sfruttare in numerosissimi ambiti. Se volete un esempio simpatico, qui c’è il link al tutorial su “come realizzare un detonatore wireless” da piazzare su un drone: attenzione alle scintille!