58
Arduino hands-on workshop Giorno 1 – Concetti fondamentali Roberto Gallea – [email protected]

Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Embed Size (px)

DESCRIPTION

Workshop Su Arduino tenuto da Roberto Gallea al Fablab Palermo di via XX settembre, 36 http:://fablabpalermo.org

Citation preview

Page 1: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Arduino hands-on workshop

Giorno 1 – Concetti fondamentali

Roberto Gallea – [email protected]

Page 2: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Benvenuti!

• Chi sono io? • Perché siete qui? • Cosa è Arduino? • Cosa NON è Arduino?

Page 3: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Chi sono io?

• Roberto Gallea

• (pieichdi-enginiar-in-compiuter-sains-super-yeah)

• Non importa perché tanto non serve

Page 4: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Perché siete qui

• … ?

• DIVERTIRCI!

Page 5: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Cosa è Arduino?

• Piattaforma Open-source per la prototipazione elettronica

• Composta da una parte di hardware ed una di software

• Artisti, designers, hobbysti, CHIUNQUE!

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

Page 6: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Cosa NON è Arduino

• NON è un computer – è un physical computer

• NON è un giocattolo (forse!)

•NON è costoso (!)

Page 7: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

La famiglia Arduino

Arduino Uno Rev3 Arduino BT

Arduino Due

Arduino Fio

Arduino Mini

Arduino Micro Lilypad Arduino Arduino Mega 2560

Arduino Leonardo Arduino Ethernet

Arduino Duemilanove

Page 8: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

KIT!

Page 9: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Contenuto dei kit

1 x Arduino Uno R3 compatible board 1 x 8x8 LED Matrix Display 1 x 4-digit 7-segment Display 2 x 1-digit 7-segment Display 1 x Shift Register 30 Jumper Cables 4 x Push Buttons 2 x Speakers 1 x Tri-colour LED Module 1 x Battery Box 1 x 830 Point Solderless Breadboard 1 x 5V Relay Board

1 x Potentiometer 3 x Light Dependant Resistor (light sensor) 1 x Infrared LED 1 x Infrared Sensor 1 x Temperature Sensor 2 x Tilt Sensors / Switches 15 LED's 8 x 220R Resistors 5 x 1K Resistors 5 x 10K Resistors Infrared Remote Control USB Cable

Page 10: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Arduino - hardware

Atmega328P-PU

Connettore USB

AC Adapter

Pin digitali (PWM~)

Pin analogici (IN)

Pin alimentazione, etc.

Page 11: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Arduino - Software

• Linguaggio programmazione simile al C

• Codice organizzato in «sketch»

• Due funzioni principali

– setup()

– loop()

Page 12: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Sensori ed attuatori

• Sensori: dispositivi elettronici che misurano una quantità fisica (come la luce o il suono) e la traducono in una tensione

• Attuatori: dispositivi elettronici che trasformano un segnale elettrico di ingresso in movimento o altre forme di impulsi (luce, suono, etc.)

Page 13: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Sensori ed attuatori

Page 14: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

HANDS ON!

Page 15: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

OUTPUT DIGITALE

Page 16: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Blink sketch

Collegare l’anodo al Pin 13 Collegare il catodo a GND Caricare il blink sketch da File->Esempi->Basics->Blink

Page 17: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

• Potrebbe non essere così semplice! • Occhio a non bruciare i LED!

• I LED standard sono in

grado di assorbire fra 1,2V e 3,4V (dipende dal colore)

• I pin di Arduino erogano fino a 5V! • Come assorbire la tensione in eccesso?

Blink sketch

Page 18: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Richiami di elettronica

• Corrente (I) – Quantità di elettroni che passano per un punto, misurata in Ampere (A), 1A = 6.280.000.000.000.000.000 elettroni/s

• Tensione (V) – Pressione o Forza elettrica, chiamata anche Potenziale. La caduta di tensione è la differenza di potenziale che si verifica ai capi di un conduttore

• Potenza (P) – Il lavoro compiuto dalla corrente elettrica

• Resistenza (R) – I conduttori non sono perfetti. Essi resistono in una qualche misura al passaggio della corrente. L’unità di misura della resistenza è l’Ohm.

• Carico – La parte di un circuito che compie un lavoro (un motore, una lampadina, un led, etc.) è riferito come carico.

Page 19: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Legge di Ohm

• Ecco a cosa possono servire le resistenze! • Luminosità led proporzionale all’intensità della

corrente che lo attraversa

• I led sopportano una corrente di circa 20mA (milliampere) 1ma = 10-3A

• Esempio: Led giallo da 2,1V. Devo assorbire 2,9V => 2,9 = 0.02*R

• R = 2,9/0.02 = 145 Ohm • I valori standard sono limitati, devo prendere il valore

superiore più vicino (150 Ohm) • Normalmente per essere sicuri, usare 220 Ohm e si

possono evitare i calcoli, al più il led è meno luminoso

V = IR

(ma rimane certamente integro!)

Page 20: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

= 10Kohm

Leggere le resistenze

= ? = 1Mohm = ?

Page 21: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

La breadboard

• Lo sviluppo di un circuito è un processo iterativo e richiede molte modifiche -> processo dinamico e rapido

• Un circuito definitivo richiede la saldatura dei componenti -> processo statico e lento

• Processi contrastanti, come conciliarli?

Page 22: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

La breadboard

Page 23: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

La breadboard

Page 24: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Blink sketch (caso generico)

Page 25: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

ESERCITAZIONE #1

Page 26: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Esercizio #1 – 7seg display

Page 27: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Esercizio #1 – 7seg display

Creare uno sketch che cicli tutte le cifre da 0 a 9 ogni mezzo secondo e poi ricominci

Page 28: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

INPUT DIGITALE

Page 29: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Button sketch

Page 30: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Bottone non premuto

- Se il bottone non è premuto fra i piedini del bottone non passa corrente - Il Pin 2 è connesso direttamente a GND passando per la resistenza e legge uno stato di bassa tensione (LOW)

Page 31: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Bottone premuto

- Se il bottone è premuto fra i piedini del bottone si crea un collegamento - Il Pin 2 viene connesso a 5V e legge uno stato di alta tensione (HIGH)

Page 32: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Memorizzare lo stato

Page 33: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

CONSIDERAZIONI?

Page 34: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Memorizzare lo stato v2

Page 35: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

CONSIDERAZIONI?

Page 36: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Memorizzare lo stato v3

Page 37: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

PULSE WIDTH MODULATION (OUTPUT ANALOGICO)

Page 38: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

PWM

• Non solo ON/OFF (0/5V)

• Come regolare la luminosità del LED?

… Pensando allo sketch «difettoso» del bottone con stato, vengono delle idee?

Page 39: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

PWM

Page 40: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Fading LED

Page 41: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Hold & Dim

Page 42: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Dita o luce, stesso circuito e sketch

Page 43: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

INPUT ANALOGICO

Page 44: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Velocità variabile

Page 45: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Luminosità variabile

Page 46: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Potenziometro

• Va bene qualunque semplice sensore!

• Provare con il potenziometro…

Page 47: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Luminosità variabile - Pot

Page 48: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

COMUNICAZIONE SERIALE

Page 49: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Comunicazione seriale

• Arduino può utilizzare la connesione seriale (USB) non solo per l’alimentazione…

• …Ma anche per comunicare con il computer host

– Scambio dati

– Debug

Page 50: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Monitor seriale

Page 51: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

ESERCITAZIONE #2

Page 52: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Esercizio #2

• Creare un circuito e il relativo sketch

• L’utente ha a disposizione – 2 bottoni

– 1 a scelta fra potenziometro e fotoresistenza

• Premendo i bottoni l’utente aumenta o diminuisce il numero di led accesi

• L’intensità dei led è regolata col potenziometro (o la fotoresistenza)

Page 53: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Esercizio #2

Page 54: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Link utili

• Arduino Books

http://www.arduinobooks.com/

• Arduino Projects @ Instructables

http://www.instructables.com/id/Arduino-Projects/

• Arduino Tutorials

http://arduino.cc/playground/Main/TutorialList

• Electronics Technique Resources

http://arduino.cc/playground/Main/ElectroInfoResources

• PLAYGROUND

http://arduino.cc/playground/

Page 55: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Al prossimo incontro

Grazie!

+

Page 56: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

BONUS – RELAY!

Page 57: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Relay elettromagnetici

• Interruttori azionati elettronicamente

• Per attivare e disattivare apparecchi ad alte tensioni (lampadari, cancelli automatici, ventilatori, etc.)

• Attenzione a lavorare con la 220V!!!

Page 58: Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Relay elettromagnetici

Quando nella bobina non passa corrente la molla tira l’armatura azionando il contatto NC (normally closed)

Quando nella bobina passa corrente, il l’elettromagnete si attiva e l’armatura viene tirata azionando il contatto NO (normally open)