fbpx

Video: Programación de brazo robótico – YouTube

Código de programación en Arduino para la rutina de un brazo robótico didáctico con 4 servomotores

/* BRAZO ROBOTICO
* Ejemplo de Rutina para el brazo robotico
http://www.puentedigital.mx
*/
#include <Servo.h> // Incluimos la libreria de servomotor

//BASE
Servo myservo1; // declaramos el servomotor 1
// DECLARO EL MAXIMO Y EL MINIMO DE GRADOS
int mx1=180;
int in1=90;
int mn1=0;

//DERECHA
Servo myservo2; // declaramos el servomotor 2
// DECLARO EL MAXIMO Y EL MINIMO DE GRADOS
int mx2=120;
int in2=90;
int mn2=45;

//IZQUIERDA
Servo myservo3; // declaramos el servomotor 3
// DECLARO EL MAXIMO Y EL MINIMO DE GRADOS
int mx3=150;
int in3b=120;
int in3=100;
int mn3=45;

//GRIPPER
Servo myservo4; // declaramos el servomotor 4
// DECLARO EL MAXIMO Y EL MINIMO DE GRADOS
int mx4=130;
int mn4=65;

int pos = 0; // variable to store the servo position

void setup() {
myservo1.attach(A0);
myservo2.attach(A1);
myservo3.attach(A2);
myservo4.attach(A3);// attaches the servo on pin 9 to the servo object
}

void loop() {
myservo3.write(mn3);
delay(500);
myservo2.write(mx2);
delay(500);
myservo4.write(mn4);
delay(500);
for (pos = in1; pos >= mn1; pos -= 1)
{
myservo1.write(pos);
delay(15);
}
delay(500);

//RUTINA PARA QUE MI ROBOT SE AGACHE, AGARRE ALGO, SUBA Y LO MUEVA A OTRO LADO.
//BAJAR SERVOMOTOR IZQUIERDO INTERMEDIO
for (pos = mn3; pos <= in3; pos += 1)
{
myservo3.write(pos);
delay(15);
}

//CONTRAER EL SERVOMOTOR DERECHO A SU MINIMO
for (pos = mx2; pos >= mn2; pos -= 1)
{
myservo2.write(pos);
delay(15);
}

//BAJAR SERVOMOTOR IZQUIERDO INTERMEDIO B
for (pos = in3; pos <= in3b; pos += 1)
{
myservo3.write(pos);
delay(15);
}
delay(500);

//EXTENDER SERVOMOTOR DERECHO INTEREMEDIO
for (pos = mn2; pos <= in2; pos += 1)
{
myservo2.write(pos);
delay(15);
}
delay(500);

//BAJAR SERVOMOTOR IZQUIERDO A SU MAXIMO
for (pos = in3b; pos <= mx3; pos += 1)
{
myservo3.write(pos);
delay(15);
}
delay(500);

//CERRAR EL GRIPPER A SU MAXIMO
myservo4.write(mx4);
delay(2000);

//CONTRAER EL SERVOMOTOR DERECHO A SU MINIMO
myservo3.write(in3);
for (pos = in2; pos >= mn2; pos -= 1)
{
myservo2.write(pos);
delay(15);
}
delay(2000);

//SUBIR SERVOMOTOR IZQUIERDO A SU MINIMO, MANTENER EL GRIPPER CERRADO Y EXTENDER SERVO DERECHO
myservo3.write(mn3);
delay(100);
myservo4.write(mx4);
delay(15);
myservo2.write(mx2);
delay(2000);

//LA BASE GIRE A 0° QUE ES SU MAXIMO Y MANTENER EL GRIPPER CERRADO
for (pos = mn1; pos <= in1; pos += 1)
{
myservo1.write(pos);
myservo4.write(mx4);
delay(5);
}
delay(2000);
}

Aquí puedes descargar el archivo comprimido que contiene el código listo para abrir en Arduino IDE


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Iniciar chat