Crea Tu Propio Brazo Robotico
 

 

Este brazo robótico en miniatura reproduce el comportamiento de un brazo robótico industrial. Con 3 grados de libertad y una pinza. Puede funcionar de dos maneras, o bien a través de su mando o bien a través de programación de movimientos. El Kit incluye 3 laminas de MDF precortadas a laser, 4 miniservos, tarjeta controladora, manual de ensamblado, software de manejo y tornilleria. Esta basado en el popular MeArm. Es compatible con Arduino o cualquier tarjeta de desarrollo o microcontrolador con salidas digitales o de PWM. Es un proyecto tecnológico escolar para hacer que hasta los más pequeños aprendan a construir su propio brazo robótico. Es económico, divertido de armar y una gran herramienta educativa.

 

Conexión

Un servomotor, también llamado servo, es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.

Antes de comenzar a montar tu Brazo robotico, sigue estos pasos:

Descarga e instala el programa Arduino IDE ingresando a https://www.arduino.cc/en/Main/Software. Se encuentra disponible para Windows, Mac OS y Linux. 

Calibrado

Al conectar los servomotores se deben cumplir las siguientes reglas de colores: Rojo = Rojo (Alimentación de 5V, obtenidos desde una fuente externa, no del microcontrolador) Amarillo = Naranja (Señal PWM, proveniente desde el microcontrolador) Negro = Café (Tierra GND, las tierras del microcontrolador y la fuente externa de 5V deben estar conectadas)

 

Para que los servomotores estén correctamente alineados al momento de el ensamblaje, éstos deben tener un giro inicial de 90°, a excepción del servo de la garra cuyo giro inicial debe ser de 25°. Esta calibración puede ser realizada a mano (atornillando la hélice al servo y rotando manualmente los servomotores) o mediante código para una mayor precisión (recomendado). El código de calibración utilizando los pines digitales del Arduino [Conexión Directa] es el siguiente:

 

#include <Servo.h>
Servo base, left, right, claw; // 4 objetos servo
void setup()
{
Serial.begin(9600);
base.attach(11); // servo base, pin  Arduino
left.attach(10); // servo izquierdo, pin 4 Arduino
right.attach(9); // servo derecho, pin 5 Arduino
claw.attach(6); // servo garra, pin 6 Arduino
}
void loop()
{
base.write(90); // servo base, rotado 90° inicialmente
left.write(90); // servo izquierdo, rotado 90° inicialmente
right.write(90); // servo derecho, rotado 90° inicialmente
claw.write(25); // servo garra, rotado 25° inicialmente
delay(300); // una actualización constante puede dañar los servos

 

 

 

 

  1. Toma las placa arduino UNO y la miniprotoboard, incluidas en el kit brazo robotico.

 

  1. Coloca la placa la miniboard sobre la placa arduino UNO, haciendo coincidir los pines de contacto con el cableado de la miniprotoboard como se muestra en la imagen



  2. Conecta la placa arduino UNO al ordenador, utilizando el cable USB incluido en el kit Brazo robotico.

 

  1. Carga en la placa arduino UNO el programa que has copiado en Arduino IDE, de la siguiente manera:

 

  1. a) Configura Arduino IDE para que trabaje con la placa arduino UNO: abre la pestaña “Herramientas”, selecciona “Placa: Arduino/Genuino Uno” y elige la opción “Arduino/Genuino UNO”.



  1. b) Configura el puerto de trabajo de tu placa arduino UNO: ve a la pestaña “Herramientas”, haz click en la opción “Puerto” y selecciona el puerto COM en el que esté conectada la placa.

Nota: si tienes dudas sobre el puerto en el que está conectada la placa, conéctala y desconéctala, y comprueba en el menú cuál es el puerto que aparece (al conectarla) y desaparece (al desconectarla).

 

  1. c) Haz clic en la flecha horizontal denominada “Subir” situada en la esquina superior izquierda del programa.

  1. d) Aguarda a que el programa se cargue y aparezca el mensaje “Subido”.

  1. Continúa realizando el montaje del Brazo Robotico hasta llegar al apartado de “Calibración del Servomotor” de cada uno de los 4 servomotores. Una vez allí, conecta cada servomotor al puerto de la protoboard que corresponda, como se indica en la tabla a continuación. Asegúrate de que la placa sensor esté correctamente conectada a la placa arduino UNO.

 

Nota: Recuerda que para calibrar los servomotores debes conectar el cable USB del ordenador a la placa arduino UNO, para suministrar de energía a todo el sistema.

El servo de la base se conecta al pin digital 11

El servo del lado izquierdo se conecta al pin digital 10
El servo del lado derecho se conecta al pin digital 9
El servo de la pinza se conecta al pin digital 6


*** Recuerda la posición de los conectores, compruébalo con la siguiente imagen.



 

  1. El servomotor conectado se situará en la posición indicada como “Tope de movimiento”.
  2. Sitúa la pieza que va montada en el eje del servomotor de la forma indicada en el manual. Sigue las imágenes a continuación para situar la pieza de forma correcta.

 

Descargue el software para controlar, programar y construir su robot.

 

Software Arduino

Necesitaremos tener el software Arduino instalado en el PC y tener el puerto USB de los microcontroladores conectado a un puerto USB de la computadora a través de un cable para transferir el código de muestra al Arduino. Si aún no tiene el software Arduino puede descargarlo. A continuación tenemos el código fuente de Arduino. Puede copiar y pegar esto en el IDE de Arduino y guardarlo con un nombre significativo. Pulse el botón de flecha de carga para transferir al microcontrolador.

 

CÓDIGO 1

El siguiente vídeo muestra como funciona el código programado a continuación. 

brazo robotico 

El servo de la basEl servo del lado izquierdo se conecta al pin 10
El servo del lado derecho se conecta al pin 9
El servo de la pinza se conecta al pin 6

La rutina del vídeo puede programarla con el siguiente ejemplo arduino (copie y pegue el siguiente código):

 

/* 

       En este proyecto controlamos el brazo robotico

 

     */

 

     #include <Servo.h>   // incluimos la biblioteca Servo 

    

     int angulo0 = 120;     

     int angulo1 = 90;     

     int angulo2 = 110;

     int angulo3 = 30;

          

     Servo miservo0;       // creamos un objecto servo para controlar el motor 

     Servo miservo1;       // creamos un objecto servo1 para controlar el motor 

     Servo miservo2;       // creamos un objecto servo2 para controlar el motor 

     Servo miservo3;       // creamos un objecto servo3 para controlar el motor 

 

 

     void setup() { 

             miservo0.attach(11);  // asigna el servo al pin 11, servo de la base

             miservo1.attach(10);  // asigna el servo al pin 10, servo de la izquierda

             miservo2.attach(9);  // asigna el servo al pin 9, servo de la derecha

             miservo3.attach(6);  // asigna el servo al pin 6, servo de la pinza

                   }

 

     void loop() 

     { 

// 

 miservo1.write(110);      //  manda al servo de la izquierda la posición

 delay(1000); 

 

 

 

//-----Modulo movimiento servo (Garra) (abrir)

         

          for(int angulo3 = 30; angulo3 < 100; angulo3 += 1)    //  un ciclo para mover el servo entre los 50 y los 120 grados  

           {

            miservo3.write(angulo3);                 //  manda al servo la posicion

          delay(25);                          //  espera unos milisegundos para que el servo llegue a su posicion

          }

           delay(1000); 

 

 //-----Modulo movimiento servo (derecho) (subir)

        

            for(int angulo2 = 110; angulo2 >= 70; angulo2 -= 1)    //  un ciclo para mover el servo entre los 120 y los 50 grados  

            { 

            miservo2.write(angulo2);               //  manda al servo la posicion

            delay(25);                        //  espera unos milisegundos para que el servo llegue a su posicion

            }

            delay(1000);

 

  //-----Modulo movimiento servo (Base) 

                

         for(int angulo0 = 120; angulo0 >= 50; angulo0 -= 1)     //  un ciclo para mover el servo entre los 120 y los 20 grados                             

          {

            miservo0.write(angulo0);                 //  manda al servo la posicion

          delay(25);                          //  espera unos milisegundos para que el servo llegue a su posicion

          }

  

          delay(1000); 

 

 //-----Modulo movimiento servo (derecho) (bajar)

         

          for(int angulo2 = 70; angulo2 < 110; angulo2 += 1)    //  un ciclo para mover el servo entre los 50 y los 120 grados  

          { 

          miservo2.write(angulo2);               //  manda al servo la posicion

          delay(25);                        //  espera unos milisegundos para que el servo llegue a su posicion

          }

          delay(1000);                    //  espera unos milisegundos para que el servo llegue a su posicion

 

//-----Modulo movimiento servo (Garra) (cerrar)

             

         for(int angulo3 = 100; angulo3 >= 30; angulo3 -= 1)     //  un ciclo para mover el servo entre los 100 y los 30 grados                             

          {

            miservo3.write(angulo3);                 //  manda al servo la posición

          delay(25);                          //  espera unos milisegundos para que el servo llegue a su posición

          }

  

          delay(1000); 

 

//-----Modulo movimiento servo ( derecho) (subir)

        

            for(int angulo2 = 110; angulo2 >= 70; angulo2 -= 1)    //  un ciclo para mover el servo entre los 110 y los 70 grados  

            { 

            miservo2.write(angulo2);               //  manda al servo la posición

            delay(25);                        //  espera unos milisegundos para que el servo llegue a su posición

            }

            delay(1000);

 

//-----Modulo movimiento servo 2 (Base) (centrar)

         

          for(int angulo0 = 50; angulo0 < 120; angulo0 += 1)    //  un ciclo para mover el servo entre los 50 y los 120 grados  

          { 

          miservo0.write(angulo0);               //  manda al servo la posición

          delay(25);                        //  espera unos milisegundos para que el servo llegue a su posición

          }

          delay(1000);                    //  espera unos milisegundos para que el servo llegue a su posición

 

//-----Modulo movimiento servo (derecho) (bajar)

         

          for(int angulo2 = 70; angulo2 < 110; angulo2 += 1)    //  un ciclo para mover el servo entre los 70 y los 110 grados  

          { 

          miservo2.write(angulo2);               //  manda al servo la posición

          delay(25);                        //  espera unos milisegundos para que el servo llegue a su posición

          }

          delay(1000);                    //  espera unos milisegundos para que el servo llegue a su posición

      } 

 

 

CODIGO 2

La aplicación MeCon incluye código fuente Arduino de ejemplo para controlar los servomotores de robot a través del puerto COM de su PC. Control manual, así como grabar y reproducir archivos de trayectoria de movimiento. El código de ejemplo de Arduino muestra cómo controlar la velocidad de actualización de la posición del servo y invertir la rotación del motor a través de los comandos al puerto serie del microprocesador (puerto USB). MeCon permite el control de movimiento rápido sin tener que aprender el código y o construir circuitos electrónicos de adición. MeCon se comunica a través del puerto COM con el microcontrolador Arduino con el mismo cable USB y los puertos utilizados para programar el Arduino.

 

Código Arduino para MeCon Software

Cargue el siguiente código en su tarjeta arduino. Luego instale el software Mecon, como se indica mas abajo.

 

// MeArmMeCon-A04.ino

//Use With MeCon.exe Ver0.4 Windows Software for MeArm Motion Control

 

 

#include <Servo.h>

 

//MeArm HAS 4 SERVOS

Servo xServo;  // create servo object, arm base servo - left right motion

Servo yServo;  // create servo object, left side servo - forward backwards motion

Servo zServo;  // create servo object, right side servo - forward backwards motion

Servo clawServo;  // create servo object, end of arm srevo - open,close the claw hand

 

//servo positions values, expects 1-180 deg.

int xPos;

int yPos;

int zPos;

int clawPos;

 

//*************** INIT AT STARTUP *******************************************************************

 

void setup() {        // the setup function runs once when you press reset or power the board

 

  // assign servo to pin numbers

  xServo.attach(11);  // attaches the servo on pin 11 to the servo object

  yServo.attach(10);  // attaches the servo on pin 10 to the servo object

  zServo.attach(9);  // attaches the servo on pin 9 to the servo object

  clawServo.attach(6);  // attaches the servo on pin 6 to the servo object

 

  // initialize serial port

  Serial.begin(9600);

 

  // Debug only send serial message to host com port terminal window in Arduino IDE

  //Serial.print("*** MeCom Test V04 ***.");   // send program name, uncomment for debug connection test

 

 }

 

// ******************************************************************************************************

// ********************************** MAIN PROGRAM LOOP START *******************************************

// ******************************************************************************************************

 

void loop() {

 

 

  //serial in packet patern = xVal,yVal,zVal,clawVal + end of packet char 'x'

  while (Serial.available() > 0) {

    xPos = Serial.parseInt();

    yPos = Serial.parseInt();

    zPos = Serial.parseInt();

    clawPos = Serial.parseInt();

 

    if (Serial.read() == 'x') { // Detect end of packet char 'x', go ahead and update servo positions

 

 

      // UPDATE SERVO POSITIONS

      xServo.write(xPos);

      yServo.write(yPos);

      zServo.write(zPos);

      clawServo.write(clawPos);

  

    }

 

  }

 

 

}

 

 

¡Descargue el software Mecon de control de servo de brazo robótico!. Haz clic en el link anterior.

 

Los archivos están en un paquete .zip que contiene el archivo .exe MeCon. Descargar en el directorio de su elección y haga clic derecho en el archivo ZIP y elija "Extraer todo" para descomprimir los archivos para su uso. MeCon actualmente se ejecuta sólo en sistemas operativos Windows.

.

 

Configure el puerto según la imagen

 

Su brazo robótico de escritorio ahora esta preparado y listo para aceptar órdenes de movimiento del programa de control de movimiento de MeCon.

 

MeCon está en desarrollo activo en un sistema win7 con muchas más características planificadas.

Arduino

Deja un comentario