|
ESTRUCTURA
Y PROGRAMACIÓN DE ARREGLOS LÓGICOS GENÉRICOS
(GAL´S)
CON APLICACIÓN AL CONTROL DE UN BRAZO MECÁNICO
J. G. Mateos,
J.M. Villegas, A.
Hernández, E. Sánchez
|
jmateos@proton.ucting.udg.mx,
jvillega@proton.ucting.udg.mx,
acorvera@proton.ucting.udg.mx,
esanchez@proton.ucting.udg.mx
Universidad
de Guadalajara, CUCEI
Departamento
de Electrónica
Avenida Revolución
# 1500, Puerta 10 y/o
Boulevard Marcelino
García Barragán #1500
C.P. 44840,
Guadalajara, Jal. México,
Tel/FAX: (013)
619-8471
Indice
Resumen
Abstract
Control del Brazo Mecánico.
Figura 1. Geometría del brazo mecánico.
Antecedentes.
Procedimiento de Diseño.
Planteamiento del problema.
Tabla de estados.
Tabla 1, Asignación de estados del movimiento del brazo mecánico.
Mapas de Karnaugh:
Tabla 2, Mapa de Karnaugh de 6 variables.
El GAL16V8 posee las siguientes características.
Uso de la computadora personal.
Con el OPAL se transforma el archivo "file.jed" a "file.ckt"
Figura 3. Simulación del archivo "brazo.lst"
Si la simulación produce resultados satisfactorios
Figura 4, GAL Aplicado al Control de un Brazo Mecánico.
Resultados.
Referencias Biobliográficas.
RESUMEN
El trabajo que se presenta tiene
como objetivo mostrar el funcionamiento del arreglo lógico genérico
GAL (Generic Array Logic) aplicado al control de un brazo mecánico.
Se diseña un circuito secuencial
y se estructura la programación del circuito integrado GAL16V8,
sus terminales de salida se usan para controlar el movimiento del brazo,
a través de tres motores de 5 Vdc.
Se producen así, tres grados
de libertad, que son; pinzas de sujeción, brazo y soporte, respectivamente.
El movimiento se activa con engranes
dispuestos en un mecanismo "planetario".
Los motores se energizan con una
interface que se implementa con transistores de potencia.
En general, los GAL, son circuitos
integrados de lógica programable que utilizan tecnología
MOSFET, éstos cuentan con un arreglo matricial de fusibles que inicialmente
conectan todas las terminales de entrada del circuito, con todas las compuertas
de un arreglo AND-OR.
Además contiene una sección
denominada Macrocelda Lógica de Salida OLMC (Ouput Logic Macro Cell),
que es una sección del GAL que incluye a los elementos necesarios
para configurar sus salidas, de cuatro maneras lógicas distintas.
Con los GAL´s se proporciona
una herramienta versátil en la solución de sistemas lógicos
combinatorios o secuenciales.
Los circuitos que se generan con
esta técnica de diseño son pequeños y consecuentemente
económicos.
Indice
ABSTRACT
The objective of the work that
is presented is to show the operation of the generic array logic (GAL)
arrangement applied to the control of a mechanical arm, a circuit is designed
secuencial and the programming of the integrated circuit GAL16V8 is structured,
their output terminals are used in order to control the movement of the
arm, through three 5 Volts of C.D. motors, they take place so, three degrees
of freedom, are produced; pincers of subjection, arm and support, respectively.
The movement activates with willing gears in a mechanism "planetarium."
The motors energize with an interface that is implemented with transistors
of power. In general, the GAL, are circuits integrated with programmable
logic that use MOSFET technology, these have matricial arrangement of fuses
that initially connects all the input terminals from the circuit, with
all the floodgates of an AND-OR arrangement, it also contains a section
denominated output logic cell macro (OLMC), which is a section of the GAL
that includes the necessary elements in order to configure their outputs,
four different logical ways; with the GAL's a versatile tool in the solution
of systems provide logical combinations or secuencials. The circuits that
are generated with this design technique are small and consequently economic.
Indice
1.0
CONTROL DEL BRAZO MECANICO.
Los brazos mecánicos existen
en el mercado desde hace varios años.
Por regla general los adquieren las
universidades, los centros de investigación y las industrias [6].
La tarea del proyecto "Estructura
y Programación de Arreglos Lógicos Genéricos (GAL´S)
con Aplicación al Control de un Brazo Mecánico", es mostrar
un brazo mecánico con tres grados de libertad, éste se controla
a través de la programación de arreglos lógicos genericos
(GAL).
En términos de construcción
y geometría, los brazos de robot educacionales siguen la misma estructura
de los grandes manipuladores industriales, por lo general poseen menos
ejes independientes de movimiento [6] y [7], más adelante se muestra
el proceso de generar la obtención de expresiones matemáticas
Booleanas mediante una lógica de diseño secuencial, para
manipular los tres movimientos diferentes del brazo, se utilizan motores
de 5 Vdc, dos de estos motores incluyen un sistema de caja reductora (sistema
planetario) que disminuye el giro del motor a pequeños movimientos
del eje de salida, con un par de giro muy alto, estos motores se usan para
el movimiento de giro del sistema y del brazo que sube y desciende, respectivamente.
El tercer motor permite el control
de cierre y apertura de la tenaza de sujeción o pinzas de agarre (veáse
la figura 1).
Figura
1. Geometría del brazo mecánico.
Indice
2.0
ANTECEDENTES.
La lógica programable se
usa como una manera de "personalizar" los diseños lógicos,
es decir, se diseñan pensando en el hardware propio.
Los primeros PLD´S se programaron
por máscara y se desarrollaron por fabricantes de computadoras,
a principios de los sesentas llegó la lógica programable
por fusibles y desde entonces ésta técnica, estuvo disponible
tanto para pequeños como para grandes usuarios [1].
La tarea del diseñador lógico
se simplifica con el uso del software, existen programas con los que actualmente
se realizan tareas de diseño y minimización de lógica
secuencial, esto es, representación Booleana de alto nivel, el software
facilita la selección de dispositivos y ayuda a generar vectores
de prueba para la simulación del circuito antes de su implementación
final.
Indice
3.0
PROCEDIMIENTO DE DISEÑO
El diseño de un circuito
secuencial empieza a partir de un conjunto de especificaciones y culmina
en un diagrama lógico ó una lista de funciones Booleanas
de las cuales se obtiene el diagrama final, el circuito se construye con
el GAL16V8 [2], durante el análisis se determina una estructura
de compuertas combinatorias, la cual conjuntamente con Flip Flops producen
un circuito que cubre las características enunciadas.
La cantidad de Flips Flops se determina
por el número de estados necesarios que se encuentran presentes
en el circuito, la lógica combinatoria se deriva de la tabla de
estados, y una vez que se definen el tipo y número de Flips Flops,
el proceso de diseño sufre una transformación, de ser un
sistema secuencial, se modifica, para que se resuelva como un circuito
combinatorio.
Las expresiones lógicas se
minimizan mediante mapas de Karnaugh. El GAL16V8 se programa con el compilador
que ofrece el software OPAL [5], la programación se inicia al describir
el archivo que indica el tipo de dispositivo a utilizar, la asignación
de terminales, y las ecuaciones lógicas de las salidas respetan
la sintaxis del compilador.
Indice
3.1
Planteamiento del problema, se define exactamente el problema a resolver
y se plantea de una manera correcta, se establece la descripción
en palabras del comportamiento del sistema, también suele acompañarse
con un diagrama de estados, un diagrama de tiempos o cualquier otra información
pertinente.
La secuencia de movimientos a realizar
se ejecuta según las necesidades del problema a resolver.
En este caso se mueve un objeto de
un lugar a otro. Primeramente obtengase una secuencia a partir de las variables
que intervienen en el desarrollo del movimiento del sistema mecánico,
esto es, la asignación de variables de estados que gobiernan la
secuencia requerida.
Un motor controla el movimiento de
abrir y cerrar las pinzas de sujeción, otro motor acciona el movimiento
del brazo desde arriba y hacia abajo, y el tercero de ellos hace girar
en forma rotacional el mecanismo de soporte de toda la estructura del brazo
mecánico.
Con referencia a las ecuaciones que
se obtienen para su aplicación en el brazo de robot, y dada la existencia
en el mercado, utilicese el GAL16V8, tres motores de 5 Vdc, y una interfáz
de potencia de transistores para cada uno de los motores.
La secuencia del problema a resolver
es la siguiente:
1.- Se inicia la secuencia con
los motores en reposo
2.- Activación
del cierrre de las tenazas de sujeción
3.- El brazo se habilita
y sube
4.- Girar la base de
soporte de la estructura
5.- Inversión
de la secuencia de los pasos 4 al 1
6.- La operación
se repite de nueva cuenta
Indice
3.2
Tabla de estados:
De la información dada del
circuito se obtiene la tabla de estados, en la tabla se definen las características
del comportamiento del problema a resolver. (Veáse la Tabla 1).
La descripción de los movimientos
de cada uno de los tres motores se simboliza con las letras, Q1 abre y
Q2 cierra el motor de las pinzas de sujeción, Q3 sube y Q4 baja
el brazo y finalmente Q5 gira a la derecha, Q6 se usa para realizar el
giro a la izquierda del motor de la base de soporte de la estructura del
brazo mecánico, Qn es el estado actual y Qn+1 es el estado siguiente.
TABLA
1
|
Qn
|
Qn+1
|
|
Q1
|
Q2
|
Q3
|
Q4
|
Q5
|
Q6
|
Q1
|
Q2
|
Q3
|
Q4
|
Q5
|
Q6
|
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
Tabla 1. Asignación
de estados del movimiento del brazo mecánico.
Indice
3.3
Mapas de Karnaugh:
Enseguida se traduce la tabla de
asignación de estados a un mapa de Karnaugh de 6 variables [8],
con éstas se obtienen las ecuaciones lógicas Booleanas (Veáse
la Tabla 2), al mismo tiempo se reduce la asignación de los estados
y se encuentran las ecuaciones lógicas que gobiernan el control
del brazo mecánico.
TABLA
2
|
Q4Q5Q6
|
|
Q1Q2Q3
|
|
000
|
001
|
011
|
010
|
110
|
111
|
101
|
100
|
| |
000
|
D1
|
D4
|
|
D6
|
|
|
|
D2
|
| |
001
|
D5
|
|
|
|
|
|
|
|
| |
011
|
|
|
|
|
|
|
|
|
| |
010
|
|
|
|
|
|
|
|
|
| |
110
|
|
|
|
|
|
|
|
|
| |
111
|
|
|
|
|
|
|
|
|
| |
101
|
|
|
|
|
|
|
|
|
| |
100
|
D3
|
|
|
|
|
|
|
|
Tabla 2. Mapa
de Karnaugh de 6 variables.
Las ecuaciones se definen para usar
Flip Flops Tipo D [8] con la condición de un switch de arranque
A:
D1=Q1*Q2*Q3*Q4*Q5*Q6*A
(1)
D2=Q1*Q2*Q3*Q4*Q5*Q6*A
(2)
D3=Q1*Q2*Q3*Q4*Q5*Q6*A
(3)
D4=Q1*Q2*Q3*Q4*Q5*Q6*A
(4)
D5=Q1*Q2*Q3*Q4*Q5*Q6*A
(5)
D6=Q1*Q2*Q3*Q4*Q5*Q6*A
(6)
Indice
3.4
El GAL16V8 posee las siguientes características:
El microcircuito consta de 20 terminales.
La fuente de alimentación
es; Vcc = 5 Volts ± 5%
Consumo de corriente 90 mA.
Frecuencia máxima del reloj
para los FF, 41.6M Hertz
Vih, voltaje de entrada en nivel
alto = 2 Volts.
Voh, voltaje de salida en nivel
alto = 2.4 Volts.
ViL, voltaje de entrada en nivel
bajo = 0.8 Volts.
VoL, voltaje de salida en nivel
bajo 0.5 Volts.
Temperatura de operación
de 0 a 75 ° C.
Admite 16 variables de entrada diferentes
y
Ocho (8) variables de salida diferentes.
En su estructura interna se encuentra
un plano AND programable a la entrada, es programable por medio de MOSFET´S
[1], [2] y [3] de compuertas flotantes.
El GAL16V8 es un dispositivo de la
familia de los Dispositivos Lógicos Programables PLD’S, contiene
importantes mejoras sobre sus antecesores, que lo hacen versátil
y funcional, la principal ventaja es su reprogramabilidad, es decir, el
GAL16V8 ofrece la opción de borrar las ecuaciones grabadas en él
mediante pulsos eléctricos, su celda básica es una EECMOS,
que le proporciona la característica de borrable, además
ofrece un bajo consumo de corriente.
Indice
3.5
Uso de la computadora para introducir las ecuaciones obtenidas en un
archivo que se grabara con extensión "file.eqn".
El circuito se programa con el compilador
OPAL. En primer término se crea un archivo ASCII con las ecuaciones
solución, mismo que se graba con la extensión "file.eqn",
sin olvidar que se trata de una secuencia lógica secuencial, esto
es, a las salidas se les anteponen dos puntos (:) después del signo
de igual, se definen las entradas y las salidas de acuerdo a las variables
empleadas, no olvidar definir la entrada OE, esta habilita las salidas
(tri-state) del GAL16V8. Enseguida se muestra el formato del archivo "file.eqn".
;Brazo mecánico con tres motores
chip brazo1 gal16v8
CLK A 3 4 5 6 7 8 9 Gnd
OE 12 12 Q6 Q5 Q4 Q3 Q2 Q1 Vcc
equations
Q1:=/Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/A
Q2:=/Q1*/Q2*/Q3*Q4*/Q5*/Q6*/A
Q3:=Q1*/Q2*/Q3*/Q4*/Q5*/Q6*/A
Q4:=/Q1*/Q2*/Q3*/Q4*/Q5*Q6*/A
Q5:=/Q1*/Q2*Q3*/Q4*/Q5*/Q6*/A
Q6:=/Q1*/Q2*/Q3*/Q4*Q5*/Q6*/A
Indice
3.6
Con el OPAL se transforma el archivo de extensión "file.eqn"
a extensión "file.jed". Se llama al programa EQN2JED en el compilador
OPAL para crear el archivo "file.jed", este archivo permite el grabado
del dispositivo GAL16V8 con las expresiones booleanas reducidas por el
usuario a partir del archivo generado "file.eqn":
GAL16V8
EQN2JED - Boolean Equations
to JEDEC file assembler (Version V024)
Copyright (c) National
Semiconductor Corporation 1990,1991
Assembled from "brazo.eqn".
Date: 8-5-98
*
NOTE PINS CLK:1 A:2
3:3 4:4 5:5 6:6 7:7 8:8 9:9 Gnd:10 OE:11 12:12*
NOTE PINS 12:13 Q6:14
Q5:15 Q4:16 Q3:17 Q2:18 Q1:19 Vcc:20*
QF2194*QP20*F0*
L0000 10101110111011101110111011111111*
L0256 10101110111011011110111011111111*
L0512 10011110111011101110111011111111*
L0768 10101110111011101110110111111111*
L1024 10101110110111101110111011111111*
L1280 10101110111011101101111011111111*
L2048 11111100*
L2056 0000000000000000000000000000000000000000000000000000000000000000*
L2120 00000011*
L2128 1000000010000000100000001000000010000000100000000000000000000000*
L2192 01*
C0FDF* _0000
Indice
3.7
Con el OPAL se transforma el archivo "file.jed" a "file.ckt", generándose
automáticamente un archivo con extensión "file.lst", despues
de generar el "file.lst" se proporciona el comando "opalsim" para simular
y/o el comando "opalview" (veáse la figura 3) para observar los
resultados en una gráfica de pulsos generados automáticamente
por el software, los archivos "file.jed" y "file.lst" son necesarios para
la visualización de los estados de entrada y salida del circuito
secuencial:
Figura 3. Simulación
del archivo brazo.lst
Indice
3.8
Si la simulación produce resultados satisfactorios, se graba
en el GAL16V8 el archivo "file.jed" en un programador de dispositivos programables
y queda listo para la aplicación. Finalmente se conecta el circuito
de control y de potencia del brazo mecánico, se observa en la figura
4 un circuito buffer (74LS125) [4] necesario para obtener la corriente
de disparo de los transistores de potencia que gobiernan el sentido de
giro de los motores de 5 Vdc, con el 74125 se produce la señal necesaria
en los trasistores, para obtener el movimiento de avance y retroceso en
las pinzas de sujeción, brazo y base de soporte, respectivamente.
Se conectan además leds como indicadores puntuales del proceso,
en cada una de las salidas para observar el comportamiento del sistema (veáse
la figura 4).
Figura 4. GAL Aplicado al control de
un brazo mecánico.
3.9 Por último se realizan
pruebas eléctricas físicas del diseño final.
Indice
4.0
RESULTADOS
Los resultados de este trabajo son;
se minimizan expresiones booleanas secuenciales, se controla el movimiento
de un brazo mecánico con tres grados de libertad, se diseña
una interfáz con transistores de potencia, el circuito emplea el
GAL16V8; se emplea el compilador OPAL para producir las expresiones lógicas
secuenciales que se graban en el GAL, con ésto se hace práctico
y flexible la programación de GAL’S, obteniéndose minimización
de costos, al ahorrar en la adquisición de componentes y en la reducción
del dimensionado físico del ensamble; se producen simulaciones gráficas
de las señales de control que describen el comportamiento dinámico
del sistema, lo cual ayuda a facilitar la búsqueda de la estabilidad
en el prototipo final.
Indice
5.0
REFERENCIAS BIBLIOGRAFICAS
[1] Programmable Logic
Devices Databook and Design Guide, National Semiconductor, 1990.
[2] Programmable Logic
Design Guide, National Semiconductor, May 1986.
[3] Programmable Logic
Comercial/Military, Handbook and Data Book 1986-1987, Advanced Micro Devices.
[4] Programmable Logic,
INTEL 1993
[5] OPAL Junior User´s
Guide/Manual, National Semiconductor 1991.
[6] Robótica
Práctica, Tecnología y Aplicaciones, José Ma. Angulo,
Paraninfo, 1986.
[7] Curso de Robótica,
José Ma. Angulo, Rafael Avilés, Paraninfo, 1989.
[8] Teoría
de Conmutación y Diseño Lógico, Hill Peterson, Mc.Graw
Hill, 1979
Figura
5, El Brazo Mecánico en Acción.
Figura
6, El Motor 2 Gira la Base de Soporte del Brazo.
Figura
6, El movimiento se activa con engranes dispuestos en un mecanismo
"planetario".