Csp@scuola uav corso1_lez4
description
Transcript of Csp@scuola uav corso1_lez4
Interconnesione di schede Arduino con moduli ZigBee
Lezione 4
CSP@SCUOLAin collaborazione con ITI FAUSER NOVARA Anno scolastico 2011-2012
Introduzione
• Questa lezione fornisce i concetti base per interconnettere schede Arduino attraverso moduli ZigBee
• Questi moduli sono spesso utilizzati per interconnettere reti disensori
• Sono sempre più utilizzati in ambito amatoriale per realizzare canali radio affidabili al fine di controllare piccoli UAV– Canale di controllo del “telecomando”– Telemetria
• Vengono utilizzati anche per realizzare canali di comunicazione con moduli Arduino
• La lezione fornirà informazioni relativamente alla configurazione e all’utilizzo di questi moduli con schede Arduino
2Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Zigbee
• Nome di una specifica per un insieme di protocolli che realizzano una comunicazione attraverso moduli radio a bassa potenza e basso bit rate– http://www.zigbee.org/– IEEE 802.15.4– ZigBee Alliance: insieme di aziende che supportano la
tecnologia
• Permette la realizzazione di una Wireless Personal Area Network (WPAN)– Insieme di dispositivi portatili e personali che possono essere
interconnessi tra loro per scambiare dati
• Connettività basata sul protocollo IEEE 802.15.4– Livello fisico
• Banda 2.4 GHz– Pacchetto di basso livello (detto trama) dotato di indirizzo
sorgente e destinazione per lo scambio di dati sul canale
3Lezione 4: interconnesione di schede Arduino con moduli ZigBee
IEEE 802.15.4
• Introduce due tipologie di dispositivi– Full function Device (FFD)
• Possono comunicare con qualsiasi dispositivo Zigbee– Reduced Function Device (RFD)
• Dispositivi semplificati per consumare meno, ma con un set di funzioni ridotte
• Comunicano solo con FFD
• Due tipologie di rete possibili:– Peer-to-peer
• Tutti i nodi possono comunicare con tutti – Stella
• I nodi possono comunicare con un solo nodo detto “centro stella” che può interagire con tutti
• Centro stella = FFD• Il centro stella è anche detto coordinatore della rete
4Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: cosa sono
5Lezione 4: interconnesione di schede Arduino con moduli ZigBee
• Implementano il protocollo IEEE 802.15.4• Frequenze ISM 2.4 GHz• Due modelli
– XBee => versione base– XBee PRO => versione evoluta, maggiore potenza, maggior
raggio di copertura, maggiori consumi
• Forniscono una interfaccia seriale TTL 3.3V
• Documentazione di rieferimento:http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-series1-module#overview
Moduli XBee: specifiche
• Range operativo:– XBee => fino a 30 m indoor, fino a 90 m all’aperto senza
ostacoli– XBee PRO => fino a 90 m indoor, fino a 1600 m all’aperto
senza ostacoli
• Sensibilità ricevitore: XBee => -92 dBm, XBee PRO => -100 dBm
• Bit rate: 250 kbit/s
• Potenza trasmissiva:– XBee => 1 mW (0 dBm)– XBee PRO => 63 mW (18 dBm)
• Consumi– XBee => ricezione [email protected]; trasmissione [email protected]– XBee Pro=> ricezione [email protected]; trasmissione
6Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: connessione con PC
• I moduli XBee forniscono una interfaccia seriale TTL (3.3V)
• Per comunicare con un PC serve un adattatore
• Adattatore USB: XBee explorer
• Adattatore RS232
7Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: configurazione (1/4)
• Software di configurazione: X-CTU– Scaricabile qui:
http://ftp1.digi.com/support/utilities/93009396_a.txt
• X-CTU permette di:– Inviare o ricevere caratteri tramite XBee su un terminale
testuale– Riconfigurare un modulo XBee– Aggiornare o cambiare il firmware
• Nel caso si utilizzi XBee Explorer USB occorre installare i corretti driver FTDI (virtual console port) per la connessione– http://www.ftdichip.com/Drivers/VCP.htm
8Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: configurazione (2/4)
• Affinchè due moduli XBee possano comunicare devono operare sulla stessa Personal Area Network (PAN)– Stesso identificativo PAN– Stesso canale radio– Indirizzamento corretto
• XCTU permette di impostare correttamente questi parametri• Dopo connesso il dispositivo, dall’interfaccia XCTU:
– Selezionare il baud rate corretto (9600 8N1 è default)– Premere il pulsante “test query” => messaggio OK
9Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: configurazione (3/4)
• Selezionare il pannello “Modem configuration” e premere il pulsante “read”
• La configurazione corrente sarà visualizzata. A questo punto occorre configurare il modulo => creare una Personal Area Network
10Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Tutti i moduli devono usare lo stesso canale (range0xB-0x1A per XBee, 0x0C-0x17 per XBee PRO)
Tutti i moduli devono avere lo stesso identificativo della PAN per comunicare
Indirizzo di destinazione DH => 32 bit parte alta; DL => 32 bit parte bassaDeve essere uguale all’indirizzo del nodo con cui comunicare (nei campi SH e SL dell’altro XBee) oppure può essere impostato al valore broadcast (DH=0x0, DL=0xFFFF). In questo caso tutti i nodi della PAN riceveranno i dati inviati dal nodo.ATTENZIONE: perchè DH e DL vengano considerati, il campo MY deve essere settato a 0xFFF
CE=0 su tutti i nodi: in questo modo la topologia di rete sarà peer-to-peer (disabilita coordinatore)
RN=1 “random delay slots”
PL=> livello di potenza del trasmettitore. Settare a un valore intermedio
Moduli XBee: configurazione (4/4)
• Parte inferiore del pannello di configurazione:
• Una volta impostati i valori, attraverso il pulsante “Write” questi saranno impostati sul modulo XBee
• Configurate due XBee per la comunicazione è possibile testarle collegandole a due PC (o a due porte dello stesso PC), selezionando il tab “terminal”; scrivendo caratteri da una parte, dovrebbero apparire dall’altra
11Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Baud rate dell’interfaccia seriale che comunica con il PC
Selettore API mode: lasciare a 0 per abilitare il funzionamento della comunicazione seriale standard
Moduli XBee: valutazione interferenze con reti wifi
• La figura mostra l’occupazione di banda dei canali Wifi (IEEE 802.11)• E’ possibile ricavare il centro di banda del canale ZigBee configurato
settando il valore CH da questa formula:
frequenza centrale = 2.405 + (CH – 11d) * 5 MHz (d = decimale)
• Considerato che il valore ottenuto è il centro banda e che la larghezza di banda di un canale ZigBee è 5 MHz, è possibile usando uno software stumbler su un PC con interfaccia wifi capire se il canale ZigBeepotrebbe essere disturbato da una trasmissione wifi operante sulle stesse frequenze (lo stumbler indica l’identificativo dei canali wifi in uso)
12Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: indirizzamento
• Due modi possibili:– Indirizzi a 16 bit o indirizzi a 64 bit
• Indirizzo a 64 bit => identificativo univoco a 64 bit preconfigurato sul modulo e non modificabile– Campi SH e SL letti da X-CTU– Indirizzamento unicast => come nell’esempio, metto in DH e DL i
campi letti su SH e SL del nodo target– Indirizzamento broadcast => DH = 0x0; DL = 0xFFFF => tutti i
nodi della PAN ricevono il pacchetto
• Indirizzamento a 16 bit, alternativo a quello a 64– Abilitato se DH = 0x0 e DL < 0xFFFE– Gli indirizzi sorgente non sono più preimpostati e l’utente deve
definirli in maniera univoca sulla PAN e impostarli nel campo MY– L’indirizzo destinazione sarà riportato nel campo DL– Esempio:
13Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee: utilizzo con Arduino
• Il modulo XBee si installa su Arduino grazie al communicationshield
• La porta seriale TTL del modulo XBee è così connessa alla porta seriale di Arduino tramite lo shield
• La porta seriale della scheda Arduino dovrà essere impostata al baud rate specificato nel campo BD durante la configurazione delmodulo
• NOTA: se si rimuove il processore Atmega da una Arduino diecimila e si collega il communication shield con i jumper in posizione USB, si ottiene un dispositivo del tutto analogo a un USB explorer
14Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Moduli XBee e Arduino: esempio (1/3)
• Topologia:
15Lezione 4: interconnesione di schede Arduino con moduli ZigBee
NODO1 (TRASMETTITORE)CH = ch1ID = panId1DH = SH2 DL = SL2BD = 9600
NODO2 (RICEVITORE)CH = ch1ID = panId1DH = SH1 DL = SL1BD = 9600
Canale SerialeBaud rate: 9600Rete ZigBee 2.4 GHz
Modulo XBee e Arduino: esempio (2/3)
• Codice lato PC per sistema operativo Linux:
16Lezione 4: interconnesione di schede Arduino con moduli ZigBee
Istruzione che apre la comunicazione seriale. “/dev/ttyUSB0” è il nome dell’interfaccia verso usb explorer in linux. Per verificarlo eseguite il comando “dmesg” in un terminale testuale dopo aver connesso xbee explorer, al fondo dovrebbe apparire “FTDI USB serial device converter now attached to ttyUSB0”; se appare un numero diverso da 0, usare quello
Serve a ottenere la configurazione attuale dell’interfaccia seriale del PC
Imposta il corretto baud rate, sia in input che output
Modifica la configurazione per lavorare in modo raw: in pratica ogni byte ricevuto dalla seriale è inviato a questa applicazione
Resetta il buffer di ingresso della porta seriale del PC
Applica la configurazione così definita alla interfaccia seriale dei PC Cerca di leggere 100 byte dalla porta seriale. Se l’Arduino con
modulo Xbee ha inviato meno byte, il pc stampa comunque quanto ha ricevuto su un terminale di testo
Modulo XBee e Arduino: esempio (3/3)
• L’Arduino esegue una semplice sequenza di operazioni elementari:– Inizializza la porta seriale 0 con il baud rate impostato alla
configurazione del modulo XBee (campo BD)• Esattamente come fa il PC
– Trasmette periodicamente una stringa di test
• Sia il PC che l’Arduino operano come fossero collegati direttamente tramite un cavo seriale– La presenza della rete è trasparente– È possibile operare direttamente sui pacchetti scambiati, ma
occorre configurare i moduli Xbee in “API mode”, che esula dagli argomenti del corso
17Lezione 4: interconnesione di schede Arduino con moduli ZigBee
18
CSP ICT Innovation
Livio Torrero [email protected]
Registered and Central Offices Environment Park - Laboratori A1via Livorno 60 - 10144 Torino
Tel +39 011 4815111Fax +39 011 4815001E-mail: [email protected]
www.csp.it rd.csp.it