You are on page 1of 9

Ejemplo de un brazo robtico

Traduccin del artculo "Robotic Arm"


por Giandomenico De
Sanctis
Siempre me interes la
construccin de equipos
robticos, pero no me
haba lanzado a
hacerlo... hasta ahora.
Hace algunos meses vi
la pelcula "Yo, Robot" y
ah decid "ste es el
momento, quiero
construir un brazo
robtico". Aqu
presento los resultados,
con la esperanza de que
sea til para otras
personas que tambin
estn interesadas.
Este brazo robtico es
una pequea
demostracin realizada con servomotores de los que se utilizan normalmente en los modelos
RC (radiocontrol), y es controlado desde una PC, a la que se conecta a travs de un cable serie.

Estructura mecnica
El brazo tiene 6 grados de libertad de movimientos:
una base giratoria
un motor en el "hombro"
un motor en el "codo"
dos motores en la "mueca", uno para mover de arriba a abajo y otro para la rotacin
de izquierda a derecha.
Y un sexto motor en la pinza de manipulacin.
He realizado diseos diferentes de las diversas partes, y stas que presento son las ms
"logradas", el resultado de mucha "prueba y ensayo". Ahora se parece a la estructura real de
un brazo industrial.


La longitud de la seccin que va entre el codo y la mueca es casi igual a la longitud de la
"mano", lo que permite un buen balance y equilibrio de los pesos.
El servo del hombro tiene el "refuerzo" de un resorte cuando el brazo se inclina hacia adelante.

En esta posicin la carga del servo del hombro aumenta, y disminuye rpidamente cuando el
brazo vuelve a la posicin vertical. El uso del resorte permite utilizar un servo un poco menos
costoso.
El servo del hombro recibe la carga del peso de todo el brazo.
Para ayudar al hombro, el brazo vertical pivota sobre un punto de apoyo unido a la base. Esta
disposicin resulta en un montaje ms rgido.
La parte horizontal (o "antebrazo") tiene un contrapeso que compensa el peso de la pinza. De
este modo, el servo del codo es parcialmente liberado del torque "parsito" que genera el
peso de la mueca y las pinzas.
La base tiene placas de acero atornilladas debajo, en correspondencia con la posicin del
brazo. Esto ayuda a lograr la estabilidad necesaria, incluso cuando el brazo est totalmente
extendido en sentido horizontal.
He utilizado como material de construccin madera terciada y algunas piezas de madera balsa,
porque tena un montn de ese material y porque es fcil trabajar con ellas con mis simples
herramientas (mini taladro, sierra, etc.).
De hecho, constru muchas partes con una madera terciada especial para aeromodelismo que
slo tiene 2 mm de espesor, pero es muy rgida y fuerte, y hasta es posible que sea mejor que
el aluminio.
Algunas piezas en varias partes, pero principalmente en la pinza (o "mano"), estn hechas de
plstico blanco (PVC) o de plexigls semitransparente, que tambin son buenos materiales y
fciles de trabajar.
Muchas partes estn unidas con tornillos y pernos (de 3 4 mm de dimetro) y otras estn
pegadas con pegamento epoxi o similar.
Utilic estos servos:
un Hitec HS475-HB en la base giratoria
dos Hitec HS475-HB para el hombro y el codo, que son las articulaciones con ms carga
dos Hitec HS311 (mueca) y
un Futaba S148 (pinza).
Un servo estndar en la pinza resulta un poco aparatoso, pero he probado un Hitec HS81
(microservo estndar de 16,6 gramos) y se rompi a los pocos minutos de trabajo.

Electrnica
El brazo es controlado por una tarjeta propia que recibe rdenes desde una PC.

La PC no puede producir los pulsos con la precisin que se necesita para posicionar los servos,
as que utilic una tarjeta de control basada en un microcontrolador. ste recibe los comandos
de posicionamiento a travs de un cable serie, los decodifica y enva los pulsos
correspondientes a cada uno de los servos. Us un microcontrolador PIC16F628A, porque es
muy fcil de programar y en Internet hay miles de tutoriales y ejemplos. Y por ltimo, pero no
menos importante... El chip es barato!
En un primer intento utilic el 16F84A con un pulso de reloj de 4 mhz. Pero como no tiene un
interfaz UART por hardware para las comunicaciones serie, es casi imposible obtener un
funcionamiento correcto y parejo, ya que se pierden muchos comandos durante la transmisin
serie (a m me ocurre porque soy un novato de la electrnica).
El microcontrolador 16F628A tiene una interfaz UART implementada en hardware, de modo
que puede recibir comandos desde la lnea serie durante el procesamiento de los pulsos para
los servos sin perder nada.
De todos modos, la operacin a 4 mhz result insuficiente para lograr un buen trabajo, y
observ algunos "saltos" cuando la recepcin de un comando interfera con el pulso de un
servo. Esto se soluciona operando a 20 mhz.
El circuito tiene separadas la fuente de la lgica (5 voltios que se regulan desde una batera de
9 voltios por un circuito integrado LM317) y la de los servos (6 voltios regulados desde los 12
voltios de una fuente para PC, con otro integrado LM317).
La placa tiene ocho salidas para servos, aunque slo se utilizan seis en esta aplicacin; un
conector hembra para el puerto serie, que conecta al microcontrolador a travs de un
adaptador MAX 232; un conector para alimentar a otros dispositivos con 5 voltios y tierra; y
otro conector para los 3 pines libres del microcontrolador 16F628A.
El firmware para el 16F628A lo escrib con el programa MikroPascal de MikroElektronika. El
programa se basa en rutinas de interrupcin para manejar los pulsos y para recibir datos del
puerto serie. El protocolo de los comandos es muy simple: tres bytes de datos y un cuarto byte
de chequeo para verificar que la transmisin haya sido correcta.

Esquemtico de la tarjeta de control (PDF)

Ubicacin de los componentes

Mscara de componentes (PDF)

Pistas del circuito impreso (PDF)

Fuente en Pascal del programa en el 16F628A
Programa del 16F628A en formato hexadecimal

Programa de control en la PC
El programa de control en la PC est escrito en Delphi (Pascal bajo Windows). Lo que ms me
gusta del Delphi es que compila directamente al exe sin necesidad de ninguna DLL externa. Y
los programas se hacen con rapidez.
EXE del programa de control en Delphi

El programa de control permite manejar el brazo con un joystick o joypad. Los seis servos se
puede controlar por separado con los botones del joypad. Tengo un joypad con 4 botones, ms
el central para "cruzar" los botones, por lo que he definido uno de los botones para hacer el
cambio de control de los primeros 3 servos a los otros 3 servos. Por supuesto que si tienes un
joystick / joypad con ms botones el programa se puede hacer ms simple.
El programa de control puede grabar una secuencia de posiciones de los servos en un script y
luego reproducirla de forma automtica. Se trata de una especie de modo de "aprendizaje":
mueves el brazo a una posicin, cambiando la posicin de uno o ms servos en el orden
deseado, grabas, y luego pasas a la siguiente posicin para grabar de nuevo, y as
sucesivamente. El programa incorpora un editor sencillo para trabajar sobre el script.
Por ltimo, existe un modo de posicionar la pinza por medio de coordenadas absolutas en
centmetros. La coordenada X es el movimiento horizontal de izquierda a derecha, en lo que
respecta al brazo, la Y es la vertical hacia abajo y arriba, la Z es la horizontal hacia adelante y
atrs.

Galera de fotos





Dibujos del proyecto (planos en PDF)

You might also like