際際滷

際際滷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

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