jueves, 25 de abril de 2013

Lectura y escritura simultánea con CM-900

¡Éstos han sido los resultados de esta tarde!

Antes de nada debo aclarar un detalle: los servos utilizados en este proyecto no son servos PWM como los comúnmente utilizados en radiocontrol (Futaba, Sanwa, Ko-Propo, Hitec, Savox...).

Los actuadores que utilizo son algo más complejos. En esta imagen puede verse resumido qué compone un actuador Dynamixel:



El programa del vídeo consiste en la lectura de la posición captada por el encoder de los servos del brazo izquierdo para su instantánea copia en los servos del brazo derecho.

Lo que se consigue es un movimiento simétrico manipulando manualmente el brazo izquierdo.

No sé si tendrá alguna utilidad pero creo que el resultado es interesante:



Código utilizado:
 
void setup() {
    Dxl.begin(1); //Inicializacion
    SerialUSB.begin();
}

void loop() {   
    Dxl.writeWord(1,30,1024-Dxl.readWord(2, 36)); //Escribe en el servo 1 el valor que lee del servo 2
    Dxl.writeWord(3,30,1024-Dxl.readWord(4, 36)); //Escribe en el servo 3 el valor que lee del servo 4
    Dxl.writeWord(5,30,1024-Dxl.readWord(6, 36)); //Escribe en el servo 5 el valor que lee del servo 6
}
 

Primera toma de contacto con la controladora CM-900

¡Primera entrada del Blog!

Con estas publicaciones pretendo llevar un pequeño diario de mis mini-proyectos.
Ésta semana he empezado a cacharrear con la controladora CM-900 con dos objetivos: montarla en mi robot (DROIDE) y colaborar con la asociación de robótica de la Universidad Carlos III (aka Asrob) en su implantación en los robots destinados a competir en CEABOT.


DROIDE encendido

- ¿Por qué DROIDE necesita una controladora nueva?

Actualmente monta una controladora CM-5 de Robotis, muy limitada tanto a nivel de procesamiento, capacidad de montar sensores y principalmente de programación.
Con la nueva controladora podré montar sensores variopintos, servos comunes (baratos) y programarlos utilizando leguaje C/C++

Éste es un pequeño video que grabé el lunes con el material de Asrob. El robot del video no es DROIDE, es uno de los Bioloid de competición de Asrob.
El programa mueve el brazo del robot a modo de "Hola Mundo!"


 
void setup() {
    Dxl.begin(1); //Inicializacion
    Dxl.writeWord(6, 32, 60);   //Velocidad del servo 6
    Dxl.writeWord(4, 32, 60);   //Velocidad del servo 4 
}

void loop() {
    Dxl.writeWord(6, 30, 400);  //Posicionamiento del servo 6 en 400
    Dxl.writeWord(4, 30, 700);  //Posicionamiento del servo 4 en 700
    delay(1000);              

    Dxl.writeWord(4, 30, 400);  //Posicionamiento del servo 4 en 400
    Dxl.writeWord(6, 30, 700);  //Posicionamiento del servo 6 en 700
    delay(1000);
}