102
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad: División: Carrera: Materia: Titulo: Fecha: Alumnos: lztapalapa. Ciencias Básicas e Ingeniería. lng. Electrónica en Computación. Proyecto Terminal I y It. Diseño, realización de un Autómata Robot y comunicación a una PC. 21 de septiembre de 1 999. Juan Carlos Rosas Cabrera 94217975 Javier Tores Vigil 94218449 Asesor:

UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

  • Upload
    vonhi

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

UNIVERSIDAD AUTONOMA METROPOLITANA

Unidad:

División:

Carrera:

Materia:

Titulo:

Fecha:

Alumnos:

lztapalapa.

Ciencias Básicas e Ingeniería.

lng. Electrónica en Computación.

Proyecto Terminal I y I t .

Diseño, realización de un Autómata Robot y comunicación a una PC.

21 de septiembre de 1 999.

Juan Carlos Rosas Cabrera 94217975 Javier Tores Vigil 94218449

Asesor:

Page 2: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

UNIVERSIDAD AUTONOMA METROPOLITANA

Unidad lztapalapa

Ciencias Básicas e Ingeniería

Proyecto Terminal

Ingeniería en Electrónica

Diseño, realización de un Autómata Robot y comunicaci6n a una PC

Asesor: Jesús Barrios Romano

Integrantes: Matricula: Juan Carlos Rosas Cabrera 94217975 Javier Torres Vigil 94218449

Page 3: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 4: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Indice

Prologo ....................................................................... 1

Introduction.. . I 3 .....................................................

Etapa I .................................................................................. 7

Una visión en general del sistema y

Como se compone ..................................................

Partes del sistema en general ................................ El Autómata-Robot y sus partes ..............................

Sistema de traccion y movimiento ........................

Plataforma y estructura para soporte

de los circuitos controladores ................................

Lista de las partes del Automata-Robot ................ Sistema minim0 (8031) ............................................

Circuitos controladores de los motores

a pasos .......................................................................

Motores para la tracción .........................................

Motor para el sensor ................................................ Sistema de alimentacibn de energía ........................ Sistema de sensores ..................................................

Sistema de conversión halógico-Digital ...............

Primer programa .....................................................

13

14

16

17

17

19

21

22

24

26

Page 5: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Etapa I1 ................................................................................... 28

Comunicación entre PC' y el Autómata.Robot ....... 29

Sistema de Madulacicin FSK .................................... 30

Sistema de Transmisión de ............................... 31

Sistema de Recepción de FM ................................... 32

Sistema de Demodulación FS K. .............................. 33

Inicialización del puerto del Autómata-Robot ........ 33

Inicialización del puerto de la PC ............................. 34

Transmisicin de la PCI ................................................. 34

Transmisión del Auhjmata-Robot ............................ 34

Recepclon de la Pc'..................................................... 34

Recepcicin del Autcimata-Rahat ................................... 35

Control y monitoreo del Autómata-Robot

en una PC ...................................................................... 37

Tipo de encabezado y datos (Protocolo de

comumcaclon) 37

Descripción de la pantalla del monitor ....................... 38

Descripcicin de las comandos al Autiimata-Rahat .... 39

Ejemplos de exploraciones .......................................... 43

Programas finales ........................................................ 45

Programa del Autómata-Robot .................................. 45

.,

. ., ...............................................................

Programa del monitor de la PC .................................. 46

Apéndice A ................................................................................ A-i

Apéndice B ................................................................................ €3-1

Bibliografirt .

Page 6: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 7: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Prólogo

El proyecto descrito en este reporte se realizo con la inquietud de hacer algo nuevo e

innovador en los proyectos de investigación, inquietud que surge, debido a los avances tecnológtcos

que hemos tenido en esta era, hoy en día la mayoría de las empresas, industrias, oficinas, escuelas,

etc. se utiliza al menos una computadora y como consecuencia estas intervienen cada vez mas en la

vida diaria del hombre.

Como hemos visto en películas de ciencia ficción, 105 robots o autómatas, así como

también lo hacen las computadoras, intervienen en la vida del hombre, ya sea en el hogar, oficina,

industria, etc. en tareas especificas que pueden sustituir al hombre. Cuando se habla de un robot se

piensa que es algo tecnológicamente complejo, por varias razones, el primer punto, la tecnología,

por que hace tiempo, a pesar de que se tenia idea de como construirlos, no se contaba con la

tecnología de hoy; como segundo punto el costo, porque aún hoy en día los circuitos integrados,

servomotores, sensores, estructura y partes módes, son caros; y como otro punto importante las

tareas que va a realizar ya que debido a esto dependerá su diseño y complejidad.

Muchas personas piensan en un robot como una maquina que debería actuar como una

persona normal, imitar sus movimientos, reacciones y sentimientos; pero un robot real

(actualmente) está totalmente fuera de alcance de imitar en todos sentidos a una persona.

Podemos definir un Robot como una maquina que puede ejecutar ciertas tareas

respondiendo a estímulos externos; esto nos lleva a una gran variedad de robots, dependiendo de las

aplicaciones que estos puedan tener, para poder ser llamados robots estos deben cumplir varios

puntos en general:

- Tener sistemas de control de movimientos

- Tener sistemas sensores

- Ser totalmente independiente de la intervención de hombre

Existen tres clasificaciones para los Robots que dependen de l a s respuestas de estos a

estímulos externos, estas clasificaciones son:

1

Page 8: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

- Robots Clase Alfa: Esta clase es la mas simple pues solamente pueden responder a

estímulos y realizar alguna acción en respuesta a ellos.

- Robots Clase Beta: Esta clase es un poco mas "inteligente" que la clase Alfa, igual que la

clase Alfa, la clase Beta también reacciona a los estímulos externos, pero ésta clase tiene la

habilidad de "recordar" las reacciones a dichos estímulos, esto es , teniendo un conjunto de

estímulos, el Robot almacena la información necesaria para un estímulo dado y utiliza ésta

información posteriormente si vuelve a ocurrir el mismo estimulo.

- Robots Clase Gama: Esta clase incluya las mismas características de las clases Alfa y Beta

e incorpora nuevas características que lo hacen muy superior a las anteriores. Esta clase puede

generalizar todos los estímulos que puede detectar. Como la clase Beta, también "recuerda" las

soluciones de un estimulo y además generaliza Csta respuesta para una variedad de estímulos

similares que no hayan ocurrido aún.

Para este proyecto se tuvo la inquietud de construir un Robot Clase Alfa pues éste podrá

librar obstáculos y moverse libremente, por si solo, mediante un sistema que mida distancias y

algoritmos que procesen la información y decidan que ruta es la adecuada para no chocar con los

obstáculos que pueda encontrar para que éste sea autómata, y de que además la información de las

distancias obtenidas se enviaran por radio, para ser desplegadas en la pantalla de una PC y junto con

un software que funcionará como monitor que se pueda controlar al Robot enviándole ordenes o

comandos para que sean ejecutadas por el autómata-robot para que se mueva de un punto a otro a

otro o que reinicie con la exploración del entorno por ejemplo.

Page 9: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 10: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Durante la última década, el empleo de un microprocesador como dispositivo compensador

ha aumentado, ya que su precio y confiabilidad ha mejorado notablemente. En la figura siguiente se

muestra un diagrama de bloques de un sistema de control digital de circuito simple. Esta

configuración dc sistema digital recibe el error, e(g, y realiza los cálculos para proporcionar una

salida, ~ * ( t ) , de forma que el hcionamiento del proceso sea igual, 0 casi, al funcionamiento

deseado. Muchos microprocesadores tienen la capacidad de recibir y manipular diversas entradas,

por lo que un sistema de control digital constituye frecuentemente un sistema multivariable.

ficropro- cesahr

Salida Proceso U *(o

t Medicion

Dagrama a bloques de un sistema de control d i g i t a l

En la siguiente figura se muestra un diagrama de bloques más completo de un sistema de

control por microprocesador. Este diagrama muestra que un microprocesador recibe señales en

forma digital (num6rica) y opera con ellas, en contraste con los que lo hacen mediante seaales

continuas. Los datos medidos se convierten de una forma analógica a otra digital por medio de un

convertidor, como se muestra en la figura. Después de procesar las entradas, el microprocesador

proporciona una salida en forma digital. Esta salida, a su vez, se convierte en analógica mediante el

cclnvertidor digital a analógico como se observa en la figura.

Entrada de

Diagrama de bloques de un sistema de control por un microprocesador que incluye los convertidores de seRales

3

Page 11: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

12oooo000

1 o m o O 0

80000000

60000000

40000000

20000000

i

i O

]Aiio 1 1960 1 1970 1 1980 1 1990 1 2000 1 Cantidad 1 100 1 OOOO I 1000000 10000000 1 10o0o0000

Numero total de sistemas de control por computadoras instalados en industrias ~~~~ ~

Como se muestra en la siguiente g r s c a el número total de sistemas de control por

computadoras instalados en la industria y/o empresas ha crecido en las dos últimas décadas.

Un computadora consiste en una unidad de procesamiento y control (CPU), unidades de

entrada y salida, y una unidad de memoria. El tamaño y capacidad de una computadora varían con

el tamatlo, la velocidad y la potencia del CPU, que desde 1965 se han hecho cada vez más comunes

y más baratos las computadoras pequeñas, llamadas microcornputadoras o computadoras personales

(PC).

En los últimos años han disminuido exponencialmente el tamaño de los componentes y el

costo de los dispositivos lógicos empleados en la construcción de computadoras.

Los sistemas de control digital se emplean en múltiples aplicaciones: para máquinas

herramienta, procesos metalúrgicos, procesos químicos, control de aviones, control de tráfico de

automóviles, control de inyección electrónica de un auto, etc., y para que estas sean más eficientes

en la aplicación en las que se desempeñan. Ya que las ventajas de usar un control digital son: 1)

Mejoría en la sensibilidad de manejo en diversos dispositivos. 2) El empleo de sdales digitales

4

Page 12: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

permite una aplicación m k amplia de los dispositivos. 3) E1 uso de sensores y transductores se

pueden realizar mediciones, transmisiones y acoplar seíiales de dispositivos de una manera efectiva.

E1 manejo automático de equipos para el hogar, la escuela y la industria es particularmente

útil para tareas peligrosas, repetitivas, tediosas o simples. En la industria se emplean máquinas que

cargan, descargan, sueldan, cortan o moldean, con el objeto de conseguir precisión, seguridad,

economia y productividad.

El empleo de sistemas digitales integrados a máquinas que realizan tareas como lo hace un

ser humano, fue previsto por diversos autores como el de las “Guerras de las Galaxius ”. Con

frecuencia sustituyen la labor humana en tareas repetitivas especificas. Algunos dispositivos tienen

incluso mecanismos antropomorfos, incluyendo algunos que reconoceriamos como brazos

mecánicos, muñecas y manos. Los robots pueden emplearse ampliamente en la exploración

espacial, en ensamblajes de autos, etc.

Un robot se podría definir como un manipulador reprogramable y multifuncional diseñado

para realizar diversas tareas.

5

Page 13: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

El Proyecto de Investigación se divide en dos etapas:

Primera Etapa: Para el hcionamiento del autómata-robot se hará uso de un sistema

microcontrolador basado en el 805 1 , donde este va a ser el responsable de codificar y traducir las

instrucciones que, interna ó externamente, comanden los movimientos del robot así como también

el control de los demás sistemas que son parte de 61 para que sea autómata.

Segunda Etapa: La comunicación entre el robot y cualquier PC podrá ser alámbrica o

inalámbrica, dependiendo de la disponibilidad de los componentes y de la complejidad de estos;

también será factible usar una PC para exhibir, y compartir con el autómata, la inspección,

interpretación y resolución de obstáculos que encuentre en su camino en una área determinada, así

como también el control de éste.

Por cansiguicntc para mayor cxplicación dc su hcionamicnto, cl “sistcma” sc analizará cn

cuatro partes principales:

1) Una visión en general del Sistema y como se compone.

2) El Autómata-Robot y sus partes.

3) Comunicación entre el Robot y la PC.

4) La PC como monitor e interprete de comandos entre el usuario y el Robot.

6

Page 14: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 15: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Etapa I

7

Page 16: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Una vkibn en general del Sistema v como se compone

Se tiene la inquietud de realizar un autómata que haga la tarea de reconocer las dimensiones

o explorar una área determinada y que estas sean mostradas en el monitor de una PC. Este autómata

que se controla así mismo por medio de un sistema mínimo basado en el procesador 803 1 realiza las

tareas de desplazarse y medir las distancias de dicha área, la tarea de moverse a otras áreas para

realizar una nueva exploración se hará por medio de la PC de 2 formas: 1) La PC, por medio del

usuario se le indica que área se tiene que explorar. 2) La PC automatiza toda la exploración del área

total.

Partes del Sistema en General

Sistema de Comunicación -

Medidor de 1 I Controlador 1 Distancias 1 de servomotores

m Sistema de €

Software Comunicación -

8

Page 17: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

El Aut6mata-Robot v sus Dartes

A continuacijn se describe las partes y funcionamiento del Autjmata-Robot: este se

compone de partes principales como lo son: sistema de tracción y movimiento, plataforma,

estructura para soporte de los circuitos controladores y sistema mínimo, así como también su

sistema de alimentacijn y sistema de sensores.

El Autómata-Robot esta diseñado como su nombre lo dice para moverse por si solo, este

autómata fue creado (tanto sistema mecánico, sistema eléctrico y de potencia, y circuitos de control)

por nosotros, la mayoria de las piezas del sistema mecánico fueron ‘recolectadas’. La platdoma, el

sistema de tracción y movimiento y la estructura para el soporte de los circuitos y batería se

muestran en las figuras siguientes y por consiguiente la explicación de cada una de ellas.

Sktema de tracción y movimiento.

3

Page 18: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

La figura anterior muestra la forma de la plataforma que esta hecha de madera la cual tiene

tres puntos de apoyo en el piso, dos son los que van a proporcionar la tracción para su movimiento y

uno solo funciona como punto de apoyo al suelo o plano; se diseiio así de tal forma que formara un

triángulo equilátero, ya que este tipo de geometria haría fácil su desplazamiento para girar a

cualquier dirección sobre su propio centro de gravedad, ya que también el ancho de esta plataforma

ayuda a tener una mejor distribución del peso que soportaría el Autómata-Robot. El otro apoyo fue

disehado por nosotros el cual consiste en un volumen cilindnco hueco de tal forma que en su interior hay un cojinete 'cónico' el cual sirve como apoyo y permite que la esfera ruede con

facilidad, proporcionándonos así un movimiento mas eficiente.

g"

Figura de como se l o g r a la tracción del robot por medio de Motores a pasos

La anterior figura muestra el mecanismo empleado así como tatnbikn el ilisefio del sistema

de tracción del robot el cual es proporcionado por el movimiento de dos motores a pasos, se eligió

este tipo de motor para lograr una mayor exactitud en cuanto a su desplazamiento hacia adelante,

hacia atrás y cambios de dirección ya que el objetivo de este lo requiere. Ya que este tipo de 10

Page 19: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

motimientos si se quiere que avance o retroceda el robot, los motores giraran en un solo sentido y

para dar vuelta se puede lograr de dos maneras: uno, dejar fija una llanta y la otra proporciona la

tracción adecuada para cambiar la dirección del desplazamiento; y dos, girar una llanta o motor en

un sentido y el otro en el opuesto al primero (ventaja que nos proporcionan los motores a paws por

la facilidad de su control), para que este gire o cambie de dirección de una manera mas rápida que la

anterior y su movimiento sea sobre su propio centro de masa.

La tracción, como ya se dijo anteriormente es proporcionada por motores a pasos, esta es

proporcionada por un engrane sinfin, que es perpendicular al eje de la llantita y al plano, la cual,

esta va unida a un engrane que hace contacto con el engrane sin fin anteriormente mencionado,

proporcionándonos así un libre movimiento del motor en los dos sentidos y a velocidades variables.

Los motores a pasos son motores que se obtuvieron de Drives de 3 %,, para PC's y son

motores de dos bobinas como la figura que se muestra a continuación y así como también sus

partes:

Figura de un moto: 3 pasos de dos bobims

Las partes del motor son:

Estator cup A : Encapsulado del Estator A Estator cup B : Encapsulado del Estator B output Shaft : Salida coil A : Bobina A coil B : Bobina B

Los Motores a pasos son usados cuando el movimiento y posición tienen que ser

precisamente controlados. Como su nombre implica el motor a paso se mueve en pasos discretos,

11

Page 20: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

cada paso corresponde a un pulso que es suministrado a uno de los enbobinados del estator como se

muestra a continuación ,dependiendo del diseño puede avanzar 90° y 45" , 18" , o por una fracción de

grado , el desempeño de un motor a pasos depende grandemente del poder suministrado que lo

dirige, es decir, la fuente de alimentación. El cual su movimiento y control se hace a través de

controladores de motores a pasos y este a su vez son controlados por el sistema mínimo ya antes

mencionado.

Figura que ilustra como realiza los pasos un motor

En la figura anterior se muestra el ciclo para que el motor realice pasos que a continuación

se describe y consiste en un motor de un Estator con 3 polos salientes y un rotor de 2 polos hecho

de hierro dulce (moldeable). Las bobinas pueden ser exitosamente conectadas a una fuente D. C.

por medio de 3 switches A, B , C. Cuando los conmutadores están abiertos el rotor puede tomar

cualquier posición . De todas maneras si el conmutador A es cerrado el campo magnético resultante

creado por el polo 1 atraerá el rotor y entoces se alineara como se muestra .

Si abrimos el conmutador A y si simultáneamente cenamos el conmutador B el conmutador

se alinea con el polo 2 , en ese momento rotarh unos 60". La próxima vez si abrimos el conmutador

B y simultáneamente cerramos el conmutador C el rotor girara unos 60" adicionales , en ese

Inomento se alinea en el polo 3. C1aramente podemos hacer que el motor avance 60° por paso

cerrando o prendiendo los conmutadores en la secuencia A, B, C , A, B , C . De igual manera

podemos poner en reversa la rotación operando las computadoras en la secuencia de reversa

A,C,B,A,C,B. En orden de arreglar la posición final del rotor. E1 último conmutador que fue cerrado

12

Page 21: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

en una secuencia de conmutación debe ser nuevamente cerrado. Esto mantiene el rotor en su irltima

posición y previene de moverlo bajo la influencia de fuerzas externas.

Con el sistema de alimentacih de los motores a pasos y el diseño del sistema mecánico de

transmisión de movimiento (engranes) son capaces de mover hasta 4 Kgrs. el cual es potencia

suficiente para cualquier tipo de desplazamiento.

Plataforma, y estructura para soporte de los circuitos controladores.

La estructura y soporte para los circuitos, así como también la del sistema minim0 es como

se muestra en la siguiente figura, la cual también esta hecha de madera y se eligió madera en

general para el Autómata-Robot por su fácil manejo, economía, resistencia y por su poco peso. Esta

solo su función es en desempeiiar un soporte adecuado para las tarjetas del sistema mínimo, el

sistema de control y potencia de los motores, batería, circuitos de modulación y demodulación

FSK, y circuitos de transmisión y recepción de FM.

La plataforma sirve para apoyo y fijación, corn9 ya hemos dicho anteriormente a los tres

puntos de apoyo en el suelo para el robot, la otra como se puede apreciar en la figura anterior

13

Page 22: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

también hay espacio para una batería, la cual es recargable y nos proporciona la energía necesaria

para todo el sistema. Esta batería nos proporciona 12 Volts DC 4 Amperes para un ciclo

aproximado de trabajo de 10 a 15 minutos; al rededor de ésta está la estructura para el soporte de los

circuitos. Csta estructura soporta los siguientes circuitos: en un nivel se encuentra el sistema

mínimo, circuitos para la transmisión serial y controladores para los motores a pasos. Y a un

costado de la estructura se encuentra el circuito que va a controlar a un tercer motor de pasos de 4

bobinas el cual nos proporciona el movimiento angular de los sensores, la etapa de potencia de los

sensores, la etapa de amplificación de los sensores y el circuito convertidor de Analógico-Digital de

la señal de los sensores, los cuales le dirán al robot a que distancia se encuentra el objeto mas

cercano a él.

Lista de las partes del Automdta-Robot

1) Platdonna o base 2) Orificios para partes de tracción 3) Base para alojar el cilindro que contendrá a la esfera. 4) Cilindro hueco, parte superior. 5) Cojinctc cónico para apoyo dc la csfcra 6) Esfera 7) Tapa cilindrica para sostener la esfera 8) Cuerpo de tracción 9) Base larga para sostener el extremo interno del eje 10) Perno para fijar el movimiento de la llanta 1 1) Llanta con engrane para tracción 12) Eje 13) Base corta para sostener el extremo externo lateral del eje 14) Motor de pasos dos bobinas, que proporciona tracción 15) Tomillos 1/8” 16) Base para fijar el motor a la plataforma 17) Base del motor 18) Engrane sinfin acoplado al eje del motor para tracción, como transmisor de

movimiento 19) Eje del motor 20) Engrane de la llanta como receptor de movimiento 21) Llanta 22) Orificios pma tomillos 1/8” 23) Tuercas para tornillos 1/8” 24) Ratería 25) Compartimento para alojar la batería 26) Base para motor a pasos de cuatro bobinas para sensores 27) Estructura para colocar circuitos de manera lateral u horizontal 28) Alojamiento para circuitos nivel I 29) Alojamiento para circuitos nivel I1

14

Page 23: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Plataforma, estructura y sistema de traccicin.

Page 24: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

La base principal de éste sistema mínimo es el microprocesador 803 1, el cual se escogió por

tener un puerto externo de 8 bits libre para controlar algún dispositivo externo; en nuestro caso se

utiliza para controlar tres motores de pasos (4 bits para controlar el motor del medidor de distancias

y 4 bits para controlas los motores de la tracción), también se escogió por la similitud de los

mnemónicos y la forma de programación con la familia 80x86 de INTEL

Este sistema esta compuesto como se muestra en la figura siguiente:

~~~~ ~ ~~~~ ~

Figura d e l sistema minim0 y circuitos para comunicación serial

E1 sistema esta compuesto por una EPROM 2764 de 8Kb, una RAM 6264 de 8Kb, un

decodificador de direcciones 74138, un latch 74373 (que multiplexa el bus) y el microprocesador

803 l .

E1 microprocesador tiene dos puertos uno para datos de 8 bits y una para la parte alta de

direcciones de 8 bits, con el puerto de datos y el latch se genera la parte baja del bus de direcciones

16

Page 25: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

de 16 bits; los tres bits mas significativos del bus de direcciones se conectan a un decodificador el

cual sirve para mapear la memoria, es decir, divide toda la memoria direccionable (64Kb) en

bloques de 8Kb cada uno para habilitar dispositivos diferentes conectados al decodificador.

Circuitos Controladores de los Motores a pasos

En general hay dos circuitos controladores para los motores a pasos: uno para el sistema de

tracción y el segundo encargado para proporcionar el movimiento angular de los sensores.

El primero es un circuito MC3479 de Motorola el cual controla motores de 2 bobinas,

mediante tres bits; el primero para controlar el consumo de corriente, el segundo para controlar el

sentido de giro del motor, el tercero controla la velocidad de las revoluciones del motor, como se

muestra en el circuito siguiente:

I +IN i 5 1

CLK M1 M1

cor4rol& lor h€O?,?r.s

Circuito controlador de los motores de pasos y especificaciones

17

Page 26: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Para el circuito anterior, el programa en ensamblador o lenguaje de máquina para mover los

motores de pasos mencionados anteriormente con los controladores MC3479 es por medio del

siguiente procedimiento:

MUEVE: ;RUTINA PAPA MOVER EL MOTOR DE LA TRACCION

MOV DPTR, 119FOOH MCVX A, @ C P T R

MOVX @ D P T R , P. MOV DPTR, #9FFOH

MOV DPTR, Y9F0lH MOVX A, @DPTR MOV DPTR, U9FFlH MCVX @DPTR,A CLR c::

CFL RELOJ LCALL RETARDO2 L P L REiúJ LCALL RETARDO1

~ JNB C16,CICLOM LCALL DEC16

~ RET

CICLOM: LCALL RETARDO2

Listado para mover los motores de pasos

Del listado anterior las direcciones #9F00H y #9F01H sirven para almacenar el número de

pasos que deberán girar los motores, como este número de pasos es mayor que 256 se tuvo que

implementar funciones de 16 bits para soportar estos números tan grandes; una de estas fimciones

es DEC 16 que analizan en el Apéndice A con mas detalle.

Para escribir los valores correctos en las direcciones del contador se da a continuación el

siguiente ejemplo:

No. Pasos en Decimal No. Pasos en Registro YFOOH Registro YFOlH

Hexadecimal (mris significativo) (menos significativo)

440 (1 vuelta) O 1 B8H OlH B8H

884 (2 vueltas) 0370H 03H 70H I

Cabe señalar que una vuelta de la llanta corresponde a 90 grados aprox. (Si los motores

giran en sentido contrario) y avanza 12.5cm qrox. (si los motores giran en el mismo sentido); si se

quiere girar 45,270 6 360 grados, o avanzar 25,37.5 ó 50cm se puede hacer una regla de tres para

obtener el número de pasos adecuados.

1s

Page 27: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Las funciones de ~ T ~ O 2 y RETARDO1 sirven para ajustar la fiecuencia adecuada

para el buen funcionamiento de motor (para que giren mas lento o más rápido los motores se deben

modificar estos procedimientos).

E1 circuito que controla el movimiento angular del sensor es proporcionado por 4 bits del

8031 y una etapa de potencia para suministrar suficiente corriente para la fuerza del motor; este

motor de pasos es de 4 bobinas y por tanto no se necesita un controlador especial para 61 como para

los de 2 bobinas, en el siguiente circuito se muestra como se conecta la etapa de potencia al motor.

P4

P5

P6

P7

Etapa de potencia d e l motor de 4 bobinas

Fara el circuito anterior, el programa en ensamblador o lenguaje de máquina para mover el

motor de pasos mencionado anteriormente con el circuito anterior es por medio de los siguientes

procedimientos:

DECMD: MOV A, U0 ;RUTINA PARA CAMBIAR LOS BITS DE MOTOR (UN PASO ADELANTE) 1

19

Page 28: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

MOV ACC.7,C MOV C.Pl.6 MOV ACC.6,C MOV C, P1.5 MOV ACC .5, C MOV C,P1.4

CLR C Mnv wr. 4 , c

RRC a CJNE A, IZ4,MOT:A SETE ACC.7

MOTlA: CJNE A, t72,MOTZA

MOTZA: MOV C, Pl.0 SETB ACC.7

MU/ Aii. O , i MOV C,P1.1 MOV ACC.1.C

MOV ACC.?,C MOV C,P1.2

MOV C,P2.3 MOV ACC.3,C MOV P 1 . A RET

;RUTINA PARA CAMBIAR LOS BITS DE MOTOR [UN PASO ATRAS) I?!cw": !?X? n, t C MOV C,P1.7

MO'J C, P1.6 i"iüi ACi . ó , 5 MOV C,P1.5 MOV ACC.5,C MOV C,P1.4 MOV ACC.4.C CLR c RLC A CJNE A, 11128,MOTl

MOV acc.7,~

MOT1: CJNE A. #32,MOT2

MOTZ. M011 r, P 1 . D

SETB a~c.4

SETE ACC.4

MOV ACC.O,C MOV C,P1.1 MOIJ ACC . 1 , C Mjov c, P i . 2 MOV ACC.Z,C MOV C, P1.3 MOV ACC . 3 , C MOV P1.A RET

Rutinas para mover el motor del sensor de distancias

Las rutinas &XMD y DECMD solo hacen el corrimiento de bits para que el motor avance o

retroceda un solo paso. Estos procedimientos se llamarán el número de veces que sea necesario por

otros procedimientos que mas adelante se explicarán. La secuencia de bits para el correcto

funcionamiento de los motores es el siguiente:

Estado1 O 0 1 1

Estado2 O 1 1 0

Estado3 1 1 0 0

Estado4 1 0 0 1

20

Page 29: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Como ya se había mencionado anteriormente, el sistema se alimenta con una batería de 12

Volts DC 4 Ampers la cual proporciona como muestra en el circuito siguiente: +12 Volts DC, +5

Volts DC; los +5 V son proporcionados por un regulador de +5 V 7805.

Adicionalmente para los integrados operacionales Lh.1741 los cuales son la etapa de

amplificación de los sensores requieren de una fuente simétrica, la parte positiva nos la proporciona

la batería anterior, para la parte negativa nos la proporciona una batería de 9 Volts DC como lo

muestra la figura siguiente:

12v

9v

ELL- + +12v

+5V

- 5v

Circuito del sistema de alimentación

21

Page 30: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Este sistema consta de l a s siguientes etapas:

1-Etapa de reloj: genera pulsos con una frecuencia determinada para sincronía.

2-Etapa de potencia del transmisor infrarrojo: A partir de los pulsos de reloj

junto con esta etapa suministra la corriente necesaria para el transmisor.

3-Etapa del emisor infrarrojo: Emite los pulsos que serán reflejados en alguna

superficie dada.

4-Etapa del receptor infrarrojo: Esta etapa recibe los pulsos del transmisor que

hayan sido reflejados en alguna superficie.

5-Etapa de amplificación: Como los pulsos recibidos son del orden de milivolts

en esta etapa se amplifican para que estos pulsos varíen de O a 5 volts y sean

enviados a la. etapa de acoplamiento.

Las cinco etapas anteriores coafoman el sistema sensor el cual se muestra en el circuito

siguiente:

I tsv

P

Circuito sensor

22

Page 31: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Este sistema sensor se encarga de proporcionar información de que tan cerca se encuentra

un objeto del robot, para ello el transmisor y el receptor están colocados una distancia de tal forma

que entre ellos se forma un hngalo de reflexibn con el objeto donde se va a reflejar la señal, A partir

del circuito anterior la amplitud de la señal recibida varia de acuerdo a la distancia que se encuentre

el objeto del sensor.

El emisor y receptor infrarrojo están montados en un motor de pasos de cuatro bobinas que

hace un barrido de 180" donde este motor da 100 pasos y por tanto obtenemos 100 datos. Para

obtener éstos 100 datos primero se regresa el motor a su posición de ángulo cero con la siguiente

rutina:

I ?~EG?s?.:?%'.J p.?, !IC1 ;REGRESA A SU POSICION ORIGINAL E L MOTOR ?.NGULO=O

CICL0R:LCALL INCMD LCALL RETARDO3

I D J N Z R7,CICLOR RET

I I Regresa motor a su ángulo cero

23

Page 32: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Sistema de conversidn Analógico-Digital

El sistema de conversión Analógico-Digital consiste en obtener la seiial que recibe del

sistema de sensores para convertirlos a datos de 8 bits que se hace por medio de un ADC0808; y se

hace de la siguiente manera: T,os sensores estrin acoplaBos a. un motor de pasos de c~latro bobinas

que hace un barrido de 180" el cual para llegar a estos 180" el motor da 100 pasos y en cada paso

obtiene un dato del ADC, lo cual quiere decir que al final de cada barrido de 180" tendremos 100

datos los cuales se almacenan en la memoria RkM (6264) los cuales son procesados por el 803 l . El

circuito Tire hace esta conversión se muestra a continuación.

De el Sensa

Para la lectura de un datci del convertidor Analógicci-Digital se deben de realizar los

siguientes proceditmentos:

;HACE QUE EL A/D EMPIEZE A CONVERTIR

CINIAD: JNB P1.3, CINIAD :::IA3: KG:' DPTTR, /GAGG"O::

CINIADZ: JB P1.3.CINIAD2 MGV R7, #21H

MOW. PDPTR, A ClNIXU4:UJNZ K~,LlNIHU¶

CI?!I?.D3: ,??!E CAD, CI?!I?.D3 FINAD: RET

;RUTINA DE INTERRÜPCIGN DEL A/D iNTAD: PÜSH ÜPi,

;RETARDO

PUSH DPH MGV DPTR, iiOAOOOH

MOV DPTR, #9FF2H MOVX A, @DPTR

?IC'.? !?DER,?. POP DPH POP DPL SET9 CAD muv IL, 08'311

RET1

. . . . . - .. - -. .

Kutina para convertir la &al anal6gica a dato

24

Page 33: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

La rutina INIAD hace que el convertidor comience a convertir, pero como éste se tarda

loops se debe esperar hasta que este listo el dato convertido y la rutina de interrupción active el bit

CAR, para continuar con el programa.

La rutina de interrupción lee el dato convertido en la dirección AOOOH , lo almacena un

registro en la dirección 9FF2H y pone en ‘bl” el bit CAI).

Para que lo anterior funcione se necesita que el microprocesador acepte interrupciones

externas (registro IE) y ésta debe estar activada.

Procedimientos para leer I 00 datos del semor

Como el motor debe hacer un barrido de 180 grados para obtener 100 datos se deben de Ilamar Las siguientes rutinas para obtenerlos.

LEEDIST:!%’! P.?, ulnC ;LEE LAS DISTANCIAS Y LAS GUARDA A PARTIR DE 9EOOH

;1nc psscs i” - 1 . 8 ;rzdcs MOV DPTR, f9EOGH

CICD1ST:CLR CAD PUSH DPL pijjii DPH

T ,CAI , l T N T A D :T,T,AMA A TA RIITTNA PARA CONVTFRTR CON FT. A / D

MOV DPTh,#9FFZH ;LEE VALOR DEL A/D MOVX A, @DPTR POP DPH ;GUARDA LO CONVERTIDO EN LA TABLA

MOVX @DPTR,A PC? EPL

LCALL DECMD INC DPTR L L U L RETAhTIDu3 DJNZ h 4 , C I C D I S T PET

Rutina para l e e r 100 datos

Primero se debe regresar el motor a su posición en ángulo cero y después se llama a

LEEDIST.

25

Page 34: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Para probar el sistema que mueve al aut6mata se elaborci un programa donde se puede

demostrar todos los movimientos posibles por él.

Para entender el programa primero se tiene un diagrama de flujo en donde se muestran los

pasos a seguir para conseguir que el automata se mueva.

+ Cargar No de paso S

Mntorl-1

I ik

a la Derecha !

__r_

ucn Motons

Avanza de fnnte

Motorl-1

T

Motor14 Motor2-1

c.% j

ueve Motorer

Avanza de frente

9 Cargar No de paso S

Avanza de hacia --”-- atms I w

[ F i n ]

A partir del diagrama de flujo y entendiendo los pasos que se realizan se puede obtener el

programa completo en lenguaje ensamblador para el 803 1 (Ver Apéndice A “Primer Programa”).

26

Page 35: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 36: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Etapa I1

Page 37: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Pasa realizar esta segunda etapa y tomando como base la etapa anterior, se desarrolló el

sistema de comunicación entre la PC y el Autómata-Robot, y el programa para el control y

monitoreo del mismo.

Contunicacidn entre PC y el Autdnfata-Robot

Para establecer la comunicación entre la PC y el Autómata-Robot se usa una comunicación

punto a punto, pues los dos aparatos mencionados son los únicos que actúan en la comunicación.

A continuación se presenta el siguiente diagrama a bloques que explica la Transmisión-

Recepción de los datos:

Y Y

Se escogió que la transmisión y recepción de datos entre la PC y el sistema hera mediante

el puerto serial debido a que la mayoría de la PC's cuentan con este y su bajo costo.

Para lograr la transmisión de los datos se requiere de 4 módulos:

1 - modulación FSK

2 - transmisión FM

3 - recepción FM

4 - demodulación FSK

Debido a que la transmisih de los datos se hace m ambos sentidos se requieren estos 3

módulos tanto para la PC y para el Autómata-Robot, lo única que difiere en la transmisión y

recepción es en la frecuencia a la que se sintonizan.

29

Page 38: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Con lo anterior se define en general como está el sistema de comunicación y como la

transmisión en un sentido es exactamente igual que la recepción en sentido inverso, sólo se

describirá en un solo sentido. A continuación se tiene el diagrama completo de la transmisión de

datos de cada bloque:

t

Circuito para la modulación FSK

Lo que hace el circuito anterior es modular los pulsos TTL como se muestra en la siguiente

figura:

1 ov Sa lid o

Moduloci6n FSK

ov

5v

Pulsos de Entroda

J Ln

I J 30 ov t

Page 39: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Como se observa en la figura anterior, cuando se tiene un nivel alto la frecuencia de

modulación a la salida del circuito FSK es de 1 . 4 m z y cuando se tiene nivel bajo la frecuencia es

de 2.4KHz. Para ver mas con detalle como se logra la frecuencia de modulación ver el apéndice C.

I T

L c L

7 Antena

Transmisor de FM

Para variar la frecuencia de transmisih basta con variar el valor del inductor que esta entre

los pines 10 y 1 1 . Para nuestro caso fl y f2 se encuentran dentro de la banda comercial donde fl =

104.lMHz y f2 = 102.8MHZ, se utilizan dos frecuencias distintas para enviar y recibir datos

simultáneamente sin que ocurra interferencia.

31

Page 40: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

I - -

Receptor de FM

Para sintonizar la &frecuencia adecuada del transmisor hay que variar el potenciometro del

circuito el cual se encuentra en la banda comercial y para que 1 receptor se encuentre en ésta banda

se debe de variar L l .

32

Page 41: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Debido a las características que presentó éste circuito, la frecuencia máxima a la que se

puede demodular sin distorsión es a 600Hz.

Con los circuitos anteriores ya se puede realizar la comunicación entre el Autómata y la PC

mediante sus respectivos puertos que se programaron con las siguientes características:

1 - Velocidad: 600bps

3 - Longitud de palabra: S bits 4 - Bits de parada: 1 bit

2 - Paridad: Ninguna

Los programas siguientes inicializan los puertos de comunicaciones; la programación en la

PC se hizo en lenguajes C++ para DOS debido a l a s facilidades que éste ofiece para el control de

los puertos:

MOV SCON,W01010010B ;INICIALIZA LA TRANSMISION SERIAL MOV TH1, #OF3H ; VALOR DE AUTO-RECARGA PARA 300 BAUDS MOV TMOD, X20H ; MODO DE AUTO-RECARGA

MOV IE, #85H SETB TR1

;HABILITA LAS 1NTERRUPClONES I

inicia el puerto de1 Autómata-Robot

33

Page 42: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Inicializacidn del puerto de la PC

#define 1 #define

COM SETTINGS (@xA@1OxO3~0x0010x001

bioscom ! O , SETTINGS, CCM) ;

Los siguientes programas muestran la transmisib serial de la PC y del Autbrnata:

I void, transmite-car (char c)

int status2; status2=l;iosc~m~3, O , COMI ; if (status2 L DATA-READY)

biosconll. c, COMl; bioscom(2, O , COM);

I

Transmision de un caracter en lenguaje C

Transmisión de Autómata

I ;TRANSMITE CAaCTER OUTCHAR: JNB T I , $ ; ESPERAR A TRANSMISOR L I S T O i

CLR T I ; LIMPIAR LA BANDERA MOV SBUF,A ; TRANSMITIR I RET

I I Transmisi6n de un caricter en lenguaje ensamblador

r

int recivcarfint 'ban) I

while [ ;DONE1 int status2, out3, DONE=FALSE;

I status2 = bioscom(3, O , COMI; 1 f l s t a t i i ? & DATA-HRADYI

1 o u t 3 = broscom(2, O , COM); DONE = TRUE;

1 +L."". uuII-I,

I return o u t 3 ;

I

R e c e p c i h de un crrnicter en lenguaje C

34

Page 43: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

; L E E C A R k T E R INCHAR: J N B R I , $

CLR R I MOV A , S B U F RET

; LECTUKA

I I Recepción de un carhcter en lenguaje ensamblador

Para realizar la comunicación entre la PC y el Autómata-Robot se us6 el siguiente control

de flujo, ya que el robot no puede realizar la transmisión y recepción simultáneamente debido a

características internas del microcontrolador (Ver Apéndice B):

35

Page 44: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Ejemplo: Si se quiere transmitir 2 bytes.

36

Page 45: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

A pesar de que el Robot es autónomo se necesita. de un programa que administre la

transmisión y recepción de datos para su monitoreo, exposición de datos y control del Autómata-

Robot en donde quiera que se encuentre. Para esto se eligió el lenguaje C++ para DOS como

lenguajes de control de esta interfaz.

Como el autómata mmda datos a la PC y viceversa, debe existir un protocolo de

comunicación entre éstos, ya que la PC o el autómata deben diferenciar los datos que se están

recibiendo y codificar los que se están mandando. Para esto se diseño el siguiente formato para el

protocolo de comunicación:

Encabezado:

Datos:

Encabezado I Datos 1 Es el que identifica que tipo de dato se va a transmitir o recibir y tiene como longitud 1 byte (un caracter). Este pude ser: cadena (varios bytes),un carácter (un byte) o un número compuesto(dos o mas bytes) .

Tipos de Emabezado y Datos

Como para cada tipo de encabezado hay diferentes datos, para diferenciarlos se tiene la

siguiente tabla:

37

Page 46: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Teniendo el protocolo y la forma de comunicar entre la PC y el Autómata-Robot se realizó

una interfaz para interactuar con el autómata, a continuación se presenta la pantalla que aparece:

En esta pantalla se pueden apreciar 5 ventanas:

1 -Mapa

2 - Atributos del mapa

3 - Estado del sistema

4 - Recepción

5 - Herramientas

Estas ventanas realizan las siguientes hciones:

1 - Mapa: Despliega los datos enviados por el autómata, éstos datos son: distancia y ángulo;

éstos datos se grafican con respecto al centro de la ventana y con la posición que

tenga el robot.

35

Page 47: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

2 - Atributos del mapa: Presenta la escala (ZOOM) a la que se está observando los datos

que se despliegan, además de indicar la posición del centro del mapa que se

puede alterar con los botones con flechas.

3 - Estado del sistema: Esta ventana presenta 3 cosas:

a) Comando - Es el comando que está en espera de ser enviado al autómata y

que fue seleccionado de la ventana de Herramientas.

b) Estado - Es el estado en que se encuentra el robot, i. e., mensajes que dicen

que función está realizando, como por ejemplo: “EXPLORANDO,

”TRANSMITIENDO”, etc ...

c) Error - Mensaje de error que envía el robot .

d) Mensaje - Cualquier otro mensaje que envíe el robot.

4 - Recepción: Indica los datos que está enviando el robot, desde su posición y ángulo hasta

los datos de las distancias medidas.

5 - Herramientas: Son las funciones que se pueden escoger para que las realice el robot

a) Reiniciar - El robot espera hasta que se ejecute éste comando y comenzar

su tarea autónoma.

39

Page 48: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

b) Pausa - Detiene toda actividad hasta que se melva a presionas Fausa o

Reiniciar.

c) Moverse - Al presionar este botón se debe seleccionar con el Mouse la

posición (dentro de la ventana Mapa) a donde se quiere que se mueva el

robot y posteriormente presionar el botón Enviar (éste es el mismo botón

pero muestra otro nombre durante la ejecución). El ejemplo para utilizar

esta función se explica mas adelante.

d) Recupera - El robot vuelve a realizar las mediciones en la misma posición

donde se encuentre ademk de que reinicia el estado del monitor y del robot

a cero.

e) Salir - Cierra el programa.

40

Page 49: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Una de los botones de la ventana de Herramientas que se debe explicar con mas detalle es el

de “MOVERSE”, éste botón manda una serie de comandos al autómata para que éste se desplace a

la posición que se haya seleccionado y una vez que se ha alcanzado la posición se continua con la

exploración.

Ejemplo para la selección de un punto a donde se quiere desplazar el autómata:

1 - Al presionar el botón “MOVERSE en este aparece el texto “ENVIAR”, además que

en la ventana de “Estado del sistema” aparece el mensaje “Seleccione (X,Y) en el mapa”.

2 - Ahora con el apuntador del “mouse” seleccione un punto cualquiera dentro del mapa a

donde quiera que se mueva el autómata, al hacer click aparecerán las coordenadas X y Y

41

Page 50: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

4 - Al tener la posición deseada se presiona el botón “ENVIAR”, éste botón regresara a su

texto original (“MOVERSE”) y con esto se envía los comandos necesarios para que el autómata se

mueva a la posición deseada.

42

Page 51: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Ejemplo para la exploración de una superficie semicircular cóncava que se encuentra enfkente del robot.

43

Page 52: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Ejemplo de una exploración de una superficie plana aplicando una algoritmo para visualizar la geometría de la superficie.

44

Page 53: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Programasfinales

Programa del Autómata-Robot

El primer programa que se describirá es el del Autómata-Robot que toma parte de las

rutinas hechas para el Proyecto I e incorpora nuevos, como son el de la transmisión y la recepción

de datos, así como la selección y ejecución de comandos enviados desde la PC, para entender la

lógica del programa se tiene el siguiente diagrama de flujo:

Verifica el comando enviodo

Moviniento 4utbnono

D Moverse o ...

I

Diagnuna de Flujo de Autómata-Robot

A partir del diagrama de flujo se puede crear el &digo para el autómata, en éste código se

incluyen rutinas de 16 bits y ambos se encuentran en el Apéndice A (Programas Finales).

45

Page 54: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 55: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Apéndice A

Programas

F u n c i h de incremento 16 bi tf .............................................................. A-ii

Funcion de decremento de 16 bits ......................................................... A-ii

Puncicin para multiplicar dos n6meros de 16 bits.. ............................. A-iii

FuncMn para sumar dos números de 16 bits ....................................... A-iii

Rutina para restar dos números de 16 bits .......................................... A-iv

Rutina para comparar dos números de 16 hits ................................... A-iv

Primer programa ................................................................................... A-v

Programa del Autbmata-Robot ............................................................ A-vi

Programa del monitor de la P(1 ............................................................ A-xv

A i

Page 56: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Este apéndice contiene las rutinas que realizan operaciones de 16 bits, éstas fueron necesarias de implantar ya que el microprocesador solo tiene registros de 8 bits y muchas de las variable que se usan para el control de Autjmata-Robot deben ser mayores de 8 bits.

Función de incremento 16 bits

INCi6: CLR OOH ;INCREMENTA LA VARIABLE DE 16 BITS EN YFFOH Y 3FFlH

MOV B.#D

MOVX A, @DFTR ADD A. #1 JC MOVX I U P l K , H

INCHIGH

LJMP PINS16 I?!CUIGU:MOT.' EPTP.. #OFF15

MOVX A, @DPTR CLR DOH

i.iG""i @LPTR, i. ADD A, If1

1 , ^ T , n n m n In..r_nsl L.,"" u r l , , , " , L L " i ,

FiNS16: RET

E~ttix pare ir,crerr.entar en 1 le variaS!e de 16 Sits

Función de decremento de 16 bits

Esta rutina incrcmmta a uno la variablc dc 16 bits, NO altera ninguna bandcra.

;DECREMENTA LA VARIABLE DE 16 BITS EN 3fFOH Y 9FFlH

DEC16: MOV DPTR,#3FFOH ;VERIFICA SI ES CERO Y . D Y r h l n C D T 7 r? c , ..II..LI y _ _ 1_1

MOVX A, FDPTR C J N E A, #DDH,SIGUE ~ ~ ~ " . D P T ~ , ~ ~ F ~ i ~ MOV7 a, PDPTR CJNE A, #OGH, SIGUE

LJMP FiNRl6 SETB C16

C T r l r O . cLp\ C

;PRENDE BIT

.,&YVL..

CLR AC MOV B,#O MOV DPTR, I1YFFOH M0Q-A A, @DP'IR

M O W FEPT?.. P. SUBB A, #1

JC LJMP FINR16

DECHIGH

DECH1GH:MOV DPTR, U9FFIH .,-.-, (.I""* A, GÜFTR CLR C CLR AC

MOVX @DPTR, A SUBB A, X1

r T * r D l i . DOT i-l..I". . ~ - ~

Rutilia pata iui;lenieida elk 1 la w~iabtljia da Iú bits

Esta rutina decrementa en uno la variable de 16 bits, éSta rutina pone a uno el bit C16 s6:o si la variable ha llegado a cero,

A

Page 57: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Función i para multiplicar dos números de 16 bits ;MULTIPLICA DOS VARIABLES DE 1 6 B I T S A = 9FFOH Y 9FF1H ; B = 9FF2H Y 9FF3H , RESULTADO EN 9FFOH Y 9FFOH

SETB RS1

MOV DPTR, 89FFOH SETB RSO

K2LTlS: "SH "S"'

. I W V ~ A, @DPiR MOB RO, A 1°C D P T P MWJX A. @OPT!? MOV Rl, A INC DPTR :.:c'"y 4, PrjPTR MOV R2.A

MOVX A, @DPTR INC DPTR

MOV R J , A LCPLL ML'LTB MOV A. R4 MOV R6.A MOV A.R5 i.lG< R7.A MOV A , R 2 MOV i ( ? : A LCALL MULTE MOV DPTR, YBFFOH MOV A , R 5

INC DPTR MOV A, 800 MOVX @DPTR,A I I N L UPlK MOT1 F.. a 5 MOVX @DPTR, A

MOV A,R7 INC DPTR

LCALL SUMA16 POP PSW RET

14n.r" o n n m n n 1 ' Y " & C Y T I I I , "

,.".", O.." I ,.,U"A C L J r l n , n

KLLTB: U""' ?.,?.I ; rn~ l t ip l i ca valores de 8 b i t s para MULT16

MOV B,R3 MUL AB MOV R 5 , A Mü' R4, a

MGV a , ~3 MOV A,RO

MUL AB ADD A.R4 ? G " J R?,A MOV R3, B RET

!?u& para multiplicar dm variables de 16 bits Esta rutina multiplica dos variables de 16 bits cada una y el resultado es de 3 bytes; no toma en cuenta los signos de las variables,

Función para sumar dos números de 16 bib

I ;SUMA DOS VARIABLES DE 16 B I T S A = 9FFOH Y 9 F F l H

CLFl MOV .,-.", L.," Y h

MOV PlOV MOVX ADD j .l. Mnii

MOVX MOV MOVX MOY MOV MOlnr ADDC MOV MOVX

AC DPTR, 8 9 F F l H ;SUMA 9 F F O , 9 F F 1 CON 9 F F 2 , 9 F F 3 A, PDPTR B.A DPTR, U9FF3H A, @DPTR A, B DPT?., $ ? F F l H @DPTR,A

A, @DPTR DPTR, X9FFOH

a,ñ DPTR, X9FFZH

A, B A; @DPTP

DPTR, I19FFOH I? DPTR. A

I RET

Rutina para s u m a r dos variables de 16 bits

Esta rutina suma dos variables de 16 bits cada una, NO detecta sobreflujo.

-4 ... 111

Page 58: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Rutina para restar dos números de 16 bits

;RESTA DOS VARIABLES DE 1 6 B I T S A = 9FFOH Y 9 F F l H ; B = 9 € F 2 H Y 9FF3H , RESULTADO EN 9FFOH Y 9 F F l H

RESTAI6:CLR 17

MOV D P T R , # 9 F F 3 H ; R E S T A 9 f F O , 9 F F 1 MENOS 9F€?, 9 F F 3 MOVX H. @DPTR ;RESULTDO EN 9 F F O . P F F l MOV B , A MOV UPI'K, X Y L t IH MOVX A, @DPTR SL'BB F. , B MOV DPTR, U9FFlH MOVX IPDPTR, A MOV DPTR, #9FFZH i"iiiv;i A, PDpTñ MOV R,A MOV DPTR, %9F€OH MOVX A, @DPTR SUBE A,B ?$O'.' E X ? , , # ? F F C H MOVX @ D P T R , A

- 7 7 . " i u n nc

I RET

Rutina para restar dos variables de 16 bits

Esta rutina restar dos variables de 16 bits cada una, NO detecta acarreo.

Rutina para comparar dos nrimeros de 16 bits

;COMPARR DOS VARIABLES DE 1 6 BITS A = 9FFOH Y 9 F F l H ," .- - 9?F?!? Y 9?F3!? ;RESULTADOS: MA ; A>B 1 ; A<B O ; ,+E J

; xyxxyxx 1 CMP16: PUSH PSW

ME O i "

S E T B

::O': S E T B

MOVX MOV

MiiV'Y, INC

MOV

MOVX MOV I N C

MOV ;.;o."A

CLR CLR CLR

T kt¡-

xcv C J N E MOV CJNE

NOEQ?: JC 5 LXP

CLR SETE

S LmP

SETÜ S LlNP

NOEQ1: JC S E T B u n S X P

S E T B

MENOR2 : CLR

MENOR1: CLR

FCMPi6: POP "" X ? I

RS 1 RSO

A, @DPTR D X R , #?F%H

RO,A DPTR A, iaüPTiK R 1 . A DDT?. A, PDPTR m , A

A, ?üEñ DPTR

K 3 . A C MA NE

A. OlAH, NOEQl A, R1 A , OlBH, NOEQL E i H P i 6

." M4 ME ECMP16

MA

FCMP16

MA ML F P M D l 6

" on 1 ,, L ~ "

MENOR2

.,- , - A L

MENOR1

MA

PSW ME

;W EN EL BANCO 3 = 1A

;R3 EN EL BANCO 3 = 1B

. .- - Rutina para Comparar dos variables de 16 bits

Esta ultima rutina pone a uno o borra ciertos bits o banderas (MA y Me) para saber si la primera variables es mayor, menor o igual.

A

Page 59: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Primer Programa

ORG O O O O H

MAIN: CLR RELOJ SETÜ M i i Q

VARIABLES PARA AVANZAR DEREHO S E T B MDER

MOV DPTR, X9FOOH MOV A, ROEOH M ' 3 W ?OPT?.. R

INC DPTR MOV A, X06H ;";c"-x BDPTR, A LCALL MUEVE

PASOS PARA QUE LAS

MOVFR MCITCIRCS

CLR MIZQ S E T B MDER

MOV DPTR, X9FOOH MOV A, #OEOH MOVX @DPTR, A

PAbO5 P A W U I W K JbU

MOV A.XO6H INC DPTR

MOVX @DPTR, A LCALL MUEVE

l r n n T n n T r C n n n n r r n n n n "n,\LnuYIu rn._ ( 1 I 1 - l i fi

MOVFR MOTORFS

S E T 9 M I Z Q S E T B MDER

VARTART.F.S PARA AVAN7AR nF.RCHO MOV DPTR, X9FOOH MOV A, XOEOH MOVX @DPTR, A

MOV A, Xfl6H INC DPTR

MOVX @DPTR,A T.CAT.1. MIJFVF

PASOS PARA ClIF T A?

MOVER MOTORES

S E T B MIZQ r 1 . R MnFR

VARIABLES PARA GIRAR A MOV DPTR, X9FOOH MOV A, XOBRH MGVX D???.. A

INC DPTR MOV A.XO1H Mü"X ?ÜPTR,A LCALL MUEVE

PASOS P A W G I R A R

MO1IF.R MOT0RF.S

S E T B MIZQ S E T B MDER

. , " n T n " T P . C n n n n n 3 , n r r r n n "n,,Lni,A,ud cfi>- I ? " N " " I \

MOV DFTR, X9FOOH MOV A, XOEOH MOVX @Ut ' lK ,A

PASOS PARA QUE LAS

MOV A,XO6H INC DPTR

MOVX BDPTR, A LCALL MUEVE

MOVER MOTORES

CLR MIZQ

VARIABLES PARA AVANZAR HACIA CLR MDER

MOV DPTR, Y9FOOH MOV A, XOEOH MOT' @DPTR, A

INC DPTR MOV A. #06H MOVX BDPTR, A LCALL MUEVE

PASOS PARA QUE LAS

MOVER MOTORES RET

; I N I C I A L I Z A ;LOS :VALORES DE LAS

, _ . r a D C n EL ?!TLyE!?." DE

;LLANTAS DEN 4 VUELTAS

;Y LLAMA LA RUTINA PARA

; L o s ;VALORES DE LAS

; L A DERECHA

;CARGA EL NÍJMERO DE

;GRADOS

; Y LLAMA LA RUTINA PARA

;LOS ;VALORES DE LAS

;CARGA EL NUMERO DE

;LLANTAS DEN 4 VUELTAS

;Y T LAMA 1.A RIJTTNA PARA

;LOS ;VAl.CRFS nF 1.4s

;LA IZQUIERDA

;c?.?.G?. CL ?!%E?.O DE

; 9O GRADOS

;Y LLAMA LA RUTINA PARA

; L o s ;VALORES DE LAS

; DEREHO

; C A K W LL NUMLKV UL

;LLANTAS DEN 4 VUELTAS

:Y LLAMA LA RUTINA PARA

; L o s ;VALORES DE LAS

: ATRAS

;CARGA EL NUMERO DE

;LLANTAS ÜEN 4 W E L T A S

: Y LLAMA LA RUTINA PARA

D E C l 6 : MOV MOVX C J N E MOV MOVX C J N E S E T 9 T,.TMP

SIGUE: CLR CLR MOV MOV MOVX SUBB MOVX

LJMP

MOVX CLR CLR SIIRA MOVX

_1 7,-

DECH1GH:MOV

FINR16 : RET

MIZQ EQU RELOJ EQU

MDER EQU

DE FRENTE

C16 EQU

MOVX A, @DPTR MOV DPTR, X9FFOH MOVX @DPTR,A

MOVX A. BDPTR <.I"" Y r l K , t ? C " l n

MOV DPTR, R 9 F F l H MOVX @ D P T R , A CLR C16

CPL RELOJ LCALL RETARDO2 CPL RELOJ LCALL X T A R D O i LCALL DEC16 ,JNR C16: C T r l OM RET

..-,, _",".. /J..". ..

CICLOM: LC?LL P.E?P.?.DO?

CICLOR1: MOV Ri, XO3H C I C L O R 1 1 : D J N Z R 2 , C I C L O R l l

n r m n n m i i , ."",7., n l x n ? l l , < L L n , \ L , w L . , > u " l \ L , V " d L 2

DJNZ R1, C I C L O R l KL I

RETARD02:MOV R1, #16H CICLOR2: MOV R2, #16H CICLOR12:DJNZ RZ.CICLOR12

D.TN7 ~1 rTrT.oR? RET

;DFCRFMFNTA 1.A VARTAR1.F n F 1 6 RTTS FN 9FFOH Y qFF1H D P T R , X 9 F F O H ; V E R I F I C A S I E S CERO Y A, @DPTR A, X O O H , SIGUE n P T R , P 9 F F l H A, BDPTR A, #flOH,SIGUE C 1 6 FTNRl fi C AC 8, #O nPTR, It9FFnH A, iaDPTR A, X 1 BDPTR,A "ECUIC-U F I N R 1 6

A, @DPTR DPTR, b 9 F F l H

;PRENDE B I T

AC A: n 1 BDPTR, A

P l . 0 ;bit fl r e l o i P 1 . l ;bit 1 sentido motor izquierdo P 1 . 2 ;bit 2 sentido motor derecho

;bl B I T > M l d U Y MULK = 1 AVANLA

2 6 H . 0 ; B I T DE CERO PARA 1 6 B I T S ; 1 S I VARIABLE ES CERO

; D I R 5 F O 0 PARTE BAJA DEL CONTADOR DE PASOS ; D I R 9 F 0 1 PARTE ALTA DEL CONTADOR DE PASOS

END

MUEVE: :RUTINA PARA MOVER EL MOTOR DE LA TRACCION

MOV DPTR, t9FOOH

A

Page 60: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Programas Finales

Programa del Autómata-Robot

OR@ OOOOB LJMF MAIN

ORG 0003H LJMP INTAD ;INTERRUPCION O0

; p3OG"a.A PRi;<C.pz

MAIN: MOV SCON.XO101001OB ; I N I C I A L I Z A LA TRANSMISION SERIAL

RECARGA PARA 300 BAUDS MOV T H 1 , XOF3H ; VALOR DE AUTO-

, "' .- . TMOD, f2QH . unno T)E , r .u~~-

SETB TR1 RECARGA

, . j _ L

MOV I E , #RSH iNiERRiiPcIONEj ;HABILITA LAS

MOV IP, XOOH

HASTA R E C I A I R R E I N I C I A LCALL ESPCOM ; V E R I F COMANDO NO SALE

CLR CAD L C A L i INIDATOS LCALL INICIAMD LCALL UtIMOV

RET

; I N I C I A L I Z A LOS VALORED DE X,Y,ANGULO y S I G N O DE X, Y INIDATOS:

MOV nPTR, it9FO7H MOV A, XOOH MOW @DPTR,A

E"":':: IE?TR, A INC DPTR

I N C DFTR MOVX @DPTR,A

W V X @DPPR,A INC DPTR

MOVX laDPTR, A I N C DPT?

MOVX @UPTR,A INC DPTR

CLR SX RET

C T n '." Ill

;~&LU-& f i5 D I $ , i m - L i u PARA ANI;ULO$, MENORES QUE iii

. C T R T T a ~ n ~ == 1 5rjM-n. ; S I BIT S U M == O RESTA

GRADOS DADO EN ACC , - - - - -. - .. .

ACT9OG:

- _l_. PUSH ACC l,C&L,L COS-,i.iO ; V X O R i G L T :io2 :MOV B. dOFFH ; D I V AB

MOV DPTR, #9FFlH ;MULT EL ANGULO POR

MOVX @DPTR,A MOV DPTR, X9F08H MOVX A, @DPTR XÜF DPT2, C9FFiH MOVX @DPTR,A

M O X A, ODPTR MOV DPTR, #9FF3H MOVX @DPTR, A

MOV A, X0 MOVX @D?TR,A LCALL MULT16

L?. "IST?.?!CI?.

Mnv DPTR; uqFnsw

m n m n l l V Y Y r l n , # : K O : :

SUMAR A X Y RERLIZA LA OP. MnV nPTR,49FFOH ;CARGA FT VAl.nR A

MOVX MOV ..-I," 1 I V " '. MOV MOVX MOV M U V X MOV ??"'.X MOV MOVX MOV %p".X MOV MOKL JNB LCALL

RESX: LChLL RESX1:

A X

T _In u-. IL

MOV

MOVX MCV MOVX MOV MOVX :<e< MOVX

POP

LC?TI. ; MOV ; DIV

ANGULO

i"lU"

LA DISTANCIA MOVX MOV MOVX MOV * A n > / " '" " '. MOV MCVX MOV MOVX MCiV

MOV MOVX LCALL

A, @DPTR DPTR, #9FF2H CDPTK,A

A, @DPTR DPTR, #9FFlH

VUPl'K, X DPTR, X9FF3H

DPTR, X9F04H

DPTR, #9FFOH @DPTR, A

A, BDPTR DPTR, #9F05H

DPTR. l9FFlH @DFTR,A SUMAX, RESX S W P 4ZSX1 RESTAP

..,.I ".. n nnovn

DPTR, X9FFOH ;DEVUELVE EL RESULTADO

A, @DPTR QPTR.' aeFndu @DPTR,A DPTR, U9FFlH A, ODPTR "" , # " - A r , , Vrln, *,I".,"

@ DPTR, A

ACC

I-.." ccwn

AB B, (IOFFH

"" " U F l K , X 3 r r L" ;;"rcLT EL ,?&GU.i;iO FOR

L D P T R , A DFTR, X9FO8H A, @DPTR DPTR, #9FF2H

A, @DFTR DFTR, 89F09H

DPTR, X9FF3H P D P i R , A DPTR, 89FFnH A, # O @DPTR,A MULT16

CY' ''l,.-. R n n l l n n

;CALCULA EL SENO DEL

bUMAK X Y , Y KLKLlLA LX UP. MOV DPTR, #9FFOH ;CARGA EL VALOR A

MOV DPTR, bOFF2H MOVX A, @DPTR

MOVX @DPTR,A MOV DPTR, X9FF1H MOVX A, @DPTR ~ " ~ ~ " . -_I" I^ urin,fyrrJn MOVX PDPTR.A

MOVX A, @DPTR MOV DPTR, #9F06H

MOV DPTR, X9FFOH ?1O'N C^DDTP,,?.

MOVX A, PDPTR MOV DPTR, #9F07H

MOV DPTR, X9FFlH HO-vX iaDPiR, A JNB SUMAY, RESY r c n u sl.w.w LJMP R E S Y l

RESY: LCALL RESTAP RESY1: MOV D?TR,#9FFOH ;DEVUELVE EL RESULTADO A Y

MOVX A,@DPTR

MOVX @DPTR, A MOV DPTR, #9F06H

MOV DPTR, #YFFlH MOVX A,(anPTR

6

Page 61: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

MClV DFTR, ItQF07H MOVX @DPTR, A RET

ANGULO Y DISTANCIA ;ACTUALIZA LA POSICION YA S E T I E N E E L NUEVO

;RECORRIDA, SOLO S E CALCULA LA POSICION ACTPOS.

;DEBE CARGAR Y SUMAR EL NUEVO ANGULO ;DECIDE CUANTO AVANZAR

MOV DPTR, #9FO2H MOVX A, @DPTR MOV DPTR, 19FFOH MOW RnPTR,A

MOV DPTR, # 9 F 0 3 H MOVX A, @DPTR MOV DFTR, UBFFlH MOW PnPTR, 4 I N C DFTR MOV A, #O0 MOVX BDPTR, A

MOV A, X58H ; 9 1 GRADOS INC DPTR

MOVX @DPTR,A

,JNR MF,MA90 LCALL CMP16

:MFNOR QIIF 91 GRADOS

SETB SUMAX S E T 6 S W Y T.CAl.1, A C T 9 0 G

LJMP FINACPOS

O<=RNGULOc=90

MA90: MOV DPTR, X9FFZH MOV A, #O0 MOW RI)PTR,A

INC DPTR MOV A, #0B5H MOW @DPTR,A ;181 GRADOS T,CAT,T, CMPl F JNB ME,MA18O ;MENOR QUE 181 GRADOS

MOV DFTR, '49F03H MOW A, RnPTR

MOV 6 , A MOV A , # 1 0 0 CLR C CT,R 9 C

SUBB A , B CLR SUMAX SETB SWAY T.CA1.T. A C T 9 0 G

LJMP FINACPOS

91<=ANGULO<=180

MA180: MOV DPTR, X9FFZH MOV A, #O1 MOVX BnPTR, A INC DPTR MOV A.XOFH MOVX BDPTR,A ;271 GRADOS l.CAT.1. CMFl 6 JNB ME,MA2iO ;MENOR QUE 2 7 1 GRADOS

MOV DPTR, Y9F02H MOW A, RnPTR

MOV DPTR, #9FFOH MOVX @D?TR,A MOV DPTR, # 9 F 0 3 H MOW A,RI)FTR

MOV DPTR, X 9 F F l H MOVX @DPTR,A

MOV A,I tn

I N C DPTR

MOVX @DFTR, A MOV A, bOB4H MOVX @DPTR, A 1.CAT.T. R f S T A 1 h MOV DPTR, Y9FFIH MOVX A, @DPTR CLR SUMAX ri R SIMAY

181<=ANGULO<=270

; 160

LCALL ACT90G LJMP FINACFOS

MA270: MOV DPTR, X9FF2H MOV A , f l O l

MOVX @DPTR, A INC DPTR MOV A , % 6 8 H MOW @DPTR,A ;.3hO GRADOS

LCALL CMFlB JNB ME,FINACPOS ;MENOR QUE 360 GRADOS

271<-ANGULO<360

MOVX MOV

MOV MOVX MOT1 MOVX MOV MOVX MOV MOV MOVX MOV MOW LCALL

MOVX MOV

!;FTR

CLR LCALL

FINACPOS: RET

nPTR; YQFO?H A, @DPTR DPTR, #9FF2H BDPTR, h nFTR, i iQF07H A, @DPTR DFTR, 119FF3H BDPTR, A DFTR, t9FFOH A , X01

A, # 6 @ H PDPTR,A

PDFTR: A

RESTA16 DFTR, #9FFIH A, @DPTR SilMAX

ACT90G SWAY

: 360

:SE N E V E A LA POSICION INDICADA MOVERSEA:

LCALL INCHAR MOV DPTR, #9FFAH MOVX RDFTR, A

INC DPTR LCALL OUTCHAR

MOW QDPTR, 4 LCALL INCHAR

INC DPTR LCALL OUTCHAR LCALL INCHAR MOVX PnFTR, A

LCALL OUTCHAR INC DPTR

LCALL INCHAR MOW IanPTR, A LCALL OUTCHAR

MOV DPTR, #9FFAH MOW A,@DPTR

MOV DPTR, b9FOOH

MOVX @DPTR,A MOV DFTR, 1IQFFRH MOVX A, @DPTR MOV DPTR, 119F01H MOVX @DPTR,A S f T R MTXQ CLR MDER LCALL MUEVE

G I R A R

MClV DFTR; I Q F F T H MOVX A, @DPTR MOV DPTR, X9FOOH

AVANZAR MOW PnPTR,A

MOV DPTR, X9FFDH MOVX A, @D?TR MOV DPTR, X9FOlH MOW RDPTR, A

SETB MIZQ SETB MDER LCALL MUEVE R F T

ESPCOM: ; E S P E R A I N I C I O

Mnv A , Y O ~

LCALL TXSTATUS C 2 2 : ,WB R I . C P 2

LCALL INCHAR T, lNf . A, 11 ' * ' , r 7 7 MOV A , # ' * ' LCALL OUTCHAR LCALL INCHAR

r O M 1 P : r , M F A:ln:FRRTNT MOV A, Y10 LCALL TXSTATUS MOV A, #O0

LJMP FINCOMZ TCAT T. T Y S T A T I I S

E R R I N I : MOV A , # O l

T..lMF F,SPCOM LCALL TXERR

FINCOMP : RET

VERIFCOM:

; LEE VALORES PARA

; LEE VALORES PARA

;HARTTTTA RFCFFrTOEl

A

Page 62: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Mnv A,#o=, ;UARTT.TTA RFCFPCTON LCALL TXSTATUS MOV R 1 , XOFFH

Ci: MOV R2,#OFFH c11: ,TR R T ~ COMA

DJNZ R2,Cll

LJMP FINCOM DJNZ R 1 , C l

COMA: LCALL INCHAR CJNE A, # '+ ' , FINCOM MOV A,#'"' LCALL OUTCHAR LCALL INCHAR

COM1: CJNE MOV A , # 1 0

LCALL TXSTATUS MOV A,Uflf l LCALL TXSTATUS

A, #O,COM2

MOV SP.XO7 REGRESA A LA DIR OOOOH

;REINICIA LA PILA Y

MOV PUSH

RET PUSH

CnM7 : C,TNF MOV

MOV LCALL

LCALL LJMP

T.CAT.1.

COM3: CJNE MOV

MOV

LCALL

LCALL

LCALL

INDICADA

COM4: CJNE LJMP

Mnlr LCALL MOV

LCALL LCALL

LCALL

COMERR: MOV LJMP

FINCOM: MOV RECEPCION

T CAT,T

LCALL RFT

A, YO

ACC ACC

A, $1, r o w A, X10

A, #OB

VERPAUSA FINCOM

TXSTATUS

TXSTATI IS

A, # i n

A, # O 4

MOVERSEA ;SE MUEVE A LA POSICION

A, #2, COM4

TXSTATUS

TXSTATUS

FINCOM A, 63,CGMERR

TXSTATUS A, $1 o

A, #O2 TXSTATUS

LEEDIST :REINTENTA LEER DISTANCIAS REGRESA

A, #O1

A, #O6

FINCOM

TXFRR

;DESHABILITA

TXSTATUS

VERPAUSA: COMB JNB RI . COMB

;ESPERA A SER REINICIADO O QUE SE QUITE LA PAUSA

LCALL INCHAR CJNE A, P ' * ' , FINPAUSA MOV A,#'"' LCALL OUTCHAR LCALL INCHAR

COMlP: CJNE A, #O,COMZP

LCALL TXSTATUS MOV A,#10

MOV A,#OO LCALL TXSTATUS

MOV S P , # 0 7 ;REINICIA LA PILA Y

MOV A. #O PUSH ACC PUSH ACC RET

COM2P: CJNE A, #1,COM3P

RFGRFSA A T.A nTF flflnflH

MOV A,P10 LCALL TXSTATUS

MOV A , t f l q LCALL TXSTATUS

LJMP FINCOM COM3P: CJNE A, t2,COMlP

MOV A ; Y l n

MOV A, # O 4 LCALL TXSTATUS

l.CAT,T. MOVFASFA LJMP FINCOM

COMIP: CJNE A, I3,COMERRP MOV A,#lO

T,I-AI,I. TXSTATI IS MOV A.tO2 LCALL TXSTATUS

LCALL TXSTATUS

LCALL LEEDIST ;REINTENTA LEER DISTANCIAS 1.CAT.T. RFGRFSA

C0MERRP:MOV A, (01

FINPAUSA:MOV A, X06 RFCFPCTON

L M P FTNCOM

LCALL TXERR

LCALL TXSTATUS RET

; DESHABILITA

GIRAR ; ;RUTINA QUE DECIDE HCIA QUE ANGULO TENE QUE

;;PARA AVANZAR ;DETERMINA QUE MOVIMIENTO TIENE QUE HACERSE

DETMOV: MOV R3,#00H

ROBOT nM4: T C A l T . ATTDOS ; A C T I I A l T ~ A 1.A POSTCTON nFT.

LCALL TXPOS ;TWSMITE LA POSICION

LCALL VERIFCOM ;VERIFICA SI HAY COMRNDC

T,TAT.T. RFGRFSP. LCALL LEEDIST ;LEE DISTANCIA

LCALL PROM CL?E R5, #SO, DM1 ; SI CABE??? S,MP DM?

DM1: JC DM3 DMZ: LCALL DETMM ;;; ;

MOV R3, #OOH T , M P M 4

DM3: CJNE R3,XOB.DMS

VER: ;LCALL VERIFCOM ;VERIFICA SI SE HA RECIBIDO COMANDO

MOV R3, #OOH LJMP DM4 ;SJMP VER

HASTA RFCTRTR ;NO SE PUEDE MOVER mi

;NUEVO CAOMNDO ;NO LLAMA NI A MENOR Y NI DM5: INC R3

A MAYOR SETB MIZQ :GIRA A LA DERECHA

MOV DPTR, t5FOOH CLR MDER

PASOS A MOVERSE (45 GRADOS1 MnV A, YOCOH MOVX @DPTR,A INC DPTR MOV A,#OOH M O W PDPTR, A

MOV MOV DPTR, R9FOBH

A, #O0

M U G @DPTR, A

MOVX @DPTR, A I NC DPTR

LCALL MUEVE

DISTACIA MOVIDA

MOV DPTR, #9FFOH ANGULO DE LA POSICION

MOV A, # O 0 MOVX ODPTR,A INC DPTR MOV A, i t?nU

MOVX @DPTR,A LCALL SUMAG

LTMP DM4 STOPMOV: RET

;CARGAR EL No DE

; CARGA O A LA

;SUMA 45 GRADOS AL

EN 5F00 Y 5F01 CONVAP: MOV B, 82 de 2 bytes se indexa 2

MI11 AR

MOV Ri, A MOVC A, @AtDPTR MGV R0,A MOV A ? R l

MOVC A. BAtDPTR INC A

MOV R1,A

:TONVTFRTF FI. V A N R DF ACT A PASOS 1 . 0 GIIARnA

; Corno la t a b l a es

; "s.rsq

; SF. ciirqn e1 numero de pasos obtenidos de

MOV DPTR.19FOOH ; l a t a b l a MOV A.Ri

signifiravivo AST FSTA RTFN RO Y R 1 ; Menos

A 8

Page 63: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

M O W ROPTR, A INC DPTR MOV A,RO MOVX @DPTR, A R F T

PROM:

; Mas signlficativo CPROM:

;CONVIERTE PASOS DE 9FOO Y 9FO1 A DISTANCIA NADA :

RET P22 : PMIN: SCPROM:

CNVPDIS:

;DETERMINA HACIA ADONDE TIENE QUR MOVERSE OFT": MOV OPTR, $9FOOH

MOV MOV MOV

MOVX C,TNF.

SJMP JC

INC INC

D J N Z RET

O P T R , XOF.OOH R5, #OOH 8 , WlOl

A, @ D P T R A, XRf lH,N&nA

P22

R5 PMIN

DPTR 8, C PROM

MOV RO, UOFFH MOV R1, #OFFH LCALL MAYOR T CAT T MFNOR MOV A,RO ADD A,R1 MOV B,#2

CJNE A, 1132H. NOEQ DIV AB

SETB MIZQ SETB MDER

DERECHO

PARA UNA VUELTA MOV DPTR, #9FOOH

MOV A, #OB8H M O W @ n P T R , A INC DPTR MOV A, Y O l H MOVX @DPTR,A

LCALL MUEVE SJMP DETGIRAZ

NOEQ: JC DETMIN DETMAX: MU$ B,A

MOV A,#180 SUBE A,B S F T R MT70 CLR MDER

IZQUIERDA

DETMIN: CLR MIZQ DERECHA

DETGIW\:MOV DPTR, #TABLA PASOS

SJMP DETGIRA

SETB MDER

A PA.SOS LCALL CONVAP

; I G U m AVANZA

;CARGA No DE PASOS

;PONE SENTIDO A LA

:PONESENTIDO A LA

;CONVIERTE 'A' A

;CONVIERTE ACC

;;DEBE SUMAR O RESTAR AL ANGULO

DETGI RA2 : LCALL MUEVE

RET

MAYOR QUE a0 ; nF.VlIFT.VF. l .A POSTCTON OFI , PRTMFR ANGII1.O

MAYOR: MOVX A,@DPTR

S.TMP 1,OWMAX CJNE A, #ROH,NEQMAX

NEQMAX: MOV RO,DPL ;SI FUE MAYOR QUE 80

LOWMAX: INC DPTR ;SI FUE MENOR IGUAL QUE 80 SJMP E'MAYOR

MOV A,IWT. CJNE A, #66H,MAX2 SJMP EWAYOR ;IGUAL

MAX2: ;INC DPTR

FMAYOR: RET .JMP MAYOR

MENOR QUE 6 0 MENOR: MOVX A.@DPTR

:~F,VlIFl.VF 1.A POSTCTON OEl, PRlMRR ANGlI1.O

CJNE A, XBOH,NEQMIN SJMP LOWMIN

NEQMIN: INC DPTR ;SI FUE MAYOR IGUAL QUE 8 0 MOV A,DPL CJNE A, #66H,MIN2 S.WP M F N O R ; 1C.IIPIT.

MIN2: ;INC DPTR

LOWMIN: MOV R1,DPL ;SI RIE MENOR QUE 8 0

FMENOR: RET

JMP MENOR

SJMP MRNOR

X O H ;OBTIENE CUANTOS NUMEROS FUERON MAYORES QUE

;RUTINA DE INTERRUPCION DEL A/D INTAD: PUSH DPL

PUSH DPH Mnv nPTR, m m n m MOVX A, @DPTR MOV DPTR, #9FFZH MOVX @DPTR,A

POP DPL POP DPH

KOV IE, Y85H SETB CAD

RET1

;HACE QUE EL A/D EMPIEZE A CONVERTIR INIAD: MOV DPTR, XOAOOOH CTNTAT): ,TNR P1 . 3 : C T N T A n CINIADZ: JB P1.3,CINIADZ

CINIAD4:DJNZ R7,CINIAD4

CINIAD?.: JNE CAD.CINIAD3 FINAD: RET

MOV R?, #21H ;RETARDO

MOVX laT)PTR, A

; JE CAD. FINAD ;MOV A,#OÜ ; LCALL TXERR

;MOV nPTR, $ 9 F F ? H

;MOV A, #ÜFFH ;MOVX @DPTR,A

;ERROR €N EL ADC

;LEE LAS DISTANCIAS Y LAS GUARDA A PARTIR DE UFOOH LEED1ST:MOV A, YO2

LCALL TXSTATUS MOV R4, X100 ;IO0 pasos inc ~ 1.8

qrarlos

CICD1ST:CLR CAD MOV DPTR, lt9EOOH

PUSH DPL PUSH DPH

LCALL INIAD PARA CONVIERIR CON EL A/D

;LLAMA A LA RUTINA

MOV DPTR,#9FFZH ;LEE VALOR DEL A/D

POP DPH ;GUARDA LO CONVERTIDO MOVX A, @OPTR

EN LA TABLA POP DPL M O W BDPTR,A LCALL DECMD

LCALL RETARDO3 INC DPTR

Ts;M7, R4,CTCnTST

MOV A, #O7 LCALL TXSTATUS ;TRANSMITE 100 DATOS r.rar.r. T x r x on ; RET

;INICIALIZA Y REGRESA MOTOR QUE MIDE n T S T A N C T A S A ANC-0

INICIAMD: CLR P1.4 PARA EL

;INICIA LOS VALORES

DISTANCIAS CLR P1.5 ;MOTOR QUE MIDE

SETB P1.6 SETB Pl.? MOV DPTR, #'?FFOH MOV A , Y 9 H

MOVX ibDPTR, A

MOV A , UOOH MOV DPTR, I9FFIH

MOV R7,XlOl ;#lo1 M O W B n P T R ; A

LCALL RETARDO3 DJN7. R7,CTCI.OMn

C1CLOMD:LCALL INCMD

'4 o

Page 64: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

ANGULO A CERO MOV DPTR,$QFO?H ;PONF VA1,OR DFT.

MOV A,#OO MOVX @DPTR,A RET

; PARTE BAJA

DISTANCIAS :RIITTNA PARA TNCRCMFNTAR TIN PASO FT. MOTOR QlIF MTnF

INCMD: MOV A,#O MOV C , P l . i Mnv Acr. 7 r MOV C,P1.6 MOV ACC.6.C MOV C , P 1 . 5 MOV A V . 5, C MOV C . P l . 4 MOV ACC . 4 , C CLR c R1.r A CJNE A , # l z a , M m

MOT1: CJNE A, #32,MOT2

MOTZ: MOV C , P 1 . 0

SETB ACC.4

S F T R A C C . ~

MOV C , P 1 . 1 MOV ACC.0.C

MOV C . P l . 2 MOV A r r . 1 , C

MOV ACC . 2 , C MOV C . P l . 3 MOV ACC. 3 , C

MOV P 1 , A RET

;REGRESA A SU POSICION ORIGINAL EL MOTOR ?.NGULO=O REGRESA:MOV R7, #lo1 CTCT.OR: 1,CAT.l TNCMn

LCALL RETARDO3 DJNZ R 7 , C I C L O R RET

DISTANCIAS ;RUTINA PARA DECREMENTAR UN PASO EL MOTOR QUE MIDE

ncrMn: Mnv A , X O

MOV ACC.7,C MOV C . P l . 7

MOV C , P 1 . 6

MOV C. P 1 . 5 MOV ACC. 5 , C MOV C,P1 .4

RRC A CLR c

CJNE A. 1 2 4 , M O T l A

Mnv acr. 6,c

MOV ~ r r . 4 : ~

SFTR Arr.7 MOTlA: CJNE A , % 7 i , M O T Z A

MOTZA: MOV C , P l . O SETB ACC.7

MOV r\cc.n,c MOV C , P 1 . 1 MOV ACC . 1 , C MOV C . P l . 2 MOV ACC.?,C

MOV ACC.3,C MOV C. P 2 . 3

MOV P 1 , A RFT

WdEVE: :RUTINA PARA MOVER E L MOTOR DE LA TRACCION

MOV A, 1 0 4 LCALL TXSTATUS MOV I?PTR, $9FflflH MOVX A, @DPTR MOV DPTR, R9FFOH MOVX BDPTR,A MOV n P T R , 8 9 F n l H MOVX A, @DPTR MOV DPTR, #9FFlH MOVX @ D P T R , A CT,R C1 6

CICLOM: LCALL RETARDO2 CPL RELOJ

CPT. RF1.O.T LCALL RETARD02

T rpi1.l RFTARnOl LCALL DECl6

RET JNB C16,CICLOM

RETARDO1:MOV R1, #03H CICLOR1: MOV R 2 , 1 0 3 H r T r T . n R i 1 : n m 7 R ? , r T r T , n R 1 1

RET D J N Z R1, C I C L O R l

RFTARn0P:MOV U 1 $1 f i H CICLORZ: MOV R2, #16H C I C L O R l 2 : D J N Z R 2 , C I C L O R l Z

DJNZ Rl.CiCLOR2 RFT

RETARD03:MOV R 1 , # 3 5 H ; 2 0 CICLOR3: MOV R 2 . 1 3 5 H ;20 rTrT.nRi.?:n.TN7, R ? , T T C T . O R I ~

DJNZ R1, CICLOR3 RET

;SUMA AL ANGULO E L DATO EN 9FFOH Y 9 F F 1 H Y VALIDA RESTAG: PUSH PSW

rm w 1 S E T B RSO

MOV DPTR, t9FOZH MOVX MOV

A; laDPTR D P T R , # 9 F F i H ; C O P I A E L VALOR DEL

ANGULO PARA SUMARSE MOVX BDPTR, A

DEBE TENER LO QUE S E L E SUMARA ;EN 9FFO Y 9 F F 1

MOV MOVX MOV

LCALL MOW

T.iAT,T, .m8

MOV MOVX MOV M O W MOV MOVX MOV MOW

MOV MO\i Mnvx INC MOV MOVX T CA1,l. LJMP

R E S l : MOV TGIJAT.FS

MOVX MOV

MOVX I NC

M O V INC MOVX MOV

MOVX INC

MOV

MOV MOV MOVX ThlC

MOV MOVX INC MOV

MOV%

MOV INC

ww LCALL

FTNRFS1 .MOV

A, @DPTR DPTR, I9FOJH

DPTR, #9FF3H PnPTR,A

CMPl6

MA, R E S l R F S T A l h :A > R DPTR, # 9 € F O H A, @DPTR DPTR, #9FFZH

DPTR, 1 9 F F l H A, @DPTR DPTR, #9FF3H QDPTR,A

DPTR, #9FFOH A , #O1 PDPTR, A DPTR A, 168H

RESTA1 6 @DPTR,A

F I N R E S l

PnPTa, A

DPTR, #9FFOH

A, BDPTR RO,A

A, (al)PTR DPTR

R1, A DPTR A, @DPTR

DPTR R': A

A, @DPTR R 3 , A

A. R2 DPTR, U9FFOH

@DPTR,A

A, R3 @DPTR, A DPTR

n P T a

A: un $DPTR,A DPTR A, R1 laOPTR,A RESTA16

nPTR. Y9FF'OH

; A < B E

A

Page 65: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

MOV DP'IR, # 9 F 0 2 H MOVX ODPTR,A ;COLOCA EL VALOR

RESULTANTE DEL ANGULO MOV [?PTR, t 9 F F 1 H MOVX A, FDPTR MOV DPTR, Y9F03H MOVX @DPTR,A

RET POP PSW

SUMAG: MOV MOVX A,PnPTR

DPTR, X9FC2H

MOV D P T R r # 9 F F 2 H ; C O P I A E L VALOR DEL ANGULO PARA SUMARSE

MOVX FDPTR,A DEBE TENER LO QUE S E L E SUMARA

;EN 9FFO Y 9FF1

MOVX A. @DPTR MOV DPTR, U9FO3H

MOVX IdnPTR, A MOV DPTR, # 9 F F 3 H

LCALL SUMA16

MOV ~ ; t n l MOV DPTR, #9FF2H

MOVX ODPTR, A PARA COMPARAR

INC DPTR MOV A,rth;RH MOVX ODPTR,A

;CARGA 359

LCALL M P 1 6

J B ME, F I N S G JNB MA,EQSG ; S E ?'GO DE 361

MOV A , d O l MOV DPTR, 119FF2H

PARA RESTARLE MOVX ODPTR, A ;CARGA 3 6 0

I NC DPTR MOL' A:#6RH MOVX @DPTR,A

LCALL RESTA16 LJMP F I N S G

EQSG: MOV ANGULO = A 3 6 0

DPTR, X9F02H

MOV MOVX @nPTR, A

A, #O

I N C DPTR MOVX @DPTR,A L J M P F i N S G 2

;PONE A CERO

FINSG:

FINSGZ :

Y 9 F F l H

MOV DPTR, X9FFCH ;REGRESA EL VALOR DEL ANGULO MOVX A, @DPTR MOV MOVX @DPTR, A MO? MOVX A, @DPTR

DPTR, XYFFlH

MOVX laDPTR, A RET

nPTR, #I)FO?H

MOV nPTR, 1I9FO7H

: TNCRF.MF.NTA 1,A VARTART.F, nF, 1 C. RTTS F,N qFF"H

INC16: CLR MOV

MOVX MOV

ADD J C MOVX LJMP

1NCHIGH:MOV MOVX C1.R ADD MOVX

F I N S 1 6 : RET

O C H 6 , x0

A, l@DPTR n P T R , # 9 F F n H

A, X 1 INCHIGH PnPTR, A

DPTR, # 9 F F 1 H F I N S l G

A, @DPTR

A, #l OOH

@DPTR,A

Y 9 F F l H

DEC16: MOV DPTR,#9FFOH ;VERIFICA S I ES CERO Y MOVX A, ODPTR ; PRENDE B I T

MOV n P T R , X 9 F F l H CJNE A. UOOH, S I G U E

:DECREMENTA LA VARIABLE DE 1 6 B I T S EN 9FFOH

:PRF.NDF R T T m 6

STGIIF: <

MOW C J N E

LJMP SETB

CLR MOV MOV MOW SUBE

'1.R c

a, P ~ P T R A, X O O H , SIGUE C 1 6 F i N R 1 6

AC B, x0

A,BDPTR DPTR, X9FFOH

A. #l MOVX @DPTR,A JC DECHIGH LTMP PTNR1 C.

DECH1GH:MOV DPTR, X 9 F F i H MOVX A, ODPTR

CT.R Al' CLR C

SUBB A , # l MOVX @DPTR, A

F I N R 1 6 : RET

9FFOH Y 9FFlH ;MULTIPLICA DOS VARIABLES DE 1 6 B I T S A =

; B = 9 F F 2 H Y 9FF3H , RESULTADO EN 9FFOH Y 9FFOH MULT16: PUSH PSW

SETB RS1 SETB R S O

MOVX A, @DPTR MOV nPTR, YOFFDH

MOV RC,A

MOVX A;PnPTR INC DPTR

MÜV R 1 , A I N C DPTR MOVX A, ODPTR MOV R?, A

MÜVX A, @DPTR MO? R3,A 1 rAT.7. MlIT.TR

INC DPTR

MOV A , R ~ MOV R6 ,A MOV A , R 5 MOV R l , A MOV A,R2 MOV R3, A

MOV nPTR, #qFFOH LCALL MULTE

MOV A , R 5 MOVX @DPTR,A I N C DPTR

MOVX laDPTR, A INC DPTR MOV A.RG MOVX IdnPTR, A

MOV A.R7 INC DPTR

MOVX @DPTR,A T.CAl.1. STIMAl fi POP PSW RET

Mnv ~ : # n n

MULTE: MOV A , R 1 MOV B , R 3 MUL AB MOV R S , A MOV R4, B MOV A,RO MOV B,R3

MOV R 4 , A ADD A,R4

MOV R 3 , B RFT

; m i l i f i ? I i ? a v a l n r ~ r d e R h i t s para MIIT.Tlh

Mil i . AR

9 F F 1 H ;SUMA DOS VARIABLES DE 1 6 B I T S A = 9FFOH y

;B = 9FF2H Y 9FF3H , RESULTADO EN PFFOH y 9 F F l H SUMA16: CLR C

MOV DPTR. U9FFlH ;SUMA 9FFO,9FF1 CON CLR AC

MOVX A, @DPTR

MOV DPTR, U9FF3H MOV R?A

MOVX A, @DPTR ADD A,B MOV n P T R , X 9 F F l H

9PF2.9FF3

A 11

Page 66: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

MOV DPTR, X9FFOH MOW lanPTR, A

MOW. A, @DPTR MOV B. A

MGVX A, @DPTR ADDC A , B MOV DPTR, B9FFOH MOW RnPTR:A RET

;RESTA DOS VARIABLES DE 1 6 B I T S A = 9FFoH y

= 9FF2H Y 5 F F 3 H , RESULTADO EN 9FFOH y

MOV nPTR, *BFF7H

VFF1 H

5 F F l H RESTA15:CLR C

T1.R AY

MENOS 9 F F 2 . 9 F F 3 MOV GPTR, d 9 F F 3 H ; R E S T A 9 F F O , 5 F F l

MOVX X, @DPTR VFFO, YFF1

; RESULTDO EN

MGV B,A

MOi'X A. @DPTR MOV DPTR, X 9 F F l H

SIJRR A , R MOV D P T R , # 9 F F l H MOVX PDPTR,A MOV DPTR, #9FFZH

MGV B,A MOVX Al PnPTR

MOVX A, @DPTR MGV DPTR, #9FFOH

SURR A , R MOV DPTR, X9FFOH MOVX PDPTR, A RET

Y 9 F F l H ;CGMPAiL4 30s VARIABLES DE 1 6 BITS A = ~ F F O H

;E = 9 F F 2 H Y 5 F F 3 H

; A>B ; RESULTADOS : m ME

1 O : A<R o 1 ; A-B O O

1 ; xxxxxxx 1

SFTR RSl SETB RSO MOV DPTR, It9FFOH Moa A. @DPTR MOV RO,A

MOVX A, @DPTR INC DPTR

MOV R1 ,A

MOVX A, @DPTR INC DPTR

MGV RZ, A

MOVX A, POPTR I N C DPTR

MOV R 3 , A

CLR MA CLR C

CLR ME

CMP16: PUSH PSW

MGV A, RO CJNE A, OIAH, NGEQl ; R2 EN EL BANCO 3 =

1 A MOV A,R1 CJNE A. OlBH,NGEQZ ; R 3 EN EL BANCO 3 =

1B SJXP FCMF16

NOFQ?: .lC MFNOR?

CLR ME SETB MA

MFNOR?: C1.R MA S J M P FCMP16

SETB ME S J M P FCMP16

NOE@l: JC MENOR1 SF.TR MA CLR ME SJMP FCMP16

MENGRl: CLR MA

FCMP16: POP psw SETÜ ME

RET

;PARA LA PGSICIGN X o Y :SUMA AL VALOR EN RFFOH Y 9 F F l H MAS 9FFZH Y ~ F F ~ H TOMANDO FN

:CIJRNTA F.T. STGNO nFT. PRTMFRO CN FT, RTT *SIC.NO#

SUMAP: PUSH PsW ;RESULTADO EN BFFOH Y 9 F F l H

SETB R S 1 S F T R R S n

JB SIGN0,SUMAPl LCALL SUMA16

.%MAP1 : T.CA1.T CMPl 6 SJXP F I N S P

JB ME,SUMAP3

SETÜ SIGNO T,CAl.T, SlJMA1 fi LJMP F I N S P

JNB MA,sUMApz ;MAYOR

s u M A P 2 : C L R S I G N O ; I G U m MOV DPTR, # 9 F F 4 H MOV A. $ 0 MGVL @ C P T R , A

MOVX @DFTR,A INC DPTR

T.,lMP FTNSP SUMAP3: CLR SIGNO ;MENOR

MGV DPTR, #9FFOH ; INTERCAMBIA OPERANDOS MGVX A, @DPTR MOV Rn: E

MGVX INC

MO'J

MOVX 1 NC

MOV

MOVX INC

MGV MGV MOV MOW

MGV INC

MOVX

MOV T NT

MOVX

MOV INC

MOVX LCALL

MOW MGV MOVX MGV MOW MOV MOVX

RET POP

FINSF: MGV

A, @DPTR DPTR

R1 ,A DPTR A, @DPTR RZ,A DPTR

R 3 , A A, PnPTR

A, R2 DPTR, 19FFOH

DPTR PnPTR,A

A, R 3 @DPTR,A

A, RO nPTR

DPTR @DPTR,A

A , R1 @DPTR,A RESTA16

DPTR, 6 9 F F 4 H A, PnPTR DFTR, X9FFOH A, @DPTR DPTR, 6 9 F F 5 H A , PnPTR

A, @DPTR DPTR, #5FFlH

PSW

;PARA LA PGSICION X o Y :RESTA AT. VAT.OR FN 9FFOH Y 9 F F l H MFIUOS 9FFPH Y ~ F F ~ H TOMANDO EN ;CUENTA EL SIGNO DEL PRIMERO EN E L B I T 'SIGNO'

RESTAP: PUSH PSW ;RESULTADO EN 9FF4H Y 9FF5H

S E T B R S 1 SETB RSO

T.rAT.1. SIIMA1 f i JNB SIGNO, RESTAPl

LJMP FINRESP RESTAP1:LCALL CMP16

JB ME, RESTAP3

LCALL RESTA16 %lNR MA, RCSTAP?

LJMP FINRESP ;MAYOR

RESTAPZ : CLR SIGNO MOV DPTR, 1YFF4H

; IGLIAL

MGV A,#O M o b 3 @DPTR,A

M O W @I)PTR.A I N C DPTR

RESTAP3:SETB SIGNO

OPERANDOS

LJMP FINRESP

MOV DPTR, B5FFOH ; INTERCAMBIA ;MENOR

MOVX A, @DPTR MGV RO, A INC DPTR

MGV R1 ,A MOW A, @nPTR

INC DPTR MOVX A, @DPTR MOV R7, A

A 12

Page 67: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

I N C DPTR MOVX A, PDPTR MOV R3,A MGV DFTR, X9FFOH MOV R,R7 MO'JX ODPTR,A INC DPTR MOV A , R 3 MOVX P n P T R , A INC DPTR

MGVX @DPTR,A MOV A,RO

INC DFTR MOV A,R1 MOVX @DFTR,A ;;;; LCALL RESTA1 6

FTNRFSP:MnV nPTR; l tqFF4H MOVX A, @DPTR MOV DPTR, #9FFOH MOVX A, @DPTR MOV nPTR: lt9FFTH MOVX A, PDPTR MOV DPTR, I 9 F F l H MGbX A, PDPTR POP PSW RET

GRAnOS

'10) SENO: MOV DPTR. YTSEN

;CALCULA EL SENO DEL ANGULO DADO EN ACC SOLO 0-90

;DEWELVE RESULTADO EN A ( E L RESULTADO ESTA MULT

MOVr R , P A t n P T R RET

;CALCULA EL COSENO DEL ANGULO DADO EN ACC SOLO O-

;DEVUELVE RESULTADO EN A ( E L RESULTADO ESTA VULT sn mnnos

COSENO: MOV DPTR, XTSEN *lo)

MOV R , R MOV A , # 9 Q CLR C SUBB A , B

REP M n v r a , @ a t n P T R

;TRANSMITE CARACTER OllTrHAR!,T!JR T T , $ ; FSPFRAR A TRANSMTSOR L I S T O

MOV SBUF,A ; TRANSMITIR CLR T I ; LIMPIAR LA BANDERA

RET

OUTSTR: CLR A ;TRANSMITE CADENA, DEBE TERMINAR EN O

M n v r A , a a t n P T R J Z OUTST2

; TOMAR IJN RYTF ; Si ES EL IJLTIMO,

F I N LCALL GUTCHAR ; SI NO, ENVIARLO I N C DPTR SJMP OUTSTR

OUTSTP : RET

INCHAR: JNB R I , S ;T.FF CliRACTCR

CLR R I MOV A,SBUF ; LECTURA RFT

TERMINAR EN O TXCAnFNR!MOV A , i f ' $ '

;TRANSMITE LA CADENA APUNTADA POR DPTR, DEBE

LCALL OUTCHAR LCALL OUTSTR MOV A , # ' $ ' T r A T T. OTTTCHAR RET

FOR DPTR ;TRANSMITE EL NUMERO DE 1 6 B I T S QUE ESTE APUNTADO

TXNUM: M W A , # ' # '

MOVX A, PDPTR LCALL OUTCHAR

1.CAl;I. OllTCHRR

MOVX A. PDPTR I N C DPTR

LCALL OUTCHAR RFT

TXSTATUS: PIJSH ACC ;TRANSMITE EL CODIGO DE STATUS DADO EN ACC

MOV A , Y ' @ '

LCALL OUTCHAR POP ACC LCALL OUTCHAR RET

T'XERR: PUSH ACC ; T W S M I T E CODIGC DE ERROR DADO EN ACC

MOV A , # ' ! 1,CRT. l . DllTrHAR

LCALL OUTCHAR POP ACC

RET

;TRANSMITE PGSICION XL9F04H. 9 F 0 5 H ) , Y ( 9 F 0 6 H , 9FG7H), ;SINGOS DE X.0 Y . l (EN UN BYTE,PRIMEROS DOS B I T S ) ,

ANG(9FOZH, 9FO3H) TXPOSr MOV A, d ' P '

MOV DPTR, # 9 F @ 4 H LCALL OUTCHAR

MOVX A, @DPTR 1.TAT.T. OllTTHRR INC DPTR MOVX A, @DPTR LCALL OUTCHAR

MGVX A, PDPTR INC DPTR

LCALL GUTCHAR

MOVX A < @nPTR I N C DFTR

MOV DPTR, #9F02H LCALL OUTCHAR

MOVX A, PDPTR l.CRT,l. OIJTCHPR

MOW. A, @DPTR I N 2 DFTR

LCALL OUTCHAR

MOV C. SX

MGV C,SY MOV ACC.0 .C

MOV ACT. 1 , r LCALL OUTCHAR RET

Mnv A ; f n n H

iTRANSMTTC DTSTANCTA IqFFnH,. 9 P F l H ) Y ANGULO L9FF2H, 9 F F 3 H ) TXDATO: MGV A , X ' D '

LCALL OUTCHAR MOVX A, OnPTR LCALL GUTCHAR INC DPTR MOVX A, @DPTR LCALL OUTCHAR

MOVX A, PDPTR INC DFTR

LCALL OUTCHAR TNC nPTR MOTA A, e n p m LCALL GUTCHAR RET

TXD100: MOV A,R4 ;TRANSMITE 100 DATOS

PUSH ACC MOV R4, i i l n l

MOV DPTR, K9FFCH MOV A, X0 MOVX PDPTR, A MOV DPTR, 09FFnH MOV A, #O MOVX @DFTR,A

MOVX F n P T R ; n INC DPTR

MOVX @DPTR,A INC DPTR

MOV INC DPTR

MOVX PDPTR, A A: # l R

MGV PUSH DPL

DPTR, #9EOOH

PUSH DPH TXD1: MOVX A, @DPTR TIENE EL DATO DE LA TABLA

MOV MOVX P n P T R , A

DPTR, 49FFDH

MOV DPTR, X9FFOH M O W A, PDPTR MDV n P T R , 0 9 F F F H MOVX PDPTR,A MOV DPTR, #9F€lH MOVX A. @DPTR MDV l lPTR, XQFFFH

;A

A 13

Page 68: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

MOLT PDPTR, A

MOV DPTR, X9FFCH LCALL TXDATO T,CAT,i, RF,TARDO?

LCALL SUMA16 POP POP

DPH DPL

PUSH DPL TNC DPTR

PUSH DPH DJNZ R4, TXDl

POP POP

DFH DPT.

POP ACC MOV R4 ,A

RET

CADFNAOO: nR 'TNTCTA1,TZANW STSTFMA. ' , O

CADENADZ: DE 'EN MOVIMIENTO. ',O CADENAOI: DB 'ESTOY ATRAPADO ! ! ! I , O

CADENAOS: DE 'YA LLEGE! ! I , O CAnFNAO4: DR 'QIIF MAS HAGO! ' , O COMREC: DE 'COMANDO RECIBIDO' ,O

MIZQ EQU P 1 . l ;bit 1 sent ido motor izquierdo RELOJ EQU P1.0 ; b l t O reioj

MDER EQU P 1 . 2 ; b i t 2 sentido motor derecho

AVANZA DE FRENTE ENCEN EQU P 1 . 3

C l h FQN 7FH.0 :RTT DF CFRO PARA 1 h R T T S

CAD EQU 2 6 H . 1 :BANDERA DE RESULTADO L I S T O ; I SI VARIABLE ES CERO

DEL A/D

:ST R T T S M T Z Q Y MnER = 1

;BANDERAS DE RESULTADO DE COMPARACION DE

MA EQU 26H.2 NUMEROS DE 1 6 BITS

;NUMERO DE 1 6 B I T S MAYOR MF FQU 76H.3 :NIIMFRO DF 1 6 RTTS MFNOR

;DIRECCION AOOOH * CONVERTIDOR A/D tDIR .EKION RFFZH = PEGI'TRO DE RETilL.TPLK DEL a / D

;DIR 9FOO PARTE BAJA DEL CONTADOR DE PASOS ; D I R 9 F O 1 PARTE ALTA DEL CONTADOR DE PASOS

SUMA, RESTA, ;DIR 9 F F 0 PARTE BAJA DE VARIABLE DE 1 6 B I T S => PARA

MIIT,T,nTV Y COMP. ; D I R 9 F F 1 PARTE ALTA DE VARIABLE DE i 6 B I T S =>

; D I R 9FF2 ; D I R 9 F F 3 ; D I R 9 F F 4 :nTR 9 6 6 5

;DIR 9FO2 PARTE BAJA DEL ANGULO ; D I R 9 F 0 3 FARTE ALTA DEL ANGULO

; D I R 9 F 0 5 PARTE ALTA DE POSICION X :nTR 9 F 0 4 PARTF RAJA n F P O S T r T O N X

SX EQU 26H.4 ;S IGNO DE POSICION X

:nTR 9Ffl6 PARTF RA,TA n F POSTCTON Y

SY EQU 26H.5 ;S IGNO DE POSICION Y ; D I R 9 F 0 7 PARTE ALTA DE POSICION Y

ROBOT : D T R 9FOR PARTF RA,TA nF, T,A nTSTANCTA QlJF S F MOVTO FT,

; D I R 9 F O 9 PARTE ALTA DE LA DISTANCIA QUE S E MOVIO EL ROBOT

;nTR 9FFAH

; D I R 9 F F C H ; D I R 5 F F B H DATOS DE ANGULO A MOVERSE EN PASOS

;DIR 9FFDH DATOS DE DISTANCIA A MOVERSE EN PASOS

STGNO Fa l l O6H.6 :STGNO PRRA HACFR i,AS OPERACIONES DE SUMA Y RESTA i D I R 9EOOH GUARDA LOS 100 DATOS DE DISTANCIAS

SINAX FQII 97H.0 ; R T T PARA SARFR ,ST S F SUMA O RESTA A LA POSICION X SUMAY EQU 27H.1 ; B I T PARA SABER SI S E SUMA O RESTA A LA POSICION Y ::ST FT, RTT == 1 SE StMA ; ; S I E L B I T == O S E RESTA

GRADOS i l W E L T A DE LA LLANTA CORRESPONDE A 01B8H Y 90

;180 GRADOS CORRESPONDE A 0 3 7 0 H : 4 1 GRanOS CORRWPONDR A OOF.0H

TSEN: DB O, 1,3,5,6,8,10,12,13,15,1?,19,20,22.24,25,27,29,30

3 7 , 3 4 , . 3 5 : 3 7 , 3 9 , 4 0 , 4 7 , 4 3 , 4 5 : 4 6 , 4 8 , 4 9 , 5 1 , 5 7 , 5 4 , 5 s , 57 DB

58,6O,61,62,64,65,66,68,69,?0,71,13,74.75,76.77,78

7 9 , R O , R l , R ' , U 3 , R 4 , R 5 , R h ~ ~ 7 , R R ~ R q ~ R q , 9 ~ , 9 l ~ q ? ~ q O ~ 9 3

DB

DE

DB 9 3 , 9 4 , 9 5 , 9 5 , 9 6 , 9 6 , 9 ? , 9?,97,98,98,98,99,99,99,99,95

DB 9 9 , 9 9 , 9 9 , 1 0 0

; COMANDOS * ' ;O0 - R E I N I C I A ROBOT ; O1 - PAUSE

;O3 - RECUPERACION DE DATOS ;O2 - MOVER A

;O0 - FALLO EN EL ADC ; FRRORFS 1 ! 1

; O 1 - ERROR EN COMANDO :10 - NO HAY COMUNICACION CON EL ROBOT

;ESTADO DEL SISTEMA ' t u

;O0 - REINICIANDO SISTEMA ;ESTADOS DEL ROBOT

: O 1 - TNACTTVO ;O2 - EXPLORANDO ;O3 - OCUPADO ;O4 - MOVIENDOSE : O 5 - FSFCRANnO COMANM ;O6 - DESHABILITA COMANDO

;O8 - EN PAUSA ; O ? - TRANSMITIENDO DATOS

:O9 - CONTTNIIANnO

;IO - COMANDO RECIBIDO ;MENSAJES DEL ROBOT

: RF,SPtIF,STAS nET. ROROT

; POR PC :COMANDO ENVIADO RESPUESTA DEL

00 O0 O 1 01 O2 u4 03 o 2

ROBOT (ESTADO)

m

A 14

Page 69: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

#include <bios.h>

#include <etdio.h> #include <canm.h>

tlnclude <mouae.h> #include <stdlib.h>

*inrlor?e <qTCfirUT b'

#define COM 1 #define T"Z ldefine FALSE O Xdetme N 1 0 0 #define DATA-READY 0x100 #define TIME-OUT OX8000 *defina SETTINGS lOxAO1OxO31OxOO1Ox0O)

static void status!voidl I

void rnarcoiint x1,int yl.int x2,int y2,char 'cad! i

rectanglelxl,yl,xZ,yz];

i ~ ' ( n i l i , y i i 2 , h i - i , y i + : : i , reitanglefxltZ,yl+i7,~2-2,~2-21;

r e c t ~ " g l e ! x i t l , y l + l , x Z - l , y 2 - l i :

setfillstylelSOLID_FILL,BLVEl;

SetcolorILIGHTGPAY!;

linel~ltl,yl+l6,x2-l,~l+lG~; SetcolorfGREENl : ^.itte~tE:l!(r.l'r?!,l-a?rlen!cad"?,yl~~,~=~);

raliiinmize, I

setfillstyle!SOLID_FILL,BLACK1; farli=0;i<=3000;i+=0.1)

x=randm(314j+lG3; y=Lanaornflbl)tlbu: barix.y.x+l,ytl); x=randoml3141+163; y=randomilGl)+160; h a r l x , y , x + l , ~ + ~ l ;

void msjlchar 'cad:

void 'S;

n=strlen!cad)*4; int n;

~=mnllorlim~g~si~~l7OD-n;7ln;?lnin,7Ln)i;

~ a r c a l 3 0 0 - n , 2 1 0 , 3 4 0 t n . 2 6 0 , . . N E N S A J E"1; getimagsl300-n,2i0,340+n,zGO,Sl;

outteXtxyl320-n,210,~ad!; z c t c c l c r [LIGETC-MY!;

getcn( I ; setfillstylelSOLID-FILL,6LACK); bar!300-n.z10,3~0tn,26n); p u t l m a g a l 3 0 0 - n , 2 1 0 , S , X O R P U T ) ; froelsi:

i t r b o t b n l 5 3 6 , 2 0 0 , 5 1 6 , 2 1 0 ; b o t o n 4 ) : butonupl53n,Z50,510,290]; strbotcnl530,250,6i0,290,"Salir"]; I

Yoid bz::s<i:t X2,iT.t y1,ir.t .x2,izt y?] I ~etfill3tylelSOLID~FILL,6LACIo;

int x.y;

A

Page 70: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

void redibuja-auto(void1 I datos 'aux; int px.py: X=260;

f-1; Y _ ? - , , _ 1 "",

px=X+ceilflaux-~x+lcosiaul-~an~ulo~M_PI/l80l'aux-~dist!l*fl; if IPY c= 22 I I px >= 4981

j

g o t o rei f-=.n!;

py='i+ceilliaux-~y-isinlaur-~an~~l~~M_PI/l8@l~aux~~dist)]*f); if lpy <= 38 I I py >= 397)

f-1.01; goto r e ;

!

void transmite_cai(char c ; 1

void verif_rec!int cmdl

int status2; status2 = bioscom(3, 0. Con];

A

whilelstatus2 6 DATA-RMDYI

bioscomiZ, 0, cm) ;

5uitchlcmd) trmsnite C I Z ! C r n d ! . .

status2 = biascoml3, O, COM);

case 0:liberalkL); L=ENLL; redLbu3 a-manual I 1 : break:

1

else ifiy >= 100 66 y <= 1401 / + Boton 2'1

botondownl530,100,61C,1401;

deiayti0ü); strbotonl532,102,610.l4O,boton2);

botonup~530.100.610.140); strb.?tonI53@,100,610,1~0,botonZ);

barlL72.432.497.4411; setflllStylelSOLID_FILL,BLAcKl;

barl272,442,497,450);

SetcOlorILIGHTGRAY;; outtextxy1275.432," PAUSA temporal

pushill:

I - ~-"~~?,esf,197,4?7::;

p " s h ' : ' j ; del ROBOT

strboton1532.152.610.190.baton3); botondowni530,150.610,1901:

delayl100); botonup~530.150,610,1901; s+rh-+.tm,6?" lGn ,".,. 6 , " I s " ~ h, ,+ , , " l$ . ,

~ ~ ' ~ ~ 7 2 , ~ 3 ~ , ~ 9 ~ ' ~ 4 i , ~ setfillstyle(SOLID_FILL,BLACK);

bar(272,442,497,450); barIZ72,462,497,472); s ~ ~ ~ o ~ ~ ~ I L I G H T G R A Y J ; outteXtxy1275,432.'* MOVIMIENTO del ROBOT ! " ) ; p u s h ( ' * ' ) ; pushl2);

1 else if(y >= 200 66 y I= 2401 I+ %ton 4*/

botondown1530.200,610,240): strbotanI532.202.610.240.boton4~:

1 8158 sonido 1 1 :

1

1 if ly>-203 6 6 y (217)

if ,i( ; 5r"Z iL ii ~ L 1 1 , .>,, ,,+ P h X X i x , ' i

botondam(503.203.517.217);

delay(l00); f l e c h a i z q ~ 5 0 4 , 2 0 4 , 5 1 8 . 2 1 8 ) ;

botonupf503.203,517,2171; flechaizq(503,203,517,217); x ; statusi); redlbuja-manualil;

/ M U AREA

Page 71: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

datos a:

while('feofIArch1) Arch=fopenf"a:\\mapaZ.c","rt");

void herr-mapalconst int x,const int y1

int mx,my,b,ban=O: ..*id '3: S~malloc!imagesize!r,y,~ilO0,yt7Olj; gerimage,x,y.xrí~ü,y+iO.j,; marcoIa,y,x+:OO,yt7O,"M A P A"): setrolorlLIGHTGRRY); ~uttext~yIx+15,y+25,"Z~ OUT"1: outtextxylx'l5,yt35."Z00n 1N"I; outtextxyIx+15,yt45," AUTO"); o"ttBXtXyIxt15.yt55," Salir"); rn7,CFtT" T ' ( t C " 0 :

do _

oculta rato"(1: se t f~ l l s ty l r lSOLID_FILL.9LACK) ; barlx,y,xt:OO,yt70l; putimape(x.lr.S.KOR_PUTi:

ir ~ ~ t j ( ; ; free(S!;

goto fin: -

else

I else sonido! 1 ; !

- . n n i h i ! ; . ." . .

sonidof 1 :

else if!b == 21

I wniietban := i,; oc"lta_ratonll; setfillstylefSOLID_FILL,BLACK); barfn,y,xt100,yt7OI; putimapsIx.y.S.XOR~PUTI; freels); redibuja-manuaio; rn l l ra t r - , rat"*,!: fin:;

void leemapalvoid1 i FILE 'Arch;

A

status2 = bloscoml3, O, COM): ifl3tatus2 & DATA-READY)

I Out3 = bioscoml2, O , COMI: "a>;z = ".*~~"

'ban-I: . n Y l ,

I

I WNE=TRUE; *ban=O: I * I

I - if isrmuli h IifiE-cFÚi!

I iatuin %t::

I

vola veriiicacomlint OUT, l int px. py, ban = 1;

datos b: int a, W N E = FALSE;

sditchfautl

!= o 1

Iflban == O 1

if1 out != 'S' ! continue;

else DONE = TRUE:

J

nwnl6R = out << 8; " l i t = r ~ r i v l - a r i r h a n ! ; if Iban == O 1

numl6R t= OUti printf I"%d\n",numl6Rl; DreaX:

if (ban == O!

setfillstyle!SOLID~FILL.BLRCKI; if !out c 10)

else

break;

case '@':out = recivcarfsbani; I + Status * /

break:

.","m 1 1 1 I n ? " i n , . " " ~ ~ ~ , ~ , ~ - ~ , ~ , , , ~ " " , ,

barl272,462,497,P721; 5wlrcnIouEi

1

:outtextny(275,442,"Reiniciando Sistema"): ca3e O

:~uttextxy:?75,94ZI"Inactivo"i; ca5e 1

:outte~ttry1275,442,"Explorando"l: C I S * 2

:outtextxyf275,44Z,"Ocupado"l; case 3

:olltt~~t~yl275,44?,"Moi~iendose"); cas* 4

break:

break:

mear:

break;

break:

Lb*r_c.F'"i, break:

ban-espera=O: break;

xvii

Page 72: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

:outtextxyl275.442,"Transmitiendo Dato5 ..." 1 ; case 7

break;

lO:euttextxyI275,(62,"Ccrmando Recibido"); c e s e

LrraL; I

:outtextxyI275,452,"FALLO en el k l ~ ! ' ~ ) ; case o

Llreax:

:outtextxyl?75,15?."ERR@R en Comando!");

I

case I

break;

i'

outtextxy1580.362,

out = recivcar(&brtn): if Iban == O )

setfillstyleisoLID_FILL.BLACKl: ~ar(580.422.627.44:); outtextxyI580,122,DRi;

lf Iban e= 0 1

ADR = out << 8; but = reclvcar(6ban); ADR += out: ADR I = 10; outtex:xy1580,(32,klR); b.X=XR;

b.x=O;

QlJt = r.ci%.<.riit.*l!:

oreai;

h.y=y?:+i

L.y-o;

b.angula=/'ARt*/ ADh; b.llg=NULL: contadartt: ifi!esta_dataI&bl 66 Dh c 12Cl

void verifica_ratonlint x , int y, int b, int 'ban)

A

whilelban != 1 ) : iiberaihL1; clasegraphl I ; printfl"%d",contador); I

Page 73: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 74: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Apéndice B

Hojas Técnicas y de

Especificaciones

Especificaciones Técnicas del 8051.. ......................

Especificaciones Técnicas del Convertidor Analógico

Digital ADCOSOS.. ............................................

Especificaciones Técnicas del Sensor Infrarrojo

HOAI405 (Honey Weeli) ...................................

Especificaciones Técnicas del MC2833 (Transmisor

de FM). ..........................................................

Especificaciones Técnicas del Controlador MC 3472

del Motor a pasos del Sistema de Tracción.. ............

..

iii

vii

xi

xi¡

xv

B 1

Page 75: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del XR215, Modulador

de FSK.. ........................................................ xviii

Especificaciones Técnicas del LM565, VCU.. .......... xxii

Especificaciones del Circuito Integrado LM555,

Timer. .......................................................... xxiv

Especificaciones del Amplificador Operacional

LilX74l.. ....................................................... KKV

Especificaciones del TDA7000 (Receptor de FM)..... xxvii

B

Page 76: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del 8051

Pines del 805 1

lmentaclóa +5 V vss 20 E PO.0-PO.? 39 - 32 E/S P1.0-P1.7 1 - 8 EíS P2.0 - P2.7 21 - 28 E/S P3.0-P3.? 10- 17 E/S RST 9 E A T X 30 S PSEN 29 S EA 31 E XTALl 19 E

Tierra. Puerto 0 bidireccional. Puerto 1 cuasiibidireccioaal. Puerto 2 cuasibidireccional. Puerto 3 cuasibidireccional. Reset Address Latch Enlabe Program Store Enlabe External Accses Enlabe Cristal 1 1 XTAL2 18 S cristal 2

Descripción de conexiones.

B 111 ...

Page 77: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Diagrama a bloques del 805 1

nu ,uhirr,,

Organización del la Memoria Interna del 8051

iv

Page 78: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Una de l a s maneras de cómo mapear la memoria por medio del 74 138:

Diagrama a bloques del modem interno del 805 1 :

B

Page 79: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Registro de control del modem interno

Configuración del =ado de transmisión del puerto serial

B

Page 80: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del Convertidor Analógico Digital ADCOSOS

B vii

Page 81: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

i"- ".."

Connection Diagrams

Timing Diagram am"

B m 1 1 ...

Page 82: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

B

Page 83: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

B A

Page 84: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones TCcnicas del Sensor Infrarrojo HOA1405 (Honey Weell Company)

TEST ZUfiFhCE

Especificaciones del Sensor infrarrojo HOA1405

:, ....... ..,*."I .........

B

Page 85: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del MC2833, Transmisor de Fill

Low Power FM Wansmitter System

"~

LOW POWER FM TRANSMITTER

SYSTEM SEMtCONDUCTOR TECHNICAL DATA

Users Must Comply wtth Local Regubtmns on R F Transmisscon (FCC. DOT, PT 1, et(:)

i

B

Page 86: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

B

Page 87: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del Controlador MC 3472

SEMICONWCTOR I TECHNICAL DATA 1

i I . . .

- I- . . . . . . . . . . . . . . I ....

1

i 1c ... _ - ~ ......... ................ ~ "" _" ' I !

?, ORDERING INFORMATION

PIASTIC PACKAGE P sumx

CASE W G

.. I .. - ............ -. ............ . . . . . I

I 1

I I

I

!

PIN CONNECTloNS

B

Page 88: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 89: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

. I . ... . .

B

Page 90: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del XR215, Modulador de FSK

B xviii

Page 91: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

DC ELECTRICAL CHUIACTEW'IWX ( W D )

B XiX

Page 92: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

t

E

Page 93: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

rw ""1

I

. ...

Page 94: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones Técnicas del LM565, VCO

'801

I t

B

Page 95: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

"- 1

r

0.1 0.15 0 4 0 5

2.5 2 2.2

o 1 02s

1251"

B xxiii

Page 96: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones del Circuito Integrado LM555, Timer

I"

. " ..

'E

t 8

i

B

Page 97: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones del Amplificador Operacional LM741

!

- "

N a i i o n a l S e m i c o n d u c t o r

LM741 Operational Amplifier General Deswbtion

Page 98: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

!

Page 99: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Especificaciones del TDA7000 (Receptor de FM)

FM radio circuit TOA7000

."' 47

B

Page 100: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

2

u: A .

'.5

B

Page 101: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que
Page 102: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM4037.pdf · El tamaño y capacidad de una computadora varían con el tamatlo, la velocidad y la potencia del CPU, que

Bibliografía P MANUAL Y APLICACIONES DEL MICROCONTROLADOR 8051.

Alejandro Vega Salinas. CINVESTA V IPN.

P THE MICROCONTROLLER

Scott Mackenzie University of Guelph.. Ptinted in Macmillan Publishing Company.

P EXAR.

1997 Comunications Products Data Book.

(http://www.exar.com).

> ECG Products.

Philips Consumer Electronic Company.

(http://www. ecgprdcts. com).,

P NATIONAL SEMICONDUCTOR Data Acquisition.

P NATIONAL SEMICONDUCTOR Operational Amplifiers.

P NATIONAL SEMICONDUCTOR Aplication Specific Analog Products

(http://www. nsc. com)

P MOTOROLA. Analoglinterfaces ICS Vol. I

> MOTOROLA. Wireless Seimiconductor Solutions Vol. II

P MOTOROLA. Fast and LS TTL Data.

P MOTOROLA. Bipolar Power.

P MOTOROLA. Rectifier.

@ttp://www.motorola.com/sps/).

P SISTEMAS MODERNOS DE CONTROL. Teona y Practica.

Richard C. Do6 Ed: Addison Wesley Iberoamericana.