Sei sulla pagina 1di 5

Arduino Reloaded

Marco Triverio <gtrive@gmail.com> come registri e timer, è disponibi-


le il datasheet del microcontrollore
ccoci al secondo articolo su ATmega (ovvero il cervello elettro-
E Arduino: la scorsa puntata abbiamo
visto come scrivere i nostri primi due
nico) montato su Arduino (http:
//www.atmel.com/dyn/resources/
programmi; oggi ci confronteremo con prod_documents/doc2545.pdf).
alcuni degli usi più originali che si possono
fare con questa scheda completamente
open. Musica maestro!
Se ancora non vi fosse perfettamente
chiaro cosa sia possibile fare con Ardui- Chi ha detto che arte e informatica non
no, vi invito a convincervi che nulla è vadano d’accordo? Come abbiamo visto
impossibile: l’articolo dello scorso numero Arduino è uno strumento flessibile e di fa-
di GiornaLinux e le centinaia di video su cile utilizzo e proprio per questo motivo è
YouTube dovrebbero togliervi ogni dubbio! utilizzato da designer e artisti di tutto il
Ecco comunque qualche altro riferimento: mondo.
Un esempio? Con Arduino potete costrui-
guida introduttiva denomina- re una tastiera MIDI minimale oppure, più
ta “Arduino Booklet” (http: semplicemente, potete memorizzare qual-
//www.arduino.cc/en/uploads/ che canzoncina e farla suonare non appena
Booklet/Arduino_booklet02.pdf); un sensore vi segnala un particolare evento:
la cosa più semplice è sicuramente utiliz-
“reference” completa e aggiornata ri- zare un pulsante (“push-button”) ma po-
guardante tutte le funzioni di al- tremmo anche scegliere un sensore di luce,
to livello (http://arduino.cc/en/ un sensore di distanza, eccetera.
Reference/HomePage); Vediamo un semplice esempio che dimo-
esempi “pronti all’uso” con tanto stra come questo sia possibile con poche
di spiegazioni passo passo e im- righe di codice. Per questo piccolo pro-
magini (http://www.arduino.cc/ getto, oltre ad Arduino, ci servirà un buz-
playground/); zer (lo trovate in un qualsiasi negozio di
elettronica) e, nel caso volessimo rendere
per i dettagli di “basso livello”, il tutto più interattivo, un sensore.

3
Arduino Reloaded 4

void suonaNotaCorrente() {
long tempoTrasc = 0;

// se non è una "P" riproduce


// suono ad una certa frequenza
if (notaCorr > 0) {
while (tempoTrasc<durataNota)
{
digitalWrite(buzzer,HIGH);
delayMicroseconds(
notaCorr/2);
digitalWrite(buzzer, LOW);
delayMicroseconds(
#define c 3830 // 261 Hz notaCorr/2);
#define d 3400 // 294 Hz
#define e 3038 // 329 Hz // aggiorna tempo trascorso
#define f 2864 // 349 Hz tempoTrasc += notaCorr;
#define g 2550 // 392 Hz }
#define a 2272 // 440 Hz }
#define b 2028 // 493 Hz // nel caso di una "P"
#define C 1912 // 523 Hz else {
#define P 0 // pausa for (int j=0; j<contPausa; j++)
delayMicroseconds(
// input e output durataNota);
int buzzer = 9; }
int sensore = 2; }

// melodia e tempo void setup() {


int melodia[] = { c, e, g, P, c, pinMode(buzzer, OUTPUT);
e, g, P}; pinMode(sensore, INPUT);
int battute[] = { 16, 16, 16, 8, }
16, 16, 32, 16 };
int numNote = sizeof(melodia)/2; void loop() {
long tempo = 10000; // la canzone viene suonata
int durataPausa = 1000; // se il bottone è premuto
int contPausa = 100; if (digitalRead(sensore)==HIGH)
{
int notaCorr = 0; // ciclo su tutte le note
int battutaCorr = 0; for (int i=0; i<numNote; i++)
long durataNota = 0;
5 Arduino Reloaded

{ cc/it/Guide/ArduinoLilyPad e
notaCorr = melodia[i]; http://www.arduino.cc/en/Main/
battutaCorr = battute[i]; ArduinoBoardLilyPad.
durataNota =
battutaCorr*tempo;
suonaNotaCorrente();
}
}
}

Per la gestione del volume convie-


ne utilizzare una nuova funzione:
analogWrite(). Questa permette di
imporre su una certo pin un valore analo-
gico, ovvero non solo 0 o 5 V ma anche
molti valori intermedi con gradini di circa Processing
19mV: ciò avviene utilizzando una tecnica
notissima detta PWM, spiegata anche a Se Arduino rende facile e immediata la pro-
pagina 39 dell’Arduino Booklet. grammazione di un microcontrollore, Pro-
cessing (http://www.processing.org/)
fa lo stesso con Java. Ma cosa c’entra Ar-
Wearable computing duino con Processing?
Processing fornisce un’interfaccia grafica
Una delle frontiere più interessanti del- alle vostre creazioni con Arduino, facen-
l’informatica è, a mio avviso, il “wearable do sı̀ che questo venga comandato trami-
computing”, ovvero l’arte e la scienza di te un normale programma che gira sul vo-
dotare i comuni capi d’abbigliamento di stro computer, oppure che diventi un vero
dispositivi elettronici come speaker, LED, e proprio dispositivo di input per il vostro
etc... Il risultato si presta quasi sempre ai programma; il tutto, naturalmente, scri-
goliardici e agli esibizionisti ma l’effetto è vendo pochissime linee di codice!
indubbiamente originale. Se ad esempio voleste disegnare sullo
Arduino, anche in questo campo, si schermo del vostro computer utilizzando,
dimostra all’avanguardia proponendo una al posto di mouse e tastiera, alcuni tra
versione ridotta, appiattita e alleggerita gli innumerevoli sensori a disposizione di
della scheda, dal nome LilyPad Arduino. Arduino, Processing vi permetterebbe di
Ogni elemento connesso alla scheda viene ricevere ed elaborare con grande facilità
riprogettato da zero, a partire dai cavi: (anche grazie ad un linguaggio partico-
non più fili metallici coperti da una guaina larmente familiare) i segnali provenienti
di plastica ma veri e propri fili da cucito da Arduino. Trovate degli esempi ben
con capacità conduttive. documentati su: http://tinyurl.com/
Per approfondire: http://arduino. processing-examples.
Arduino Reloaded 6

Arduino e La Fonera seriale a 9600bps e possiamo dunque


sfruttare il convertitore Seriale-USB di cui
Finora abbiamo sempre visto Arduino co- dispone Arduino: perché questa avvenga
me il cervello elettronico di ogni progetto: senza disturbi è necessario rimuovere il
se da un lato questa è un’ipotesi ragio- microcontrollore (è il chip più grande sulla
nevole per la maggior parte delle vostre scheda) facendo delicatamente leva sui
creazioni, dall’altro è bene sapere che lati corti dello zoccolo tramite cui è fissato.
Arduino può essere utilizzato anche come
ponte verso altri strumenti elettronici.

Negli scorsi mesi ho acquistato su internet


una Fonera (www.fon.com) e, curioso
di capire come questa funzionasse, ho Apriamo ora un programma sul computer
rimosso il coperchio protettivo e ho notato che permetta di inviare e ricevere dati sul-
il cosiddetto “pettine” maschio che, a la seriale, come ad esempio minicom su
seconda del modello, ha una delle due Linux e Zterm su Mac OS X. A questo
configurazioni mostrate in figura: o 4 o 8 punto è possibile esplorare ogni meandro
pin. Solo 3 di questi piedini sono di nostro della vostra Fonera: come prima cosa no-
interesse (massa, trasmissione e ricezione); terete con piacere che il sistema operativo
tramite questi è possibile interagire con de La Fonera è Linux! In più, premendo
La Fonera come se le stessimo attaccando ctrl+C nei primi secondi della fase di avvio,
una tastiera e un monitor. L’unico scoglio sarete catapultati all’interno del bootloa-
da superare è saldare un cavetto per der e, facendo molta attenzione ai coman-
effettuare il collegamento fisico. di che fornite e alle licenze che rischiate
Una volta collegati terra de La Fonera con di calpestare, potrete capire come funzio-
terra di Arduino, TX de La Fonera con RX nino l’aggiornamento e il caricamento del
di Arduino (pin 0) e RX de La Fonera con firmware.
TX di Arduino (pin 1) la comunicazione
è veicolata tramite una normalissima