際際滷

際際滷Share a Scribd company logo
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 lambiente 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)

   LIDE 竪 gi predisposto per compilare il sorgente ed effettuare lupload sul
    microcontrollore

   Nessun hardware aggiuntivo grazie al Bootloader AVR ISP

   Il cavo USB/Seriale pu嘆 essere scollegato una volta effettuato lupload




                                        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 unuscita
        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/

   Lets 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

More Related Content

What's hot (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
Mauro Alfieri
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
Mirko Mancin
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 ore
Mirko Mancin
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
Mirco Piccin
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
Mirko Mancin
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
Daniele Iori
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
OPS Italia
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
Emanuele Bonanni
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
Demetrio Siragusa
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
gianlucaghettini
Fare Musica con Arduino
Fare Musica con ArduinoFare Musica con Arduino
Fare Musica con Arduino
Stefano Panichi
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
CSP 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 1
Daniele Costarella
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
Mirko 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 Milano
freedomotic
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
Antonio Serra
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
Biagio (Gino) Zingales Al狸
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
Mauro Alfieri
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
Mirko Mancin
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 ore
Mirko Mancin
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
Mirco Piccin
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
Mirko Mancin
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
Daniele Iori
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
OPS Italia
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
Emanuele 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'uso
gianlucaghettini
Fare Musica con Arduino
Fare Musica con ArduinoFare Musica con Arduino
Fare Musica con Arduino
Stefano Panichi
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
CSP 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 1
Daniele Costarella
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
Mirko 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 Milano
freedomotic
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
Antonio Serra

Similar to Introduzione ad Arduino (20)

SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdfSLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
bakikiy278
Arduino 2- 際際滷 descrizione Architettura
Arduino 2- 際際滷 descrizione ArchitetturaArduino 2- 際際滷 descrizione Architettura
Arduino 2- 際際滷 descrizione Architettura
robertodefazio3
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele 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 - OpenSourceDay2012
Mirco Piccin
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
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
Stefano Sanna
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
Mirco Sbrollini
Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3
CSP Scarl
Raspberry
RaspberryRaspberry
Raspberry
PasqualeMarasca
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
Mirco 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-09
Ionela
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
Enrico La Sala
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-11
Ionela
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
Biagio (Gino) Zingales Al狸
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 2
Michele 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 open
Mauro 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: Arduino
Stefano Varano
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
samu97
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdfSLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
bakikiy278
Arduino 2- 際際滷 descrizione Architettura
Arduino 2- 際際滷 descrizione ArchitetturaArduino 2- 際際滷 descrizione Architettura
Arduino 2- 際際滷 descrizione Architettura
robertodefazio3
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele 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 - OpenSourceDay2012
Mirco Piccin
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
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
Stefano Sanna
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
Mirco Sbrollini
Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3Csp@scuola uav corso1_lez3
Csp@scuola uav corso1_lez3
CSP Scarl
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
Mirco 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-09
Ionela
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-11
Ionela
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 2
Michele 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 open
Mauro 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: Arduino
Stefano Varano
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
samu97

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 lambiente 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) LIDE 竪 gi predisposto per compilare il sorgente ed effettuare lupload sul microcontrollore Nessun hardware aggiuntivo grazie al Bootloader AVR ISP Il cavo USB/Seriale pu嘆 essere scollegato una volta effettuato lupload 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 unuscita 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/ Lets 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

Editor's Notes