Date post: | 12-Feb-2017 |
Category: |
Engineering |
Upload: | pietro-aiuola |
View: | 383 times |
Download: | 1 times |
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, InteractionDesigner 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
Channels12
Flash Memory
32 KB
(ATmega32U4)
of which 4 KB
used by
bootloader
SRAM2.5 KB
(ATmega32U4)
EEPROM1 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 variabileTipi 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 pinconst 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 LEDconst 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 LEDdelay(val); // wait (how long is determined by sensor value)digitalWrite(LED,LOW); // turn off LEDdelay(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 9int 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 9int 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 9int 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 interfacepinsLiquidCrystal 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 analogicoTensione 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 9Serial.begin(9600); // La porta seriale è abilitata per
eventuale debugwhile(digitalRead(8)) { // Il barattolo è chiuso fino myServo.write(45); // alla ricezione della prima chiamatafirst = 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 contenitoreelse // 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