• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Csp@scuola uav corso1_lez4
 

Csp@scuola uav corso1_lez4

on

  • 828 views

Interconnessione di schede Arduino con moduli ZigBee

Interconnessione di schede Arduino con moduli ZigBee

Statistics

Views

Total Views
828
Views on SlideShare
828
Embed Views
0

Actions

Likes
0
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Csp@scuola uav corso1_lez4 Csp@scuola uav corso1_lez4 Presentation Transcript

    • Interconnesione di schede Arduino con moduli ZigBeeLezione 4 CSP@SCUOLA in 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 di sensori • 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 ArduinoLezione 4: interconnesione di schede Arduino con moduli ZigBee 2
    • 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 canaleLezione 4: interconnesione di schede Arduino con moduli ZigBee 3
    • 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 reteLezione 4: interconnesione di schede Arduino con moduli ZigBee 4
    • Moduli XBee: cosa sono • 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#overviewLezione 4: interconnesione di schede Arduino con moduli ZigBee 5
    • 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 50mA@3.3V; trasmissione 45mA@3.3V – XBee Pro=> ricezione 55mA@3.3V; trasmissione 150mA@3.3VLezione 4: interconnesione di schede Arduino con moduli ZigBee 6
    • 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 RS232Lezione 4: interconnesione di schede Arduino con moduli ZigBee 7
    • 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.htmLezione 4: interconnesione di schede Arduino con moduli ZigBee 8
    • 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 OKLezione 4: interconnesione di schede Arduino con moduli ZigBee 9
    • 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 Tutti i moduli devono usare lo stesso canale (range 0xB-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 bassa Deve 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 RN=1 “random delay slots” CE=0 su tutti i nodi: in questo modo la topologia di rete sarà peer-to-peer (disabilita coordinatore) PL=> livello di potenza del trasmettitore. Settare a un valore intermedioLezione 4: interconnesione di schede Arduino con moduli ZigBee 10
    • Moduli XBee: configurazione (4/4) • Parte inferiore del pannello di configurazione: Baud rate dell’interfaccia seriale che comunica con il PC Selettore API mode: lasciare a 0 per abilitare il funzionamento della comunicazione seriale standard • 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’altraLezione 4: interconnesione di schede Arduino con moduli ZigBee 11
    • 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 ZigBee potrebbe essere disturbato da una trasmissione wifi operante sulle stesse frequenze (lo stumbler indica l’identificativo dei canali wifi in uso)Lezione 4: interconnesione di schede Arduino con moduli ZigBee 12
    • 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:Lezione 4: interconnesione di schede Arduino con moduli ZigBee 13
    • Moduli XBee: utilizzo con Arduino • Il modulo XBee si installa su Arduino grazie al communication shield • 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 del modulo • 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 explorerLezione 4: interconnesione di schede Arduino con moduli ZigBee 14
    • Moduli XBee e Arduino: esempio (1/3) • Topologia: Canale Seriale Rete ZigBee 2.4 GHz Baud rate: 9600 NODO1 (TRASMETTITORE) NODO2 (RICEVITORE) CH = ch1 CH = ch1 ID = panId1 ID = panId1 DH = SH2 DL = SL2 DH = SH1 DL = SL1 BD = 9600 BD = 9600Lezione 4: interconnesione di schede Arduino con moduli ZigBee 15
    • Modulo XBee e Arduino: esempio (2/3) • Codice lato PC per sistema operativo Linux: 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 outputResetta il buffer di ingressodella porta seriale del PC Modifica la configurazione per lavorare in modo raw: in pratica ogni byte ricevuto dalla seriale è inviato a questa applicazioneApplica la configurazionecosì definita alla interfacciaseriale 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 Lezione 4: interconnesione di schede Arduino con moduli ZigBee 16
    • 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 corsoLezione 4: interconnesione di schede Arduino con moduli ZigBee 17
    • www.csp.it rd.csp.itCSP ICT InnovationLivio Torrero livio.torrero@csp.itRegistered and Central OfficesEnvironment Park - Laboratori A1via Livorno 60 - 10144 TorinoTel +39 011 4815111Fax +39 011 4815001E-mail: marketing@csp.it 18