ARDUINO
Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile
creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto in ambito di
robotica ed automazione. Si basa su un Microcontrollore della ATMEL,
l'ATMega168/328: per esempio l'Arduino Uno monta un ATMega328. Nasce a Ivrea,
nel 2005, da un'idea di un professore universitario, un Ingegnere Elettronico,
Massimo Banzi.
Questa piattaforma è Open Source, cioè è possibile trovare sul sito ufficiale
www.arduino.cc, i circuiti, i componenti e addirittura le istruzioni per realizzarla
da soli. Un gruppo di studenti della facoltà di Ingegneria Informatica a
scrivergli la libreria, l'IDE (libreria portabile su ogni sistema operativo) e le
prime API.
C'è da aggiungere un particolare molto importante, ogni programma
che si scrive su Arduino sarà naturalmente avviato a loop() finché non
si toglie l'alimentazione dal dispositivo. Arduino può comandare
sensori, luci, LED, motori e altri attuatori
.
Linguaggio di programmazione
Il linguaggio di programmazione è basato su Wiring (un ambiente di
programmazione Open-Source pensato per una facile applicazione per
semplificare la programmazione in C e C++) e sull'interfaccia
Processing.
Il linguaggio base di Arduino, basato sulla sintassi del linguaggio C
Strutture generali
setup()
loop()
Strutture di controllo
if
if .. else
for
switch case
while
do .. while
break
continue
return
goto
Segni di interpunzione usati
;
{}
//
/*/
Direttive:
#define
#include
Tipi di dati:
void
boolean
char
insigne char
byte
int
insigne int
word
long intero a 32 bit con segno
unsigned long intero a 32 sempre positivo
float
double
string (di caratteri)
String (oggetto)
Array
Funzioni per la gestione dell’hardware
Digitali
pinMode()
digitalWrite()
digitalRead()
Analogici
analogReference()
analogRead()
analogWrite()
Gestione del tempo
millis()
micros()
delay()
delayMicroseconds()
Come si vede, queste istruzioni, che consentono di operare a livello di singoli
bit e piedini, e
l’ottimizzazione che Arduino assicura per il codice macchina generato,
rendono inutile il ricorso
all’assembler.
Caratteristiche arduino
La scheda Arduino Uno, ultima nata, nel 2010, ha le seguenti caratteristiche:
Microcontrollore ATmega328
Tensione di lavoro 5V
Tensione di ingresso raccomandata 7-12 V
Ingressi-Uscite 14 (di cui 6 possono fornire il comando PWM di motori)
Ingressi analogici 6
Memoria Flash 32 KB
SRAM 2 KB
EEPROM 1 KB
Clock 16 MHz
•
• PWM - I pin a disposizione con questa funzionalità sono 6. Il PWM, o
pulse width modulation permette di creare un'onda di corrente regolabile.
Questa è molto utile per comandare svariati sistemi elettronici. L'esempio
piu' stupido è comandare i servomotori da modellismo.
• TX - RX - porta seriale
• RESET - Questo è un PIN digitale. Se la lettura di questo PIN=HIGH il
controller si resetta
• PIN uscita corrente a 3.3V
• PIN uscita corrente a 5V
•
Vin - PIN input corrente per alimentazione controller
• Analog in - PIN input analogici. Possono percepire molto precisamente
una corrente DC tra 0 e 5V, resistuendo un valore da 0 a 1023.
• Digital - PIN digitali programmabili per essere input o output,
percepiscono se è presente o no corrente restituendo LOW se non c'è
corrente e HIGH se c'è corrente, oppure possono essere programmati per
generare corrente in output di massimo 40mA
I Pin sono connettori femmina, che hanno molteplici utilizzi, che vanno rispettate per evitare
il rischio di un corto circuito che puo' arrivare anche al rischio di incendio e/o
danneggiamento del computer a cui è collegato Arduino.
• AREF - Questo pin regola il voltaggio di massima risoluzione degli input analogici
• GND - massa
MICROPROCESSORE
Atmega328 è la sigla di questo microcontrollore. All'interno di questo componente
viene salvato il programma scritto dall'utente e tutta la configurazione di base che
permette ad Arduino un funzionamento corretto. Quando acquisterete arduino
riceverete uno di questi microcontrollori con solamente il Bootloader all'interno
dell'ATMega. Questo "file" è una configurazione di base che permette l'utilizzo del
software dedicato.
Questo setting puo' essere modificato per utilizzare un software differente e per
modificare la posizione e configurazione dei PIN
bootloader: è un pezzo di codice scritto sul chip della scheda Arduino.
Permette di verificare se viene inviato un codice, lo sketch, tramite la porta
seriale. Quindi se c'è un codice, lo legge e lo scrive nella memoria.
Hardware arduino
L'hardware originale Arduino è interamente realizzato in Italia dalla Smart
Projects, mentre i cloni della scheda possono essere realizzati da chiunque
in qualsiasi parte del mondo. Una scheda Arduino tipica consiste in
un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l'aggiunta di
componenti complementari per facilitarne l'incorporazione in altri circuiti. In
queste schede sono usati chip della serie megaAVR - nello specifico i
modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.
Programmazione del
microprocessore
In alcuni casi il microcontroller della scheda è pre-programmato con
un bootloader che semplifica il caricamento dei programmi sullamemoria
flash incorporata nel chip.
A livello concettuale, tutte le schede sono programmate attraverso una porta
seriale RS-232, ma il modo in cui questa funzionalità è implementata
nell'hardware varia da versione a versione. Le schede seriali Arduino contengono
un semplice circuito inverter che permette la conversione tra il livello della RS-232
e il livello dei segnali TTL.
Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza
un microcontrollore Atmega8U2 programmato come convertitore USB-seriale
Input/output
Per implementare il comportamento interattivo, Arduino è fornita di funzionalità
di input/output (I/O), grazie alle quali essa riceve i segnali raccolti
da sensori esterni. Il comportamento della scheda è gestito dal microcontroller in
base ai valori provenienti dai sensori e alle decisioni determinate dal particolare
programma in esecuzione in quel momento sulla scheda. L'interazione con
l'esterno avviene attraverso attuatori pilotati dal programma attraverso i canali di
output in dotazione.
I/O digitale
La Arduino Uno, ad esempio, che ha soppiantato la Duemilanove, offre 14
connettori per l'I/O digitale (numerati da 0 a 13). La direzione di funzionamento,
input o output, è decisa dallo sketch programmato sull'IDE Sei dei canali I/O
possono produrre segnali Pulse-width modulation (PWM).
I/O digitale
Attraverso i segnali PWM è possibile, ad esempio, regolare l'intensità di
luminosità di un LED o la velocità di rotazione di un motorino elettrico[5].
L'hardware di tre dei pin di I/O (9, 10 e 11) implementa la possibilità di gestirli
direttamente attraverso la funzione analogWrite(), che permette di controllare la
PWM del segnale in uscita in maniera efficiente, senza dover eseguire linee di
codice appositamente predisposte[
I/O analogico
Sempre sulla Uno, sono presenti altri 6 connettori specificamente dedicati a
ingressi di segnali analogici (collegati quindi ad una ADC), cioè valori di tensione
letti da sensori esterni i cui valori, fino a un massimo di 5 Volt, sono convertiti in
1024 livelli discreti (da 0 a 1023). Questi 6 connettori possono essere
riprogrammati (sempre dal codice dello sketchsull'IDE) per funzionare come
normali entrate/uscite digitali.
Software di arduino
L'ambiente di sviluppo integrato (IDE) di Arduino è
un'applicazione multipiattaforma scritta in Java, ed è derivata dall'IDE creato
per illinguaggio di programmazione Processing e per il progetto Wiring. È
concepita per iniziare alla programmazione artisti e altri neofiti, che siano a
digiuno di pratica nello sviluppo di software. Per permettere la stesura
del codice sorgente, l'IDE include un editore di test dotato inoltre di alcune
particolarità, come il syntax highlighting, il controllo delle parentesi, e
l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il
programma eseguibile in una sola passata e con un solo click. In genere non vi
è bisogno di creare dei Makefile o far girare programmi dalla riga di
comando.Ogniprogramma scritto da noi viene denominato da sketch.
software arduino
Per Arduino la sorgente di alimentazione viene selezionata automaticamente e
può avvenire tramite porta USB o Jack di alimentazione. Appena la scheda è
alimentata si accenderà il led verde PWR (power).
Avvio del programma arduino
Andiamo sulla cartella
‘esempi’,’basics’ e
apriamo lo sketch
denominato blink.
Dopo di che si
aprirà un
programma base
per imparare e
iniziare a
scrivere il nostro
sketch.