SlideShare a Scribd company logo
1 of 20
Download to read offline
Piattaforma Arduino per applicazioni UAV:
concetti base

Lezione 2




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




               •    Questa lezione introduce la piattaforma Arduino fornendo linee
                    guida per l’utilizzo e lo sviluppo

               •    La piattaforma Arduino è utilizzata attivamente per progetti di
                    vario genere
                     – Robotica, automazione domestica

               •    La piattaforma Arduino verrà presentata per quanto riguarda:
                     – Hardware
                     – Ambiente di sviluppo
                     – Concetti base per la programmazione

               •    La piattaforma Arduino può essere utilizzata per realizzare payload
                    funzionali per UAV di classe micro
                     – La lezione e le successive forniscono concetti base per lo
                        sviluppo applicativo




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                       2
Concetti generali



               •    La piattaforma Arduino consiste di due componenti essenziali
                     – Scheda hardware dotata di microprocessore
                     – Ambiente di sviluppo

               •    Le schede Arduino sono basate su processori della famiglia Atmega

               •    L’ambiente di sviluppo dedicato e liberamente scaricabile consente
                    un facile approccio alla programmazione

               •    Le schede Arduino si basano su una architettura semplice molto
                    utile a fini didattici

               •    E’ possibile integrare nell’ambiente di sviluppo con facilità librerie
                    sviluppate anche da terzi che estendono le funzionalità originali
                    della scheda




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                          3
Schede Arduino: Arduino UNO


               •    Basata su Atmega 328 (memoria flash da 32KB)
                     – Processore a 8bit, clock 16MHz
               •    2KB di RAM integrati
               •    1KB EEPROM
               •    14 pin digitali (input/output) di cui 6 possono essere usati in PWM
                     – PWM => pulse width modulation => per esempio, pliotaggio
                         servomotori
               •    5 ingressi analogici => lettura di sensori di temperatura,
                    pressione...
               •    Porta USB




               •    Ulteriori informazioni disponibili qui:
                     http://arduino.cc/en/Reference/HomePage


Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                       4
Arduino UNO: interfacce seriali


               •    La porta USB è l’unica interfaccia seriale presente sulla scheda
                    Arduino UNO




               •    La stessa porta seriale è accessibile alternativamente tramite due
                    pin negli header della scheda
                     – I pin 1 e 0 marcati TX e RX servono a questo

               •    I pin che “rilanciano” la seriale operano in logica TTL 5V
                      – Occorre tenerne conto quando si realizzano interfacce verso
                         altri dispositivi
                      – Es. dispositivi TTL 1.8V o TTL 3.3V

Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                      5
Schede Arduino: Arduino Mega 2560



               •    La scheda Arduino Mega 2560 rappresenta una versione evoluta
                    della Arduino UNO
                     – Più interfacce, più memoria

               •    Basata sul processore Atmega 2560 (memoria flash da 256 KB)
                     – 16 MHz, 8 bit
               •    4 interfacce seriali hardware (TTL 5V)
               •    Analog to Digital Converter (ADC) con tensione di riferimento
                    configurabile
               •    54 pin di I/O digitale (di cui output 14 PWM), 16 pin analogici
               •    RAM: 8 KB, EEPROM: 4 KB




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                   6
Ambiente di sviluppo



               •    L’ambiente di sviluppo è un tool grafico che permette di
                    programmare le schede Arduino

               •    I programmi utente (detti sketch) sono realizzati in linguaggio C e
                    possono sfruttare le librerie dedicate per utilizzare le funzionalità
                    dell’hardware
                      – Semplice da programmare
                      – Si possono riadattare programmi già esistenti

               •    La programmazione avviene direttamente grazie alla interfaccia
                    USB

               •    L’ambiente di sviluppo è disponibile per tutti i principali sistemi
                    operativi
                     – Windows, Mac OS e Linux




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                         7
Ambiente di sviluppo: interfaccia


    Tasto di
    compilazione:
    compila il codice                                                         Terminale seriale: usato
                                                                              solitamente per scopo di
                                                                              Debug permette di vedere i
                                                                              byte inviati dalla scheda sulla
                                                                              porta USB e di inviare a
                                                                              propria volta dei byte


                                                                             Tasto di upload: compila e
                                                                             carica il codice sulla scheda
                                                                             Arduino collegata
   Finestra di codice: qui
   l’utente scrive il codice
   da far eseguire alla
   scheda




Finestra degli eventi:
qui vengono fornite
informazioni su errori o
successo nella varie
operazioni
(compilazione o upload
fallito)
       Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                                      8
Programmazione Arduino: concetti base (1/2)



               •    Le schede Arduino sono programmabili utilizzando un linguaggio
                    basato su C/C++
                     – Viene effettuato un link con le librerie AVR libc prima
                        dell’upload
                     – Manuale della libreria AVR libc =>
                        http://www.nongnu.org/avr-libc/user-manual/index.html
                     – Reference di programmazione Arduino =>
                        http://www.arduino.cc/en/Reference/HomePage

               •    Ogni programma eseguito su Arduino si divide in due sezioni:
                     – Setup
                     – Loop

               •    Sono entrambe funzioni

               •    La funzione “setup” viene                     eseguita   una   sola   volta   alla
                    inizializzazione della scheda

               •    La funzione “loop” viene invece eseguita in ciclo continuo e
                    rappresenta la funzione svolta dalla scheda


Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                                      9
Programmazione Arduino: concetti base (2/2)



               •    Essendo basato su C/C++, il linguaggio di programmazione
                    Arduino ne eredita i costrutti base:
                     – if, else
                     – for
                     – while
                     – switch, case
                     – do, while

               •    Sono supportati i seguenti tipi elementari, fra cui:
                     – char
                     – byte, valore senza segno su 1 byte
                     – int (signed e unsigned su 2 byte)
                     – long (interi su 4 byte, signed e unsigned)




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base            10
Piattaforma Arduino: pin digitali



               •    I pin digitali possono essere utilizzati sia come input che come
                    output
                      – Possono essere usati per comandare dispositivi ON/OFF
                           • Led..
                      – Possono essere utilizzati per leggere segnali digitali esterni

               •    Quando si vuole utilizzare un pin digitale occorre:
                     – Prima di tutto inizializzarlo
                         • Istruzione “pinmode” nella funzione setup
                         • Specifica se input o output
                     – Quindi se ne può leggere o settare il valore, a seconda di come
                       è stato inizializzato
                         • digitalRead(pin_number)
                         • digitalWrite(pin_number)

               •    Queste funzioni fanno parte della libreria base di Arduino e non è
                    richiesta alcuna inclusione tramite il comando “#include”




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                      11
Piattaforma Arduino: pin digitali, esempio



               •    Da http://arduino.cc/en/Reference/DigitalRead




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base   12
Piattaforma Arduino: pin analogici




            •     I pin analogici vengono comunemente utilizzati per interfacciare
                  una scheda Arduino a un sensore analogico

            •     I sensori utilizzati normalmente producono una variazione di
                  tensione proporzionale alla grandezza misurata

            •     I pin analogici, a differenza dei digitali non devono essere
                  inizializzati

            •     Semplicemente:
                   – Si legge il valore mediante l’istruzione
                     analogRead(pin_number)
                   – Si imposta il valore mediante l’istruzione
                     analogWrite(pin_number)




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                  13
Considerazioni sui pin analogici


               •    Ogni scheda Arduino contiene un convertitore ADC (analog digital
                    converter) a 10 bit
                     – 6 canali sulla scheda Arduino base, 16 sulla scheda Arduino
                        Mega

               •    L’ADC converte un livello di tensione compreso tra 0 e 5V in un
                    valore numerico compreso tra 0 e 1023 (210-1 = 1023)
                     – Operazione eseguita a ogni invocazione di analogRead()

               •    La risoluzione per unità è quindi:
                                               5
                                                  = 0, 0049 ≅ 50mV
                                             1024
               •    Tuttavia questo valore di risoluzione è valido solamente se il
                    sensore collegato ha una dinamica [0,5V]

               •    Altrimenti occorre cambiare la tensione di riferimento utilizzando
                    l’istruzione analogReference()
                      – Con questa istruzione è possibile ad esempio impostare una
                          tensione di riferimento a 2.5V (per sensori con dinamica [0,
                          2.5]V)
                      – In questo modo i 210=1024 valori generati dall’ADC a 10 bit
                          saranno mappati uniformemente su valori di tensione
                          nell’intervallo [0, 2.5]V

Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                      14
AnalogReference()



               •    La funzione AnalogReference consente di cambiare il valore di
                    riferimento della tensione per l’ADC

               •    Ha in ingresso un parmetro che può essere impostato a:
                     – DEFAULT => 5V per le schede Arduino usate nel corso
                     – INTERNAL => solo su Arduino uno (Atmega 328) imposta la
                        tensione di riferimento a 1.1V
                     – INTERNAL1V1 => riferimento a 1.1V (solo Arduino Mega)
                     – INTERNAL2V56 => riferimento a 2.56V (solo Arduino Mega)
                     – EXTERNAL => tensione di riferimento sul pin AREF (fra 0 e 5V)




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                    15
Interfacce seriali



               •    L’interfaccia seriale permette all’Arduino di comunicare            con
                    dispositivi esterni
                     – PC, dispositivi come GPS, moduli per schede SD card ecc

               •    Tutte le schede Arduino dispongono di almeno una interfaccia
                    seriale
                     – Porta USB    pin digitali TX/RX

               •    Per utilizzare la porta seriale occorre:
                     – Inizializzarla invocando l’istruzione          “Serial.begin”   nella
                        funzione setup()

                      – All’interno della funzione loop:
                          • Se si desidera scrivere sulla porta seriale si utilizza la
                              funzione Serial.write(<dati da inviare>)
                                – I dati potranno essere una stringa o una variabile
                                – I dati passati come parametro all’istruzione saranno
                                   inviati al dispositivo collegato all’Arduino tramite
                                   seriale
                          • Se si desidera leggere occorre utilizzare un paradigma più
                              complesso che sarà discusso nel seguito

Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                            16
Interfacce seriali: lettura



               •    Ogni scheda Arduino possiede un buffer di ingresso sulla porta
                    seriale
                     – I dati vengono accodati su questo buffer non appena sono
                         ricevuti
                     – La dimensione è di 128 byte

               •    Quando i dati sono ricevuti vengono memorizzati nel buffer, in
                    attesa che i programma utente li richiede, o che vengano
                    sovrascritti da altri dati

               •    La procedura di lettura si svolge quindi solitamente in due fasi

               •    All’interno del loop:
                     – Si esegue una chiamata alla funzione “Serial.available()”
                            • Questa funzione restituisce il numero di byte memorizzati
                               nel buffer di ingresso
                     – Se il numero di byte nel buffer è maggiore di zero, si esegue la
                          lettura invocando l’istruzione “Serial.read()”




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                       17
Lettura da interfaccia seriale: esempio



               •    Da http://arduino.cc/en/Serial/Read:




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base   18
Arduino Mega: gestione interfacce seriali



               •    Le schede Arduino Mega si distinguono dalle altre anche per la
                    presenza di 4 porte seriali hardware invece di una sola

               •    Sono indicate rispettivamente come:
                     – Serial1, Serial2,Serial3

               •    Sono gestite esattamente come la seriale di default:
                     – Es.: Serial1.read()
                            Serial1.available()

               •    ATTENZIONE: benchè tutte le seriali sono gestite allo stesso modo,
                    la porta “zero” (Serial), si distingue per il comportamento alla
                    connessione
                      – Connettendo un dispositivo alla porta USB, l’Arduino si riavvia
                      – Questo comportamento è legato al fatto che la scheda deve
                         poter essere programmata via USB
                      – Per poter caricare nuovo software, l’Arduino deve per forza
                         riavviarsi




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base                       19
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

       Operational Offices
       Villa Gualino - Viale Settimio Severo 63
       10133 Torino

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




Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base   20

More Related Content

What's hot

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
 
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 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4
Michele Maffucci
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6
Michele Maffucci
 
Alfabeto di Arduino - lezione 3
Alfabeto di Arduino - lezione 3Alfabeto di Arduino - lezione 3
Alfabeto di Arduino - lezione 3
Michele Maffucci
 

What's hot (20)

Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
 
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Lezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 oreLezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 ore
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1
 
Corso arduino base
Corso arduino baseCorso arduino base
Corso arduino base
 
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
 
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...
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progetti
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4
 
CoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 ArduinoCoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 Arduino
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su Arduino
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6
 
Alfabeto di Arduino - lezione 3
Alfabeto di Arduino - lezione 3Alfabeto di Arduino - lezione 3
Alfabeto di Arduino - lezione 3
 

Viewers also liked

2020 Best CIO Acceptance Speech
2020 Best CIO Acceptance Speech2020 Best CIO Acceptance Speech
2020 Best CIO Acceptance Speech
Anupam Kundu
 
Research proposal m macri
Research proposal m macriResearch proposal m macri
Research proposal m macri
macrim5
 
Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013
CSP Scarl
 

Viewers also liked (20)

Small Business Effective Digital Presence
Small Business Effective Digital PresenceSmall Business Effective Digital Presence
Small Business Effective Digital Presence
 
Drop, Stop & Roll
Drop, Stop & RollDrop, Stop & Roll
Drop, Stop & Roll
 
Digital agency founders talk
Digital agency founders talkDigital agency founders talk
Digital agency founders talk
 
21019056
2101905621019056
21019056
 
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
 
Travelling
TravellingTravelling
Travelling
 
La cultura maya
La cultura mayaLa cultura maya
La cultura maya
 
Escher
EscherEscher
Escher
 
2020 Best CIO Acceptance Speech
2020 Best CIO Acceptance Speech2020 Best CIO Acceptance Speech
2020 Best CIO Acceptance Speech
 
Dasar html
Dasar htmlDasar html
Dasar html
 
TOSM 2011 - I Media nel cambiamento
TOSM 2011 - I Media nel cambiamentoTOSM 2011 - I Media nel cambiamento
TOSM 2011 - I Media nel cambiamento
 
astronomia in-rete-cielo@scuola
astronomia in-rete-cielo@scuola astronomia in-rete-cielo@scuola
astronomia in-rete-cielo@scuola
 
Volo credentials november 2015 sc
Volo credentials   november 2015 scVolo credentials   november 2015 sc
Volo credentials november 2015 sc
 
Research proposal m macri
Research proposal m macriResearch proposal m macri
Research proposal m macri
 
Customer journey
Customer journeyCustomer journey
Customer journey
 
Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013Datidalle cose digitalfestival2013
Datidalle cose digitalfestival2013
 
Barkloudly pitch-shelters and rescues slideshare
Barkloudly pitch-shelters and rescues slideshareBarkloudly pitch-shelters and rescues slideshare
Barkloudly pitch-shelters and rescues slideshare
 
Toyota Kata Im
Toyota Kata ImToyota Kata Im
Toyota Kata Im
 
Rascacielos
RascacielosRascacielos
Rascacielos
 
Overview-ISAC
Overview-ISACOverview-ISAC
Overview-ISAC
 

Similar to Csp@scuola uav corso1_lez2

Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele Costarella
 
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
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Riccardo Lemmi
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informatica
Gianni Locatelli
 

Similar to Csp@scuola uav corso1_lez2 (20)

Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
Raspberry
RaspberryRaspberry
Raspberry
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86
 
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
 
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
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007
 
Arduino wifi logger node
Arduino wifi logger nodeArduino wifi logger node
Arduino wifi logger node
 
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
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informatica
 
OpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCLOpenCL - Introduzione al framework OpenCL
OpenCL - Introduzione al framework OpenCL
 
ECDL Modulo 1
ECDL Modulo 1 ECDL Modulo 1
ECDL Modulo 1
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 

More from 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
 

More from 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
 
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 ...
 
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
 

Recently uploaded

case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
giorgiadeascaniis59
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
lorenzodemidio01
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
sasaselvatico
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
lorenzodemidio01
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
nico07fusco
 

Recently uploaded (17)

TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
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
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 

Csp@scuola uav corso1_lez2

  • 1. Piattaforma Arduino per applicazioni UAV: concetti base Lezione 2 CSP@SCUOLA in collaborazione con ITI FAUSER NOVARA Anno scolastico 2011-2012
  • 2. Introduzione • Questa lezione introduce la piattaforma Arduino fornendo linee guida per l’utilizzo e lo sviluppo • La piattaforma Arduino è utilizzata attivamente per progetti di vario genere – Robotica, automazione domestica • La piattaforma Arduino verrà presentata per quanto riguarda: – Hardware – Ambiente di sviluppo – Concetti base per la programmazione • La piattaforma Arduino può essere utilizzata per realizzare payload funzionali per UAV di classe micro – La lezione e le successive forniscono concetti base per lo sviluppo applicativo Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 2
  • 3. Concetti generali • La piattaforma Arduino consiste di due componenti essenziali – Scheda hardware dotata di microprocessore – Ambiente di sviluppo • Le schede Arduino sono basate su processori della famiglia Atmega • L’ambiente di sviluppo dedicato e liberamente scaricabile consente un facile approccio alla programmazione • Le schede Arduino si basano su una architettura semplice molto utile a fini didattici • E’ possibile integrare nell’ambiente di sviluppo con facilità librerie sviluppate anche da terzi che estendono le funzionalità originali della scheda Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 3
  • 4. Schede Arduino: Arduino UNO • Basata su Atmega 328 (memoria flash da 32KB) – Processore a 8bit, clock 16MHz • 2KB di RAM integrati • 1KB EEPROM • 14 pin digitali (input/output) di cui 6 possono essere usati in PWM – PWM => pulse width modulation => per esempio, pliotaggio servomotori • 5 ingressi analogici => lettura di sensori di temperatura, pressione... • Porta USB • Ulteriori informazioni disponibili qui: http://arduino.cc/en/Reference/HomePage Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 4
  • 5. Arduino UNO: interfacce seriali • La porta USB è l’unica interfaccia seriale presente sulla scheda Arduino UNO • La stessa porta seriale è accessibile alternativamente tramite due pin negli header della scheda – I pin 1 e 0 marcati TX e RX servono a questo • I pin che “rilanciano” la seriale operano in logica TTL 5V – Occorre tenerne conto quando si realizzano interfacce verso altri dispositivi – Es. dispositivi TTL 1.8V o TTL 3.3V Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 5
  • 6. Schede Arduino: Arduino Mega 2560 • La scheda Arduino Mega 2560 rappresenta una versione evoluta della Arduino UNO – Più interfacce, più memoria • Basata sul processore Atmega 2560 (memoria flash da 256 KB) – 16 MHz, 8 bit • 4 interfacce seriali hardware (TTL 5V) • Analog to Digital Converter (ADC) con tensione di riferimento configurabile • 54 pin di I/O digitale (di cui output 14 PWM), 16 pin analogici • RAM: 8 KB, EEPROM: 4 KB Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 6
  • 7. Ambiente di sviluppo • L’ambiente di sviluppo è un tool grafico che permette di programmare le schede Arduino • I programmi utente (detti sketch) sono realizzati in linguaggio C e possono sfruttare le librerie dedicate per utilizzare le funzionalità dell’hardware – Semplice da programmare – Si possono riadattare programmi già esistenti • La programmazione avviene direttamente grazie alla interfaccia USB • L’ambiente di sviluppo è disponibile per tutti i principali sistemi operativi – Windows, Mac OS e Linux Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 7
  • 8. Ambiente di sviluppo: interfaccia Tasto di compilazione: compila il codice Terminale seriale: usato solitamente per scopo di Debug permette di vedere i byte inviati dalla scheda sulla porta USB e di inviare a propria volta dei byte Tasto di upload: compila e carica il codice sulla scheda Arduino collegata Finestra di codice: qui l’utente scrive il codice da far eseguire alla scheda Finestra degli eventi: qui vengono fornite informazioni su errori o successo nella varie operazioni (compilazione o upload fallito) Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 8
  • 9. Programmazione Arduino: concetti base (1/2) • Le schede Arduino sono programmabili utilizzando un linguaggio basato su C/C++ – Viene effettuato un link con le librerie AVR libc prima dell’upload – Manuale della libreria AVR libc => http://www.nongnu.org/avr-libc/user-manual/index.html – Reference di programmazione Arduino => http://www.arduino.cc/en/Reference/HomePage • Ogni programma eseguito su Arduino si divide in due sezioni: – Setup – Loop • Sono entrambe funzioni • La funzione “setup” viene eseguita una sola volta alla inizializzazione della scheda • La funzione “loop” viene invece eseguita in ciclo continuo e rappresenta la funzione svolta dalla scheda Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 9
  • 10. Programmazione Arduino: concetti base (2/2) • Essendo basato su C/C++, il linguaggio di programmazione Arduino ne eredita i costrutti base: – if, else – for – while – switch, case – do, while • Sono supportati i seguenti tipi elementari, fra cui: – char – byte, valore senza segno su 1 byte – int (signed e unsigned su 2 byte) – long (interi su 4 byte, signed e unsigned) Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 10
  • 11. Piattaforma Arduino: pin digitali • I pin digitali possono essere utilizzati sia come input che come output – Possono essere usati per comandare dispositivi ON/OFF • Led.. – Possono essere utilizzati per leggere segnali digitali esterni • Quando si vuole utilizzare un pin digitale occorre: – Prima di tutto inizializzarlo • Istruzione “pinmode” nella funzione setup • Specifica se input o output – Quindi se ne può leggere o settare il valore, a seconda di come è stato inizializzato • digitalRead(pin_number) • digitalWrite(pin_number) • Queste funzioni fanno parte della libreria base di Arduino e non è richiesta alcuna inclusione tramite il comando “#include” Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 11
  • 12. Piattaforma Arduino: pin digitali, esempio • Da http://arduino.cc/en/Reference/DigitalRead Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 12
  • 13. Piattaforma Arduino: pin analogici • I pin analogici vengono comunemente utilizzati per interfacciare una scheda Arduino a un sensore analogico • I sensori utilizzati normalmente producono una variazione di tensione proporzionale alla grandezza misurata • I pin analogici, a differenza dei digitali non devono essere inizializzati • Semplicemente: – Si legge il valore mediante l’istruzione analogRead(pin_number) – Si imposta il valore mediante l’istruzione analogWrite(pin_number) Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 13
  • 14. Considerazioni sui pin analogici • Ogni scheda Arduino contiene un convertitore ADC (analog digital converter) a 10 bit – 6 canali sulla scheda Arduino base, 16 sulla scheda Arduino Mega • L’ADC converte un livello di tensione compreso tra 0 e 5V in un valore numerico compreso tra 0 e 1023 (210-1 = 1023) – Operazione eseguita a ogni invocazione di analogRead() • La risoluzione per unità è quindi: 5 = 0, 0049 ≅ 50mV 1024 • Tuttavia questo valore di risoluzione è valido solamente se il sensore collegato ha una dinamica [0,5V] • Altrimenti occorre cambiare la tensione di riferimento utilizzando l’istruzione analogReference() – Con questa istruzione è possibile ad esempio impostare una tensione di riferimento a 2.5V (per sensori con dinamica [0, 2.5]V) – In questo modo i 210=1024 valori generati dall’ADC a 10 bit saranno mappati uniformemente su valori di tensione nell’intervallo [0, 2.5]V Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 14
  • 15. AnalogReference() • La funzione AnalogReference consente di cambiare il valore di riferimento della tensione per l’ADC • Ha in ingresso un parmetro che può essere impostato a: – DEFAULT => 5V per le schede Arduino usate nel corso – INTERNAL => solo su Arduino uno (Atmega 328) imposta la tensione di riferimento a 1.1V – INTERNAL1V1 => riferimento a 1.1V (solo Arduino Mega) – INTERNAL2V56 => riferimento a 2.56V (solo Arduino Mega) – EXTERNAL => tensione di riferimento sul pin AREF (fra 0 e 5V) Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 15
  • 16. Interfacce seriali • L’interfaccia seriale permette all’Arduino di comunicare con dispositivi esterni – PC, dispositivi come GPS, moduli per schede SD card ecc • Tutte le schede Arduino dispongono di almeno una interfaccia seriale – Porta USB pin digitali TX/RX • Per utilizzare la porta seriale occorre: – Inizializzarla invocando l’istruzione “Serial.begin” nella funzione setup() – All’interno della funzione loop: • Se si desidera scrivere sulla porta seriale si utilizza la funzione Serial.write(<dati da inviare>) – I dati potranno essere una stringa o una variabile – I dati passati come parametro all’istruzione saranno inviati al dispositivo collegato all’Arduino tramite seriale • Se si desidera leggere occorre utilizzare un paradigma più complesso che sarà discusso nel seguito Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 16
  • 17. Interfacce seriali: lettura • Ogni scheda Arduino possiede un buffer di ingresso sulla porta seriale – I dati vengono accodati su questo buffer non appena sono ricevuti – La dimensione è di 128 byte • Quando i dati sono ricevuti vengono memorizzati nel buffer, in attesa che i programma utente li richiede, o che vengano sovrascritti da altri dati • La procedura di lettura si svolge quindi solitamente in due fasi • All’interno del loop: – Si esegue una chiamata alla funzione “Serial.available()” • Questa funzione restituisce il numero di byte memorizzati nel buffer di ingresso – Se il numero di byte nel buffer è maggiore di zero, si esegue la lettura invocando l’istruzione “Serial.read()” Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 17
  • 18. Lettura da interfaccia seriale: esempio • Da http://arduino.cc/en/Serial/Read: Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 18
  • 19. Arduino Mega: gestione interfacce seriali • Le schede Arduino Mega si distinguono dalle altre anche per la presenza di 4 porte seriali hardware invece di una sola • Sono indicate rispettivamente come: – Serial1, Serial2,Serial3 • Sono gestite esattamente come la seriale di default: – Es.: Serial1.read() Serial1.available() • ATTENZIONE: benchè tutte le seriali sono gestite allo stesso modo, la porta “zero” (Serial), si distingue per il comportamento alla connessione – Connettendo un dispositivo alla porta USB, l’Arduino si riavvia – Questo comportamento è legato al fatto che la scheda deve poter essere programmata via USB – Per poter caricare nuovo software, l’Arduino deve per forza riavviarsi Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 19
  • 20. 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 Operational Offices Villa Gualino - Viale Settimio Severo 63 10133 Torino Tel +39 011 4815111 Fax +39 011 4815001 E-mail: marketing@csp.it Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 20