a Arduino
Gianpaolo
Gonnelli
gianpaolo.gonnelli@gmail.com
Arduino 1
Contenu7
l Cosa
è?
l Da
cosa
è
composto?
l Alcuni
componen7
u7li
l Programmare
Arduino
l Esperimen7
l Comunicare
col
PC
l Schede
ARM
Arduino 2
Cosa
è?
• Arduino
è
una
scheda
eleBronica
che
ci
permeBe
di
programmare
in
maniera
“semplice”
un
microcontrollore
Arduino 3
Applicazioni
Arduino 4
Modelli
di
Arduino
Arduino 5
Arduino
Shields
Arduino 6
A
cosa
serve
• Arduino
può
essere
visto
come
una
centralina
di
controllo
Arduino 7
Da
cosa
è
composto
• Il
cuore
di
Arduino:
il
Microcontrollore
• Il risuonatore ceramico
• Componen7 eleBronici
Arduino 8
Microcontrollore
Atmel
Atmega328
• Bootloader
Arduino 9
Porte
e
alimentazione
Arduino 10
Caratteristiche di Arduino
Microcontroller
ATmega328
Opera7ng
Voltage
5V
Input
Voltage
(recommended)
7-‐12V
Input
Voltage
(limits)
6-‐20V
Digital
I/O
Pins
14
(of
which
6
provide
PWM
output)
Analog
Input
Pins
6
DC
Current
per
I/O
Pin
40
mA
DC
Current
for
3.3V
PinFlash
50
mA
Memory
32
KB
(ATmega328)
of
which
0.5
KB
bootloader
SRAM
2
KB
(ATmega328)
EEPROM
1
KB
(ATmega328)
Arduino 11
Digital vs Analog vs Digital PWM
• Digital
– Due
livelli
0-‐1
(basso
–
alto)
• Analog
– Misura
la
tensione
• Digital
PWM
– Simula
l’analogica
Arduino 12
PWM di Arduino
Pulse Width Modulation ed è una tecnica per simulare la
variazione di tensione
Arduino 13
Alcuni
Componen7
u7li
l Breadboard
l Resistenze
l Led
l Potenziometri
l Fotoresistenze
l Servo
motori
l Panoramica
sensori
l
(I
soli7:
condensatori,
diodi,
transistor
etc..)
Arduino 14
La
breadboard:
proto7pazione
circui7
Arduino 15
Resistenze:
come
leggerle
Normalmente le resistenze sono caratterizzate da 4 strisce colorate:
per conoscere l’ordinamento delle strisce si guarda dove si trova
quella che dista di più dalle altre (che nell’ordinamento sarà l’ultima)
Per il collegamento:
• Anodo al polo positivo
• Catodo al polo negativo
• Resistenza in serie all’alimentazione(limita la corrente in ingresso al led)
Applicazioni:
Joystick, robot, interruttori etc..
Arduino 20
Fotoresistenze
Componente elettronico la cui resistenza è inversamente
proporzionale alla quantità di luce lo colpisce
Applicazione principale:
Interruttore crepuscolare
Arduino 21
Servo comandi
Attuatori con controllo di posizione integrato
Come funzionano
Comandati in tensione (ingresso segnale analogico o PWM) a seconda del
valore in ingresso si posizionano ad un angolo preciso angolo. L’elettronica
interna è necessaria per fermare il motore quando ha raggiunto l’angolo
(controllo lineare)
Accelerazione Accelerometro,giroscopio..
Temperatura Termoresistenze..
Localizzazzione GPS..
Arduino 23
Arduino
Solware
Arduino 24
Ambiente di sviluppo
Sviluppato in java
• Codice c-like
• Compilazione
• Upload su scheda
• Monitor Seriale
Guida installazione:
- http://arduino.cc/en/Guide/HomePage
Arduino 25
Funzioni
principali
La funzione setup() La funzione loop()
Chiamata all’inizio del nostro programma Chiamata subito dopo la setup questa
(sketch), serve per inizializzare le variabili, funzione, cicla costantemente eseguendo
i vari pin e per iniziare ad usare le librerie. ad ogni ciclo le istruzioni presenti nel suo
Questa funzione viene eseguita solo una blocco.
volta.
int buttonPin = 3;
void loop()
void setup() {
{ if (digitalRead(buttonPin) == HIGH)
Serial.begin(9600); Serial.write('H');
pinMode(buttonPin, INPUT); else
} Serial.write('L');
Funzioni
pinMode(<numero pin>,<modo>)
permetta la configurazione dei pin tra input e output
DigitalWrite(<alto o basso>)
permette di settare il pin tra HIGH e LOW (0V – 5V)
DigitalRead()
legge il valore del pin (HIGH o LOW)
AnalogRead()
legge il valore di tensione in ingresso su di un pin analogico.
AnalogWrite()
scrive il valore di tensione desiderato su un pin pwm.
Map()
mappa un range numerico su un altro. Poi esempio pratico
Arduino 27
Riferimenti: http://arduino.cc/en/Reference/HomePage
Con
le
mani
in
pasta
l Esperimento1
l Esperimento2
l Esperimento3
Arduino 28
Esperimento 1
Accendiamo un LED
Codice: Collegamenti
Arduino 29
Esperimento2
Utilizziamo un sensore
Come collegare la fotoresistenza. Tensione nominale fotoresistenza 10kOhm
Partitore di tensione.
V out = (R2*I)/(R2+R1)
Arduino 30
Lo schema di colllegamento
Arduino 31
Codice
int fotorValue = 0;
int fotorPin = 0;
int ledPin = 10;
void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Setted up");
}
void loop(){
fotorValue=analogRead(fotorPin);
if(fotorValue >600){
int val = map(fotorValue,600,1023,0,255);
Serial.println(val);
analogWrite(10,val);
}else{
analogWrite(10,0);
}
}
Arduino 32
Esperimento
3
Robot Planare 2R (più o meno)
Schema di collegamento
Arduino 33
Codice Esperimento
3
Robot Planare 2R (più o meno)
#include <Servo.h>
char buffer[10];
int stat = 1300;
int count=0;
int pot1=0;
int pot2=1;
Servo servo2;
Servo servo;
Arduino 35
Esperimento
4
La
testa
robo7ca
l Face
tracking
Arduino 36
Schede
con
microprocessore
(ARM)
Raspberry pi
Arduino 37
Altre
Schede
ACME systems
Aria
Fox
Arduino 38
Altre
schede
Nvidia
Arduino 39