Arduino , en poques paraules, és una plataforma open source hardware basada en una senzilla placa amb entrades i sortides, analògiques i digitals, i en un entorn de desenvolupament que implementa el llengüatge Processing /Wiring. Al ser open source hardware tant el seu disseny com la seva distribució és lliure. És a dir, pot utilitzar-se lliurament per desenvolupar qualsevol tipus de projecte sense haver d'adquirir cap tipus de llicència. Hi ha varis projectes molt interessants de open source hardware, com per exemple Libelium .  


El cas és que ja fa uns mesos que tinc un arduino per casa (que el podem comprar fet, o fabricar-lo nosaltres mateixos si en tenim ganes). Fins ara m'havia limitat a enxufar-lo al ordinador i provar alguns dels exemples típics fets amb la variant de processing anomenada també arduino per tal de programar aquest aparatillu. La veritat és que el llenguatge per programar-lo és extremadament senzill (al igual que el processing). Igual que l'open-source, l'open-hardware, per definició ens dóna moltes possibilitats, i el fet és que a part de utilitzar el aquest llenguatge per interactuar amb Arduino, podem utilitzar-ne altre, com és el cas de PureData . Aixó ho aconseguim amb l'objecte arduino de puredata, també conegut com pduino , fet per Hans-Chistoph Steiner . A continuació una mostra molt senzilla de lo senzill que és interactuar amb Arduino des de PureData amb aquest objecte.

·CONNECTAR l'ARDUINO al ORDINADOR i CARREGAR FIRMWARE:
 
L'arduino que tinc jo és per USB, per tant, primer de tot agafem un cable USB i el connectem al ordinador. Per fer anar l'arduino amb PureData, primer cal que ens baixem el software de l'arduino. Jo l'he connectat a un Linux Ubuntu Feisty, per tant cal baixar el software per linux. Un cop descarregat, simplement el descomprimim, i a dins la carpeta descomprimida trobem un executable de nom arduino.
 

root@akira:/opt# tar xvfz arduino-0009-linux.tgz
root@akira:/opt# cd arduino-0009
root@akira:/opt/arduino-0009# ./arduino

 
L'executem i s'ens obrirà l'interfície del software, molt semblant a la de processing:
 

Abans de provar qualsevol cosa amb l'arduino, cal que assegurem dues coses:
    1)Anem al menú Tools-> Microcontroller (MCU) i seleccionem el xip del nostre arduino, en el meu cas ATMEGA168.
    2)Al tractar-se d'un arduino USB cal que assegurem que el port USB està seleccionat: Tools -> Serial Port -> /dev/ttyUSB0
 
Abans d'intentar carregar el firmware per utilitzar l'arduino amb PureData, és aconselleble provar alguns dels exemples que hi ha a la web d'arduino. 
 
Per fer funcionar l'arduino des de PureData, hem de carregar un firmware:
1)Primer ens baixem el paquet pduino .
2)El descomprimim, i dins la carpeta descomprimida hi ha un altre carpeta anomenada Pd_firmware amb un arxiu que anomenat             Pd_firmware.pde.
3)Des del software d'arduino: File -> Sketchbook -> Open i seleccionem el Pd_firmware.pde.
4)Un cop carregat aquest fitxer, fem click al botó Play, per tal de verificar el codi.
5)I finalment,  carreguem el firmware amb el botó Upload to I/O Board (Veurem com dos leds del arduino s'encenen).
 
Ja tenim el firmware carregat. 
 
 
·CONTROL de l'ARDUINO des de PUREDATA (motionCutreTheremin_v0.1pduino.pd):
 
L'objecte arduino que ens hem baixat, per utilitzar-lo en PureData necessitem instal·lar varies llibreries externes. PEr tant, la millor opció és installar el paquet pd_extended , un paquet creat també per Hans-Chistoph Steiner, que ens instal·la el PureData amb la majoria de llibreries externes (de l'altra manera hauriem d'instal·lar varies llibreries externes de forma manual).
 
Un cop tenim instal·lat PureData amb els externals, dins el paquet pduino que ja ens hem baixat hi ha el fitxer pduino.pd, que és l'objecte de puredata que necessitem per controlar l'arduino. Per tant, copiem aquest fitxer al directori on hi ha les llibreries externes del PureData:
 
root@akira# cp /home/musa/zpd/pduino/Pduino-0.3.1/arduino.pd /usr/local/lib/pd/extra/.
 
 
Un cop fet això, podem obrir amb PureData el patch arduino-test.pd. Connectant un LED a alguna de les sortides del arduino, podem veure fàcilment el fucionament d'aquest patch. 
 
He aprofitat aquest patch per afegir-lo al motionCutreTheremin, afegint un subpatch i amb una camera d'aquest patch fer encendre una línia de LED's en funció del moviment de la nostra mà:
 

 
Y el resultat d'aquest nou patch, basat en motionCutreTheremin_v0.0 és el següent (la qualitat de la camera és molt imporant, ja que qualsevol petita distorsió a la imatge provoca, en una camera de baixa qualitat, un fals senyal de moviment):
 
{youtube}HvKE5L9qE5Q{/youtube}