Stampa

Ora che ho definito e testato il protocollo di trasmissione creato ad HOC per il mio progetto sarebbe interessante poter comunicare tra Arduino (client) e computer (host) in modalità senza fili (wireless).

Per farlo ho acquistato delle schedine XBee già presentate e descritte in precedenza.
Io, non so per quale malaugurata idea, ho deciso di acquistare delle schedine di tipo Serie 2, che visivamente sono piuttosto simili tra loro, ma che presentano una complessità maggiore in fase di programmazione.

Ho trovato molti tutorial o istruzioni per le schedine Serie 1 (802.15.4) che vengono solitamente  già fornite con un firmware adatto a creare connessioni punto-punto.
Più difficile trovare guide per la programmazione delle schede XBee Series 2. Attenzione a non lasciarvi confondere da queste differenze perchè le due serie funzionano in modo differente e NON sono compatibili tra loro.

differenze xbee series
Ancora un precisazione sulla differenza tra XBee e XBee PRO, entrambi si trovano sul mercato, ma hanno prezzi decisamente differenti. La differenza principale tra le due famiglie è quella della potenza di trasmissione, mentre le XBee raggiungono solitamente 50-100 metri di distanza, mentre le versioni PRO coprono anche alcuni chilometri di distanza. 

Questa tabella comparativa spiega piuttosto bene le differenze tra tutti i modelli della famiglia XBee.

 

NOTA: I tutorial e le guide che si trovano sul web spesso non hanno funzionato perchè i modelli di XBee non sono esattamente quelli che avevo io, con conseguenti problemi di comunicazioni o una perdita consistente di dati.

 

In base al modello di schede che ho comperato io (XB24-BCIT-004 revE) e ai test che ho fatto, vi riporto i passi fondamentali per una programmazione funzionante:

1) Identificare e annotare il tipo di schede


Queste sono le schede che ho acquistato io:

xBee module1 r

xBee module2 r

 

Nelle foto è rappresentato anche il lettore di schede XBee (UartSBee V4) collegabile al computer tramite USB. Utilizzeremo proprio questo modulino per leggere e caricare il firmware adatto su entrambe le schede XBee. 

xBee module3 r

Innanzitutto leggete i dati riportati sul retro delle schedine XBee e riportatele su un foglio:

xBee module-schema r

 

Per chiarezza l'ho riportato su questo schema:

xBee config schema

 

2) Installazione driver e software X-CTU

Ora che abbiamo tutte le informazioni delle schede possiamo montare la prima schedina e collegare il tutto alla porta USB del computer. Attenzione al senso in cui montate la scheda XBee (il socket permette di inserirla in entrambi i sensi).

Prima di proseguire è necessario che sul computer sia installato il software X-CTU che è possibile scaricare da qui.

x-ctu icon

Dopo l'installazione può essere necessario scaricare le ultime versioni dei vari firmware delle schede XBee. È possibile effettuare questa operazione manualmente installando soltanto il firmware che ci interessa, ma se avete un po' di pazienza è più semplice attendere che vengano aggiornati tutti i firmware (questa operazione può impiegare parecchi minuti).

xbee 1-download update firmware

La prima volta sarà inoltre necessario scaricare il driver per il lettore di schede, vedi la pagina hardware per i dettagli.

 

 3) Configurare il COORDINATOR

Le due schede vanno configurate in modo differente. La prima scheda va configurata in modalità COORDINATOR.

Avviare X-CTU, scegliere la porta COM e quindi premere il tasto "Test/Query"

xbee 0

Se il baudrate e la porta COM sono corretti, X-CTU mostrerà alcune semplici informazioni riguardanti la scheda come il tipo di modem, la versione del firmware e il numero di serie. Se invece non c'è risposta, conviene provare a selezionare un'altra porta COM e assicurarsi che il baudrate è importato su 9600.
NOTA: il baudrate di default solitamente è 9600, ma se avete in precedenza caricato firmware e importato baudrate differenti è possibile che la scheda non riuscirà a collegarsi, o che vengano visualizzati dei strani valori (sporchi).

Se la comunicazione con la schedina XBee è avvenuta selezionare il tab Modem Configuration, e impostare i dati indicati nell'immagine seguente:

xBee module4-coordinator

Procedere alla scrittura del firmware premendo il tasto Write.

 

 3) Configurare il ROUTER


Si può chiudere X-CTU, quindi scollegare la porta USB e rimuovere la schedina XBee, inserire quindi l'altra scheda.

Ricollegare l'USB e lanciare di nuovo X-CTU, selezionare la porta COM, (il numero della porta potrebbe essere differente dalla precedente). Eseguire di nuovo il test premendo "Test/Query". Come prima, vengono letti i dati della scheda inserita. Se funziona, possiamo continuare.

Procedere con la configurazione sul tab "Modem Configuration" come indicato nell'immagine seguente:

xBee module4-roouter

 

Completare il caricamento del firmware con il tasto Write.

 

Ora entrambi le schede sono configurate e dovrebbero essere in grado di "vedersi" tra loro.

 

4) Testare la comunicazione

Per testare se funzionano, nel mio caso ho provato a montare una scheda su Arduino, l'altra scheda collegarla al computer e quindi aprire un terminale sul PC. Non importa quale schedina viene montata dove, esse sono ora intercambiabili dato che è un collegamento punto-punto. È fondamentale invece che su Arduino stia girando uno scketchin grado di generare dell'output sulla porta seriale in modo che possa essere trasmesso e ricevuto dal terminale aperto su PC.
Siccome ci si potrebbe ingannare, consiglio di scollegare la presa USB da Arduino durante questo test (è necessario alimentarlo esternamente), in modo da assicurarsi che i dati vengano trasferiti wireless (tramite XBee) e non sul cavo USB !

xctu terminale

NOTA: Come terminale su PC è possibile utilizzare quello integrato in X-CTU, quello di Realterm, o un qualsiasi terminale (in Windows XP ne esisteva uno integrato che si chiamava Hyperterminal, in Windows 7 non viene più installato di default. Uffa!) 

Ho allegato il backup della configurazione del firmware per le mie schede XBee, eventualmente utilizzare questi files per caricare direttamente la configurazione al posto di doverla importare manualmente. I files vanno rinominati con l'estensione ".pro"