SlideShare une entreprise Scribd logo
1  sur  116
Télécharger pour lire hors ligne
Introduzione a Arduino
Pietro Aiuola
p.aiuola@gmail.com
Benvenuti!
Introduzione 2
• Cosa è Arduino?
• Cosa si può fare?
• La sua storia
• Com’è fatto?
• Come si usa?
• Esempi pratici
Cosa è Arduino?
Introduzione 3
Arduino, come tutte le invenzioni di successo,
è la risposta ad un problema.
E’ uno strumento open source che semplifica la
progettazione e la prototipazione elettronica
offrendo a studenti, insegnanti, artisti o semplici
appassionati una piattaforma hardware e software
per l’implementazione rapida di progetti interattivi,
multimediali e multidisciplinari.
Cosa è Arduino?
Introduzione 4
• Piattaforma Open-source per la prototipazione
elettronica
• Composta da una parte di hardware ed una di
software open-source
• Artisti, designers, hobbisti, CHIUNQUE!
Cosa è Arduino?
Introduzione 5
Una PIATTAFORMA di PROTOTIPAZIONE
ELETTRONICA OPEN SOURCE:
PIATTAFORMA: Architettura hardware con un framework
software su cui fare girare un programma software.
PROTOTIPO: Un modulo iniziale che può servire come base o
modello per la creazione di altre cose.
ELETTRONICA: Tecnologia che fa uso del movimento
controllato di elettroni attraverso differenti media.
OPEN SOURCE: Risorse possono essere usate, redistribuite o
riscritte gratis.
Cosa NON è Arduino?
Introduzione 6
• NON è un computer, ma un physical computer.
• NON è un giocattolo.
• NON è costoso.
Cosa NON è Arduino?
Introduzione 6
• NON è un computer, ma un physical computer.
• NON è un giocattolo.
• NON è costoso.
Mini-elaboratori elettronici adibiti al
controllo di oggetti nel mondo reale.
Con Arduino si possono realizzare in
maniera relativamente rapida e semplice
piccoli dispositivi come controllori di luci,
di velocità per motori, sensori di luce,
temperatura e umidità e molti altri
progetti che utilizzano sensori, attuatori e
comunicazione con altri dispositivi.
Cosa si puo fare?
Introduzione 7
Storia di Arduino
Introduzione 8
Il progetto nasce da Wiring, una piattaforma per la
prototipazione elettronica semplificata, destinata ad
artisti, architetti e altri professionisti digiuni di
elettronica, realizzata da Hernando Barragán per la
sua tesi di laurea (di cui Banzi era relatore) presso
l’Interaction Design Institute di Ivrea.
Arduino ha di fatto ereditato i presupposti
e gli scopi originali di Wiring, espandendo
la portata e il potenziale del progetto.
Storia di Arduino
Introduzione 9
Il nome della scheda
deriva da quello di un bar
di Ivrea (che richiama a sua
volta il nome di Arduino
d'Ivrea, Re d'Italia nel
1002) frequentato da
alcuni dei fondatori del
progetto.
Storia di Arduino
Introduzione 10
La “faccia” di Arduino è Massimo Banzi, Interaction
Designer che nel 2005 fonda ad Ivrea il team di
sviluppo originale insieme a David Cuartielles, Tom
Igoe, Gianluca Martino e Davide Mellis.
Storia di Arduino
Introduzione 11
La vera svolta per il progetto è arrivata grazie
all’appoggio globale negli ambienti di quello che è
ormai all’unanimità chiamato Maker Movement, la
“sottocultura” degli hobbisti tecnologici del 21-esimo
secolo.
I maker “non sono nerd, anzi sono dei tipi piuttosto fighi che
si interessano di tecnologia, design, arte, sostenibilità, modelli
di business alternativi. Vivono di comunità online, software e
hardware open source ma anche del sogno di inventare
qualcosa da produrre autonomamente, per vivere delle
proprie invenzioni. In un momento di crisi si inventano il loro
lavoro invece che cercarne uno classico.”
Storia di Arduino
Introduzione 12
Pubblicazioni su internet e
riviste come Make e promozioni
di iniziative come la Maker Faire
hanno ulteriormente promosso
il movimento.
Storia di Arduino
Introduzione 13
A ottobre 2008 erano già stati venduti più di 50.000
esemplari di Arduino in tutto il mondo.
Arduino ha ricevuto una menzione d'onore nella
sezione Digital Communities del 2006 Ars
Electronica Prix.
Hardware generico di Arduino
Introduzione 14
Arduino è, di fatto, un’interfaccia semplificata per un
microcontrollore, che è dunque il cuore di ogni “board”.
Un “microcontroller” è un dispositivo elettronico integrato su
un unico chip, progettato appositamente per interagire con
input esterni, analogici o digitali, e restituire output analogici
o digitali derivati dalle operazioni di processamento interno
determinate da un programma caricato nella memoria del
chip.
Physical computer 8-bit a 16MHz con 32kb di memoria
(l’equivalente circa di un computer desktop degli anni 80)
Hardware generico di Arduino
Introduzione 15
Nei primi modelli Banzi e il suo team utilizzarono un
microcontrollore Atmel a 8-bit AVR, per poi passare a
soluzioni più potenti con le versioni successive.
Hardware generico di Arduino
Introduzione 16
Per permettere agli Arduino di comunicare con un
computer tramite USB e renderne semplice la
programmazione, ogni scheda integra un ulteriore
chip per la conversione del segnale digitale da USB a
seriale.
Hardware generico di Arduino
Introduzione 17
Quasi tutte le schede Arduino integrano altri
componenti, alcuni specifici a seconda del modello,
quali ad esempio un oscillatore ceramico, un
pulsante di reset che fa ripartire la scheda in caso di
stallo del programma in memoria, un jack per la
connessione dell’alimentazione diretta.
Su ogni board Arduino sono presenti infine dei pin
(“piedini”) di input e output attraverso i quali il
microcontrollore riceve le “informazioni” in ingresso
e restituisce all’ambiente un segnale in uscita.
Hardware generico di Arduino
Introduzione 18
E’ un hardware open source, distribuito nei termini
della licenza Creative Commons Attribution-
ShareAlike 2.5.
In questo modo, chi lo desidera può legalmente
auto-costruirsi un clone di Arduino o derivarne una
versione modificata, scaricando gratuitamente lo
schema elettrico e l'elenco dei componenti
elettronici necessari. Questa possibilità ha consentito
lo sviluppo di prodotti Arduino compatibili da parte
di piccole e medie aziende in tutto il mondo: è
quindi divenuto possibile scegliere tra un'enorme
quantità di schede Arduino-compatibili.
I vari modelli di Arduino
Introduzione 19
Arduino UNO
Introduzione 20
Microcontrollore: ATmega328
Numero di Input/Output digitali: 14 (di cui 6 output PWM)
Numero di Input Analogici: 6
Memoria: 32KB; 2KB SRAM; 1KB EEPROM
Velocità di Clock: 16MHz
Arduino MICRO
Introduzione 21
Microcontroller ATmega32U4
Digital I/O Pins 20
PWM Channels 7
Analog Input
Channels
12
Flash Memory
32 KB
(ATmega32U4)
of which 4 KB
used by
bootloader
SRAM
2.5 KB
(ATmega32U4)
EEPROM
1 KB
(ATmega32U4)
Clock Speed 16 MHz
Length 48 mm
Width 18 mm
Weight 13 g
Arduino Lilypad
Introduzione 22
• Indossabile
• Lavabile
Arduino YUN
Introduzione 23
The Arduino Yun is a MIPS board based on
the Atheros AR9331 and the ATmega32u4.
The Atheros processor supports Linino, a
Linux distribution based on OpenWRT. The
board has built-in Ethernet, 802.11 g/b/n
WiFi support, USB-A port, micro-SD card slot,
20 digital input/output
pins(of which 7 can be
used as PWM outputs
and 12 as analog
inputs), a
16 MHz crystal
oscillator, a micro
USB connection, an
ICSP header, and 3
reset buttons.
Il linguaggio
Introduzione 24
Linguaggio programmazione simile al C
• Derivato da Wiring
• Due funzioni principali:
• setup()
• loop()
• Facilmente espandibile
• Codice organizzato in «sketch»
L’ambiente di sviluppo
Introduzione 25
setup()
loop()
Sensori e attuatori
Introduzione 26
Segnali
Introduzione 27
SEGNALI
Segnali
Introduzione 27
SEGNALI
ANALOGICI
Segnali
Introduzione 27
SEGNALI
ANALOGICI
DIGITALI
Segnali analogici
Introduzione 28
Un segnale analogico può assumere qualsiasi valore
(all'interno di un range noto).
Segnali digitali
Introduzione 29
01001000 01100101 01101100 01101100 01101111 Hello
La quantità può essere SOLO di
valori specifici
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
Arduino come riconosce se un
segnale è di ingresso o di uscita?
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
Come leggo o scrivo sui PIN?
Arduino come riconosce se un
segnale è di ingresso o di uscita?
Hello world! – Blink sketch
Esempio di output digitale
Introduzione 31
HANDS ON!
Hello world! – Blink sketch
Esempio di output digitale
Introduzione 32
I LED
Introduzione 33
I LED standard sono in
grado di assorbire fra
1,2V e 3,8V (dipende dal
colore)
I pin di Arduino erogano fino a 5V!
Come assorbire la tensione in
eccesso?
Richiami di elettronica
Introduzione 34
Intensità di corrente
La quantità di carica
elettrica che attraversa
la sezione di un
conduttore entro
un'unità di tempo; si
misura in ampere (A).
Tensione
E’ il dislivello elettrico a
cui vengono mantenuti
gli elettroni e si misura
in volt (V). Questo
dislivello è creato dal
generatore di corrente.
Resistenza
E’ la capacità di un
conduttore di opporsi al
passaggio di corrente; si
misura in ohm (Ω) e
dipende dal materiale,
dalla sezione e dalla
lunghezza del conduttore.
Legge di Ohm
Introduzione 35
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della
corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso?
Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 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
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della
corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso?
Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 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
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della
corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso?
Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 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
Le resistenze
Introduzione 37
Le resistenze
Introduzione 37
La breadboard non
richiede saldature ed è
completamente riusabile
(e perciò utilizzata
soprattutto per circuiti
temporanei).
Prototyping: la breadboard
Introduzione 38
Lo sviluppo di un circuito è un processo iterativo e
richiede molte modifiche possibilmente in modo
dinamico e veloce.
Prototyping: la basetta millefori
Introduzione 39
Si tratta di una piastra di vetronite (solitamente), che
può essere di varie misure, caratterizzata da una
griglia di fori regolari a distanza di 2,54 mm (cioè un
decimo di pollice) l'uno dall'altro.
Adatta per costruire
circuiti elettronici
definitivi
Let’s code!
Introduzione 40
Let’s code!
Introduzione 40
Commenti
multilinea
Let’s code!
Introduzione 40
Commenti
multilinea
Commenti linea singola
Let’s code!
Introduzione 41
Dichiarazione variabile
Let’s code!
Introduzione 41
Dichiarazione variabile Tipi di dato comuni
boolean isSaturday = true;
int myNumber = 1;
float pi = 3.14;
char firstInitial = 'P';
char myName[] = "Pearl";
String myName = "Pearl Chen“
int myPins[] = {2, 4, 8, 3, 6};
Let’s code!
Introduzione 42
Funzione
Let’s code!
Introduzione 42
Funzione
Let’s code!
Introduzione 43
Richiamo di funzione
Let’s code!
Introduzione 44
SPERIMENTIAMO!
Esempio di input digitale
Button sketch
Introduzione 45
Il pulsante
Introduzione 46
Corrente MAX sul pin di input: 40mA
Buona norma: 20mA
R=V/I ossia 5/0.02 => 250 ohm
Resistenza standard più vicina 330 ohm
ON oppure OFF
Ingresso indeterminato
Introduzione 47
PROBLEMA:
Quando il pulsante non è premuto non c’è nulla che
“dica” al circuito di restare a livello LOW, infatti
interferenze elettromagnetiche, correnti statiche o
quant’altro potrebbero far alzare il livello della
tensione sino ad arrivare ad un livello HIGH.
Resistenza di pull-down
Introduzione 48
• Quando il pulsante non è
premuto le due resistenze
sono messe in serie ed il pin
leggerà zero, ossia il valore di
massa.
• Quando andiamo a premere il
pulsante la corrente seguirà la
via a minor resistenza che è
quella verso il pin, impedendo
perciò di creare un
cortocircuito fra 5V e massa.
Resistenza di pull-up
Introduzione 49
• A pulsante non premuto c’è
costantemente corrente che passa
attraverso le due resistenze e
giunge al pin, infatti UP significa
alto, come il segnale (5V).
• Quando invece andiamo a premere
il pulsante la corrente seguirà la via
a minor resistenza per cui passerà
dalla resistenza di 10k al pulsante,
alla massa.
Resistenza di pull-up interna
Introduzione 50
void setup() {
// dichiara che il "pushButton" è un input:
pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:
pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
Resistenza di pull-up interna
Introduzione 50
void setup() {
// dichiara che il "pushButton" è un input:
pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:
pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
Resistenza di pull-up interna
Introduzione 50
void setup() {
// dichiara che il "pushButton" è un input:
pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:
pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
ATTENZIONE!
Se fate un errore nella
programmazione, il
pin non sarà protetto
dalla resistenza!
Esempio di input digitale
Button sketch code
Introduzione 51
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
Comunicazione seriale
Introduzione 52
Abilita seriale
Stampa in
console
Arduino può utilizzare la connessione seriale
(USB) non solo per l’alimentazione…
Ma anche per comunicare con il computer
host
• Scambio dati
• Debug
Esempio di input analogico
Twilight switch sketch
Introduzione 53
La fotoresistenza
Introduzione 54
La fotoresistenza è un componente elettronico la cui
resistenza è inversamente proporzionale alla quantità di
luce che lo colpisce.
Si comporta come un tradizionale resistore, ma il suo
valore in ohm diminuisce mano a mano che aumenta
l’intensità della luce che la colpisce.
Ciò comporta che la corrente elettrica che transita
attraverso tale componente è proporzionale all'intensità
di una sorgente luminosa
0v, 1.2v, 1.2435v, 3.4323v,
4.34332v, 4.34333v5v +
Let’s code!
Introduzione 55
Let’s code!
Introduzione 56
const int LED = 13; // pin for LED
const int photoResistor = A0; // pin for photo resistor
int val = 0; // variable used to store value coming from sensor
void setup() {
pinMode(LED,OUTPUT); // LED is an output
// * analogue pins are automatically set as inputs
}
void loop() {
val = analogRead(photoResistor);
digitalWrite(LED,HIGH); // turn on LED
delay(val); // wait (how long is determined by sensor value)
digitalWrite(LED,LOW); // turn off LED
delay(val);
}
Let’s code!
Introduzione 57
const int LED = 13; // pin for LED
const int photoResistor = A0; // pin for LED
const int soglia = 500;
int val = 0; // variable used to store value coming from sensor
void setup() {
pinMode(LED,OUTPUT); // LED is an output
// * analogue pins are automatically set as inputs
}
void loop() {
val = analogRead(photoResistor);
if (val<soglia){
digitalWrite(LED,HIGH); // turn on LED
}
else{
digitalWrite(LED,LOW); // turn off LED
}
}
Esempio di output analogico
Variable light sketch
Introduzione 58
PWM
Introduzione 59
PWM
Introduzione 60
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9
int photoResistor= A0;
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9
int photoResistor= A0;
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
analogRead restituisce valori da 0 a 1023
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9
int photoResistor= A0;
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
analogRead restituisce valori da 0 a 1023
analogWrite accetta valori da 0 a 255
Altri componenti
Condensatore
Introduzione 62
Un condensatore è un
dispositivo che può
accumulare e rilasciare
energia in un circuito.
Tipicamente un
condensatore è formato
da due lastre cariche
con un materiale
isolante tra esse il quale
ha il compito di evitare
che si perda la carica
elettrica accumulata.
Altri componenti
Induttore
Introduzione 63
Un induttore è un dispositivo
che immagazzina energia
elettrica in un campo
magnetico. Un induttore è
formato da un cavo a spirale. Quando viene
fatta passare corrente elettrica attraverso il
cavo viene generato un campo magnetico.
Quando la corrente aumenta, viene
immagazzinata più energia nel campo
magnetico; quando la corrente diminuisce
l'energia è rilasciata come potenza elettrica.
Altri componenti
Diodo
Introduzione 64
Un diodo è un dispositivo che permette il passaggio
della corrente elettrica in una sola direzione. Questi
componenti sono spesso usati per isolare l'effetto di
un componente su un altro.
Alcuni tipi di diodi:
• Diodo che emette luce (LED, Light Emitting Diode)
• Fotodiodo, rileva la luce
• Diodo laser, emette un fascio di luce laser
• Diodo Zener, impedisce il flusso di corrente sopra
una certa soglia
Altri componenti
Transistor
Introduzione 65
Un transistor è un dispositivo che limita o facilita il
passaggio di corrente tra i suoi due contatti in base alla
presenza o assenza di corrente su un terzo contatto. I pin
di un transistor sono quindi tre: Collettore, Emettitore e
Base.
il Collettore e l'Emettitore sono in pratica l'input e
l'output del transistor
la Base, in pratica è l'innesco
Altri componenti
Transistor
Introduzione 66
I due tipi di transistor più comuni sono:
PNP - questo transistor lascia passare corrente
(dall'Emettitore al Collettore) se la tensione alla Base
è minore della tensione dell'Emettitore
NPN - lascia passare corrente (dal Collettore
all'Emettitore) se la tensione alla Base è maggiore
della tensione dell'Emettitore
Gli usi più comuni dei transistor sono relativi all'uso
come interruttori attivati dalla corrente elettrica,
oppure come amplificatori della corrente in uscita.
Relay elettromagnetici
Introduzione 67
Interruttori azionati elettronicamente
• Per attivare e disattivare apparecchi ad alte
tensioni (lampadari, cancelli automatici, ventilatori,
etc.)
• Attenzione a lavorare con la 220V!!!
Le shield
Introduzione 68
Un Arduino 2009 trasformato in WebServer grazie a due shield.
Le shield ufficiali
Introduzione 69
Arduino Proto Shield - fronte e retro
Le shield ufficiali
Introduzione 70
Arduino Motor Shield
Le shield ufficiali
Introduzione 71
Arduino Wifi Shield e Arduino Ethernet Shield
Le shield non ufficiali
Introduzione 72
• Così come Arduino, le shield sono hardware open
source: le schematiche di ogni scheda si possono
scaricare e modificare a piacimento.
• Le shield attualmente in commercio sono
centinaia. Talmente tante che si è resa necessaria
la creazione di un database online per mettere
ordine e raccogliere schematiche e caratteristiche
tecniche di ognuna.
Le shield non ufficiali
Introduzione 73
Arduino Wave Shield
Buzzer
Introduzione 74
#define PIEZO 3
int del = 500;
void setup(){
pinMode(PIEZO, OUTPUT);
}
void loop(){
analogWrite(PIEZO, 128); // 50 percent duty cycle
delay(del);
digitalWrite(PIEZO, LOW); // turn the piezo off
delay(del);
}
Display
Moduli a caratteri
Introduzione 75
Sono display LCD capaci di visualizzare solo caratteri.
Vengono commercializzati display completi di controllore di
varie dimensioni a partire da 8x1, costituito da una riga di 8
caratteri, fino a dimensioni più grandi più tra cui 8x2, 16x2,
20x2, 16x4, 20x4, ecc
Controller Hitachi HD44780
Display
Moduli a caratteri
Introduzione 76
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface
pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// Turn off the display:
lcd.noDisplay();
delay(500);
// Turn on the display:
lcd.display();
delay(500);
}
Display
Moduli grafici
Introduzione 77
Controller
Philips PCD8544
• 48 righe
• 84 colonne
• economico
• basso consumo
Motori semplici
Introduzione 78
Servomotori
Introduzione 79
I servomotori sono composti da un
motore elettrico meccanicamente
collegato ad un potenziometro. I
componenti elettronici al suo interno
traducono il segnale PWM in ingresso
in una posizione. I componenti
elettronici al suo interno traducono il
segnale PWM in ingresso in una
posizione.
Quando si da il comando di rotazione,
il motore si accende fino a quando il
potenziometro raggiunge i valori
corrispondenti alla posizione richiesta.
Analog 180° Micro Servo
module è un servomotore di
alta qualità che può essere
connesso direttamente al
Sensor Shield.
Orologio RTC
Introduzione 80
Un real-time clock
(RTC), orologio in
tempo reale, è un
dispositivo con
funzione di orologio,
costituito da un
processore a circuito
integrato specializzato
per questa funzione, il
quale conteggia il
tempo reale anche
quando l'utilizzatore
viene spento
RFID
Introduzione 81
Un sistema RFID utilizza
un tag, o un etichetta,
che viene attaccata
all’oggetto che deve
essere identificato. Il
lettore, invia un segnale
al tag in attesa di una
risposta, ovvero le
informazioni
memorizzate all’interno
del tag.
Mifare RC522
Sensori ambientali
Temperatura e umidità
Introduzione 82
TMP36 - sensore analogico
Tensione di alimentazione: 2.7 - 5.5 VDC
Fattore di conversione: 10mV/°C
Accuratezza di ±2°C su tutta la scala
Linearità ±0.5°C
Range di misura: -40°C +125°C
3.3-6V Input
1-1.5mA measuring current
40-50 uA standby current
Humidity from 0-100% RH
-40 - 80 degrees C temperature range
+-2% RH accuracy
+-0.5 degrees C
DHT22 – sensore digitale
Sensori ambientali
Rilevatori di movimento
Introduzione 83
Sensore PIR SEN0018 con e
senza cupola di diffusione
Trimmer delay
Sensori ambientali
Rilevatori di movimento
Introduzione 84
Il funzionamento è semplice: quando rileva un movimento l’uscita del segnale
passa da LOW ad HIGH, secondo le specifiche del costruttore l’uscita passa da 0,4v
a 4v, quindi da una soglia inferiore ai 2,5v ad una superiore. Il sensore presenta
anche un potenziometro per regolare il tempo di eccitazione dopo aver rilevato il
movimento, ossia il tempo in cui il pin del segnale digitale resta a HIGH prima che,
in assenza di movimento, torni a LOW
Sensori ambientali
Rilevatori di movimento
Introduzione 85
int signal = 3;
int ledGreen = 4;
int ledRed = 5;
void setup()
{
pinMode( ledGreen, OUTPUT );
pinMode( ledRed, OUTPUT );
digitalWrite( ledGreen, LOW );
digitalWrite( ledRed, LOW );
}
void loop()
{
int pirSignal = digitalRead( signal );
int pirSignal2= (pirSignal == HIGH)? LOW:HIGH;
digitalWrite( ledGreen, pirSignal );
digitalWrite( ledRed, pirSignal2 );
delay(100);
}
Sensori ambientali
Sonar
Introduzione 86
Un sensore a ultrasuoni come il HC SR 04 misura il
tempo impiegato dalle onde sonore emesse da un
sorgente a ritornarvici dopo aver incontrato un
ostacolo che le riflette.
Sensori ambientali
Sonar
Introduzione 87
Wifi
ESP-8266
Introduzione 88
L’ESP8266 è un modulo
WiFi molto economico
che offre la possibilità di
essere connesso
facilmente ad un micro
controllore, come
arduino, mediante 2 pin
seriali Tx ed Rx ed
interagire con lo sketch
mediante comandi AT.
Wifi
ESP-8266
Introduzione 89
…e tanto altro!
Introduzione 90
• GPS
• Bluetooth
• Infrarossi
• Zeebee
• NFC
• Schede GSM dati
• Trasmettitori/ricevitori wireless 433Mhz
• Schede di sintesi e riconoscimento vocale
• …
Uno sguardo sul web
Cat feeder
Introduzione 91
Sei in giro, lontano da casa, ed hai dimenticato di dar da
mangiare al tuo tenero gatto? Chiedi aiuto al Cat Feeder!
Uno sguardo sul web
Cat feeder
Introduzione 92
Funzionamento:
Un piccolo sensore di luce
(LDR: light dependant resistor)
fissato sullo schermo di un
cellulare, ne rileva il
cambiamento di luminosità e
permette, tramite un micro
servomotore, di aprire un
barattolo contenente del cibo
per gatti. Basterà una chiamata
per attivare il Cat Feeder e
lasciar cadere i croccantini!
Uno sguardo sul web
Cat feeder
Introduzione 93
Componenti:
• Sensore di luce (LDR)
• 1 Micro Servomotore
• Resistenza da 10 Kohm
• Cellulare
Uno sguardo sul web
Cat feeder
Introduzione 94
Uno sguardo sul web
Cat feeder
Introduzione 95
#include <Servo.h>
Servo myServo; // viene creato un oggetto "servomotore"
int sensorValue, first = 0;
void setup() {
myServo.attach(9); // Il servomotore è controllato dal pin 9
Serial.begin(9600); // La porta seriale è abilitata per
eventuale debug
while(digitalRead(8)) { // Il barattolo è chiuso fino
myServo.write(45); // alla ricezione della prima chiamata
first = 1;
}
}
Uno sguardo sul web
Cat feeder
Introduzione 96
void loop() {
if(first){
sensorValue = digitalRead(8);
if(sensorValue) // Se il sensore ldr rileva della luce
myServo.write(45); // il servomotore chiude il contenitore
else // altrimenti
myServo.write(120); // il servomotore apre il contenitore
}
}
Siti di riferimento
Introduzione 97
• 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/
• Linguaggio
https://www.arduino.cc/en/Reference/HomePage
Siti di riferimento
Introduzione 98
Domande?
Introduzione 99
Al prossimo
incontro… GRAZIE!
Introduzione 100

Contenu connexe

Tendances

Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Michele Maffucci
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshopDaniele Iori
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoOmer Kilic
 
Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Michele Maffucci
 
Arduino seminar report
Arduino seminar reportArduino seminar report
Arduino seminar reportZaka Jutt
 
arduino
 arduino arduino
arduinojhcid
 
Arduino presentation by_warishusain
Arduino presentation by_warishusainArduino presentation by_warishusain
Arduino presentation by_warishusainstudent
 
LED CUBE PROJECT.pptx
LED CUBE PROJECT.pptxLED CUBE PROJECT.pptx
LED CUBE PROJECT.pptxromairshad1
 
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...Yamil Lambert
 
Lcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogLcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogsumedh23
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Michele Maffucci
 
Intro arduino English
Intro arduino EnglishIntro arduino English
Intro arduino EnglishSOAEnsAD
 

Tendances (20)

Ardui no
Ardui no Ardui no
Ardui no
 
Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Arduino presentation
Arduino presentationArduino presentation
Arduino presentation
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino
ArduinoArduino
Arduino
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4
 
Arduino seminar report
Arduino seminar reportArduino seminar report
Arduino seminar report
 
Arduino course
Arduino courseArduino course
Arduino course
 
arduino
 arduino arduino
arduino
 
What is Arduino ?
What is Arduino ?What is Arduino ?
What is Arduino ?
 
Arduino presentation by_warishusain
Arduino presentation by_warishusainArduino presentation by_warishusain
Arduino presentation by_warishusain
 
LED CUBE PROJECT.pptx
LED CUBE PROJECT.pptxLED CUBE PROJECT.pptx
LED CUBE PROJECT.pptx
 
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
 
Lcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogLcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilog
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6
 
Arduino presentation
Arduino presentationArduino presentation
Arduino presentation
 
Intro arduino English
Intro arduino EnglishIntro arduino English
Intro arduino English
 

En vedette

Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUSTOPS Italia
 
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab Varese
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab VareseArduino, i makers e i Fablab - Mirco Piccin - Faberlab Varese
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab VareseFaberLab
 
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
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to ArduinotrevisoAUG
 
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...Codemotion
 
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
 
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 GenuinoMauro Alfieri
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su ArduinoMirko Mancin
 
Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progettiMirco Piccin
 
Il Manuale dell'Artigiano Digitale
Il Manuale dell'Artigiano DigitaleIl Manuale dell'Artigiano Digitale
Il Manuale dell'Artigiano DigitaleFilippo Fresilli
 
La prima legge di ohm
La prima legge di ohmLa prima legge di ohm
La prima legge di ohmalessia313
 
Arduino e Raspberry Pi per Radioamatori
Arduino e Raspberry Pi per RadioamatoriArduino e Raspberry Pi per Radioamatori
Arduino e Raspberry Pi per RadioamatoriFrancesco Cozzi
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Daniele Costarella
 
Introduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettronicheIntroduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettronicheEnrico La Sala
 
Alfabeto arduino model expo italy
Alfabeto arduino   model expo italyAlfabeto arduino   model expo italy
Alfabeto arduino model expo italyMichele Maffucci
 
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'usogianlucaghettini
 

En vedette (20)

Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab Varese
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab VareseArduino, i makers e i Fablab - Mirco Piccin - Faberlab Varese
Arduino, i makers e i Fablab - Mirco Piccin - Faberlab Varese
 
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...
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...
Arduino, quando un aperitivo avvicina elettronica ed informatica, by Filippo ...
 
Workshop su Arduino
Workshop su ArduinoWorkshop su Arduino
Workshop su Arduino
 
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 ...
 
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
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su Arduino
 
Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progetti
 
Ampere
AmpereAmpere
Ampere
 
La corrente elettrica
La corrente elettricaLa corrente elettrica
La corrente elettrica
 
Il Manuale dell'Artigiano Digitale
Il Manuale dell'Artigiano DigitaleIl Manuale dell'Artigiano Digitale
Il Manuale dell'Artigiano Digitale
 
La prima legge di ohm
La prima legge di ohmLa prima legge di ohm
La prima legge di ohm
 
Arduino e Raspberry Pi per Radioamatori
Arduino e Raspberry Pi per RadioamatoriArduino e Raspberry Pi per Radioamatori
Arduino e Raspberry Pi per Radioamatori
 
Legge di Ohm_Appunti
Legge di Ohm_AppuntiLegge di Ohm_Appunti
Legge di Ohm_Appunti
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Introduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettronicheIntroduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettroniche
 
Alfabeto arduino model expo italy
Alfabeto arduino   model expo italyAlfabeto arduino   model expo italy
Alfabeto arduino model expo italy
 
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
 

Similaire à Introduzione a Arduino

Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
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-11Ionela
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoRiccardo Lemmi
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliAntonio Serra
 
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 - OpenSourceDay2012Mirco Piccin
 
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: ArduinoStefano Varano
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open HardwareStefano Sanna
 
Arduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArchimedea s.r.l
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2CSP Scarl
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliDemetrio Siragusa
 

Similaire à Introduzione a Arduino (20)

Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
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
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Arduino
ArduinoArduino
Arduino
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra Napoli
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
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
 
2 e1 arduino_nuovo artigianato
2 e1 arduino_nuovo artigianato2 e1 arduino_nuovo artigianato
2 e1 arduino_nuovo artigianato
 
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
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Arduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArduino day 2015 @Archimedea
Arduino day 2015 @Archimedea
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
Arduino day
Arduino dayArduino day
Arduino day
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
 

Introduzione a Arduino

  • 1. Introduzione a Arduino Pietro Aiuola p.aiuola@gmail.com
  • 2. Benvenuti! Introduzione 2 • Cosa è Arduino? • Cosa si può fare? • La sua storia • Com’è fatto? • Come si usa? • Esempi pratici
  • 3. Cosa è Arduino? Introduzione 3 Arduino, come tutte le invenzioni di successo, è la risposta ad un problema. E’ uno strumento open source che semplifica la progettazione e la prototipazione elettronica offrendo a studenti, insegnanti, artisti o semplici appassionati una piattaforma hardware e software per l’implementazione rapida di progetti interattivi, multimediali e multidisciplinari.
  • 4. Cosa è Arduino? Introduzione 4 • Piattaforma Open-source per la prototipazione elettronica • Composta da una parte di hardware ed una di software open-source • Artisti, designers, hobbisti, CHIUNQUE!
  • 5. Cosa è Arduino? Introduzione 5 Una PIATTAFORMA di PROTOTIPAZIONE ELETTRONICA OPEN SOURCE: PIATTAFORMA: Architettura hardware con un framework software su cui fare girare un programma software. PROTOTIPO: Un modulo iniziale che può servire come base o modello per la creazione di altre cose. ELETTRONICA: Tecnologia che fa uso del movimento controllato di elettroni attraverso differenti media. OPEN SOURCE: Risorse possono essere usate, redistribuite o riscritte gratis.
  • 6. Cosa NON è Arduino? Introduzione 6 • NON è un computer, ma un physical computer. • NON è un giocattolo. • NON è costoso.
  • 7. Cosa NON è Arduino? Introduzione 6 • NON è un computer, ma un physical computer. • NON è un giocattolo. • NON è costoso. Mini-elaboratori elettronici adibiti al controllo di oggetti nel mondo reale.
  • 8. Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi. Cosa si puo fare? Introduzione 7
  • 9. Storia di Arduino Introduzione 8 Il progetto nasce da Wiring, una piattaforma per la prototipazione elettronica semplificata, destinata ad artisti, architetti e altri professionisti digiuni di elettronica, realizzata da Hernando Barragán per la sua tesi di laurea (di cui Banzi era relatore) presso l’Interaction Design Institute di Ivrea. Arduino ha di fatto ereditato i presupposti e gli scopi originali di Wiring, espandendo la portata e il potenziale del progetto.
  • 10. Storia di Arduino Introduzione 9 Il nome della scheda deriva da quello di un bar di Ivrea (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia nel 1002) frequentato da alcuni dei fondatori del progetto.
  • 11. Storia di Arduino Introduzione 10 La “faccia” di Arduino è Massimo Banzi, Interaction Designer che nel 2005 fonda ad Ivrea il team di sviluppo originale insieme a David Cuartielles, Tom Igoe, Gianluca Martino e Davide Mellis.
  • 12. Storia di Arduino Introduzione 11 La vera svolta per il progetto è arrivata grazie all’appoggio globale negli ambienti di quello che è ormai all’unanimità chiamato Maker Movement, la “sottocultura” degli hobbisti tecnologici del 21-esimo secolo. I maker “non sono nerd, anzi sono dei tipi piuttosto fighi che si interessano di tecnologia, design, arte, sostenibilità, modelli di business alternativi. Vivono di comunità online, software e hardware open source ma anche del sogno di inventare qualcosa da produrre autonomamente, per vivere delle proprie invenzioni. In un momento di crisi si inventano il loro lavoro invece che cercarne uno classico.”
  • 13. Storia di Arduino Introduzione 12 Pubblicazioni su internet e riviste come Make e promozioni di iniziative come la Maker Faire hanno ulteriormente promosso il movimento.
  • 14. Storia di Arduino Introduzione 13 A ottobre 2008 erano già stati venduti più di 50.000 esemplari di Arduino in tutto il mondo. Arduino ha ricevuto una menzione d'onore nella sezione Digital Communities del 2006 Ars Electronica Prix.
  • 15. Hardware generico di Arduino Introduzione 14 Arduino è, di fatto, un’interfaccia semplificata per un microcontrollore, che è dunque il cuore di ogni “board”. Un “microcontroller” è un dispositivo elettronico integrato su un unico chip, progettato appositamente per interagire con input esterni, analogici o digitali, e restituire output analogici o digitali derivati dalle operazioni di processamento interno determinate da un programma caricato nella memoria del chip. Physical computer 8-bit a 16MHz con 32kb di memoria (l’equivalente circa di un computer desktop degli anni 80)
  • 16. Hardware generico di Arduino Introduzione 15 Nei primi modelli Banzi e il suo team utilizzarono un microcontrollore Atmel a 8-bit AVR, per poi passare a soluzioni più potenti con le versioni successive.
  • 17. Hardware generico di Arduino Introduzione 16 Per permettere agli Arduino di comunicare con un computer tramite USB e renderne semplice la programmazione, ogni scheda integra un ulteriore chip per la conversione del segnale digitale da USB a seriale.
  • 18. Hardware generico di Arduino Introduzione 17 Quasi tutte le schede Arduino integrano altri componenti, alcuni specifici a seconda del modello, quali ad esempio un oscillatore ceramico, un pulsante di reset che fa ripartire la scheda in caso di stallo del programma in memoria, un jack per la connessione dell’alimentazione diretta. Su ogni board Arduino sono presenti infine dei pin (“piedini”) di input e output attraverso i quali il microcontrollore riceve le “informazioni” in ingresso e restituisce all’ambiente un segnale in uscita.
  • 19. Hardware generico di Arduino Introduzione 18 E’ un hardware open source, distribuito nei termini della licenza Creative Commons Attribution- ShareAlike 2.5. In questo modo, chi lo desidera può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata, scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici necessari. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo: è quindi divenuto possibile scegliere tra un'enorme quantità di schede Arduino-compatibili.
  • 20. I vari modelli di Arduino Introduzione 19
  • 21. Arduino UNO Introduzione 20 Microcontrollore: ATmega328 Numero di Input/Output digitali: 14 (di cui 6 output PWM) Numero di Input Analogici: 6 Memoria: 32KB; 2KB SRAM; 1KB EEPROM Velocità di Clock: 16MHz
  • 22. Arduino MICRO Introduzione 21 Microcontroller ATmega32U4 Digital I/O Pins 20 PWM Channels 7 Analog Input Channels 12 Flash Memory 32 KB (ATmega32U4) of which 4 KB used by bootloader SRAM 2.5 KB (ATmega32U4) EEPROM 1 KB (ATmega32U4) Clock Speed 16 MHz Length 48 mm Width 18 mm Weight 13 g
  • 23. Arduino Lilypad Introduzione 22 • Indossabile • Lavabile
  • 24. Arduino YUN Introduzione 23 The Arduino Yun is a MIPS board based on the Atheros AR9331 and the ATmega32u4. The Atheros processor supports Linino, a Linux distribution based on OpenWRT. The board has built-in Ethernet, 802.11 g/b/n WiFi support, USB-A port, micro-SD card slot, 20 digital input/output pins(of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, an ICSP header, and 3 reset buttons.
  • 25. Il linguaggio Introduzione 24 Linguaggio programmazione simile al C • Derivato da Wiring • Due funzioni principali: • setup() • loop() • Facilmente espandibile • Codice organizzato in «sketch»
  • 31. Segnali analogici Introduzione 28 Un segnale analogico può assumere qualsiasi valore (all'interno di un range noto).
  • 32. Segnali digitali Introduzione 29 01001000 01100101 01101100 01101100 01101111 Hello La quantità può essere SOLO di valori specifici
  • 33. Come viene letto un segnale Analogico o Digitale? Introduzione 30 • Un segnale analogico deve essere campionato, ovvero convertito in una sequenza di bit che ne esprime l'ampiezza affinchè possa essere letto ed elaborato da Arduino, • Un segnale digitale è immediatamente "leggibile" non appena ne è stato discriminato il livello (High/Low). • Del segnale analogico interessa leggere il valore istantaneo, opportunamente campionato. • Del segnale digitale occorre sapere solo lo stato alto o basso.
  • 34. Come viene letto un segnale Analogico o Digitale? Introduzione 30 • Un segnale analogico deve essere campionato, ovvero convertito in una sequenza di bit che ne esprime l'ampiezza affinchè possa essere letto ed elaborato da Arduino, • Un segnale digitale è immediatamente "leggibile" non appena ne è stato discriminato il livello (High/Low). • Del segnale analogico interessa leggere il valore istantaneo, opportunamente campionato. • Del segnale digitale occorre sapere solo lo stato alto o basso. Arduino come riconosce se un segnale è di ingresso o di uscita?
  • 35. Come viene letto un segnale Analogico o Digitale? Introduzione 30 • Un segnale analogico deve essere campionato, ovvero convertito in una sequenza di bit che ne esprime l'ampiezza affinchè possa essere letto ed elaborato da Arduino, • Un segnale digitale è immediatamente "leggibile" non appena ne è stato discriminato il livello (High/Low). • Del segnale analogico interessa leggere il valore istantaneo, opportunamente campionato. • Del segnale digitale occorre sapere solo lo stato alto o basso. Come leggo o scrivo sui PIN? Arduino come riconosce se un segnale è di ingresso o di uscita?
  • 36. Hello world! – Blink sketch Esempio di output digitale Introduzione 31 HANDS ON!
  • 37. Hello world! – Blink sketch Esempio di output digitale Introduzione 32
  • 38. I LED Introduzione 33 I LED standard sono in grado di assorbire fra 1,2V e 3,8V (dipende dal colore) I pin di Arduino erogano fino a 5V! Come assorbire la tensione in eccesso?
  • 39. Richiami di elettronica Introduzione 34 Intensità di corrente La quantità di carica elettrica che attraversa la sezione di un conduttore entro un'unità di tempo; si misura in ampere (A). Tensione E’ il dislivello elettrico a cui vengono mantenuti gli elettroni e si misura in volt (V). Questo dislivello è creato dal generatore di corrente. Resistenza E’ la capacità di un conduttore di opporsi al passaggio di corrente; si misura in ohm (Ω) e dipende dal materiale, dalla sezione e dalla lunghezza del conduttore.
  • 41. Legge di Ohm Introduzione 36 Ecco a cosa possono servire le resistenze! La luminosità del led è proporzionale all’intensità della corrente che lo attraversa I led sopportano una corrente di circa 20mA = 0,02A Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V • Devo assorbire 5V – 2,1V = 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
  • 42. Legge di Ohm Introduzione 36 Ecco a cosa possono servire le resistenze! La luminosità del led è proporzionale all’intensità della corrente che lo attraversa I led sopportano una corrente di circa 20mA = 0,02A Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V • Devo assorbire 5V – 2,1V = 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
  • 43. Legge di Ohm Introduzione 36 Ecco a cosa possono servire le resistenze! La luminosità del led è proporzionale all’intensità della corrente che lo attraversa I led sopportano una corrente di circa 20mA = 0,02A Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V • Devo assorbire 5V – 2,1V = 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
  • 46. La breadboard non richiede saldature ed è completamente riusabile (e perciò utilizzata soprattutto per circuiti temporanei). Prototyping: la breadboard Introduzione 38 Lo sviluppo di un circuito è un processo iterativo e richiede molte modifiche possibilmente in modo dinamico e veloce.
  • 47. Prototyping: la basetta millefori Introduzione 39 Si tratta di una piastra di vetronite (solitamente), che può essere di varie misure, caratterizzata da una griglia di fori regolari a distanza di 2,54 mm (cioè un decimo di pollice) l'uno dall'altro. Adatta per costruire circuiti elettronici definitivi
  • 52. Let’s code! Introduzione 41 Dichiarazione variabile Tipi di dato comuni boolean isSaturday = true; int myNumber = 1; float pi = 3.14; char firstInitial = 'P'; char myName[] = "Pearl"; String myName = "Pearl Chen“ int myPins[] = {2, 4, 8, 3, 6};
  • 57. Esempio di input digitale Button sketch Introduzione 45
  • 58. Il pulsante Introduzione 46 Corrente MAX sul pin di input: 40mA Buona norma: 20mA R=V/I ossia 5/0.02 => 250 ohm Resistenza standard più vicina 330 ohm ON oppure OFF
  • 59. Ingresso indeterminato Introduzione 47 PROBLEMA: Quando il pulsante non è premuto non c’è nulla che “dica” al circuito di restare a livello LOW, infatti interferenze elettromagnetiche, correnti statiche o quant’altro potrebbero far alzare il livello della tensione sino ad arrivare ad un livello HIGH.
  • 60. Resistenza di pull-down Introduzione 48 • Quando il pulsante non è premuto le due resistenze sono messe in serie ed il pin leggerà zero, ossia il valore di massa. • Quando andiamo a premere il pulsante la corrente seguirà la via a minor resistenza che è quella verso il pin, impedendo perciò di creare un cortocircuito fra 5V e massa.
  • 61. Resistenza di pull-up Introduzione 49 • A pulsante non premuto c’è costantemente corrente che passa attraverso le due resistenze e giunge al pin, infatti UP significa alto, come il segnale (5V). • Quando invece andiamo a premere il pulsante la corrente seguirà la via a minor resistenza per cui passerà dalla resistenza di 10k al pulsante, alla massa.
  • 62. Resistenza di pull-up interna Introduzione 50 void setup() { // dichiara che il "pushButton" è un input: pinMode(pushButton, INPUT_PULLUP); // dichiara che il "led" è un output: pinMode(led, OUTPUT); } Per attivare la resistenza di pull-up interna di 20kΩ è sufficiente indicarlo nella funzione di setup
  • 63. Resistenza di pull-up interna Introduzione 50 void setup() { // dichiara che il "pushButton" è un input: pinMode(pushButton, INPUT_PULLUP); // dichiara che il "led" è un output: pinMode(led, OUTPUT); } Per attivare la resistenza di pull-up interna di 20kΩ è sufficiente indicarlo nella funzione di setup
  • 64. Resistenza di pull-up interna Introduzione 50 void setup() { // dichiara che il "pushButton" è un input: pinMode(pushButton, INPUT_PULLUP); // dichiara che il "led" è un output: pinMode(led, OUTPUT); } Per attivare la resistenza di pull-up interna di 20kΩ è sufficiente indicarlo nella funzione di setup ATTENZIONE! Se fate un errore nella programmazione, il pin non sarà protetto dalla resistenza!
  • 65. Esempio di input digitale Button sketch code Introduzione 51 const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin int buttonState = 0; // variable for reading the pushbutton status void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
  • 66. Comunicazione seriale Introduzione 52 Abilita seriale Stampa in console Arduino può utilizzare la connessione seriale (USB) non solo per l’alimentazione… Ma anche per comunicare con il computer host • Scambio dati • Debug
  • 67. Esempio di input analogico Twilight switch sketch Introduzione 53
  • 68. La fotoresistenza Introduzione 54 La fotoresistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di luce che lo colpisce. Si comporta come un tradizionale resistore, ma il suo valore in ohm diminuisce mano a mano che aumenta l’intensità della luce che la colpisce. Ciò comporta che la corrente elettrica che transita attraverso tale componente è proporzionale all'intensità di una sorgente luminosa 0v, 1.2v, 1.2435v, 3.4323v, 4.34332v, 4.34333v5v +
  • 70. Let’s code! Introduzione 56 const int LED = 13; // pin for LED const int photoResistor = A0; // pin for photo resistor int val = 0; // variable used to store value coming from sensor void setup() { pinMode(LED,OUTPUT); // LED is an output // * analogue pins are automatically set as inputs } void loop() { val = analogRead(photoResistor); digitalWrite(LED,HIGH); // turn on LED delay(val); // wait (how long is determined by sensor value) digitalWrite(LED,LOW); // turn off LED delay(val); }
  • 71. Let’s code! Introduzione 57 const int LED = 13; // pin for LED const int photoResistor = A0; // pin for LED const int soglia = 500; int val = 0; // variable used to store value coming from sensor void setup() { pinMode(LED,OUTPUT); // LED is an output // * analogue pins are automatically set as inputs } void loop() { val = analogRead(photoResistor); if (val<soglia){ digitalWrite(LED,HIGH); // turn on LED } else{ digitalWrite(LED,LOW); // turn off LED } }
  • 72. Esempio di output analogico Variable light sketch Introduzione 58
  • 75. Let‘s code! Introduzione 61 int ledPin = 9; // LED connected to digital pin 9 int photoResistor= A0; int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output } void loop() { val = analogRead(photoResistor); analogWrite(ledPin, val / 4); }
  • 76. Let‘s code! Introduzione 61 int ledPin = 9; // LED connected to digital pin 9 int photoResistor= A0; int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output } void loop() { val = analogRead(photoResistor); analogWrite(ledPin, val / 4); } analogRead restituisce valori da 0 a 1023
  • 77. Let‘s code! Introduzione 61 int ledPin = 9; // LED connected to digital pin 9 int photoResistor= A0; int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output } void loop() { val = analogRead(photoResistor); analogWrite(ledPin, val / 4); } analogRead restituisce valori da 0 a 1023 analogWrite accetta valori da 0 a 255
  • 78. Altri componenti Condensatore Introduzione 62 Un condensatore è un dispositivo che può accumulare e rilasciare energia in un circuito. Tipicamente un condensatore è formato da due lastre cariche con un materiale isolante tra esse il quale ha il compito di evitare che si perda la carica elettrica accumulata.
  • 79. Altri componenti Induttore Introduzione 63 Un induttore è un dispositivo che immagazzina energia elettrica in un campo magnetico. Un induttore è formato da un cavo a spirale. Quando viene fatta passare corrente elettrica attraverso il cavo viene generato un campo magnetico. Quando la corrente aumenta, viene immagazzinata più energia nel campo magnetico; quando la corrente diminuisce l'energia è rilasciata come potenza elettrica.
  • 80. Altri componenti Diodo Introduzione 64 Un diodo è un dispositivo che permette il passaggio della corrente elettrica in una sola direzione. Questi componenti sono spesso usati per isolare l'effetto di un componente su un altro. Alcuni tipi di diodi: • Diodo che emette luce (LED, Light Emitting Diode) • Fotodiodo, rileva la luce • Diodo laser, emette un fascio di luce laser • Diodo Zener, impedisce il flusso di corrente sopra una certa soglia
  • 81. Altri componenti Transistor Introduzione 65 Un transistor è un dispositivo che limita o facilita il passaggio di corrente tra i suoi due contatti in base alla presenza o assenza di corrente su un terzo contatto. I pin di un transistor sono quindi tre: Collettore, Emettitore e Base. il Collettore e l'Emettitore sono in pratica l'input e l'output del transistor la Base, in pratica è l'innesco
  • 82. Altri componenti Transistor Introduzione 66 I due tipi di transistor più comuni sono: PNP - questo transistor lascia passare corrente (dall'Emettitore al Collettore) se la tensione alla Base è minore della tensione dell'Emettitore NPN - lascia passare corrente (dal Collettore all'Emettitore) se la tensione alla Base è maggiore della tensione dell'Emettitore Gli usi più comuni dei transistor sono relativi all'uso come interruttori attivati dalla corrente elettrica, oppure come amplificatori della corrente in uscita.
  • 83. Relay elettromagnetici Introduzione 67 Interruttori azionati elettronicamente • Per attivare e disattivare apparecchi ad alte tensioni (lampadari, cancelli automatici, ventilatori, etc.) • Attenzione a lavorare con la 220V!!!
  • 84. Le shield Introduzione 68 Un Arduino 2009 trasformato in WebServer grazie a due shield.
  • 85. Le shield ufficiali Introduzione 69 Arduino Proto Shield - fronte e retro
  • 86. Le shield ufficiali Introduzione 70 Arduino Motor Shield
  • 87. Le shield ufficiali Introduzione 71 Arduino Wifi Shield e Arduino Ethernet Shield
  • 88. Le shield non ufficiali Introduzione 72 • Così come Arduino, le shield sono hardware open source: le schematiche di ogni scheda si possono scaricare e modificare a piacimento. • Le shield attualmente in commercio sono centinaia. Talmente tante che si è resa necessaria la creazione di un database online per mettere ordine e raccogliere schematiche e caratteristiche tecniche di ognuna.
  • 89. Le shield non ufficiali Introduzione 73 Arduino Wave Shield
  • 90. Buzzer Introduzione 74 #define PIEZO 3 int del = 500; void setup(){ pinMode(PIEZO, OUTPUT); } void loop(){ analogWrite(PIEZO, 128); // 50 percent duty cycle delay(del); digitalWrite(PIEZO, LOW); // turn the piezo off delay(del); }
  • 91. Display Moduli a caratteri Introduzione 75 Sono display LCD capaci di visualizzare solo caratteri. Vengono commercializzati display completi di controllore di varie dimensioni a partire da 8x1, costituito da una riga di 8 caratteri, fino a dimensioni più grandi più tra cui 8x2, 16x2, 20x2, 16x4, 20x4, ecc Controller Hitachi HD44780
  • 92. Display Moduli a caratteri Introduzione 76 #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // Turn off the display: lcd.noDisplay(); delay(500); // Turn on the display: lcd.display(); delay(500); }
  • 93. Display Moduli grafici Introduzione 77 Controller Philips PCD8544 • 48 righe • 84 colonne • economico • basso consumo
  • 95. Servomotori Introduzione 79 I servomotori sono composti da un motore elettrico meccanicamente collegato ad un potenziometro. I componenti elettronici al suo interno traducono il segnale PWM in ingresso in una posizione. I componenti elettronici al suo interno traducono il segnale PWM in ingresso in una posizione. Quando si da il comando di rotazione, il motore si accende fino a quando il potenziometro raggiunge i valori corrispondenti alla posizione richiesta. Analog 180° Micro Servo module è un servomotore di alta qualità che può essere connesso direttamente al Sensor Shield.
  • 96. Orologio RTC Introduzione 80 Un real-time clock (RTC), orologio in tempo reale, è un dispositivo con funzione di orologio, costituito da un processore a circuito integrato specializzato per questa funzione, il quale conteggia il tempo reale anche quando l'utilizzatore viene spento
  • 97. RFID Introduzione 81 Un sistema RFID utilizza un tag, o un etichetta, che viene attaccata all’oggetto che deve essere identificato. Il lettore, invia un segnale al tag in attesa di una risposta, ovvero le informazioni memorizzate all’interno del tag. Mifare RC522
  • 98. Sensori ambientali Temperatura e umidità Introduzione 82 TMP36 - sensore analogico Tensione di alimentazione: 2.7 - 5.5 VDC Fattore di conversione: 10mV/°C Accuratezza di ±2°C su tutta la scala Linearità ±0.5°C Range di misura: -40°C +125°C 3.3-6V Input 1-1.5mA measuring current 40-50 uA standby current Humidity from 0-100% RH -40 - 80 degrees C temperature range +-2% RH accuracy +-0.5 degrees C DHT22 – sensore digitale
  • 99. Sensori ambientali Rilevatori di movimento Introduzione 83 Sensore PIR SEN0018 con e senza cupola di diffusione Trimmer delay
  • 100. Sensori ambientali Rilevatori di movimento Introduzione 84 Il funzionamento è semplice: quando rileva un movimento l’uscita del segnale passa da LOW ad HIGH, secondo le specifiche del costruttore l’uscita passa da 0,4v a 4v, quindi da una soglia inferiore ai 2,5v ad una superiore. Il sensore presenta anche un potenziometro per regolare il tempo di eccitazione dopo aver rilevato il movimento, ossia il tempo in cui il pin del segnale digitale resta a HIGH prima che, in assenza di movimento, torni a LOW
  • 101. Sensori ambientali Rilevatori di movimento Introduzione 85 int signal = 3; int ledGreen = 4; int ledRed = 5; void setup() { pinMode( ledGreen, OUTPUT ); pinMode( ledRed, OUTPUT ); digitalWrite( ledGreen, LOW ); digitalWrite( ledRed, LOW ); } void loop() { int pirSignal = digitalRead( signal ); int pirSignal2= (pirSignal == HIGH)? LOW:HIGH; digitalWrite( ledGreen, pirSignal ); digitalWrite( ledRed, pirSignal2 ); delay(100); }
  • 102. Sensori ambientali Sonar Introduzione 86 Un sensore a ultrasuoni come il HC SR 04 misura il tempo impiegato dalle onde sonore emesse da un sorgente a ritornarvici dopo aver incontrato un ostacolo che le riflette.
  • 104. Wifi ESP-8266 Introduzione 88 L’ESP8266 è un modulo WiFi molto economico che offre la possibilità di essere connesso facilmente ad un micro controllore, come arduino, mediante 2 pin seriali Tx ed Rx ed interagire con lo sketch mediante comandi AT.
  • 106. …e tanto altro! Introduzione 90 • GPS • Bluetooth • Infrarossi • Zeebee • NFC • Schede GSM dati • Trasmettitori/ricevitori wireless 433Mhz • Schede di sintesi e riconoscimento vocale • …
  • 107. Uno sguardo sul web Cat feeder Introduzione 91 Sei in giro, lontano da casa, ed hai dimenticato di dar da mangiare al tuo tenero gatto? Chiedi aiuto al Cat Feeder!
  • 108. Uno sguardo sul web Cat feeder Introduzione 92 Funzionamento: Un piccolo sensore di luce (LDR: light dependant resistor) fissato sullo schermo di un cellulare, ne rileva il cambiamento di luminosità e permette, tramite un micro servomotore, di aprire un barattolo contenente del cibo per gatti. Basterà una chiamata per attivare il Cat Feeder e lasciar cadere i croccantini!
  • 109. Uno sguardo sul web Cat feeder Introduzione 93 Componenti: • Sensore di luce (LDR) • 1 Micro Servomotore • Resistenza da 10 Kohm • Cellulare
  • 110. Uno sguardo sul web Cat feeder Introduzione 94
  • 111. Uno sguardo sul web Cat feeder Introduzione 95 #include <Servo.h> Servo myServo; // viene creato un oggetto "servomotore" int sensorValue, first = 0; void setup() { myServo.attach(9); // Il servomotore è controllato dal pin 9 Serial.begin(9600); // La porta seriale è abilitata per eventuale debug while(digitalRead(8)) { // Il barattolo è chiuso fino myServo.write(45); // alla ricezione della prima chiamata first = 1; } }
  • 112. Uno sguardo sul web Cat feeder Introduzione 96 void loop() { if(first){ sensorValue = digitalRead(8); if(sensorValue) // Se il sensore ldr rileva della luce myServo.write(45); // il servomotore chiude il contenitore else // altrimenti myServo.write(120); // il servomotore apre il contenitore } }
  • 113. Siti di riferimento Introduzione 97 • 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/ • Linguaggio https://www.arduino.cc/en/Reference/HomePage