Arduino

El martes fui a una charla del grupo Complubot en el Corte Inglés. Me envió un montón de gente información, se ve que soy predecible :-D
Bueno, pues Complubot es un grupo formado por un chico de 15 años y dos chicas de 17 que se dedica a la robótica. Los dos últimos años han ganado la competición robótica por excelencia, la Robocup. Como decían ellos, la noticia no ha tenido repercusión porque esto es España.
Nos estuvieron contando cosas sobre la robótica en general, y luego ya enfocaron en sus robots, que construían para los partidos de fútbol de la Robocup. Fue impresionante, la verdad.También comentaron que los procesadores que empleaban eran Arduino, una feliz coincidencia: un amigo de mi padre me estaba consiguiendo uno desde hacía unos días.
Y ayer recibí el Arduino (concretamente, el modelo Duemilanove, que en italiano significa “2009″). En resumen, se trata de una placa Open Hardware con diversos componentes: un procesador (Atmega328), entradas y salidas digitales y analógicas, y un conector USB para poder programarlo con el ordenador. El lenguaje de programación está basado en C, y el entorno se puede descargar para Windows, Mac y Linux (a mí sólo me funciona en Ubuntu; en XP se quedaba colgado). Aunque todavía estoy en procEl lenguaje de programación está basado en C, y el entorno se puede descargar para Windows, Mac y Linux (a mí sólo me funciona en Ubuntu; en XP se eso de aprendizaje, he hecho con mi padre este contador:
int pin2 = 2; // Salida del bit 0
int pin3 = 3; // Salida del bit 1
int pin4 = 4; // Salida del bit 2
int pin5 = 5; // Salida del bit 3
int timer = 300; // Tiempo entre dígito y dígito
int b0;
int b1;
int b2;
int b3;
int i;
void setup(){
pinMode(pin2, OUTPUT); // Establece el pin 2 como salida
pinMode(pin3, OUTPUT); // Establece el pin 3 como salida
pinMode(pin4, OUTPUT); // Establece el pin 4 como salida
pinMode(pin5, OUTPUT); // Establece el pin 5 como salida
}
void loop(){ // Las instrucciones siguientes serán de tipo bucle.
for (i = 0; i<10; b0 =" i" b1 =" i" b2 =" i" b3 =" i" i =" 9;">1; i=i-1){ // Asigna a la variable i el valor 9. Comprueba si i es mayor que 1. En caso afirmativo, resta 1
b0 = i & 1; // Bit 0 de la traducción del número i a binario
b1 = i & 2; // Bit 1 de la traducción del número i a binario
b2 = i & 4; // Bit 2 de la traducción del número i a binario
b3 = i & 8; // Bit 3 de la traducción del número i a binario

digitalWrite(pin2, b0); //Envía al pin 2 el estado de b0 (dígito 0)
digitalWrite(pin3, b1); //Envía al pin 3 el estado de b1 (dígito 1)
digitalWrite(pin4, b2); //Envía al pin 4 el estado de b2 (dígito 2)
digitalWrite(pin5, b3); //Envía al pin 5 el estado de b3 (dígito 3)
delay(timer); // Pausa
}
}

Foto:

A ver qué tal me va, la cosa pinta muy interesante :-)

Leave a Reply