Cómo construir un brazo robótico con poco dinero

Seguramente que muchos de vosotros habéis visto en películas de ciencia ficción como el científico o geek tiene un brazo robótico que controla todo y que puede coger objetos o realizar funciones como si fuera una persona humana. Algo que cada vez es más posible gracias al Hardware Libre y al Proyecto Arduino. Pero ¿qué es un brazo robótico? ¿qué funciones tiene este gadget? ¿Cómo se construye un brazo robótico? A continuación os vamos a responder a todas estas preguntas.

Qué es un brazo robótico

Un brazo robótico es un brazo mecánico con una base electrónica que permite que sea totalmente programable. Además, este tipo de brazo puede ser un elemento único pero también puede ser parte de un robot u otro sistema robótico. La cualidad de un brazo robótico frente a otro tipo de elementos mecánicos es que un brazo robótico es totalmente programable mientras que el resto de dispositivo no. Esta función nos permite tener un único brazo robótico para diversas operaciones y para realizar diversas actividades distintas y diferentes, actividades que pueden realizarse gracias a placas de electrónica como las placas de Arduino.

Funciones de un brazo robótico

Posiblemente la función más básica de un brazo robótico sea la función de brazo auxiliar. En algunas operaciones necesitaremos un tercer brazo que soporte algún elemento para que una persona pueda construir o crear algo. Para esta función no se necesita ninguna programación especial y tan solo necesitaremos apagar el mismo dispositivo.

Los brazo robóticos se pueden construir con diversos materiales lo que hace que podamos utilizarlos como sustituto para realizar operaciones peligrosas como la manipulación de elementos químicos contaminantes.  Un brazo robótico también puede ayudarnos a realizar tareas pesadas o que se necesitan una presión adecuada, siempre y cuando esté construido con un material fuerte y resistente.

Materiales necesarios para su construcción

A continuación vamos a enseñaros cómo construir un brazo robótico de una forma rápida, sencilla y económica para todos. Sin embargo, este brazo robótico no será tan potente o útil como los brazos que vemos en las películas sino que servirá para aprender sobre su funcionamiento y su construcción. Así pues, los materiales que necesitaremos para construir este dispositivo son:

  1. Una placa  Arduino UNO REV3 o superior.
  2. Dos placas de desarrollo.
  3. Dos servos de eje en paralelo
  4. Dos micro servos
  5. Dos controles analógicos en paralelo
  6. Cables con jumper para las placas de desarrollo.
  7. Cinta adhesiva
  8. Cartón o un tablero de espuma para el soporte.
  9. Un cutter y tijeras.
  10. Mucha paciencia.

Ensamblado

El ensamblado de este brazo robótico es bastante sencillo. En primer lugar hemos de recortar dos rectángulos con la espuma; cada uno de estos rectángulos serán partes del brazo robótico. Como se puede ver en las imágenes, estos rectángulos tendrán que tener el tamaño que queramos, aunque se recomienda que el tamaño de uno de ellos sea de 16,50 x 3,80 cm. y el segundo rectángulo tenga el siguiente tamaño 11,40 x 3,80 cm.

Una vez que tengamos los rectángulos, en uno de los extremos de cada rectángulo o listón pegaremos con cinta adhesiva cada servomotor. Después de hacer esto, recortaremos una “U” de espuma. Esto servirá como parte de sujección o parte final del brazo, lo que para un humano sería la mano. Esta pieza la uniremos al servomotor que esté en el rectángulo más pequeño.

Ahora hemos de realizar la parte inferior o base. Para ello realizaremos  el mismo procedimiento: recortaremos un cuadrado de espuma y colocaremos los dos servomotores de eje en paralelo como en la imagen siguiente:

Ahora hemos de conectar todos los motores a la placa Arduino. Pero antes, hemos de conectar las conexiones a la placa de desarrollo y ésta a la placa Arduino. El cable negro lo conectaremos al pin GND, el cable rojo lo conectaremos al pin de 5V y los cables amarillos al -11,-10, 4 y -3. Los joysticks o controles del brazo robótico también lo conectaremos a la placa Arduino, en este caso como indica la imagen:

Una vez que tengamos conectado todo y ensamblado hemos de pasar el programa a la placa Arduino, para lo cual necesitaremos conectar la placa Arduino al ordenador o portátil. Una vez que hayamos pasado el programa a la placa Arduino, hemos de asegurarnos de conectar los cables a la placa Arduino aunque siempre podemos seguir con la placa de desarrollo y desmontarlo todo, esto último si solo lo queremos para aprender.

Software necesario para el funcionamiento

Aunque parece que hemos terminado de construir un brazo robótico, lo cierto es que aún queda mucho por delante y lo más importante. El crear o desarrollar un programa que de vida a nuestro brazo robótico ya que sin él, los servomotores no dejarían de ser simples mecanismos de reloj que diesen vueltas sin sentido.

Esto se soluciona conectando la placa Arduino a nuestro ordenador y abrimos el programa Arduino IDE, conectamos el ordenador a la placa y escribimos el siguiente código en un archivo en blanco:

#include <Servo.h>

const int servo1 = 3;       // first servo

const int servo2 = 10;      // second servo

const int servo3 = 5;       // third servo

const int servo4 = 11;      // fourth servo

const int servo5 = 9;       // fifth servo

const int joyH = 2;        // L/R Parallax Thumbstick

const int joyV = 3;        // U/D Parallax Thumbstick

const int joyX = 4;        // L/R Parallax Thumbstick

const int joyP = 5;        // U/D Parallax Thumbstick

const int potpin = 0;      // O/C potentiometer

int servoVal;           // variable to read the value from the analog pin

Servo myservo1;  // create servo object to control a servo

Servo myservo2;  // create servo object to control a servo

Servo myservo3;  // create servo object to control a servo

Servo myservo4;  // create servo object to control a servo

Servo myservo5;  // create servo object to control a servo

void setup() {

// Servo

myservo1.attach(servo1);  // attaches the servo

myservo2.attach(servo2);  // attaches the servo

myservo3.attach(servo3);  // attaches the servo

myservo4.attach(servo4);  // attaches the servo

myservo5.attach(servo5);  // attaches the servo

// Inizialize Serial

Serial.begin(9600);

}

void loop(){

servoVal = analogRead(potpin);

servoVal = map(servoVal, 0, 1023, 0, 179);

myservo5.write(servoVal);

delay(15);

// Display Joystick values using the serial monitor

outputJoystick();

// Read the horizontal joystick value  (value between 0 and 1023)

servoVal = analogRead(joyH);

servoVal = map(servoVal, 0, 1023, 0, 180);     // scale it to use it with the servo (result  between 0 and 180)

myservo2.write(servoVal);                         // sets the servo position according to the scaled value

// Read the horizontal joystick value  (value between 0 and 1023)

servoVal = analogRead(joyV);

servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

myservo1.write(servoVal);                           // sets the servo position according to the scaled value

delay(15);                                       // waits for the servo to get there

// Read the horizontal joystick value  (value between 0 and 1023)

servoVal = analogRead(joyP);

servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

myservo4.write(servoVal);                           // sets the servo position according to the scaled value

delay(15);                                       // waits for the servo to get there

// Read the horizontal joystick value  (value between 0 and 1023)

servoVal = analogRead(joyX);

servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

myservo3.write(servoVal);                           // sets the servo position according to the scaled value

delay(15);                                       // waits for the servo to get there

/**

* Display joystick values

*/

void outputJoystick(){

Serial.print(analogRead(joyH));

Serial.print ("---");

Serial.print(analogRead(joyV));

Serial.println ("----------------");

Serial.print(analogRead(joyP));

Serial.println ("----------------");

Serial.print(analogRead(joyX));

Serial.println ("----------------");

}

Lo guardamos y tras ello lo enviamos a la placa Arduino UNO. Antes de terminar con el código realizaremos las pruebas pertinentes para comprobar que los joysticks funcionan y que el código no presenta ningún error.

Ya lo tengo montado ¿y ahora qué?

Seguramente que muchos de vosotros no esperabáis este tipo de brazo robótico, sin embargo es ideal por lo básico qué es, el coste que tiene y la forma de enseñar a cómo construir un robot. A partir de aquí todo pertenece a nuestra imaginación. Es decir, podemos cambiar los materiales, los servomotores e incluso completar el código de programación. Ni que decir tiene que también podemos cambiar el modelo de placa Arduino por uno más potente y completo que nos permita conectar un control remoto o funcionar con el smartphone. En fin, un gran abanico de posibilidades que nos ofrece el Hardware Libre y los brazos robóticos.

Más Información – Instructables


Categorías

Arduino, Robótica

Hombre de letras, amante de la Informática y del Mundo Libre, en especial del Software y ahora mismo del Hardware Libre. Preguntar no es ofender, así que preguntad lo que queráis.

Un comentario

  1.   Jorge Garcia dijo

    Definitivamente la impresión 3D es la puerta a grandes cosas. He trabajado con una Lion 2 en diseños propios y los resultados me han fascinado. Desde que me recomendaron que leyera al respecto en http://www.leon-3d.es ya me llamo la atención y al probarla y atestiguar el autonivelado y los detalles en el resultado final supe de la buena inversión que hice.

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.