0% encontró este documento útil (0 votos)
82 vistas4 páginas

Rutina de Control para Brazo Robótico

El documento presenta un código en C++ para controlar un brazo robótico utilizando servomotores. Se definen cuatro servomotores para la base y los ejes del brazo, así como un gripper, y se implementa una rutina que simula el movimiento del brazo para agacharse, agarrar un objeto y moverlo. La rutina incluye incrementos y decrementos de posición de los servomotores para realizar las acciones deseadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas4 páginas

Rutina de Control para Brazo Robótico

El documento presenta un código en C++ para controlar un brazo robótico utilizando servomotores. Se definen cuatro servomotores para la base y los ejes del brazo, así como un gripper, y se implementa una rutina que simula el movimiento del brazo para agacharse, agarrar un objeto y moverlo. La rutina incluye incrementos y decrementos de posición de los servomotores para realizar las acciones deseadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

/* RUTINA BRAZO ROBOTICO

* EJEMPLO EFIGENIO
*/

#include <Servo.h>
//BASE
Servo myservo1; //DECLARAMOS LA VARIABLE A CARGO DEL SERVOMOTOR (IZQUIERDO) DE LA
BASE
int mx1=180;
int in1=90;
int mn1=0;

//EJE DERECHO
Servo myservo2; //DECLARAMOS LA VARIABLE A CARGO DEL SERVOMOTOR DEL EJE DERECHO
int mx2=120;
int in2=90;
int mn2=45;

//BASE IZQUIERDO
Servo myservo3; //DECLARAMOS LA VARIABLE A CARGO DEL SERVOMOTOR DE LA BASE IZQUIERDO
int mx3=150;
INT in3b=120;
int in3=100;
int mn3=45;

//GRIPPER
Servo myservo4; //DECLARAMOS LA VARIABLE A CARGO DEL SERVOMOTOR DEL GRIPPER
int mx4=130;
int in4=100;
int mn4=65;

int pos = 0; //Variable para la posición de nuestro servomotor

void setup() {
[Link](A0); //Declara el puerto donde se conecta el servo
[Link](A1);
[Link](A2);
[Link](A3);
}

void loop()
{
//MI RUTINA SERA QUE MI ROBOT SE AGACHE, AGARRE UN OBJETO, SUBA Y LO MUEVA A OTRO
LADO
//INICIO EN MIS PUNTOS DE ORIGEN

[Link](mn3);
delay(500);
[Link](mx2);
delay(500);
[Link](mn4);
delay(500);
[Link](mn1);
delay(1000);

//BAJAR EL SERVOMOTOR IZQUIERDO A UN NIVEL INTERMEDIO

//INCREMENTO
for (pos = mn3; pos <= in3; pos += 1)
{
[Link](pos);
delay(15);
}

//CONTRAER EL SERVOMOTOR DERECHO A UN NIVEL MINIMO

//DECREMENTO
for (pos = mx2; pos >= mn2; pos -= 1)
{
[Link](pos);
delay(15);
}

//BAJAR EL SERVOMOTOR IZQUIERDO A UN NIVEL INTERMEDIO B

//INCREMENTO
for (pos = in3; pos <= in3b; pos += 1)
{
[Link](pos);
delay(15);
}

//EXTENDER EL SERVOMOTOR DERECHO A SU MAXIMO

//INCREMENTO
for (pos = mn2; pos <= in2; pos += 1)
{
[Link](pos);
delay(15);
}

//BAJAR EL SERVOMOTOR IZQUIERDO A UN NIVEL MAXIMO (opcional)


for (pos = in3b; pos <= mx3; pos += 1)
{
[Link](pos);
delay(15);
}

//CERRAR EL GRIPPER
[Link](mx4);
delay(2000);

//CONTRAER EL SERVOMOTOR DERECHO A SU MINIMO

/* //DECREMENTO
for (pos = in2; pos >= mn2; pos -= 1)
{
[Link](pos);
delay(15);
}
*/
//SUBIR EL SERVOMOTOR IZQUIERDO A UN NIVEL MINIMO, MANTENER EL GRIPPER CERRADO Y
EXTENDER EL SERVOMOTOR DERECHO

[Link](mn3);
delay(100);
[Link](mx4);
delay(100);
[Link](mx2);
delay(500);

//GIRAR LA BASE A 90° Y MANTENER EL GRIPPER CERRADO

//INCREMENTO
for (pos = mn1; pos <= in1; pos += 1)
{
[Link](pos);
[Link](mx4);
delay(15);
}

//ABRIR EL GRIPPER

[Link](mn4);
delay(2000);

//REGRESAR BASE A PUNTO DE INICIO

//DECREMENTO
for (pos = in1; pos >= mn1; pos -= 1)
{
[Link](pos);
delay(15);
}

/*/INCREMENTO
for (pos = 0; pos <= 180; pos += 1)
{
[Link](pos);
delay(15);
}

//DECREMENTO
for (pos = 180; pos >= 0; pos -= 1)
{
[Link](pos);
delay(15);
}
}
*/

También podría gustarte