lunes, 29 de abril de 2013

Robot fijo de 3 ejes con MSP

Para construirlo necesitamos un servo por eje . En la foto aparece uno de más debido a que pensaba en añadir una garra móvil al extremo que al final no he montado.


El servo de 40 gramos será la base del montaje y los otros dos, de 9 gramos estarán alojados en el brazo.
Para el brazo he usado una tira de contrachapado de 3mm y de unos 8mm de ancho (restos de madera). Los brazos de servo van atornillados.

Foto del conjunto:






Como se puede ver, el servo base está sujeto por un gato. 


CÓDIGO:

El código está redactado en ENERGIA y es sencillo.
Se importa la librería Servo, se definen los pines de señal y se va dando órdenes a cada servo. 
El código básico es:

#include <Servo.h>

Servo G;              //servo Giro Base
Servo BI;            //servo Brazo Inferior
Servo BS;           /servo Brazo Superior

void setup()
{
  G.attach(8);      //establece el pin 8 como salida de señal para el servo G
  BI.attach(6);    // ""              ""
  BS.attach(7);   // ""               ""
}

void loop()
{
    //_____________Posición al "azar"
    G.write(170); 
    delay(100);   //Los delay son para suavizar y armonizar los movimientos
    G.write(90);
    BI.write(150);
    BS.write(120);
    delay(500);
    //_____________Posición recogido
    delay(1000);
    G.write(26);
    delay(500);
    BI.write(8);
    delay(500);
    BS.write(0);
    delay(500);


}
La forma de ordenar al servo una posición es NombreServo.write(Posición), siendo Posición un número del 0 a 180, el abanico de giro del servo. 

Vídeo con el programa que cambia de sitio una caja:





(Acabo de darme cuenta de que he perdido todo el código que sale en el vídeo :S )

Evidentemente el programa es algo más complicado que el de arriba, sin embargo no tiene ninguna instrucción esencial nueva. Son todo combinaciones de write's y delay's. Con unas horas se le va cogiendo el truco. 

Y eso es todo por hoy :)