Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Comenzando con Arduino

Tras mucho tiempo queriendo hacerlo, por fin me he iniciado en el mundo de Arduino.

Arduino es una placa de Hardware libre que te permite iniciarte en el mundo de los microcontroladores para hacer todo tipo de proyectos, entre ellos (mi primer “gran” objetivo) un robot. La placa se programa en una versión reducida de C, con un IDE propio (libre).
El IDE viene con un montón de ejemplos que permiten aprender a programar la placa.

Recomiendo el Arduino Starter Kit.
Hay quien opina que no es una buena opción básicamente porque puedes obtener lo mismo en e-bay a mitad de precio.
Sin embargo esto solo es cierto si:
1. Sabes lo que tienes que comprar (tienes experiencia en electrónica)
2. Tienes tiempo suficiente para pasar en e-bay buscando cada componente y esperando a que llegue
El paquete tiene una presentación estupenda, un montón de componentes variados y un magnífico libro.
Obviamente el libro se puede bajar de la red, pero me parece que vale la pena tenerlo en formato árboles muertos ya que es una gran guía para dar los primeros pasos y me resulta cómodo tenerlo encima de la mesa y poder ver los diagramas con mis hijos.
En todo caso es un libro muy recomendable para los que como yo no tengáis una gran experiencia con la electrónica.

Cuando se va aprendiendo a manejar el arduino entonces ya uno sabe qué es lo que quiere exactamente comprar y entonces e-bay es una gran opción.

Por otra parte, recomiendo el uso de Fritzing para diseñar “el mundo real”. Los dibujos que incluyo están realizados con esta herramienta.

Para instalar en GNU/Linux hacemos:

aptitude install arduino
aptitude install fritzing libqt4-sql-sqlite1

Hay muchísima documentación al respecto así que me limitaré a poner los ejemplos más básicos que he ido realizando.
El equivalente al “Hola Mundo” se llama “Blink” y es un programa que hace parpadear un LED (procedente de los ejemplos del IDE):

/*
  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; // Cambiar a 12 para utilizar el led del BB

// 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
}

Y el diseño para el mundo real sería este (realizado con Fritzing):

Otra versión: