Arduino, quando un aperitivo avvicina elettronica ed informatica.

43
Arduino, quando un aperitivo avvicina elettronica ed informatica Filippo Matteo Riggio [email protected]Intesys S.r.l.

description

 

Transcript of Arduino, quando un aperitivo avvicina elettronica ed informatica.

Page 1: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Arduino, quando un aperitivo avvicina elettronica ed informatica

Filippo Matteo Riggio

[email protected] – Intesys S.r.l.

Page 2: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Sommario1. Introduzione

2. Storia

3. Arduino in profondità

4. Semplicità

5. Il nostro progetto

6. Arduino e il mobile

7. Conclusioni

Page 3: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Introduzione

Page 4: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

4

La mia esigenza – Perchè ho scelto Arduino.Il problemaOgni esigenza nasce sempre da un bisogno, un problema.Nel mio caso è il desiderio di non creare solamente prodotti virtuali, ma ottenere qualcosa di più tangibile.L'aspetto peggiore del lavoro di un programmatore è proprio quello di non creare qualcosa dimateriale e tangibile, che possa dimostrare le sue vere capacità a persone che non sono dell'ambiente IT.

Fino a qualche anno fa non esisteva la possibilità di programmare ad alto livello alcun tipo dihardware in modo semplice.

Arduino dà questa possibilità: un programmatore può creare dispositivi e programmarli.

Page 5: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

5

L'esigenza di Massimo Banzi

Massimo Banzi è un ex docente dell'Interaction Design Institute

di Ivrea, istituto in cui i designer devono apprendere basi di

elettronica per poter creare prototipi interattivi.

Il problema

La piattaforma che veniva utilizzata per creare questi prototipi

(Basic Stamp) aveva una serie di difetti, i principali:

- il costo elevato

- il funzionamento solo con pc Windows

Page 6: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

6

Che cos'è Arduino?

Arduino è una piccola scheda elettronica che permette di programmare facilmente un microcontrollore (“processore”).

Per farlo ci viene in supporto un ambiente di sviluppo(IDE) creato ad hoc.

Ogni software creato si chiama sketch.Ogni sketch viene caricato sulla scheda tramite l’IDE ed un cavo USB.

Il progetto è completamente open-source.

Page 7: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Storia

Page 8: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

8

Un po' di storia.

2001 Olivetti e Telecom avviano un master biennale all’istituto di Interaction Design.

Page 9: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

9

Un po' di storia.

2001 Olivetti e Telecom avviano un master biennale all’istituto di Interaction Design.

1° semestre 2002

Banzi crea Programma 2003 che usa il linguaggio JAL.

Page 10: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

10

Un po' di storia.

2001 Olivetti e Telecom avviano un master biennale all’istituto di Interaction Design.

1° semestre 2002

Banzi crea Programma 2003 che usa il linguaggio JAL.

2° semestre 2002

Banzi contatta Bill Verplank e Casey Reas.

Quest’ultimo consiglia Processing come linguaggio.

Page 11: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

11

Un po' di storia.

2001 Olivetti e Telecom avviano un master biennale all’istituto di Interaction Design.

1° semestre 2002

Banzi crea Programma 2003 che usa il linguaggio JAL.

2° semestre 2002

Banzi contatta Bill Verplank e Casey Reas.

Quest’ultimo consiglia Processing come linguaggio.

2003 H.Barragan crea Wiring, un derivato da Processing e dal C. Costo ancora alto (70/80 €).

Page 12: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

12

Un po' di storia.

2001 Olivetti e Telecom avviano un master biennale all’istituto di Interaction Design.

1° semestre 2002

Banzi crea Programma 2003 che usa il linguaggio JAL.

2° semestre 2002

Banzi contatta Bill Verplank e Casey Reas.

Quest’ultimo consiglia Processing come linguaggio.

2003 H.Barragan crea Wiring, un derivato da Processing e dal C. Costo ancora alto (70/80 €).

2003/04 Gianluca Martino testa la piattaforma sugli studenti con risultati soddisfacenti.

Page 13: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

13

Un po' di storia.

01-05/2005

La scheda dovrà costare circa 20 euro.Entrano nel team David Cuartielles e David Mellis.Massimo decide che è ora di dare un nome vero e proprio alla piattaforma: Arduino, il nome del bar dove il team si riuniva a fare l’aperitivo dopo il lavoro.

Page 14: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

14

Un po' di storia.

01-05/2005

La scheda dovrà costare circa 20 euro.Entrano nel team David Cuartielles e David Mellis.Massimo decide che è ora di dare un nome vero e proprio alla piattaforma: Arduino, il nome del bar dove il team si riuniva a fare l’aperitivo dopo il lavoro.

06/2005 Nel team anche Tom Igoe, che porta Arduino negli States.

Page 15: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

15

Un po' di storia.

01-05/2005

La scheda dovrà costare circa 20 euro.Entrano nel team David Cuartielles e David Mellis.Massimo decide che è ora di dare un nome vero e proprio alla piattaforma: Arduino, il nome del bar dove il team si riuniva a fare l’aperitivo dopo il lavoro.

06/2005 Nel team anche Tom Igoe, che porta Arduino negli States.

11/2005 Primo workshop a Londra e nascita della community.

Page 16: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

16

Un po' di storia.

01-05/2005

La scheda dovrà costare circa 20 euro.Entrano nel team David Cuartielles e David Mellis.Massimo decide che è ora di dare un nome vero e proprio alla piattaforma: Arduino, il nome del bar dove il team si riuniva a fare l’aperitivo dopo il lavoro.

06/2005 Nel team anche Tom Igoe, che porta Arduino negli States.

11/2005 Primo workshop a Londra e nascita della community.

10/2008 Più di 50.000 copie di Arduino vendute.

Page 17: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Arduino in profondità

Page 18: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

18

Caratteristiche tecnicheMicrocontrolloreATMega (168 o 328) a 16Mhz

AlimentazioneUSB (5 volt) o spinotto da 12V6 Pin per l'alimentazione

Input/Output14 pin digitali6 pin analogiciFTDI USB Chip / ICSP HeaderDebug LED (13) / Data Trasfer LED (RX+TX)

Memoria16 KB (ATmega168) o 32 KB (ATmega328) dei quali 2 KB usati per il bootloader

Page 19: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

19

Modelli di ArduinoArduino in questi anni è stato migliorato. Sono uscite nuove versioni sempre basate sul progetto originale.

Arduino UNO Lilypad Arduino MEGA Arduino MINI

Arduino BT Arduino Ethernet Arduino FIO Arduino Nano

Page 20: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

20

Estensioni di ArduinoOltre ai vari modelli della scheda, esistono dei “plugin” detti shield, che permettono di rendere Arduino veramente poliedrico.

Arduino Wireless Shield con SD Arduino Wireless Shield senza SD

Arduino Ethernet Shield Arduino Motor Shield Arduino Proto Shield

Page 21: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Semplicità

Page 22: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

22

Sensori ed AttuatoriI sensori sono piccoli componenti elettronici che misurano grandezze naturali (temperatura, suono, luminosità,ecc.) per trasformarlo in un segnale elettrico interpretabile da Arduino.Ad esempio i sensori semplici variano la propria resistenza elettrica al variare delfenomeno fisico (aumento di temperatura, di luminosità, ecc.).

All'opposto dei sensori esistono gli attuatori.Gli attuatori ricevuto un segnale elettrico, lo tramutano in un fenomeno fisico:un semplice LED, un motore elettrico, ecc.

Sensore di temperatura LM35 Fotoresistenza LEDs

Page 23: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

23

Ambiente di sviluppoL'IDE è dispobibile per MacOS, Windows e Linux.

Sul sito www.arduino.cc trovate anche i driver.

E' importante ricordarsi di impostare, dal menù Tools, il modello della propria scheda e su quale porta è attualmente connessa.

Dopo aver scritto lo sketch, l'IDE crea un eseguibileper il processore AVR ed esegue l’upload.

Utile in fase di debug, lo strumento Serial Monitor, che permette di andare a leggere lo stream della porta.

Page 24: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

24

Fritzing!Fritzing è un software free per la progettazione di schemi elettronici, dalla breadboard al circuito stampato.

Questo software nasce con lo stesso spirito di Arduino, fornendo ulteriori servizi onlinecome la community e la realizzazione del circuito vero e proprio.

E’ rivolto soprattutto ai “non-ingegneri”, che generalmente utilizzano software come AutoCAD per il disegno di circuiti e prototipi.

Potete scaricarlo da http://fritzing.org/

Page 25: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

25

Uno sketch di esempioIl codice per uno sketch è molto semplice, si basa su 2 funzioni principali: setup() e loop().

#define LEDPIN 13

void setup() {                 pinMode(LEDPIN, OUTPUT); // inizializzo il pin in // modalità OUTPUT}

void loop() {  digitalWrite(LEDPIN, HIGH);   // accendo il led delay(1000);               // aspetto un secondo digitalWrite(LEDPIN, LOW);   // spengo il led delay(1000);               // aspetto un secondo}

Page 26: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

26

Un semplice esempioUn esempio della semplicità di Arduino è il display LCD.Oltre ad Arduino, abbiamo bisogno di:- display LCD compatibile con i driver Hitachi HD44780- potenziometro da 10 kOhm- breadboard e cavetti

Come funziona l'LCD?L'LCD ha un suo microcontrollore interno che associaad un intero passatogli un carattere da stampare, carattere che è una matrice di 5x8 pixel (variabile da LCD a LCD).

Oltre al microcontrollore interno, l'LCD è dotato di alcuni registri per la gestione di scrittura/lettura, istruzioni in coda, ecc.

Page 27: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

27

Un semplice esempio (codice)La semplicità di Arduino è il suo vero punto di forza.Con poche righe di codice riusciamo a stampare su un display LCD del testo.

// includiamo la libreria, con l'IDE basta andare su Sketch > Import > Library#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // istanziamo l'oggetto lcd

void setup() { lcd.begin(16, 2); // imposto il numero di caratteri e righe lcd.print("hello, world!"); // Stampo una stringa di prova}

void loop() { lcd.setCursor(0, 1); // cursore al carattere 0 della seconda riga lcd.print(millis()/1000); // numero di secondi dall'inizio del ciclo}

Page 28: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

28

Altre funzionipinMode(idPin, {INPUT || OUTPUT}); // imposta la modalità in cui deve essere un pin

Serial.begin(valore); // istanzia una trasmissione seriale // di n bit al secondo

int sensorValue = digitalRead(idPin); // legge un valore da un pin digitale (restituisce LOW || HIGH)

int sensorValue = analogRead(A0); // legge un valore da un pin analogico, // convertito da Arduino in un decimale tra 0 e 1023

digitalWrite(idPin, valore); // scrive un valore (HIGH e LOW) sui pin digitali

Serial.println(sensorValue, DEC); // scrive sulla porta seriale un valore

unsigned long currentMillis = millis(); // la funzione millis restituisce il tempo trascorso // dall'inizio dell'esecuzione del programma

Page 29: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Il nostro progetto

Page 30: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

30

Intesys TalkDa circa un anno Intesys porta avanti un'iniziativa interna: i talk.

I talk sono un occasione per favorire la condivisione della conoscenza all’interno di Intesys, stimolando il confronto libero e motivante tra i dipendenti.

Ogni settimana viene presentato un argomento inerente o meno al settore IT.I dipendenti possono decidere se partecipare o meno (essendo in orarioextra-lavorativo), in base all’interesse che hanno rispetto all’argomento.

Alcuni di questi talk hanno avuto molta risonanza a livello interno.Sono state adottate parecchie tecnologie e sono nate idee da sviluppare come Arduino meeting room.

Page 31: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

31

Arduino Meeting RoomDopo il talk, vista la facilità di sviluppo di progetti elettronici, si è deciso di creare qualcosa che prevedeva Arduino. Pur essendo un progetto extra-lavorativo, si è deciso di sviluppare un dispositivo che fornisse qualche beneficio aziendale.

Una delle esigenze aziendali prevedeva la necessità di venire a conoscenza della presenza o meno di persone nelle sale riunioni.

Le funzionalità da sviluppare quindi erano :- percepire la presenza di persone in una stanza;- comunicare questo dato agli altri dispositivi;- segnalare visivamente questo dato sia sul dispositivo che sull’intranet aziendale.

Page 32: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

32

Arduino Meeting RoomLa presenza delle persone all’interno della

stanza viene verificata tramite un

sensore audio (microfono), amplificato

e passato ad arduino.

La comunicazione agli altri dispositivi e

all’intranet interna viene fatta tramite un

ethernet shield.

La visualizzazione visiva invece viene

fatta tramite dei led RGB.

Trovate codice e schema su github: http://github.com/gariggio/arduino/

Page 33: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

33

Arduino Meeting Room – Comunicazione#include <Ethernet.h>#include <Udp.h>

char inBuffer[UDP_TX_PACKET_MAX_SIZE]; // Buffer dei pacchetti in arrivo

void setup(){ // Start Ethernet and UDP   Ethernet.begin(mac_address, ip_address); // il server si mette in waiting di connessioni   Udp.begin(port); // inizializza la libreria ethernet UDP e le impostazioni di rete // [other code]}void loop(){ int packetSize = Udp.available(); // controlla se ci sono connessioni da client if (packetSize) {

// il pacchetto viene scritto sul buffer (limitato nelle dimensioni)

// mentre vengono restituiti IP e porta del mittente.    Udp.readPacket(inBuffer, UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort);   } // [other code]}

Page 34: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

34

Altri progetti sviluppati con Arduino

Serratura RGB

Sismografo

Microfono etilometro

Rilevatore di gas Gameboy Dj Controller

Drone aereo Controller per barche ed aerei.

Pianoforte ad acqua

Wandering Tank

Page 35: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Arduino e il mobile

Page 36: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

36

Arduino e il mobileNegli ultimi anni sono nate alcune interfaccie

capaci di connettere Arduino con gli

smartphone più diffusi.

Nel maggio 2011, Google ha presentato

ADK (Android Open Accessory Development Kit),

un kit di sviluppo per far comunicare lo

smartphone Android con Arduino tramite USB e Bluetooth.

Per iOS non sono state rilasciate librerie ufficiali, ma ne esistono molte free.

Il connubio tra Arduino e il mondo mobile ha fatto si che molti sviluppatori si divertissero

con la domotica, creando impianti di climatizzazione, risparmio energetico, cancelli, ecc.;

controllabili tramite lo smartphone e Arduino. Un esempio è Giarduino.

Page 37: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

37

GiarduinoGiarduino è un dispositivo che permette di gestire il

proprio giardino tramite smartphone o tablet.

Permette di conoscere temperatura, umidità e

luminosità in tempo reale ovunque ci si trovi.

Con una valvola elettrica è possibile gestire

anche l'impianto di irrigazione.

Schemi di costruzione e codice sono reperibili online su GitHub.

Esiste inoltre un servizio online che permette, tramite un codice univoco, di usare il proprio

giarduino.

Page 38: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Conclusioni

Page 39: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

39

ConclusioniArduino è un “ponte” tra elettronici ed informatici, che si è imposto per via del suo punto di

forza, la semplicità.

E’ ormai una pietra miliare in quello che è il movimento dei makers e secondo me è la svolta di

quello che è una volta era un mondo chiuso, come quello elettronico.

Con Arduino siamo passati dal software open-source all’hardware open-source.

Lo consiglio a tutti quelli che hanno avuto idee e non riuscivano a svilupparle a causa di

conoscenze che non riuscivano a coprire questi 2 ambiti.

Page 40: Arduino, quando un aperitivo avvicina elettronica ed informatica.

E per il futuro?

Page 41: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

41

Gli atomi sono i nuovi bit.Internet era solo l’inizio.

La collaborazione di massa, il crowdsourcing e i contenuticreati dagli utenti hanno cominciato ad avere un ruolo fondamentaleanche nel mondo reale, fatto di atomi.

Una novità interessante è MakerBot, una stampante 3D dal basso costo.

E’ nata anche Raspberry PI, un piccolo computer, facilmente programmabile, che sta spopolando nelle scuole elementari inglesi.

Siamo ormai nell’era del Garage 2.0, dove milioni di potenziali “inventori della domenica” stanno per diventarel’industria del futuro.

Page 42: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Filippo Matteo [email protected] – Intesys S.r.l.

42

RisorseOnline

http://www.arduino.cc il sito ufficiale dove si trova quasi tutto sull’argomento

http://scuola.arduino.cc ottimi articoli e corsi dal livello base a quello avanzato

http://arduino.cc/forum/ il forum della community

http://arduino.cc/playground la wiki, contenente molte voci relative a librerie, hardware e interfaccie particolari

Ebook

Arduino Cookbook O’Reilly un ottimo manuale, abbastanza completo sull'argomento

30 Arduino Projects for the Evil Genius un buon libro, con esempi e progetti interessanti

Riviste

Wired ogni mese lo stesso Massimo Banzi propone un’idea da mettere in pratica

IoProgrammo ogni mese pubblica piccoli progetti e spunti interessanti

Software

Fritzing Alpha un software free per la creazione degli schemi elettrici/elettronici (http://fritzing.org)

Minibloq un software free che permette di programmare Arduino tramite interfaccia grafica (http://blog.minibloq.org/)

Page 43: Arduino, quando un aperitivo avvicina elettronica ed informatica.

Grazie per l’attenzioneFilippo Matteo Riggio

[email protected] – Intesys S.r.l.