SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Programmazione Arduino e interfacciamento a
moduli esterni

Lezione 3




CSP@SCUOLA
in collaborazione
con ITI FAUSER NOVARA
Anno scolastico 2011-2012
Introduzione



              •    Questa lezione si propone di fornire informazioni integrative per lo
                   sviluppo su Arduino e di fornire concetti di base per:
                    – Interfacciamento di Arduino a moduli di espansione
                    – Sviluppo di applicazioni basate su di essi

              •    Attraverso questi moduli e’ possibile realizzare payload funzionali
                   complessi, da installare a bordo di un micro UAV

              •    I moduli di espansione sono detti “shield”
                     – Daughter board che si installano sugli header della scheda
                       Arduino
                     – Alimentati direttamente da Arduino
                     – Interfacciamento solitamente tramite pin/porta seriale

              •    In questa lezione verranno presentati alcuni shield di esempio:
                    – SD card shield
                    – GPS shield
                    – Communicator shield




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                     2
Considerazioni sullo sviluppo su
                                     piattaforma Arduino (1/4)

              •    Come già detto un programma generico per Arduino si suddivide in
                   due sezioni
                    – Setup => inizializzazione, singola esecuzione
                    – Loop => vero programma eseguito ciclicamente da Arduino

              •    Il loop è eseguito a ciclo continuo
                     – Qualcosa come
                           While(1)
                           {
                                     loop()
                           }
                     – Cercate di evitare l’uso di cicli “globali” dentro la funzione loop
                         se non strettamente necessari




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                        3
Considerazioni sullo sviluppo su
              piattaforma Arduino (2/4)

      •    All’interno di ogni programma Arduino è possibile definire e richiamare
           delle funzioni, esattamente come avviene nel linguaggi o C




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                4
Considerazioni sullo sviluppo su
              piattaforma Arduino (3/4)

              •    E’ possibile sviluppare la stessa applicazione su più file pde
                    – Non è necessaria nessuna inclusione esplicita
                    – Devono essere dentro la medesima cartella
                    – Il file principale implementa la funzione loop




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni               5
Considerazioni sullo sviluppo su
              piattaforma Arduino (4/4)

              •    E’ possibile inoltre creare delle librerie
                     – Collezioni di funzioni che possono essere utili a più programmi
                         • Ad esempio librerie per gestire una interfaccia ethernet
                            ecc
              •    Qualsiasi applicativo può utilizzare le funzioni di una libreria
                   includendone l’header




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                    6
Programmazione Arduino: approfondimenti utili



              •    Programmazione a stati finiti (raccomandato):
                    – http://zuccala.blogspot.com/2010/02/arduino-e-
                       programmare-stati-finiti.html

              •    Programmazione multitasking (raccomandato):
                    – L’Arduino deve gestire in maniera temporizzata l’acquisizione
                       dati da sensori diversi
                    – Qui riferimenti utili:
                         • http://zuccala.blogspot.com/2010/01/multitasking-
                            arduino-millis-parte-1.html
                         • http://zuccala.blogspot.com/2010/02/multitasking-
                            arduino-millis-parte-2.html

              •    Serializzazione (invio di strutture dati complesse tramite porta
                   seriale)
                    – Libreria: http://code.google.com/p/simpleserialization/

              •    Esempio di calcolo di un codice a ridondanza ciclica per garantire
                   l’integrità dei dati (da aggiungere prima di una trasmissione seriale
                   o di rete):
                   http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1246539386

Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                      7
Arduino SD shield



              •    Interfacciamento di scheda Arduino a modulo SD

              •    Obiettivi:
                    – Interfacciamento a dispositivo di massa capace di memorizzare
                       dati acquisiti da sensori o eventi di sistema in maniera
                       persistente
                    – Accesso in lettura di dati memorizzati su un dispositivo SD con
                       file system standard



              •    Interfaccia seriale sincrona tra modulo Arduino e SD shield
              •    Istruzioni dettagliate su utilizzo e installazione disponibili qui:
                   http://www.cooking-
                   hacks.com/index.php/documentation/tutorials/arduino-micro-sd




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                    8
Interfaccia seriale sincrona


             •     Serial Peripheral Interface (SPI)
                     –    Comunicazione tra microcontrollore e periferica
                     –    Comunicazione tra microcontrollori

             •     Dispositivo master=microcontrollore, dispositivo slave=periferica

             •     La comunicazione avviene attraverso 3 linee:
                     –   Master In Slave Out (MISO), linea usata dal dispositivo slave per comunicare con il master

                     –    Master Out Slave In (MOSI), linea usata dal dispositivo master per comunicare con lo slave

                     –    Segnale di clock seriale (CLK), impulso che sincronizza la trasmissione dati generato dal master

             •     Ogni periferica seriale sincrona ha un pin di selezione che la abilita
                    –    Slave Selector (SS)

             •     L’ambiente di sviluppo Arduino fornisce una libreria per la gestione a basso livello della SPI
                     –   http://arduino.cc/en/Reference/SPI




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                                                        9
Interfaccia seriale sincrona: connessioni (1/2)




                                                                                1
                                                                        SCK         5V
                                                                        MISO        MOSI
                                                                        RESET       GND




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                      10
Interfaccia seriale sincrona: connessioni (2/2)



              •    I pin ISP sono riportati su altri pin dell’header
                     – In questo modo è possibile installare sull’arduino più shield che
                        non potrebbero combinarsi meccanicamente fra loro altrimenti
                     – La porta resta comunque unica

              •    Arduino Uno/diecimila/duemilanove
                    – SS => 10 (abilita l’uso dell’Arduino come slave)
                    – MOSI => 11
                    – MISO => 12
                    – SCK => 13

              •    Arduino Mega
                    – SS => 53 (abilita l’uso dell’Arduino come slave)
                    – MOSI => 51
                    – MISO => 50
                    – SCK => 52




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                      11
Arduino SD shield: libreria



              •    L’ambiente di sviluppo Arduino fornisce una libreria per la gestione
                   di una scheda SD formattata con il file system FAT16 o FAT32 e
                   supporta anche SDHC

              •    Libreria SD
                    – Metodi di gestione begin, read, write print, close, available...
                    – Documentazione qui:
                          • http://arduino.cc/en/Reference/SD

              •    NOTA: il processore Atmega dell’Arduino possiede un pin SS per
                   essere utilizzato come slave. Anche se nell’interazione con lo shield
                   SD l’Arduino ha il ruolo di master, il pin SS dell’Atmega deve
                   essere comunque inizializzato a pin digitale di output
                    – Arduino Mega => pinmode(53, OUTPUT);
                    – Arduino => pinmode(10, OUTPUT);




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                      12
Arduino SD shield: esempio



              •    Esempio di programma:
                                                             Il pin SS dell’SD shield
                                                             deve essere connesso
                                                             al pin digitale 53
                                                             dell’Arduino Mega




                                                                  Creazione o apertura del file “test4.txt”
                                                                  sul file system della scheda SD

                                                                Scrittura del file sulla scheda SD.
                                                                L’invocazione alla close finalizza la
                                                                scrittura




                                                      Finchè ci sono dati sulla scheda SD
                                                      (available) verranno inviati al PC tramite
                                                      la porta seriale




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                                         13
Modulo GPS per Arduino



              •    Modulo GPS prodotto da Libelium

              •    Le stringhe NMEA sono disponibili su interfaccia seriale
                    – Default baud rate 4800 baud

              •    Basato su Vincotech A1080-b
                    – Il modulo adatta i livelli elettrici del ricevitore Vincotech alla
                       seriale Arduino
                    – 1 aggiornamento al secondo

              •    Alimentazione da scheda Arduino mediante cavetti




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                      14
Modulo GPS per Arduino: esempio d’uso




                                      Interfaccia seriale 3




                                       Alimentazione (5V)




    • Informazioni dettagliate sul modulo disponibili qui:
    http://www.cooking-hacks.com/index.php/gps-module-for-arduino.html


Lezione 3: programmazione Arduino e interfacciamento a moduli esterni    15
Modulo Vincotech A1080-b (1/2)



              •    Supporta la maggior parte delle stringhe NMEA di uso comune:
                    – GGA, GSA, VTG, RMC, GSV e GLL

              •    Mette a disposizione un protocollo di configurazione basato su
                   messaggi inviati tramite la porta seriale a cui è collegato
                    – Permette di cambiare baud rate, richiedere specifiche stringhe
                       NMEA ecc

              •    L’Arduino tramite la seriale invia opportuni comandi di
                   configurazione e ottiene risposte dal modulo




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                  16
Vincotech A1080-b (2/2)


              •    Questi messaggi servono a modificare il comportamento base
                    – Di default il modulo si avvia con un buad rate 4800 e invia una
                      volta al secondo le più comuni stringhe NMEA

              •    Esempi di messaggi di riconfigurazione del modulo GPS:

                     – $PSRF100,0,9600,8,1,0*0C
                         • Imposta il baud rate a 9600
                         • 8N1 (8 bit di dato, no bit di parità, 1 bit di stop)

                     – $PSRF101,0,0,0,0,0,0,12,4*10
                         • Reset del modulo GPS

                     – $PSRF103,0,1,0,1,*25
                         • Esegue la query di una stringa GGA
                         • A seconda dei parametri il PSRF103 permette di effettuare
                           la query di una qualsiasi stringa NMEA o di impostare il
                           rate per l’invio automatico

              • Ulteriori informazioni disponibili qui:
              http://www.cooking-
                  hacks.com/skin/frontend/default/cooking/pdf/GPS_Firmware_GSC3
                  _3.5.0_V4.2.pdf
Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                   17
Modulo GPS: gestione avanzata dei dati



              •    Il GPS può essere gestito come un qualsiasi dispositivo seriale

              •    Tuttavia essendo un componente “standard” esistono librerie per
                   semplificarne l’utilizzo

              •    Libreria TinyGPS
                    – http://arduiniana.org/libraries/tinygps/

              •    Semplifica la gestione delle stringhe NMEA nelle applicazioni
                    – Modulo di parsing completo per le stringhe NMEA più comuni
                    – Verifica automaticamente se il fix di posizione è valido
                    – Esegue automaticamente la verifica dell’integrità della stringa
                    – Fornisce delle funzioni per ottenere direttamente dalle stringhe
                      le informazioni di posizione, velocità ecc




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                    18
TinyGPS: esempio di utilizzo




                                                                                    1) Includere la libreria



                                                                                    2) Istanziare l’oggetto GPS



Il metodo encode analizza                                                           Nell’esempio il modulo GPS
byte per byte i dati                                                                è connesso alla seriale 1. I
ricevuti e se riconosce una                                                         dati letti saranno inviati
stringa NMEA valida                                                                 sulla seriale 0
ritorna un valore>0


                                                                                        Per debug tutto quanto
                                                                                        viene ricevuto è comunque
                                                                                        inviato sulla seriale 0


                                                                                       Il metodo get_position
                                                                                       attinge ai dati memorizzati
                                                                                       dalla funzione encode per
                                                                                       ottenere le informazioni
                                                                                       richieste

                        •     Per ulteriori informazioni sugli altri metodi della libreria si faccia
                              riferimento a http://arduiniana.org/libraries/tinygps/
          Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                                    19
Communication shield




              •    Progettato originariamente per connettere un modulo Zigbee a una
                   scheda Arduino, è stato successivamente per connettere vari altri
                   moduli

              •    Fornisce una interfaccia completa,                   garantendo   la   corretta
                   alimentazione del modulo installato

              •    http://arduino.cc/it/Main/ArduinoXbeeShield


Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                                20
Communicator shield: principali moduli supportati


                                Modulo wifi: consente l’interfacciamento con una rete IEEE 802.11




                               Modulo RFID permette di utilizzare l’Arduino come modulo RFID per
                               rilevare il passaggio in prossimità di ricevitori RFID



                               Modulo Bluetooth




                               Modulo Xbee: permette l’interfacciamento a una rete Zigbee (IEEE
                               802.15.4). Sarà oggetto della prossima lezione




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                               21
Communicator shield: considerazioni



          •    Il dispositivo installato nello shield comunica con la scheda Arduino
               attraverso l’interfaccia seriale 0
                 – La porta seriale 0 è accessibile:
                      • Attraverso i pin in alto a sinistra nell’header dell’Arduino base
                            – (a cui si connette lo shield)
                      • Tramite la porta USB

          •    La porta seriale 0 è la stessa usata per programmare il dispositivo

          •    Se la seriale è usata dal dispositivo montato sul modulo, la scheda
               Arduino non può essere riprogrammata attraverso la porta USB,
               poichè questa è la seriale 0

          •    Per ovviare al problema sullo shield sono presenti due jumper:
                – Jumper entrambi in posizione “USB”=> la porta seriale 0 può
                   essere usata per la programmazione dell’Arduino
                – Jumper entrambi in posizione “xbee” => la porta seriale 0 è
                   connessa al dispositivo montato sullo shield e non può esssere
                   usata per la programmazione



Lezione 3: programmazione Arduino e interfacciamento a moduli esterni                       22
Interfacciamento di più shield a una scheda Arduino



              •    Esempio:
              •    Shield SD => pin 50,51,52,53 (rilancio ICSP)
              •    Shield GPS => Seriale 3




Lezione 3: programmazione Arduino e interfacciamento a moduli esterni   23
www.csp.it                      rd.csp.it

      CSP ICT Innovation

      Livio Torrero livio.torrero@csp.it

      Registered and Central Offices
      Environment Park - Laboratori A1
      via Livorno 60 - 10144 Torino



      Tel +39 011 4815111
      Fax +39 011 4815001
      E-mail: marketing@csp.it




Lezione 3: piattaforma Arduino                   24

Mais conteúdo relacionado

Mais procurados

Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1
Michele Maffucci
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
Michele Maffucci
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
guest01fc9d
 
Lezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM UnicamLezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM Unicam
Nicola Paoletti
 
Sicurezza smartcard
Sicurezza smartcardSicurezza smartcard
Sicurezza smartcard
Elvis London
 

Mais procurados (20)

Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progetti
 
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
 
Lezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 oreLezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 ore
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoCorso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino Genuino
 
CoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 ArduinoCoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 Arduino
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 
Arduino prima spiegazione
Arduino  prima spiegazioneArduino  prima spiegazione
Arduino prima spiegazione
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
 
Lezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM UnicamLezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM Unicam
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
 
Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011
 
Sicurezza smartcard
Sicurezza smartcardSicurezza smartcard
Sicurezza smartcard
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su Arduino
 

Destaque

National Standards
National StandardsNational Standards
National Standards
tgibson2010
 
Hẹn bạn trên đỉnh thành công
Hẹn bạn trên đỉnh thành côngHẹn bạn trên đỉnh thành công
Hẹn bạn trên đỉnh thành công
bita89
 
Tại sao lại chần chừ - teo aik cher
Tại sao lại chần chừ  - teo aik cherTại sao lại chần chừ  - teo aik cher
Tại sao lại chần chừ - teo aik cher
bita89
 
Eskolen konparaketa teknologia berrien erabilera
Eskolen konparaketa teknologia berrien erabileraEskolen konparaketa teknologia berrien erabilera
Eskolen konparaketa teknologia berrien erabilera
patricia
 
Jr Parent Coffee
Jr Parent CoffeeJr Parent Coffee
Jr Parent Coffee
Tina Techie
 

Destaque (19)

10 Scenarios of Google Apps Data Loss
10 Scenarios of Google Apps Data Loss10 Scenarios of Google Apps Data Loss
10 Scenarios of Google Apps Data Loss
 
1
11
1
 
11 Reasons to Backup Your Facebook Page
11 Reasons to Backup Your Facebook Page11 Reasons to Backup Your Facebook Page
11 Reasons to Backup Your Facebook Page
 
2012 Iowa Caucuses in Pictures Channel 4 News Tawanda Kanhema
2012 Iowa Caucuses in Pictures Channel 4 News Tawanda Kanhema2012 Iowa Caucuses in Pictures Channel 4 News Tawanda Kanhema
2012 Iowa Caucuses in Pictures Channel 4 News Tawanda Kanhema
 
National Standards
National StandardsNational Standards
National Standards
 
Living Labs ovvero il possibile contributo delle ICT ai Presidi Territoriali ...
Living Labs ovvero il possibile contributo delle ICT ai Presidi Territoriali ...Living Labs ovvero il possibile contributo delle ICT ai Presidi Territoriali ...
Living Labs ovvero il possibile contributo delle ICT ai Presidi Territoriali ...
 
Protecting Data in the Cloud: The Truth about SaaS Backup
Protecting Data in the Cloud: The Truth about SaaS BackupProtecting Data in the Cloud: The Truth about SaaS Backup
Protecting Data in the Cloud: The Truth about SaaS Backup
 
Hẹn bạn trên đỉnh thành công
Hẹn bạn trên đỉnh thành côngHẹn bạn trên đỉnh thành công
Hẹn bạn trên đỉnh thành công
 
Tại sao lại chần chừ - teo aik cher
Tại sao lại chần chừ  - teo aik cherTại sao lại chần chừ  - teo aik cher
Tại sao lại chần chừ - teo aik cher
 
Event handling using jQuery
Event handling using jQueryEvent handling using jQuery
Event handling using jQuery
 
Agility at Vietnamworks
Agility at VietnamworksAgility at Vietnamworks
Agility at Vietnamworks
 
If bok
If bokIf bok
If bok
 
U.S. Consolidates Zimbabwe Sanctions - Investigative Africa
U.S. Consolidates Zimbabwe Sanctions - Investigative Africa U.S. Consolidates Zimbabwe Sanctions - Investigative Africa
U.S. Consolidates Zimbabwe Sanctions - Investigative Africa
 
Gücün merkezindeki 20 kadin
Gücün merkezindeki 20 kadinGücün merkezindeki 20 kadin
Gücün merkezindeki 20 kadin
 
Eskolen konparaketa teknologia berrien erabilera
Eskolen konparaketa teknologia berrien erabileraEskolen konparaketa teknologia berrien erabilera
Eskolen konparaketa teknologia berrien erabilera
 
Possibilità di utilizzare porzioni della banda di frequenze 470-790 MHz attri...
Possibilità di utilizzare porzioni della banda di frequenze 470-790 MHz attri...Possibilità di utilizzare porzioni della banda di frequenze 470-790 MHz attri...
Possibilità di utilizzare porzioni della banda di frequenze 470-790 MHz attri...
 
Laboratori diffusi: ricerca e innovazione per i territori
Laboratori diffusi: ricerca e innovazione per i territoriLaboratori diffusi: ricerca e innovazione per i territori
Laboratori diffusi: ricerca e innovazione per i territori
 
Jr Parent Coffee
Jr Parent CoffeeJr Parent Coffee
Jr Parent Coffee
 
Scientific method
Scientific methodScientific method
Scientific method
 

Semelhante a Csp@scuola uav corso1_lez3

Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele Costarella
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09
Ionela
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Ionela
 
Thesis Murgida Panella Slide it
Thesis Murgida Panella Slide itThesis Murgida Panella Slide it
Thesis Murgida Panella Slide it
Marco Santambrogio
 
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Simone Fini
 

Semelhante a Csp@scuola uav corso1_lez3 (20)

Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Raspberry
RaspberryRaspberry
Raspberry
 
Arduino wifi logger node
Arduino wifi logger nodeArduino wifi logger node
Arduino wifi logger node
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : Arduino
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Thesis Murgida Panella Slide it
Thesis Murgida Panella Slide itThesis Murgida Panella Slide it
Thesis Murgida Panella Slide it
 
Sistemi 2 (4' ITI) - Lezione 1
Sistemi 2 (4' ITI) - Lezione 1Sistemi 2 (4' ITI) - Lezione 1
Sistemi 2 (4' ITI) - Lezione 1
 
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
 
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry piMakers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
 

Mais de CSP Scarl

OBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
OBSERVO - Piattaforma Open Source per la videosorveglianza territorialeOBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
OBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
CSP Scarl
 
Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013
CSP Scarl
 

Mais de CSP Scarl (20)

Reti Banda Ultra Larga e Internet delle cose
Reti Banda Ultra Larga e Internet delle cose Reti Banda Ultra Larga e Internet delle cose
Reti Banda Ultra Larga e Internet delle cose
 
Internet delle cose e remote sensing per agricoltura di precisione Innovazion...
Internet delle cose e remote sensing per agricoltura di precisione Innovazion...Internet delle cose e remote sensing per agricoltura di precisione Innovazion...
Internet delle cose e remote sensing per agricoltura di precisione Innovazion...
 
"Iot on the field: making smart environments in everyday experience"
"Iot on the field: making smart environments in everyday experience""Iot on the field: making smart environments in everyday experience"
"Iot on the field: making smart environments in everyday experience"
 
Sigevi - Tecnologie ICT applicate in agricoltura
Sigevi - Tecnologie ICT applicate in agricolturaSigevi - Tecnologie ICT applicate in agricoltura
Sigevi - Tecnologie ICT applicate in agricoltura
 
Forum PA challenge: HALADIN's
Forum PA challenge: HALADIN'sForum PA challenge: HALADIN's
Forum PA challenge: HALADIN's
 
Livinglabs per nexa_duretti
Livinglabs per nexa_durettiLivinglabs per nexa_duretti
Livinglabs per nexa_duretti
 
Scuola futuro prossimo
Scuola futuro prossimoScuola futuro prossimo
Scuola futuro prossimo
 
Storie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitoriStorie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitori
 
Storie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesseStorie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesse
 
OBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
OBSERVO - Piattaforma Open Source per la videosorveglianza territorialeOBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
OBSERVO - Piattaforma Open Source per la videosorveglianza territoriale
 
19 Luglio 2013 - Il Futuro della TV - Sergio Duretti - CSP
19 Luglio 2013 - Il Futuro della TV - Sergio Duretti - CSP19 Luglio 2013 - Il Futuro della TV - Sergio Duretti - CSP
19 Luglio 2013 - Il Futuro della TV - Sergio Duretti - CSP
 
19 Luglio 2013 - Il futuro della TV - Marco Bussone - UNCEM
19 Luglio 2013 - Il futuro della TV - Marco Bussone - UNCEM19 Luglio 2013 - Il futuro della TV - Marco Bussone - UNCEM
19 Luglio 2013 - Il futuro della TV - Marco Bussone - UNCEM
 
19 Luglio 2013 - Il futuro della TV - Marco Cantamessa - I3P
19 Luglio 2013 - Il futuro della TV - Marco Cantamessa - I3P19 Luglio 2013 - Il futuro della TV - Marco Cantamessa - I3P
19 Luglio 2013 - Il futuro della TV - Marco Cantamessa - I3P
 
19 Luglio 2013 - Il futuro della TV - Andrea Piersanti, Virtual & Reality Mul...
19 Luglio 2013 - Il futuro della TV - Andrea Piersanti, Virtual & Reality Mul...19 Luglio 2013 - Il futuro della TV - Andrea Piersanti, Virtual & Reality Mul...
19 Luglio 2013 - Il futuro della TV - Andrea Piersanti, Virtual & Reality Mul...
 
19 Luglio 2013 - Il Futuro della Televisione -
19 Luglio 2013 - Il Futuro della Televisione - 19 Luglio 2013 - Il Futuro della Televisione -
19 Luglio 2013 - Il Futuro della Televisione -
 
19 Luglio 2013 - Il Futuro della Televisione - Andrea Casalegno - Top-IX
19 Luglio 2013 - Il Futuro della Televisione - Andrea Casalegno - Top-IX19 Luglio 2013 - Il Futuro della Televisione - Andrea Casalegno - Top-IX
19 Luglio 2013 - Il Futuro della Televisione - Andrea Casalegno - Top-IX
 
19 Luglio 2013 - Il Futuro della Televisione - Chiara Gallino - CSP
19 Luglio 2013 - Il Futuro della Televisione - Chiara Gallino - CSP19 Luglio 2013 - Il Futuro della Televisione - Chiara Gallino - CSP
19 Luglio 2013 - Il Futuro della Televisione - Chiara Gallino - CSP
 
19 Luglio 2013 - Il Futuro della Televisione - Fabrizio Gramaglia, Finpiemonte
19 Luglio 2013 - Il Futuro della Televisione - Fabrizio Gramaglia, Finpiemonte19 Luglio 2013 - Il Futuro della Televisione - Fabrizio Gramaglia, Finpiemonte
19 Luglio 2013 - Il Futuro della Televisione - Fabrizio Gramaglia, Finpiemonte
 
Seminario ict agricoltura
Seminario ict agricolturaSeminario ict agricoltura
Seminario ict agricoltura
 
Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013
 

Último

Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
lorenzodemidio01
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
giorgiadeascaniis59
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
lorenzodemidio01
 

Último (19)

Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 

Csp@scuola uav corso1_lez3

  • 1. Programmazione Arduino e interfacciamento a moduli esterni Lezione 3 CSP@SCUOLA in collaborazione con ITI FAUSER NOVARA Anno scolastico 2011-2012
  • 2. Introduzione • Questa lezione si propone di fornire informazioni integrative per lo sviluppo su Arduino e di fornire concetti di base per: – Interfacciamento di Arduino a moduli di espansione – Sviluppo di applicazioni basate su di essi • Attraverso questi moduli e’ possibile realizzare payload funzionali complessi, da installare a bordo di un micro UAV • I moduli di espansione sono detti “shield” – Daughter board che si installano sugli header della scheda Arduino – Alimentati direttamente da Arduino – Interfacciamento solitamente tramite pin/porta seriale • In questa lezione verranno presentati alcuni shield di esempio: – SD card shield – GPS shield – Communicator shield Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 2
  • 3. Considerazioni sullo sviluppo su piattaforma Arduino (1/4) • Come già detto un programma generico per Arduino si suddivide in due sezioni – Setup => inizializzazione, singola esecuzione – Loop => vero programma eseguito ciclicamente da Arduino • Il loop è eseguito a ciclo continuo – Qualcosa come While(1) { loop() } – Cercate di evitare l’uso di cicli “globali” dentro la funzione loop se non strettamente necessari Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 3
  • 4. Considerazioni sullo sviluppo su piattaforma Arduino (2/4) • All’interno di ogni programma Arduino è possibile definire e richiamare delle funzioni, esattamente come avviene nel linguaggi o C Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 4
  • 5. Considerazioni sullo sviluppo su piattaforma Arduino (3/4) • E’ possibile sviluppare la stessa applicazione su più file pde – Non è necessaria nessuna inclusione esplicita – Devono essere dentro la medesima cartella – Il file principale implementa la funzione loop Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 5
  • 6. Considerazioni sullo sviluppo su piattaforma Arduino (4/4) • E’ possibile inoltre creare delle librerie – Collezioni di funzioni che possono essere utili a più programmi • Ad esempio librerie per gestire una interfaccia ethernet ecc • Qualsiasi applicativo può utilizzare le funzioni di una libreria includendone l’header Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 6
  • 7. Programmazione Arduino: approfondimenti utili • Programmazione a stati finiti (raccomandato): – http://zuccala.blogspot.com/2010/02/arduino-e- programmare-stati-finiti.html • Programmazione multitasking (raccomandato): – L’Arduino deve gestire in maniera temporizzata l’acquisizione dati da sensori diversi – Qui riferimenti utili: • http://zuccala.blogspot.com/2010/01/multitasking- arduino-millis-parte-1.html • http://zuccala.blogspot.com/2010/02/multitasking- arduino-millis-parte-2.html • Serializzazione (invio di strutture dati complesse tramite porta seriale) – Libreria: http://code.google.com/p/simpleserialization/ • Esempio di calcolo di un codice a ridondanza ciclica per garantire l’integrità dei dati (da aggiungere prima di una trasmissione seriale o di rete): http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1246539386 Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 7
  • 8. Arduino SD shield • Interfacciamento di scheda Arduino a modulo SD • Obiettivi: – Interfacciamento a dispositivo di massa capace di memorizzare dati acquisiti da sensori o eventi di sistema in maniera persistente – Accesso in lettura di dati memorizzati su un dispositivo SD con file system standard • Interfaccia seriale sincrona tra modulo Arduino e SD shield • Istruzioni dettagliate su utilizzo e installazione disponibili qui: http://www.cooking- hacks.com/index.php/documentation/tutorials/arduino-micro-sd Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 8
  • 9. Interfaccia seriale sincrona • Serial Peripheral Interface (SPI) – Comunicazione tra microcontrollore e periferica – Comunicazione tra microcontrollori • Dispositivo master=microcontrollore, dispositivo slave=periferica • La comunicazione avviene attraverso 3 linee: – Master In Slave Out (MISO), linea usata dal dispositivo slave per comunicare con il master – Master Out Slave In (MOSI), linea usata dal dispositivo master per comunicare con lo slave – Segnale di clock seriale (CLK), impulso che sincronizza la trasmissione dati generato dal master • Ogni periferica seriale sincrona ha un pin di selezione che la abilita – Slave Selector (SS) • L’ambiente di sviluppo Arduino fornisce una libreria per la gestione a basso livello della SPI – http://arduino.cc/en/Reference/SPI Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 9
  • 10. Interfaccia seriale sincrona: connessioni (1/2) 1 SCK 5V MISO MOSI RESET GND Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 10
  • 11. Interfaccia seriale sincrona: connessioni (2/2) • I pin ISP sono riportati su altri pin dell’header – In questo modo è possibile installare sull’arduino più shield che non potrebbero combinarsi meccanicamente fra loro altrimenti – La porta resta comunque unica • Arduino Uno/diecimila/duemilanove – SS => 10 (abilita l’uso dell’Arduino come slave) – MOSI => 11 – MISO => 12 – SCK => 13 • Arduino Mega – SS => 53 (abilita l’uso dell’Arduino come slave) – MOSI => 51 – MISO => 50 – SCK => 52 Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 11
  • 12. Arduino SD shield: libreria • L’ambiente di sviluppo Arduino fornisce una libreria per la gestione di una scheda SD formattata con il file system FAT16 o FAT32 e supporta anche SDHC • Libreria SD – Metodi di gestione begin, read, write print, close, available... – Documentazione qui: • http://arduino.cc/en/Reference/SD • NOTA: il processore Atmega dell’Arduino possiede un pin SS per essere utilizzato come slave. Anche se nell’interazione con lo shield SD l’Arduino ha il ruolo di master, il pin SS dell’Atmega deve essere comunque inizializzato a pin digitale di output – Arduino Mega => pinmode(53, OUTPUT); – Arduino => pinmode(10, OUTPUT); Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 12
  • 13. Arduino SD shield: esempio • Esempio di programma: Il pin SS dell’SD shield deve essere connesso al pin digitale 53 dell’Arduino Mega Creazione o apertura del file “test4.txt” sul file system della scheda SD Scrittura del file sulla scheda SD. L’invocazione alla close finalizza la scrittura Finchè ci sono dati sulla scheda SD (available) verranno inviati al PC tramite la porta seriale Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 13
  • 14. Modulo GPS per Arduino • Modulo GPS prodotto da Libelium • Le stringhe NMEA sono disponibili su interfaccia seriale – Default baud rate 4800 baud • Basato su Vincotech A1080-b – Il modulo adatta i livelli elettrici del ricevitore Vincotech alla seriale Arduino – 1 aggiornamento al secondo • Alimentazione da scheda Arduino mediante cavetti Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 14
  • 15. Modulo GPS per Arduino: esempio d’uso Interfaccia seriale 3 Alimentazione (5V) • Informazioni dettagliate sul modulo disponibili qui: http://www.cooking-hacks.com/index.php/gps-module-for-arduino.html Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 15
  • 16. Modulo Vincotech A1080-b (1/2) • Supporta la maggior parte delle stringhe NMEA di uso comune: – GGA, GSA, VTG, RMC, GSV e GLL • Mette a disposizione un protocollo di configurazione basato su messaggi inviati tramite la porta seriale a cui è collegato – Permette di cambiare baud rate, richiedere specifiche stringhe NMEA ecc • L’Arduino tramite la seriale invia opportuni comandi di configurazione e ottiene risposte dal modulo Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 16
  • 17. Vincotech A1080-b (2/2) • Questi messaggi servono a modificare il comportamento base – Di default il modulo si avvia con un buad rate 4800 e invia una volta al secondo le più comuni stringhe NMEA • Esempi di messaggi di riconfigurazione del modulo GPS: – $PSRF100,0,9600,8,1,0*0C • Imposta il baud rate a 9600 • 8N1 (8 bit di dato, no bit di parità, 1 bit di stop) – $PSRF101,0,0,0,0,0,0,12,4*10 • Reset del modulo GPS – $PSRF103,0,1,0,1,*25 • Esegue la query di una stringa GGA • A seconda dei parametri il PSRF103 permette di effettuare la query di una qualsiasi stringa NMEA o di impostare il rate per l’invio automatico • Ulteriori informazioni disponibili qui: http://www.cooking- hacks.com/skin/frontend/default/cooking/pdf/GPS_Firmware_GSC3 _3.5.0_V4.2.pdf Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 17
  • 18. Modulo GPS: gestione avanzata dei dati • Il GPS può essere gestito come un qualsiasi dispositivo seriale • Tuttavia essendo un componente “standard” esistono librerie per semplificarne l’utilizzo • Libreria TinyGPS – http://arduiniana.org/libraries/tinygps/ • Semplifica la gestione delle stringhe NMEA nelle applicazioni – Modulo di parsing completo per le stringhe NMEA più comuni – Verifica automaticamente se il fix di posizione è valido – Esegue automaticamente la verifica dell’integrità della stringa – Fornisce delle funzioni per ottenere direttamente dalle stringhe le informazioni di posizione, velocità ecc Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 18
  • 19. TinyGPS: esempio di utilizzo 1) Includere la libreria 2) Istanziare l’oggetto GPS Il metodo encode analizza Nell’esempio il modulo GPS byte per byte i dati è connesso alla seriale 1. I ricevuti e se riconosce una dati letti saranno inviati stringa NMEA valida sulla seriale 0 ritorna un valore>0 Per debug tutto quanto viene ricevuto è comunque inviato sulla seriale 0 Il metodo get_position attinge ai dati memorizzati dalla funzione encode per ottenere le informazioni richieste • Per ulteriori informazioni sugli altri metodi della libreria si faccia riferimento a http://arduiniana.org/libraries/tinygps/ Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 19
  • 20. Communication shield • Progettato originariamente per connettere un modulo Zigbee a una scheda Arduino, è stato successivamente per connettere vari altri moduli • Fornisce una interfaccia completa, garantendo la corretta alimentazione del modulo installato • http://arduino.cc/it/Main/ArduinoXbeeShield Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 20
  • 21. Communicator shield: principali moduli supportati Modulo wifi: consente l’interfacciamento con una rete IEEE 802.11 Modulo RFID permette di utilizzare l’Arduino come modulo RFID per rilevare il passaggio in prossimità di ricevitori RFID Modulo Bluetooth Modulo Xbee: permette l’interfacciamento a una rete Zigbee (IEEE 802.15.4). Sarà oggetto della prossima lezione Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 21
  • 22. Communicator shield: considerazioni • Il dispositivo installato nello shield comunica con la scheda Arduino attraverso l’interfaccia seriale 0 – La porta seriale 0 è accessibile: • Attraverso i pin in alto a sinistra nell’header dell’Arduino base – (a cui si connette lo shield) • Tramite la porta USB • La porta seriale 0 è la stessa usata per programmare il dispositivo • Se la seriale è usata dal dispositivo montato sul modulo, la scheda Arduino non può essere riprogrammata attraverso la porta USB, poichè questa è la seriale 0 • Per ovviare al problema sullo shield sono presenti due jumper: – Jumper entrambi in posizione “USB”=> la porta seriale 0 può essere usata per la programmazione dell’Arduino – Jumper entrambi in posizione “xbee” => la porta seriale 0 è connessa al dispositivo montato sullo shield e non può esssere usata per la programmazione Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 22
  • 23. Interfacciamento di più shield a una scheda Arduino • Esempio: • Shield SD => pin 50,51,52,53 (rilancio ICSP) • Shield GPS => Seriale 3 Lezione 3: programmazione Arduino e interfacciamento a moduli esterni 23
  • 24. www.csp.it rd.csp.it CSP ICT Innovation Livio Torrero livio.torrero@csp.it Registered and Central Offices Environment Park - Laboratori A1 via Livorno 60 - 10144 Torino Tel +39 011 4815111 Fax +39 011 4815001 E-mail: marketing@csp.it Lezione 3: piattaforma Arduino 24