ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Diseño y contrucción de un robot Articular


Enviado por   •  26 de Febrero de 2021  •  Tesis  •  1.819 Palabras (8 Páginas)  •  78 Visitas

Página 1 de 8

[pic 1][pic 2][pic 3]


Descripción[pic 4]

El presente documento tiene como objetivo principal guiar al estudiante de ingeniería en la construcción, configuración y programación de un brazo robótico. Repasando y haciendo uso de las habilidades teóricas adquiridas durante la experiencia educativa de Robótica.

El alumno podrá utilizar este documento como guía para una integración entre el software y el hardware propuesto ya sea replicando el mismo robot o cualquier otro.

Para realizar este proyecto se han utilizado algunas herramientas de ingeniería como AutoCAD para el diseño del robot, Arduino IDE  como la tarjeta de control del hardware y Matlab como la interfaz hacia el usuario y programa maestro para realizar tareas de cinemática inversa, cinemática directa, observación de singularidades y planeación de trayectorias que además de ser simuladas podrá observarse lo que sucede a nivel físico para un mejor aprendizaje y experiencia.

[pic 5]

Definiendo al Robot

Es importante definir la magnitud de los eslabones del robot a construir así como sus características de movilidad (grados de libertad), origen cartesiano y espacio de trabajo. Para este estudio hemos diseñado un robot llamado “SHOUBI V3”, 手臂 cuyo nombre significa brazo en Chino Mandarín.

Las magnitudes de los eslabones en milímetros son como se muestran en la figura:

[pic 6]

Escribe a ingenimundo@gmail.com para obtener el manual completo

//Programa desarrollado por Lino E. Camacho Tapia

#define DEBUG(a) Serial.println(a);

String data = "";

  #include <Servo.h>  

  Servo servo4; //Teta 1

  Servo servo5; //Teta 2

  Servo servo6; //Teta 2 inv

  Servo servo3; //Teta 3

  Servo servo2; //Teta 4

  Servo servo1; //Teta 5

 

void setup() {

  Serial.begin(9600);

  servo1.attach(2);

  servo2.attach(3);

  servo3.attach(4);

  servo4.attach(5);

  servo5.attach(6);

  servo6.attach(7);

 q1(90);

 q2(9);

 q3(107);

 q4(107);

 q5(90);

}

int tokens =1;

void loop()

{

    //RUTINAS PROGRAMADAS

  tokens=0;

  if(tokens==0)

  {

   while (Serial.available())

   {

      char character = Serial.read();

      if (character != '\n')

      {

         data.concat(character);

      }

      else

      {

         //Serial.println(data);

         char a[25];

         data.toCharArray(a, 25);

         data = "";

         //Aqui comienza el algoritmo de decodificación

         if((a[0]=='A')&&(a[4]=='B')&&(a[8]=='C')&&(a[13]=='D')&&(a[18]=='E'))

          {

            //Serial.println("OK");

            char ang1[5] = {a[1],a[2],a[3]};

            int  num1= atoi(ang1);

            char ang2[5] = {a[5],a[6],a[7]};

            int  num2= atoi(ang2);

            char ang3[5] = {a[9],a[10],a[11],a[12]};

            int  num3= atoi(ang3);

            char ang4[5] = {a[14],a[15],a[16],a[17]};

            int  num4= atoi(ang4);

            char ang5[5] = {a[19],a[20],a[21]};

            int  num5= atoi(ang5);

           

            //TERMINA DECODIFICACIÓN Y COMIENZA ASIGNACION DE VALORES A LOS MOTORES

            int teta1=num1;

            int teta2=num2;

            int teta3=num3;

            int teta4=num4;

            int teta5=num5;

 

            //Calculamos cinemática Directa

            //Reacomodamos eslabones el robot

            q1(teta1);

            q2(teta2+9);

            q3(-teta3+107);

            q4(teta4+107);

            q5(teta5);

          }

         

      }

   }

}

}

void q1(int a)

{servo4.write(a);}

void q2(int a)

{servo5.write(a);

 servo6.write(180-a);}

void q3(int a)

{servo3.write(a);}

void q4(int a)

{servo2.write(a);}

void q5(int a) // de 90 a 180 segun torque deseado

{servo1.write(a);}

Programación Matlab

El acople entre Matlab y Python lo realizamos por medio del puerto serial y básicamente consiste en esto.

%Configuracion Serial para Arduino Mega

s = serial('COM6');

flag = 1;

set(s,'DataBits',8);

set(s,'StopBits',1);

set(s,'BaudRate',9600);

set(s,'Parity','none');

fopen(s);

pause(2)          

Para después enviar por el puerto serial la instrucción concatenada con la clave que creamos anteriormente  y binaria para que pueda ser interpretada por Arduino.

salida=strcat('A',dato1,'B',dato2,'C',dato3,'D+00E090\n')

fprintf(s, salida)

pause(.05)

pause(2);

fclose(s);

Obsérvese como se concatena la información con la función strcat(); Donde dato1,dato2,dato3 son los valores de los ángulos convertidos a strings, valores que deseamos que sean ejecutados por el robot.

...

Descargar como (para miembros actualizados) txt (9 Kb) pdf (277 Kb) docx (284 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com