domingo, 23 de octubre de 2011

Controlando con el teclado y Arduino: Camara 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, 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 esta 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ín están grabados.





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

2 comentarios:

  1. hola felicitaciones portu pagina esta genial, me queda solo una pregunta, si quiero controlar el servo con las teclas de direccion osea las flecehas del teclado, cuales son los codigos de dichas flechas, para implementarlas al processing.

    ResponderEliminar

Seguir @Exergy123