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=

 

 

Tutorial con link esterni in italiano sull' ARDUINO da YOU TUBE