-

ROBOT MÓVIL RASTREADOR DE LÍNEAS CONTRASTADAS BASADO EN UN MICROCONTROLADOR DE 8 BITS

Víctor Ramos-Viterbo y Yurián Zer6n-Gutiérrez Laboratorio del Centro deInvestigación de ta Universidad La Salle

e-mail:vramos@sparcci ulsa.ulsa.mx labciulsa@sparcciulsa ulsa.mx

RESUMEN

En el presente artículo se describe et diseño, la construcción y el desempeño de un robot móvil capaz de seguir líneas contrastadas, ya sea una línea negra en un fondo blanco o un línea blanca en un fondo negro. El control del robot está basado en reglas que actúan de acuerdo a las señales obtenidas de un sistema de optosensores; estas reglas están programadas en un microcontrolador COP8 de la compañía National Semiconductor.

ABSTRACT

The current paper describes the design, construction and performance of a line traker mobil robot; the lines must be contrasted. a white line in a black background or a black fine in a whi e background. The robot control is based in a set of rules dependen! on the optosensors inputs, these rules are programmed in a COP8 microcontroller of the Nationa l Semiconductor Corporation.


INTRODUCCIÓN

En los últimos años la necesidad creciente de automatizar y controlar procesos específicos de una forma sencilla y a un bajo costo, ha impulsado ta creación y desarrollo de dispositivos programables capaces de realizar las más diversas tareas. Estos dispositivos son denominados microcontroladores y substituyen a grandes computadoras en aplicaciones específicas. Los campos de aplicación en tos

que se han hecho imprescindibles tos

microcontroladores son principalmente en la industria automotriz, en la de

electrodomésticos, en ta de equipo para telecomunicaciones y en la de equipo médico. En la actualidad, una casa típica norteamericana cuenta en promedio con 35 microcontroladores distribuidos en distintos equipos, y se espera que para el año 2000 sean más de 240.

En el laboratorio del Centro de Investigación se han realizado aplicaciones con microcontroladores (5, 6). Este trabajo es una primera aproximación en el área de robótica,


con el que se demuestra la utilidad del microcontrolador. ya que permite substituir un gran número de componentes, y como consecuencia se obtiene una sustancial reducción en las dimensiones y el peso de cualquier tipo de robot. Características deseables en el diseño de éstos.

El robot que se describe en el presente articulo es de tipo móvil, ya que está diseñado para hacer seguimiento de trayectorias en un plano. En una primera etapa sólo sigue trayectorias contrastadas sobre la superficie de trabajo de manera autónoma. Este robot es escalable de tal forma, que en el futuro será posible enviarle información de control no sólo de los sensores ópticos que tiene integrados. sino de cualquier otra fuente como una PC remota que le indique qué hacer en función de algun algoritmo o programa.

EL ROBOT

El robot que se diseñó se denomina "Prototipo

Omnidireccional Móvil" (P.O.Mo.) y está


439


Figura 1.Diagrama esquemático del circuito de control del robot.


integrado por un mecanismo simple de robot móvil sobre tres puntos de apoyo. Los dos puntos de apoyo principales del robot son dos ruedas motorizadas independientemente que se encuentran alineadas por sus ejes de rotación en la parte delantera del robot. El tercer punto de apoyo, se encuentra en la parte

I R

Figura 2. Optosensor Infrarrojo.


posterior del robot siendo éste una "rueda loca" que permita cualquier tipo de cambio en la dirección.

Como los motores son independientes, si ambos giran. le proporcionan tracción al robot para que éste avance en línea recta, si alguno de ellos es detenido, el robot usará la rueda asociada a este motor como eje o centro de un arco que sera descrito por la rueda que se encuentra girando. La separación de 5 cm existente entre las ruedas determina el radio de giro mínimo del prototipo.

EL CIRCUITO

El circuito (Figura 1) consta de tres distintos bloques funcionales. El primero está formado por los dispositivos sensores que permiten detectar y codificar un cambio en el contraste de la superficie como una señal de voltaje. Estas señales son enviadas al segundo bloque funcional del circuito que es el encargado de interpretar estas señales y está constituido por


440



(a)


Figura 4.Ubicación de los Optosensores.



1 fl 1

l íl l


(b)

(e}


(3) que tienen su sensibilidad óptima a cinco millmetros de la superficie.

Cada sensor contiene un LED infrarrojo como emisor y un fototransistor como receptor acomodados en un ángulo convergente de tal forma que el fototransistor pueda recibir la luz infrarroja a través del rebote de ésta, en una superficie clara. (figura 2).

Los sensores estan arreglados en triángulo, uno al frente y dos atrás, separados por una distancia poco mayor al ancho de Ja línea que describe la trayectoria (Figura 3a), donde el sensor frontal tiene la función de indicar anticipadamente la proximidad de una curva cerrada (Figura 3b). y los dos sensores traseros

forman un riel óptico que le indica al robot


Figura 3. Diferentes

situaciones que se les

presentan a los sensores.

un microcontrolador que de acuerdo al programa contenido en su memoria ordena alguna acción de control para que el tercer bloque funcional del circuito actúe. Este tercer bloque lo forman dispositivos de potencia que activan los motores de acuerdo a las órdenes dadas por el microcontrolador.


hacia donde se realiza el cambio en la trayectoria (Figura 3c).

La velocidad de respuesta del arreglo de optosensores en relación con la velocidad de corrección del robot, está determinada por el coefic iente de precisión o, lo que es lo mismo.

la longitud de Jos radios de los optosensores

con la rueda eje (r'). entre el radio de la otra rueda (r). Experimentalmente se ha encontrado que para asegurar elseguimiento correcto de la trayectoria que marca la ruta, el coeficiente de precisión debe cumplir:



El circuito de lectura está formado por tres optosensores infrarrojos del tipo HOA1405 109


r'

p =

-> 1

r


441



ya que esto asegura que la velocidad tangencial de los optosensores será mayor a la velocidad de giro de la rueda y, por lo tanto, el optosensor detectará variaciones en la ruta con sólo hacer ligeros cambios en la dirección (Figura 4).

El tercer bloque está formado por dos circuitos de potencia idénticos, uno para cada motor. Estos circuitos tienen la función de

activar los motores en dos posibles velocidades. La activación de cada motor se realiza con un cero lógico en la compuerta del

FET que aterriza al motor. la velocidad la define la conexión que realiza el relevador (4) a dos distintos voltajes de alimentación, para velocidad alta utiliza la conexión normalmente cerrado (NC) a 9 V y para velocidad baja utiliza la conexión normalmente abierto (NA) a 5 V.


G7 G6 GB G4 G3 GZ G 1 GO

1 NO 1 NO 1 NO 1 NO 1 n 1 SD 1 SF 1 SI 1

Figura 5. Configurac ión del puerto G. TL=tipo de lógica (1-positiva y 0-negativa). SD=Sensor Derecha, SF=Sensor Frontal, Sl=Sensor Izquierda.

L7 L6 L5 L4 13 L2. Ll LO

1 Nol N o ! N o l No l MD l vs o l Mr l vsr l

Figura 6 . Configuración del puerto L.

VBI = Velocidad Motor Izquierdo (1-baja y 0- alta). MI = Motor Izquierda (1-encendido).

VBD=Velocidad Motor Derecha (1-baja y 0- alta). MD = Motor Derecha (1-encendido).


EL MICROCONTROLADOR


Se seleccionó un microcontrolador COP8782CJ de la serie de COP8 de 8 bits de National Semiconductor (1). Este dispositivo wenta con dos puertos de entrada/salida de 8 bits cada uno (puerto L y puerto G), una terminal para restaurar (RESET). una de reloj (CK1). y dos de alimentación (Vcc y GND).

Para hacer la lectura de los sensores se configuraron los cuatro bits menos


significativos del puerto G como entradas. dejando los cuatro bits más significativos en tercer estado (figura 5).

Existen dieciseis posibles palabras de entrada en el puerto G, de las cuales las primeras ocho son para lógica positiva y las restantes ocho son para lógica negativa (Tabla 1).


Tabla 1.Condiciones de los sensores.

TL

SD

SF

SI

CÓDIGO

ESTADO

LÓGICA

CONOICION

o

o

o

o

OOh

robot al aire

Pos.

o

o

o

o

1

01h

curva suave a la izauierda

Pos.

1

o

o

1

o

02h

no opera

Pos.

2

o

1

1

03h

curva cerrada a la izquierda

Pos.

3

o

1

o

o

04h

1 curva suave a la derecha

Pos.

4

o

1

o

1

05h

sobre el riel

Pos.

5

o

1

1

o

06h

curva cerrada a la derecha

·-····

próximo a curva cerrada

Pos.

6

o

1

1

1

07h

Pos.

7

1

o

o

o

08h

próximo a curva cerrada

Nea.

8

1

o

o

1

09h

curva cerrada a la derecha

NeQ.

9

1

o

1

o

OAh

sobre el riel

NeQ.

10

1

o

1

1

OBh

curva suave a la derecha

Nea.

11

1

1

o

o

OCh

curva cerrada a la izauierda

Nea.

12

1

1

o

1

ODh

n.o opera

Neo.

13

1

1

1

o

OEh

curva suave a la_izquierda

Neo.

14

1

1

1

1

OFh

no opera

Neo.

15

442


Tabla 2. Códigos y función de cada regla.

MD

VBO

MI

VBI

CODIGO

FUNCION

REGLA

o

o

o

o

OOh

motores detenidos

o

o

o

o

1

01h

no opera

X

o

o

1

o

02h

motor izQuierdo velocidad alta

1

o

o

1

1

03h

motor izquierdo velocidad baja

2

o

1

o

o

04h

no opera

X

o

1

o

1

OSh

no opera

X

o

1

1

o

06h

no opera

X

o

1

1

1

07h

no opera

X

1

o

o

o

08h

rr.otor derecho velocidad alta

3

1

o

o

1

09h

no opera

X

1

o

1

o

OAh

ambos motores velocidad alta

4

1

o

1

1

OBh

no ooera

X

1

1

o

o

OCh

motor derecho velocidad baja

5

1

1

o

1

ODh

no pera

X

1

1

1

o

OEh

no opera

X

1

1

1

1

OFh

··- ambos motores velocidad baja

6


Para enviar las señales de control a los motores se configuraron los cuatro bits menos significativos del puerto L como salidas. dejando los cuatro bits más significativos en tercer estado (Figura 6).

Para el control de los motores existen 16 posibles palabras de control. de las cuales sólo siete de ellas tienen una función específica (Tabla 2).

EL PROGRAMA

El programa tiene un ciclo principal en el que se lee el puerto G y se compara continuamente con alguno de los códigos predefinidos como posibles condiciones, que simplemente indican la regla válida por medio del código de salida en el puerto L. Después de activar una regla, el programa regresa al ciclo principal para mantenerse al tanto de los cambios en las condiciones en los optosensores. En caso de no haber cambios, el ciclo se cierra siempre con la misma regla.

Se utilizó un sistema de desarrollo COP 8 Debug Module de Metalink Corporation, para fa emulación y depuración del programa. así como para la programación del circuito integrado de microcontrol.


En el apéndice A, se muestra el programa contenido en la memoria del microcontrolador, que sólo ocupa 186 bytes de los posibles 4 Kbytes de memoria ROM con que cuenta.

CONCLUSIONES

El usar un microcontrolador para controlar el actuar del robot móvil, resultó ser una gran alternativa, ya que redujo el número de componentes que se usarían normalmente, y por lo tanto el peso y el riesgo de falla.

A pesar de que el COP8782CJ es el microcontrolador más chico de la familia de B bits, éste está sobrado para esta aplicación en particular, ya que sólo se utilizaron cuatro bits de cada puerto, dejando 8 posibles entradas/salidas sin usar (cuatro por puerto). Por otro lado sólo se usó el 5% de la memoria destinada para programas. Estos resultados muestran el potencial del microcontrolador para realizar funciones más complejas sujetas a un mayor número de variables.

REFERENCIAS

1. COP8 Databook. Nationaf Semiconductor , 1994.

443



2. íceMaster COP8 Debug Module User·s


0027 3098


JSR


X'009B


Manual v 1.2, Metalink Corporation,1994 . 0029 9006 LO A,PORTGP

3. Optoelect ronics Device Data. Motorola. Lee condición 4

4.

1989. 0028

950F

ANO

A,#X'OF

0020

9204

IFEQ

A,#X'04

002F

Relay Technnical Oatabook. Aromat

3088

JSR

X'0088

Corporation, 1993. 0031

9006

LO

A,PORTGP

Lee condición 5

5.

Ramos Viterbo, V.; Caracas. G. y Gómez

0033

950F

ANO

A,#X'OF

Ramírez. E. Implementación de un control

0035

9205

IFEQ

A,#X'OS

difuso para un motor de comente directa

0037

3093

JSR

X'0093

en un microcontrolador. VI CIECE, tnsfffuto

0039

9006

LD

A,PORTGP


Tecnológico de Morefía, Morelia, Michoacán, MÉXICO, del 11 al 15 de marzo de 1996.

6. Gómez Ramirez. E.; Martinez Casas, G. y Figueroa Nazuno, J.; Diseño e implementación de una neurocomputadora

en microcontroladores. VI Congreso Nacional sobre Informática y Computación. Aguascal ientes, Ags., MÉXICO, del 23 al 25 de octubre de 1991.

APÉNDICE A.Programa utilizado.

Configuración del puerto L


Lee condición 6

0038

9SOF

ANO

A,#X'OF

0030

9206

IFEQ

A,#X'06

003F

0041

309F

9006

JSR

LO

X'009F

A,PORTGP

L ee condición 7

0043 950F

0045 9207

0047 30A3

0049 9006

0048

950F

ANO

A,#X'OF

0040

9208

IFEQ

A,#X'08

004f

0051

30A3

9006

JSR

LD

X'OOA3 A.PORTGP

Lee condición 8

ANO IFEQ

JSR

LO


A,#X'OF A,#X'07 X'OOA3 A,PORTGP


0000 BC01FF LO

Configuración del puerto G


PORTLC,#X'FF


Lee condición 9


0003

8C0500

LD

PORTGC ,#X'OO

0006

8C040F

LO

PORTGO,#X'OF


0009

9000

LO

A ,PORTLO

0008

950F

ANO

A,#X'OF

0000

9200

IFEQ

A,#X'OO

OOOF

3088

JSR

X'008 B

0011

9006

LO

A,PORTGP

Lee condición o

0013

950F

ANO

A,#X'OF

0015

9201

IFEQ

A,#X'01

0017

308F

JSR

X'008F

0019

9006

LO

A,PORTGP

Lee condición 1

0018

950F

ANO

A,#X'OF

0010

9202

IFEQ

A ,#X'02

001F

3097

JSR

X'0097

0021

9006

LO

A.PORTGP

Lee condición 2

0023

950F

ANO

A.#X'OF

0025

9203

IFEQ

A,#X'03

Lee condición 3

0053

950F

ANO

A ,#X'OF

0055

9209

IFEQ

A ,#X'09

0057

309F

JSR

X'009F

0059

9006

LD

A,PORTGP

Lee condición 1O 0058 9SOF

0050 920A

OOSF 3093

0061 9006

Lee condición 11 0063 950F

0065 9208

0067 3088

0069 9006

Lee condición 12

0068 950F

0060 920C

006F 3098

0071 9006

Lee condición 13 0073 950F

0075 9200

0077 3097


ANO IFEQ JSR LO

ANO IFEQ

JSR

LO

ANO IFEQ

JSR

LO

ANO IFEQ

JSR


A,#X'OF A,#X'OA X'0093 A,PORTGP

A ,#X'OF A ,#X'OB X'0088

A,PORTGP

A ,#X'OF A,#X'OC X'0098 A,PORTGP

A,#X'OF A,#X'OO X'0097


444

0079 9006 LO A,PORTGP

Lee condición 14


./."'>\\. ,.

J

'f--::.

0078

950F

AND

A,#X'OF

0070

920E

IFEQ

A,#X'OE

007F

0081

308F

9006

JSR LO

X'008F A,PORTGP

Lee condición 1 5

0083

9SOF

AND

A.#X'OF

0085

920F

IFEQ

A,#X'OF

0087

3088

JSR

X'0088

0089

2009

JMP

X'0009

Activa regla O

0088 BCDOOO LO PORTLD,#X'OO

008E BE RET

Acti va regla 1

008F

BCD002

LO

PORTLD,#X'02

0092

8E

RET

Activa regla 2

0093

BC0003

LD

PORTLO,#X'03

0096

8E

RET

Activa regla 3

0097 BCD008

LO

PORTLD,#X'08

009A 8E

RET

Activa regla 4

0098 BCDOOA LO PORTLD,#X'OA

009E 8E RET

Activa regla 5

009F BCDOOC LO PORTLO,#X'OC OOA2 8E RET

Activa regla 6

OOA3

BCDOOF

LD

PORTLD,#X'OF

OOA6

8E

RET