Sie sind auf Seite 1von 7

V

Semana Nacional de Ingeniera Electrnica

Manipulacin de un Brazo Robtico por medio de una Tarjeta FPGA


Felipe Santiago Espinosa, Yukio Rosales Luengas, Alejandro Rivera Garca, Adrin Humberto
Martnez Vsquez
Instituto de Electrnica y Mecatrnica, Universidad Tecnolgica de la Mixteca, Carretera a Acatlima
Km. 2.5, Huajuapan de Len, Oaxaca, 69000, Mxico Tel. 953-53-202-14, fsantiag@mixteco.utm.mx,
rolygem_0706@hotmail.com, riga552@gmail.com, avmah_1035@hotmail.com

Resumen
En el presente documento se describe el trabajo realizado durante la implementacin de una interfaz
usuario-mquina, para la manipulacin de un brazo robtico de cuatro grados de libertad, incorporando
la opcin de grabar y reproducir una secuencia de movimientos. Se utiliz una tarjeta Nexys2, la cual
es manufacturada por la empresa Digilent e incluye un FPGA Spartan-3E con 500 mil compuertas. La
tarjeta sirve de controlador, estableciendo la comunicacin entre un teclado de computadora, que es el
dispositivo de entrada, y el brazo robtico, que es el dispositivo de salida. Para la creacin del
programa de configuracin del FPGA, se hizo uso del lenguaje de descripcin de hardware VHDL; con
este lenguaje est hecho el driver para el teclado y con el mismo se crearon los mdulos necesarios para
la correcta manipulacin del brazo, incluyendo la grabacin y recuperacin de secuencias.
Palabras Clave: Brazo Robtico, FPGA, lenguaje VHDL, teclado.
I.

Introduccin

VHDL es un lenguaje de descripcin de circuitos


electrnicos digitales que utiliza distintos niveles
de abstraccin. En las siglas VHDL, la V se debe
a VHSIC (Very High Speed Integrated Circuits)
y HDL corresponde con Hardware Description
Language. El lenguaje VHDL fue desarrollado
para la descripcin, modelado y simulacin de
sistemas digitales [1], aunque actualmente
tambin es empleado para la sntesis e
implementacin asistida por computadora.
El lenguaje es un estndar de la IEEE, con la
norma ANSI/IEEE 1076-1993 [2]. Otros
lenguajes para la descripcin de hardware son
Verilog y ABEL. Adems de los HDLs, los
mtodos alternos para disear circuitos digitales
son la captura de esquemas (con herramientas
CAD) y los diagramas de bloques, pero stos no
son prcticos en sistemas complejos.
El lenguaje VHDL fue empleado para la
programacin del FPGA Spartan-3E de Xilinx, el
cual es un dispositivo con 500 mil compuertas [3]
incluido en la tarjeta Nexys2, manufacturada y
distribuida por la empresa Digilent [4], en la
2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

figura 1 se muestra la vista superior de esta


tarjeta.

Fig. 1. Vista superior de la tarjeta Nexys2.

Los recursos incluidos en la tarjeta Nexys2 la


hacen ideal durante el proceso de aprendizaje de
FPGAs, ya que permiten crear sistemas
completos en un solo dispositivo. La tarjeta
contiene perifricos para su evaluacin (8 LEDs,
4 displays de 7 segmentos, 4 botones y 8
interruptores deslizantes), puertos: PS/2, VGA y

ISBN: 968-607-477-588-4

3

Semana Nacional de Ingeniera Electrnica

RS232 para aplicaciones y conectores para


manejar hardware externo.

una secuencia y para su finalizacin e inicio de la


reproduccin.

En este trabajo, se desarroll un sistema para


manipular un brazo robtico comercial,
comandndolo por medio de un teclado de
computadora estndar, dado que la tarjeta Nexys2
incluye un puerto PS/2 [5]. El sistema resultante
se compone de varios mdulos, ya que se le
incorpor la capacidad de guardar movimientos,
con su correspondiente duracin, para
posteriormente
reproducirlos
en
forma
automtica.

III.

Se utiliz el brazo desarrollado y distribuido por


la empresa Steren, con nmero de parte K-682
[6], cuya imagen se muestra en la figura 2.

Fig. 2. Brazo robtico a manipular.

El brazo incluye 5 motores, 4 de movimiento y 1


para la abertura y cierre de unas pinzas. Sin
embargo, nicamente se manipularon 4 motores,
3 de movimiento y el de las pinzas, esto porque
con 3 motores es suficiente para alcanzar
cualquier posicin en un espacio finito [7].
El control almbrico incluido con el brazo se
basa en interruptores, por lo que se desarroll una
etapa de acondicionamiento para que pudiera ser
manipulado desde la tarjeta Nexys2.
II.

Desarrollo

El sistema que se dise tiene la capacidad de


controlar libremente cada uno de los 4 motores
que le proporcionan movimiento al brazo; para
esto se utilizan ocho teclas diferentes desde un
teclado PS/2, dos para cada motor; tambin se
emplea una tecla ms, para iniciar el grabado de

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

Mdulos del Sistema

El sistema
se desarroll bajo un enfoque
modular [8], proponiendo un diagrama a bloques
con los mdulos necesarios, para luego codificar
a cada uno con VHDL. En la figura 3 se muestra
la propuesta modular del sistema; la funcin de
cada mdulo se describe a continuacin.
1. El Divisor genera un reloj con una
frecuencia inferior a la de la tarjeta; esto es
porque la frecuencia de la tarjeta es de 50
MHz, la cual resulta inadecuada para un
sistema de esta naturaleza, dado que el
teclado opera en frecuencias entre 20 y 30
KHz.
2. El mdulo Teclado es el responsable de
hacer la comunicacin entre la tarjeta y el
teclado de la computadora. Lee la trama
enviada por ste y entrega un cdigo de
rastreo por cada tecla presionada. Es
importante mencionar que el mdulo
mantiene el cdigo de rastreo de la ltima
tecla presionada, aunque ya no lo est. Por
ello, tambin genera una sealizacin de
cuando hay un nuevo cdigo de rastreo
(CR_Listo).
3. El mdulo deco_comp acepta el cdigo de
rastreo que le entrega el mdulo del teclado e
identifica si es una de las teclas asignadas
para el movimiento del brazo, de ser as, lo
que hace es transformar este cdigo en uno
que se encargar de mover el brazo. Tambin
detecta si se ha presionado la tecla que indica
el inicio de la grabacin de movimientos,
para ello se destin a la tecla G.
4. El mdulo salida_a_motor acepta el cdigo
que le entrega el mdulo deco_comp y
genera las salidas que mueven a los motores
del brazo. Tambin acepta los cdigos
provenientes de la memoria, donde se
almacenar la secuencia a ejecutar, la
decisin de cual cdigo ejecutar se toma con
base en las entradas de control: act1 y act2.
Siendo act2 de mayor jerarqua, pues indica
ISBN: 968-607-477-588-4

3

Semana Nacional de Ingeniera Electrnica

que se tiene que ejecutar la secuencia


grabada, es decir, mientras act2 est en alto,
no importa que se presione otra tecla de

activacin de motores, puesto que ser


ignorada.

Fig. 3. Diagrama a bloques del sistema para la manipulacin de un brazo.

5. El mdulo almacena se encarga de asegurar


que el cdigo que se guarda en la memoria es
un cdigo de movimiento, y no un cdigo en
blanco; es necesario este mdulo por los
tiempos perdidos en la mquina de estados.
6. El mdulo control, como su nombre lo
indica, es el responsable de comandar a los
dems mdulos del sistema.
7. El mdulo cont1 cuenta el tiempo que se
mantiene presionada una tecla de activacin
de motores.

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

8. El mdulo fin_mov es empleado durante la


reproduccin de movimientos. Del mdulo
memoria obtiene una duracin registrada y
con base en un contador determina si ya se
alcanz el tiempo recibido, indicndolo con la
activacin de su salida.
9. En el mdulo memoria se guardarn claves
que identifican a los motores y los sentidos de
movimiento, siempre que se haya activado la
opcin de grabar movimientos. Tambin se
guardar en la misma direccin, pero en un
espacio diferente, el tiempo que dur la

ISBN: 968-607-477-588-4

32

Semana Nacional de Ingeniera Electrnica

activacin de esta tecla. Estos datos los


obtiene de los mdulos almacena y cont1.
10. El mdulo deco es el manejador de los
displays de 7 segmentos incluidos en la
tarjeta. Bsicamente se emplea para mostrar
la direccin de acceso en la memoria, para
que el usuario conozca el movimiento que se
est grabando o reproduciendo.
11. El mdulo direc es el contador responsable
de la direccin de la memoria a la que se va a
acceder.

IV.

Control del Sistema

El control es el mdulo principal del sistema, ya


que es quien coordina la operacin de los dems
mdulos. El control se basa en una mquina de
estados y su operacin principal la realiza
mientras graba o recupera una secuencia de
movimientos. En las figura 4 se muestra el
comportamiento del control, en donde puede
notarse un estado jerrquico, el cul es expandido
en la figura 5.

!
Fig. 4. Mquina de Estados del Control.

Fig. 5. Estados que conforman al Estado Jerrquico de la figura 4.!

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

ISBN: 968-607-477-588-4

33

Semana Nacional de Ingeniera Electrnica

La grabacin de la secuencia inicia y termina con


la tecla G, mientras el usuario no presione esa
tecla, el control se mantendr en el estado 1, en el
cual se han acondicionado sus salidas para que
las acciones en las teclas de los movimientos se
vean reflejadas directamente en el brazo robtico
(la activacin de la tecla G se indica con la seal
sig).
En el estado 2 el sistema espera a que ya no est
presionada la tecla G. En los 4 estados que
conforman al estado jerrquico, el control
generar las seales para ir grabando la secuencia
de movimientos. La grabacin tambin concluye
con la tecla G.
En los ltimos 3 estados, despus del estado
jerrquico, el sistema iniciar con la reproduccin
de movimientos, la cual se realiza en el orden
inverso en que se fueron generando.
V. Acondicionamiento para el Manejo del
Robot
Las salidas del mdulo salida_a_motor estn
directamente conectadas a los pines de uno de
los conectores de la tarjeta Nexys2, por lo tanto,
es necesario desarrollar una etapa de
acoplamiento. En la figura 6 se puede ver como
el control almbrico incluido bsicamente cierra
unos interruptores, con lo que suministrar
voltaje a los motores. Los interruptores sern
remplazados por puentes H, para que los motores
sean manejados desde la tarjeta Nexys2.

!
Fig. 7. Etapa de acoplamiento para el manejo de
los motores.

VI.

Resultados

El sistema cumpli los requerimientos planteados


y adems, result muy robusto. Las grabaciones y
reproducciones de secuencias funcionaron
adecuadamente.
En la figura 8 se exhibe al brazo conectado con la
tarjeta Nexys2, por medio de la etapa de
acoplamiento. Adems de mostrar al teclado de
computadora conectado en el puerto PS/2 de la
misma tarjeta.

!
Fig. 8. Sistema implementado.

Fig. 6. Control almbrico del Brazo Robtico.

La etapa de acondicionamiento se implement


con base en Puentes H integrados, modelo L293,
en la figura 7 puede verse su diseo [9], en donde
se observa que se incluyeron puentes de diodos
como proteccin [10].

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

En la figura 9 se pueden ver detalles en las


conexiones, mostrando a la tarjeta Nexys2
completa, para ilustrar como en los displays de 7
segmentos aparece la direccin de acceso. Se
conect un teclado marca Dell, aunque no hay
restricciones, se podra conectar un teclado de
cualquier marca.

ISBN: 968-607-477-588-4

3

Semana Nacional de Ingeniera Electrnica

Recurso

Usado Disponible Uso

Slices

205

4, 656

4%

Bloques I/O

31

232

13 %

Bloques RAM

20

0%

GCLKs

24

8%

Tabla 1. Resumen de los recursos.

Fig. 9. Conexiones en la tarjeta Nexys2.

En la figura 10 est el primer nivel del modelo de


hardware, generado por la herramienta ISE de
Xilinx al momento de realizar la implementacin.
Corresponde con la interfaz del sistema, las
seales dato_ps y tec_clk no son salidas,
realmente son seales bidireccionales.

!
Fig. 10. Modelo de hardware resultante.

En la tabla 1 se muestra un resumen con los


recursos empleados, se observa una amplia
disposicin de recursos, para complementar la
funcionalidad del sistema.
VII.Conclusiones
En este proyecto se us un mdulo ya elaborado
con anterioridad, el controlador de un teclado de
computadora [11]. En el diseo de sistemas
basados en VHDL es comn y conveniente
reutilizar mdulos, como en este caso.

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

Para el correcto funcionamiento de todos los


mdulos fue preciso tomar en consideracin la
operacin del mdulo del teclado, ya que como
se explic con anterioridad, mantiene el cdigo
de rastreo aunque la tecla ya no est presionada.
Para ello, se realiz un cambio en la mquina de
estados que afect al mdulo de memoria:
cuando se reconoce un cdigo de movimiento y
ste se va a grabar, primero se incrementa la
direccin de memoria y posteriormente se guarda
el dato en esa localidad. De la misma manera, al
momento de leer la memoria, primero se realiza
la lectura y posteriormente se disminuye la
direccin. Se hace la comparacin con la
direccin de inicio de la memoria, y de haber una
coincidencia, se da por terminada la secuencia
grabada, de lo contrario se repetir el ciclo. Esto
garantiza un correcto funcionamiento de la
mquina de estados, que adems est
sincronizada con el mdulo que lee el teclado.
Para trabajos futuros se podra proponer el
guardar varias secuencias de movimientos en la
memoria y tener un men para decidir cul de las
secuencias se ha de ejecutar. Por ejemplo, una
secuencia puede mover un objeto de un lugar a
otro, mientras que una secuencia diferente puede
hacer que el brazo regrese a la posicin inicial,
para tomar nuevamente otro objeto.
Tambin sera interesante acondicionar un
sistema de sensores para conocer la posicin del
brazo en tiempo real, y as poder acondicionar
algn controlador automtico tradicional, aunque
a este respecto, primero sera necesario introducir
en la tarjeta ciertos mdulos de operaciones
matemticas para poder llevar a cabo esta tarea.

ISBN: 968-607-477-588-4

3

Semana Nacional de Ingeniera Electrnica

VIII. Referencias
[1]

S. Brown, Z. Vranesic, Fundamentos de


Lgica Digital con Diseo VHDL. 2 Ed.,
2006, Editorial McGraw-Hill.
F. Pardo, J. A. Boluda, VHDL, Lenguaje
para sntesis y modelado de circuitos, Ed.
Alfaomega, 2000
Spartan-3E FPGA Family: Data Sheet,
http://www.xilinx.com/support/documentati
on/data_sheets/ds312.pdf, ltima visita:
Junio de 2011.
Digilent Inc. - Digital Design Engineers
Source, http://www.digilentinc.com/,
ltima visita: Junio de 2011.
Digilent Nexys2 Board Reference Manual,
Doc: 502-107, Copyright Digilent, Inc.,
June 21, 2008.
Brazo Mecnico con Control Remoto
Almbrico, modelo K-682, Manual de
Instrucciones V0608,
http://www2.steren.com.mx/doctosMX//K682-instr.pdf, ltima visita: Junio de 2011.
R. Kelly, V. Santibez and A. Lora,
Control of Robot Manipulators in Joint
Space, Ed. Springer-Verlag, 2005.
R. Romero Troncoso, Sistemas Digitales
con VHDL; Legaria Ediciones.
P. Miles, T. Carroll, Build Your Own
Combat Robot, Ed. McGrawHill/Osborne, 2002.

[2]

[3]

[4]

[5]

[6]

[7]

[8]
[9]

[10] A. P. Malvino, Principios de Electronica.


6 Ed., 1999, Editorial McGraw-Hill.
[11] J. C. Tepozn Ros, Diseo de
controladores para la tarjeta de desarrollo
XSA-100. Tesis de Ingeniera,
Universidad Tecnolgica de la Mixteca,
Mayo de 2004.
!

IX.

Autores

M. C. Felipe Santiago Espinosa es Maestro en


Ciencias con especialidad en Electrnica por
parte del INAOE, Licenciado en Electrnica por
parte de la BUAP, desde 1998 labora como
Profesor Investigador en la Universidad
Tecnolgica de la Mixteca, adscrito al instituto
de Electrnica y Mecatrnica.
Yukio Rosales Luengas es estudiante de
Ingeniera Mecatrnica en la Universidad
Tecnolgica de la Mixteca.
Alejandro Rivera Garca! es estudiante de
Ingeniera Mecatrnica en la Universidad
Tecnolgica de la Mixteca.
Adrin Humberto Martnez Vsquez! es
estudiante de Ingeniera Mecatrnica en la
Universidad Tecnolgica de la Mixteca.

!
!
!
!

2

al 28 de Octubre 2011, Tapachula, Chiapas, Mxico.

ISBN: 968-607-477-588-4

3

Das könnte Ihnen auch gefallen