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

Csp@scuola uav corso1_lez2

  • 1.
    Piattaforma Arduino perapplicazioni 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: ArduinoUNO • 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: interfacceseriali • 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: ArduinoMega 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: concettibase (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: concettibase (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: pindigitali • 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: pindigitali, esempio • Da http://arduino.cc/en/Reference/DigitalRead Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 12
  • 13.
    Piattaforma Arduino: pinanalogici • 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 pinanalogici • 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 interfacciaseriale: esempio • Da http://arduino.cc/en/Serial/Read: Lezione 2 - piattaforma Arduino per applicazioni UAV: concetti base 18
  • 19.
    Arduino Mega: gestioneinterfacce 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