Arduino è una piattaforma open-source di prototipazione elettronica facile da usare sia a livello hardware che software. E 'pensato per artisti, designer, hobbisti, e chiunque sia interessato nella creazione di oggetti o ambienti interattivi.
Si tratta di un microcontrollore flessibile e facile da usare sia per quanto riguarda la componente hardware che software.
La componente hardware open source è disponibile sotto una licenza Creative Commons e si è liberi di adattarla alle proprie esigenze. In questo modo, chiunque lo desideri può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata.
Chiunque può scaricarsi l’hardware e modificarlo, utilizzarlo o venderlo.
In questo modo una vasta comunità internazionale di sviluppatori hardware ha iniziato a collaborare e aggiungere componenti alla scheda.
Possiamo trovare molteplici oggetti che contengono il microchip Arduino, nei suoi variabili usi: da router per telefoni a lettori mp3, da sintetizzatori ad amplificatori per la chitarra, fino a hardware da collegare con gli smartphone.
Arduino può ricevere dall’esterno dei segnali da alcuni sensori (di luminosità, di temperatura, di umidità, ecc) e può controllare in uscita dei motori o altri attuatori.
Per poterlo programmare si utilizza il software chiamato proprio Arduino 1.0.
Il suo software può essere scaricato gratuitamente e può girare in ambienti con sistemi operativi:
-Windows
-Mac OS X
-Linux: 32 bit, 64 bit
Esistono in commercio varie schede già pronte all’uso utilizzabili per varie applicazioni.
Pilotaggio di un diodo led con Arduino
Lampeggio di un diodo LED
// Esempio: lampeggio di un diodo LED
#define LED 13 // LED collegato al pin digitale 13
void setup() {
pinMode(LED, OUTPUT); // imposta il pin digitale come output
}
void loop() {
digitalWrite(LED, HIGH); // accende il LED
delay(1000); // aspetta 1 secondo
digitalWrite(LED, LOW); // spegne il LED
delay(1000); // aspetta 1 secondo
}
Lampeggio di 8 diodi LED (ciclo Blink)
Colleghiamo adesso 8 diodi led con le relative resistenze come nella figura seguente. Facciamo adesso un programma che permetta di configurare gli 8 pin digitali ( da 2 a 9) in uscita (OUTPUT) mediante la seguente istruzione:
pinMode(i,OUTPUT); //con i variabile del ciclo for all'interno della funzione setup():
L'animazione del circuito invece avviene nella funzione loop() attraverso un altro ciclo for ripetuto per tutti gli 8 piedini che accende un led per mezzo secondo, con la seguente istruzione:
digitalWrite(i,HIGH); //metti alto il pin i-esimo
delay(500); //aspetta per mezzo secondo
quindi spegne il led e passa al successivo, in modo iterativo.
Vediamo adesso il programma completo che accende 8 diodi led in modo consecutivo
Ciclo Blink
//funzione di configurazione
void setup()
{
//inizializza i piedini da 2 a 9 come output ai quali vengono collegati gli 8 diodi LED
int i;
for(i=2;i<10;i++)
{pinMode(I,OUTPUT);
}
//programma principale ripetuto all’infinito
void loop()
{
//accende l’i-esimo LED
digitalWrite(i,HIGH);
//il LED rimane acceso per 500ms cioè per mezzo secondo
delay(500); //spegne l’i-esimo LED
digitalWrite(i,LOW);
}
}
Flow chart del ciclo BLINK
Arduino Mega 2560 Rev3 è una scheda elettronica basata sul microcontrollore Atmega2560. Dispone di 54 ingressi/uscite digitali (14 delle quali possono essere utilizzate come uscite PWM), 16 ingressi analogici, 4 porte seriali hardware UART, un oscillatore a 16 MHz, una connessione USB, un jack di alimentazione, un header ICSP e un pulsante di reset.
Esso contiene tutto il necessario per supportare il microcontrollore; è sufficiente connettere Arduino Mega ad un computer tramite un cavo USB o alimentarlo con un trasformatore AC/DC o una batteria per iniziare.
Caratteristiche di Arduino MEGA 2560
Differenze principali rispetto alle precedenti revisioni:
Rev1: inserita una resistenza che porta a massa la linea 8U2 HWBper semplificare l'utilizzo della modalità DFU (Device Firmware Update)
Rev2:
• Pinout 1.0: sono stati agguinti i pin SDA e SCL (vicino AREF) e due nuovi pin vicino a quello di reset, IOREF che permette agli shield di adattarsi alla tensione della scheda.
• Circuito di reset migliorato
• Convertitore USB-seriale basato su ATmega16U2 anzichè ATmega8U2
Specifiche tecniche:
Microcontrollore: ATmega2560
Tensione di funzionamento: 5V
Tensioni in ingresso raccomandate: 7-12V
Massima tensione in entrata: 6-20V
Numero di ingressi/uscite digitali: 54 (di cui 14 utilizzabili come uscite PWM)
Numero di ingressi analogici: 16
Corrente supportata per i pin di ingresso e uscita:40 mA
Corrente supportata per il pin da 3.3V: 50 mA
Memoria Flash: 256 KB (8 KB utilizzati per il bootloader)
SRAM: 8 KB
EEPROM: 4 KB
Frequenza di clock: 16 MHz
Foto del circuito realizzato con Arduino Mega 2560
Esercizi con l'Arduino
La funzione setup
Esempio: La funzione setup
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
// ...
}
La funzione loop
const int buttonPin = 3;
// setup initializes serial and the button pin
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// loop checks the button pin each time,
// and will send serial if it is pressed
void loop()
{
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
La funzione delay
Esempio: Utilizziamo la funzione delay
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
La funzione blink
Esempio: La funzione blink
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Per avere il software completo di alcuni esercizi svolti con Arduino scrivi una e-mail attraverso il box sottostante.
Approfondimenti con link esterni
Per approfondire l'argomento vi consiglio di guardare anche i seguenti link
I droni sono piccoli oggetti intelligenti in grado di volare e non solo. Si possono trovare o costruire direttamente dei droni che possono essere comandati sia attraverso il tuo smartphone sia grazie ad un telecomando. Oltre ai droni stessi, puoi scegliere tra un'ampia selezione di accessori e parti di ricambio.
In questo sito puoi vedere diversi robot autocostruiti o come si possono costruire, cioè sia schemi elettrici che collegamenti pratici.
Nel sito di Arduino puoi trovare diversi file già collaudati da inserire nei tuoi nuovi scketch.
La casa domotica
Collegamento di più arduini
La casa domotica permette di controllare da remoto diversi sensori e attuatori collegati tramite web con l'ARDUINO.
La cas domotica permette di controllare ad esempio:
- le vie d'accesso alla casa... Cancelli, Portone Basculante
- l'accensione delle luci con timer e orario di accensione
- l'irrigazione del giardino con timer e orario di accensione
- le temperature dei locali o di determinate apperechiature (inverter , quadri elettrici . . .)
- i consumi di elettricità istantanea (watt) dell'intera abitazione e la produzione dell'impianto solare.
Per poter collegare i sensori e i rele' agli utilizzatori un problema che si può presentare è la possibilità di far passare i cavi nei tubi a muro. Per questo motivo si opta per il collegamento di più arduini dislocati nei quadri elettrici della casa e collegati tra loro in seriale e quindi con 3 fili: TX,RX e GND.
Si possono scegliere controllori arduino periferici la versione "UNO" con disponibili 12 porte digitali e 6 porte analogiche.
Per approfondimenti visita il sito
http://www.centrodigravita.it/index.php/progetti/nuovi-progetti/123-la-casa-domotica?showall=1&limitstart=