SlideShare uma empresa Scribd logo
1 de 21
Introduzione ad Arduino




           Lunedì 17 Ottobre 2011

         Mauro Bolis <mauro@bazingalabs.it>
      Emanuele Brivio <emanuele@bazingalabs.it>
       Simone Lusenti <simone@bazingalabs.it>


                                                  © 2011 Bazinga Labs
                       1
Cos’è Arduino? (1)

•   “Arduino is an open-source electronics prototyping platform based on
    flexible, easy-to-use hardware and software”

•   Derivato da Wiring (http://wiring.org.co)

•   Può ricevere input da sensori collegati

•   Può controllare l’ambiente circostante

•   Microcontrollore programmabile (ATmega168)

•   Programmazione in un linguaggio basato su C e simile a Processing
    (Language reference: http://cuttr.it/mj5h2)



                                         2
Cos’è Arduino? (2)

“Physical Computing is about prototyping with electronics: turning sensors, actuators
and microcontrollers into materials for designers and artists.”


“It involves the design of smart objects that can communicate with humans using
sensors and actutors controlled by a behaviour implemented as software running inside a
microcontroller.”

                                                   Massimo Banzi, Tinker.it & Arduino Co-Founder




                                            3
Perché Arduino? (1)
•   Prototipi low-cost (circa 22€ per Arduino Uno), installazioni e oggetti
    interattivi

•   Semplice da programmare (es: no gestione memoria, ...)

•   Board Shields (Estensioni):

    -   WiFi/Bluetooth/Ethernet

    -   ZigBee

    -   Servo

    -   SD Card


                                         4
Perché Arduino? (2)

•   Nessuna saldatura richiesta con Arduino Novemila/Diecimila/Uno

•   Montaggio su Breadboard

•   Disponibili versioni per sistemi Embedded




                                       5
Perché Arduino? (3)

•   Made in Italy

•   Open source hardware & software:

    -   disegni CAD

    -   schemi circuiti

    -   sorgenti IDE

•   Facilmente integrabile in sistemi più complessi




                                        6
Programmare Arduino (1)


•   Connessione via USB a un computer (OS X/Linux/Windows), rilevato come
    porta seriale (adattatore FTDI integrato)

•   L’IDE è già predisposto per compilare il sorgente ed effettuare l’upload sul
    microcontrollore

•   Nessun hardware aggiuntivo grazie al Bootloader AVR ISP

•   Il cavo USB/Seriale può essere scollegato una volta effettuato l’upload




                                        7
Programmare Arduino (2)

•   Microcontrollore ATmega168
    Flash 16k bytes (of which 2k is used for the bootloader)
    SRAM   1024 bytes
    EEPROM 512 bytes


•   14 KB per memorizzare il programma (compilato)

•   1024 B SRAM per memorizzare le variabili (incluse eventuali stringhe)

•   512 B EEPROM per memorizzare dati persistenti (numero limitato di cicli di
    scrittura, ogni scrittura di 1 Byte impiega 3.3ms)




                                         8
Programmare Arduino (3)
                                    Input/Output


•   Pin digitali

    -   ogni pin può fungere da ingresso o uscita, per selezionare:
        pinMode(pinNumber, INPUT|OUTPUT)


    -   ingresso: lettura stato logico (0-5V), elevata resistenza in serie (100MΩ),
        bassa corrente.

    -   uscita: stato logico H/L, bassa resistenza, corrente max 40mA. Collegare
        in serie una resistenza da almeno 470Ω per evitare di rovinare pin/µC.

    -   lettura dello stato del pin: val   = digitalRead(pinNumber)


    -   impostazione dello stato del pin: digitalWrite(pinNumber,     LOW|HIGH)



                                              9
Programmare Arduino (4)
                                      Input/Output


•   Pin analogici:

    -   6 pin di input con ADC (analog-to-digital converter)

    -   ingresso: numero intero da 0 a 1023

    -   uscita: usano Pulse-Width Modulation (PWM) per “simulare” un’uscita
        analogica generando un pattern a onda quadra. Da 0 a 5V.

    -   lettura dello stato del pin: val   = analogRead(pinIdentifier)


    -   impostazione di un valor di tensione in uscita: analogWrite(pinNumber,
        value)


    -   dettagli: http://cuttr.it/itutx

                                             10
Programmare Arduino (5)

•   Scrivere programmi è molto semplice!

•   Per iniziare:

    -   Download Arduino IDE:
        http://cuttr.it/ksksk


    -   Esempi (File->Examples)

•   Tanti esempi richiedono solamente un Arduino, una breadboard, qualche
    cavo da laboratorio, resistori e LED



                                   11
Interagire con Arduino

•   Hardware
    -   usando sensori e shield

•   Software
    -   connessione con porta seriale usando qualunque linguaggio di
        programmazione:
        Java, PHP, Python, Perl, Ruby, VB.NET, …

•   Comunicare con il mondo
    -   Bluetooth, WiFi, ZigBee, 3G, Ethernet
    -   GPS, Accelerometri, Giroscopi
    -   Display LCD, Touch Screen



                                        12
Dove comprare


•   Ebay

•   Negozi di elettronica

•   Arduino.cc Shop

•   Accessori su SparkFun - http://www.sparkfun.com/




                                     13
Arduino vs Others
•   Pro

    -     Facile apprendimento
    -     Programmazione ad altro livello (altre devel boards devono essere
          programmate in assembly o con costosi cross-compilers, es: TI
          MSP430F2013)
    -     Board espandibile con shield
    -     Molti esempi
    -     Community molto attiva (anche Italiana)


•   Contro:

    -     Debug dei programmi non possibile
    -     Consumi più elevati rispetto ad alcuni concorrenti


                                        14
Esempi (1)

•   Garage Parking Assistant
    http://leblanc.co.cc/?p=1011

•   Grow Room Controller
    http://cuttr.it/0325a

•   Scrolling News
    http://cuttr.it/5jik5

•   Dog Writing Light
    http://cuttr.it/8c28f

•   “sudo make me a sandwitch”



                                   15
Esempi (2)

•   Auto Rosary (?)
    http://www.chriseckert.com/

•   Mouse Glove
    http://mouseglove.sourceforge.net/

•   Digital Graffiti / Vandal Spray
    http://cuttr.it/tnm8p (Arduino + WiiFlash)

•   Botanic Calls
    http://cuttr.it/8bqe0 (Arduino + ZigBee + PHP +
    MySQL + Asterisk)




                                         16
Esempi (3)

•   TableTalk
    http://cuttr.it/mu4po

•   Digital Clock
    http://cuttr.it/qdch7

•   Simple Web Server

•   Real Time GPS Tracker
    http://cuttr.it/51ru3 (Arduino + GPS +
     Google Maps)




                                        17
E noi cosa facciamo?




         18
Proposta 1 - Wheeled Robot
•   Due ruote motrici + ruota folle
•   Guida autonoma con collision avoidance
•   Guida in modalità “assistita” da un terminale remoto (PC, iPhone, ...)
•   Guida con percorso definito da linguaggio a regole




                                        19
Idee e Tutorial
•   Guide, Tutorial, Language Reference, Hardware Reference
    http://arduino.cc/

•   Let’s Make Robots
    http://letsmakerobots.com/

•   Makezine
    http://makezine.com/

•   Top 40 Arduino Projects
    http://cuttr.it/w6x9s

•   Arduino.cc Playground
    http://arduino.cc/playground/Projects/Ideas


                                      20
Credits

Questa presentazione è liberamente scaricabile
Sorgente: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.key
PDF: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.pdf


Mauro Bolis <mauro@bazingalabs.it>
Università degli studi di Milano - Biccoca, 2011


Emanuele Brivio <emanuele@bazingalabs.it>
IED, 2011


Simone Lusenti <simone@bazingalabs.it>
CTO, Monkey Trip Communication Srl




This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Copyright © 2011 Bazinga Labs - https://www.bazingalabs.it


                                                   21

Mais conteúdo relacionado

Mais procurados

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 GenuinoMauro Alfieri
 
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...Luigi Francesco Cerfeda
 
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 ...Sardegna Ricerche
 
Lezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 oreLezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 oreMirko Mancin
 
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreMirko Mancin
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshopDaniele Iori
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUSTOPS Italia
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionaleEmanuele Bonanni
 
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usoRaspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usogianlucaghettini
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2CSP Scarl
 
Programmare raspberry pi - Cowo42 - Osimo (AN)
Programmare raspberry pi - Cowo42 - Osimo (AN)Programmare raspberry pi - Cowo42 - Osimo (AN)
Programmare raspberry pi - Cowo42 - Osimo (AN)Gabriele Guizzardi
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Daniele Costarella
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreMirko Mancin
 
Freedomotic pitch 12.05.16 Smart Home Now Milano
Freedomotic pitch 12.05.16 Smart Home Now MilanoFreedomotic pitch 12.05.16 Smart Home Now Milano
Freedomotic pitch 12.05.16 Smart Home Now Milanofreedomotic
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione ArduinoAntonio Serra
 

Mais procurados (20)

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
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
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...
 
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 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 oreLezione 3 arduino - corso 20 ore
Lezione 3 arduino - corso 20 ore
 
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
 
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'usoRaspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
Raspberry Pi - Introduzione, caratteristiche, programmazione, casi d'uso
 
Fare Musica con Arduino
Fare Musica con ArduinoFare Musica con Arduino
Fare Musica con Arduino
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Programmare raspberry pi - Cowo42 - Osimo (AN)
Programmare raspberry pi - Cowo42 - Osimo (AN)Programmare raspberry pi - Cowo42 - Osimo (AN)
Programmare raspberry pi - Cowo42 - Osimo (AN)
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
Freedomotic pitch 12.05.16 Smart Home Now Milano
Freedomotic pitch 12.05.16 Smart Home Now MilanoFreedomotic pitch 12.05.16 Smart Home Now Milano
Freedomotic pitch 12.05.16 Smart Home Now Milano
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 

Semelhante a Introduzione ad Arduino

Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
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 - OpenSourceDay2012Mirco Piccin
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoRiccardo Lemmi
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open HardwareStefano Sanna
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3CSP Scarl
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteMirco Sbrollini
 
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-09Ionela
 
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 ...Giuseppe Cramarossa
 
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-11Ionela
 
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...Ionela
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Michele Maffucci
 
LinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openLinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openMauro Fava
 
Introduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoIntroduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoStefano Varano
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollorisamu97
 
Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Gianfranco Pulitano
 

Semelhante a Introduzione ad Arduino (20)

Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
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
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3
 
Raspberry
RaspberryRaspberry
Raspberry
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
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 day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
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
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
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...
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
 
LinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openLinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware open
 
Introduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoIntroduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: Arduino
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !
 

Introduzione ad Arduino

  • 1. Introduzione ad Arduino Lunedì 17 Ottobre 2011 Mauro Bolis <mauro@bazingalabs.it> Emanuele Brivio <emanuele@bazingalabs.it> Simone Lusenti <simone@bazingalabs.it> © 2011 Bazinga Labs 1
  • 2. Cos’è Arduino? (1) • “Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software” • Derivato da Wiring (http://wiring.org.co) • Può ricevere input da sensori collegati • Può controllare l’ambiente circostante • Microcontrollore programmabile (ATmega168) • Programmazione in un linguaggio basato su C e simile a Processing (Language reference: http://cuttr.it/mj5h2) 2
  • 3. Cos’è Arduino? (2) “Physical Computing is about prototyping with electronics: turning sensors, actuators and microcontrollers into materials for designers and artists.” “It involves the design of smart objects that can communicate with humans using sensors and actutors controlled by a behaviour implemented as software running inside a microcontroller.” Massimo Banzi, Tinker.it & Arduino Co-Founder 3
  • 4. Perché Arduino? (1) • Prototipi low-cost (circa 22€ per Arduino Uno), installazioni e oggetti interattivi • Semplice da programmare (es: no gestione memoria, ...) • Board Shields (Estensioni): - WiFi/Bluetooth/Ethernet - ZigBee - Servo - SD Card 4
  • 5. Perché Arduino? (2) • Nessuna saldatura richiesta con Arduino Novemila/Diecimila/Uno • Montaggio su Breadboard • Disponibili versioni per sistemi Embedded 5
  • 6. Perché Arduino? (3) • Made in Italy • Open source hardware & software: - disegni CAD - schemi circuiti - sorgenti IDE • Facilmente integrabile in sistemi più complessi 6
  • 7. Programmare Arduino (1) • Connessione via USB a un computer (OS X/Linux/Windows), rilevato come porta seriale (adattatore FTDI integrato) • L’IDE è già predisposto per compilare il sorgente ed effettuare l’upload sul microcontrollore • Nessun hardware aggiuntivo grazie al Bootloader AVR ISP • Il cavo USB/Seriale può essere scollegato una volta effettuato l’upload 7
  • 8. Programmare Arduino (2) • Microcontrollore ATmega168 Flash 16k bytes (of which 2k is used for the bootloader) SRAM 1024 bytes EEPROM 512 bytes • 14 KB per memorizzare il programma (compilato) • 1024 B SRAM per memorizzare le variabili (incluse eventuali stringhe) • 512 B EEPROM per memorizzare dati persistenti (numero limitato di cicli di scrittura, ogni scrittura di 1 Byte impiega 3.3ms) 8
  • 9. Programmare Arduino (3) Input/Output • Pin digitali - ogni pin può fungere da ingresso o uscita, per selezionare: pinMode(pinNumber, INPUT|OUTPUT) - ingresso: lettura stato logico (0-5V), elevata resistenza in serie (100MΩ), bassa corrente. - uscita: stato logico H/L, bassa resistenza, corrente max 40mA. Collegare in serie una resistenza da almeno 470Ω per evitare di rovinare pin/µC. - lettura dello stato del pin: val = digitalRead(pinNumber) - impostazione dello stato del pin: digitalWrite(pinNumber, LOW|HIGH) 9
  • 10. Programmare Arduino (4) Input/Output • Pin analogici: - 6 pin di input con ADC (analog-to-digital converter) - ingresso: numero intero da 0 a 1023 - uscita: usano Pulse-Width Modulation (PWM) per “simulare” un’uscita analogica generando un pattern a onda quadra. Da 0 a 5V. - lettura dello stato del pin: val = analogRead(pinIdentifier) - impostazione di un valor di tensione in uscita: analogWrite(pinNumber, value) - dettagli: http://cuttr.it/itutx 10
  • 11. Programmare Arduino (5) • Scrivere programmi è molto semplice! • Per iniziare: - Download Arduino IDE: http://cuttr.it/ksksk - Esempi (File->Examples) • Tanti esempi richiedono solamente un Arduino, una breadboard, qualche cavo da laboratorio, resistori e LED 11
  • 12. Interagire con Arduino • Hardware - usando sensori e shield • Software - connessione con porta seriale usando qualunque linguaggio di programmazione: Java, PHP, Python, Perl, Ruby, VB.NET, … • Comunicare con il mondo - Bluetooth, WiFi, ZigBee, 3G, Ethernet - GPS, Accelerometri, Giroscopi - Display LCD, Touch Screen 12
  • 13. Dove comprare • Ebay • Negozi di elettronica • Arduino.cc Shop • Accessori su SparkFun - http://www.sparkfun.com/ 13
  • 14. Arduino vs Others • Pro - Facile apprendimento - Programmazione ad altro livello (altre devel boards devono essere programmate in assembly o con costosi cross-compilers, es: TI MSP430F2013) - Board espandibile con shield - Molti esempi - Community molto attiva (anche Italiana) • Contro: - Debug dei programmi non possibile - Consumi più elevati rispetto ad alcuni concorrenti 14
  • 15. Esempi (1) • Garage Parking Assistant http://leblanc.co.cc/?p=1011 • Grow Room Controller http://cuttr.it/0325a • Scrolling News http://cuttr.it/5jik5 • Dog Writing Light http://cuttr.it/8c28f • “sudo make me a sandwitch” 15
  • 16. Esempi (2) • Auto Rosary (?) http://www.chriseckert.com/ • Mouse Glove http://mouseglove.sourceforge.net/ • Digital Graffiti / Vandal Spray http://cuttr.it/tnm8p (Arduino + WiiFlash) • Botanic Calls http://cuttr.it/8bqe0 (Arduino + ZigBee + PHP + MySQL + Asterisk) 16
  • 17. Esempi (3) • TableTalk http://cuttr.it/mu4po • Digital Clock http://cuttr.it/qdch7 • Simple Web Server • Real Time GPS Tracker http://cuttr.it/51ru3 (Arduino + GPS + Google Maps) 17
  • 18. E noi cosa facciamo? 18
  • 19. Proposta 1 - Wheeled Robot • Due ruote motrici + ruota folle • Guida autonoma con collision avoidance • Guida in modalità “assistita” da un terminale remoto (PC, iPhone, ...) • Guida con percorso definito da linguaggio a regole 19
  • 20. Idee e Tutorial • Guide, Tutorial, Language Reference, Hardware Reference http://arduino.cc/ • Let’s Make Robots http://letsmakerobots.com/ • Makezine http://makezine.com/ • Top 40 Arduino Projects http://cuttr.it/w6x9s • Arduino.cc Playground http://arduino.cc/playground/Projects/Ideas 20
  • 21. Credits Questa presentazione è liberamente scaricabile Sorgente: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.key PDF: https://www.bazingalabs.it/~simone/ArduinoIntro17102011.pdf Mauro Bolis <mauro@bazingalabs.it> Università degli studi di Milano - Biccoca, 2011 Emanuele Brivio <emanuele@bazingalabs.it> IED, 2011 Simone Lusenti <simone@bazingalabs.it> CTO, Monkey Trip Communication Srl This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Copyright © 2011 Bazinga Labs - https://www.bazingalabs.it 21

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n