Archivos mensuales: octubre 2011

Madrid I+D: Semana de la Ciencia

Con motivo de la Semana de la Ciencia que se celebra en Madrid del 7 al 20 de noviembre (en realidad son dos semanas) se organizan visitas guiadas, jornadas de puertas abiertas, conferencias, talleres y cursos de las más diversas áreas. Estos son los que me parecen más interesantes:

Jornadas de puertas abiertas y visitas guiadas

1. El Jamón y la Ciencia: M8 de 9:30-11:30
2. El Palacio de los trenes
3. Los Huertos Urbanos
4. Los simios, ¿una gran familia? M8 ym15
5. Puesto Central del Metro de Madrid
6. Visita a la cueva de realidad virtual
7. Visita de las instalaciones de INTA
8. Visita al centro de autómatica y robotica (CAR)
9. Visita al centro de adomotica)
10. Visita al E-Usoc

Controlando con el teclado y Arduino: cámara robotizada

En el experimento de hoy he probado el control serie de Arduino, enviando bytes a través del USB y haciendo que Arduino los interprete. Para enviar los datos he utilizado Processing, primo hermano de Arduino, que es un lenguaje orientado a gráficos basado en Java. Para este ejemplo he probado los ejemplos de Dimmer y Sweep en Arduino y Keyboard en Processing. Digamos que los he mezclado un poco y he conseguido un programa que interpreta algunas teclas como bytes, las envía a Arduino y este las interpreta como posición para el servo.

Como bonus, le he puesto una webcam a la estructura, por lo que he conseguido una cámara robotizada

  • Para Processing:

//Este ejemplo está bajo licencia Creative Commons

import processing.serial.*;
Serial port;
int i;

void setup() {
size(256, 150);
println(“Available serial ports:”);
println(Serial.list());
port = new Serial(this, Serial.list()[1], 9600);
}

//CUIDADO CON LAS MAYÚSCULAS

void draw() {
byte prueba;
if (key == ‘s’) {
fill(45);
prueba=40;
port.write(prueba);
}
if (key == ‘d’) {
fill(90);
prueba=60;
port.write(prueba);
}
if (key == ‘f’) {
fill(135);
prueba=90;
port.write(prueba);
}
if (key == ‘g’) {
fill(255);
prueba=120;
port.write(prueba);
}
if (key == ‘a’) {
fill(0);
prueba=1;
port.write(prueba);
}
rect(25, 25, 50, 50);

}

  • Para Arduino:

#include

Servo myservo; // crea un objeto tipo servo para controlar el servo

int pos = 0; // variable para almacenar la posición del servo

void setup()
{
Serial.begin(9600);
myservo.attach(9); // liga el servo conectado en el pin 9 al objeto servo
}

void loop()
{
byte brightness;

// check if data has been sent from the computer:
if (Serial.available()) {
// read the most recent byte (which will be from 0 to 255):
brightness = Serial.read();
// set the brightness of the LED:
myservo.write(brightness);
delay(3000);
}
}

Estos son los vídeos. Os recomiendo que los veáis los dos a la vez, ya que así es como están grabados.

 

Licencia Creative Commons
Este obra está bajo una licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.