Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali

Preview:

DESCRIPTION

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

Citation preview

Arduino hands-on workshop

Giorno 1 – Concetti fondamentali

Roberto Gallea – roberto.gallea@unipa.it

Benvenuti!

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

Chi sono io?

• Roberto Gallea

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

• Non importa perché tanto non serve

Perché siete qui

• … ?

• DIVERTIRCI!

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.

Cosa NON è Arduino

• NON è un computer – è un physical computer

• NON è un giocattolo (forse!)

•NON è costoso (!)

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

KIT!

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

Arduino - hardware

Atmega328P-PU

Connettore USB

AC Adapter

Pin digitali (PWM~)

Pin analogici (IN)

Pin alimentazione, etc.

Arduino - Software

• Linguaggio programmazione simile al C

• Codice organizzato in «sketch»

• Due funzioni principali

– setup()

– loop()

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.)

Sensori ed attuatori

HANDS ON!

OUTPUT DIGITALE

Blink sketch

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

• 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

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.

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!)

= 10Kohm

Leggere le resistenze

= ? = 1Mohm = ?

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?

La breadboard

La breadboard

Blink sketch (caso generico)

ESERCITAZIONE #1

Esercizio #1 – 7seg display

Esercizio #1 – 7seg display

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

INPUT DIGITALE

Button sketch

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)

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)

Memorizzare lo stato

CONSIDERAZIONI?

Memorizzare lo stato v2

CONSIDERAZIONI?

Memorizzare lo stato v3

PULSE WIDTH MODULATION (OUTPUT ANALOGICO)

PWM

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

• Come regolare la luminosità del LED?

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

PWM

Fading LED

Hold & Dim

Dita o luce, stesso circuito e sketch

INPUT ANALOGICO

Velocità variabile

Luminosità variabile

Potenziometro

• Va bene qualunque semplice sensore!

• Provare con il potenziometro…

Luminosità variabile - Pot

COMUNICAZIONE SERIALE

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

Monitor seriale

ESERCITAZIONE #2

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)

Esercizio #2

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/

Al prossimo incontro

Grazie!

+

BONUS – RELAY!

Relay elettromagnetici

• Interruttori azionati elettronicamente

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

• Attenzione a lavorare con la 220V!!!

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)

Recommended