Arduino
Mi último juguete es un Arduino. Básicamente es un programador de un microcontrolador Atmel vía USB con IDE incluido. Además de ser un cacharrito muy versátil y entretenido, es hardware libre (Su especificación está abierta) y por supuesto el IDE es también software libre. Acabo de ponerlo en funcionamiento en mi Linux y estoy feliz como un niño

Las instrucciones para hacerlo correr en Linux (en concreto en Ubuntu) han sido sacadas en su totalidad de la página web de Arduino (http://arduino.berlios.de/). Aquí las adjunto en la lengua de Cervantes.
- Ve a http://arduino.berlios.de/index.php/Main/Buy y hazte con tu Arduino. Lo venden ensamblado por 20€, o bien puedes comprar el PCB y montartelo tú (Por supuesto también puedes fabricarte tu el PCB)
- Una vez que lo tienes en tus manos, conéctalo a tu PC por el puerto USB
- Asegúrate de que tu kernel tiene soporte para el ftdi serial/usb chip
- Instálate subversion
aptitude install subversion
- Pilla el código siguiendo las instrucciones de https://developer.berlios.de/svn/?group_id=3590 Para impacientes:
svn checkout svn://svn.berlios.de/arduino/trunk
- Instálate Java. O bien con el siguiente repositorio y haciendo aptitude install j2re j2sdk deb ftp://ftp.easynet.be/blackdown/debian unstable main non-free o bien con las propias instrucciones de sun
- Instala avr-gcc, avr-libc, binutils-avr, jikes, uisp
aptitude install avr-gcc avr-libc binutils-avr jikes uisp
- Actualiza el CLASSPATH. En mi caso:
export CLASSPATH=/usr/java/jre/bin:/usr/java/jre/lib/rt.jar
- Añade el path a avr-gcc en DIRAVR. En mi caso:
export DIRAVR=/usr/bin
- Ve al directorio en el que hayas descargado con subversion el código del ide de arduino y
cd to trunk/build/linux ./make.sh
- Añade un enlace simbólico desde /dev/ttyUSB0 a /dev/ttyS* (NOTA: * es algún ttyS que no exista)
ln -s /dev/tty/USB0 /dev/ttyS55
- Crea el siguiente directorio dentro de work:
mkdir tools/avr/bin/
- En ese directorio, haz enlaces simbólicos a avr-gcc, avr-objcopy, avr-objdump, avr-size y uisp
- Arráncalo
./run.sh
- Crea un nuevo fichero y pega el siguiente código:
- Pulsa “Sketch -> Verify/Compile”. Si todo ha ido bien, en la barra de estado pondrá “Done compiling”
- Pulsa “Tools -> Serial Port” y selecciona el que hayas definido anteriormente
- Asegúrate de que en “Tools -> Serial Monitor Baud Rate” está marcado 9600
- Resetea el Arduino e ipso facto dale a “File -> Upload to I/O Board”. Si todo ha ido correctamente, la salida será la siguiente:
Atmel AVR ATmega8 is found. Uploading: flash Firmware Version: 1.18 Firmware Version: 1.18
- Pon una resistencia de 1K en el pin 13, y conecta un LED de la resistencia a tierra. Verás como parpadea con intervalos de un segundo
/* Blinking LED
* ------------
*
* turns on and off a light emitting diode(LED) connected to a digital
* pin, in intervals of 2 seconds. Ideally we use pin 13 on the Arduino
* board because it has a resistor attached to it, needing only an LED
*
* Created 1 June 2005
* copyleft 2005 DojoDave
* http://arduino.berlios.de
*
* based on an orginal by H. Barragan for the Wiring i/o board
*/
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
}