• No se han encontrado resultados

Diseño de un micro-robot de competición para prueba de laberinto

N/A
N/A
Protected

Academic year: 2021

Share "Diseño de un micro-robot de competición para prueba de laberinto"

Copied!
92
0
0

Texto completo

(1)

UNIVERSIDAD CARLOS III DE MADRID

ESCUELA POLITÉCNICA SUPERIOR

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA, ELECTRÓNICA Y AUTOMÁTICA

ÁREA DE TECNOLOGÍA ELECTRÓNICA

DISEÑO DE UN MICRO-ROBOT DE COMPETICIÓN

PARA PRUEBA DE LABERINTO

PROYECTO FIN DE CARRERA

INGENIERÍA TÉCNICA INDUSTRIAL EN ELECTRÓNICA

AUTOR: ALBERTO CELA CRIADO

(2)

Diseño de un Micro-Robot de Competición para Prueba de Laberinto Proyecto Fin de Carrera de Alberto Cela Criado

Agradecimientos:

Agradecimientos:

Agradecimientos:

Agradecimientos:

Aprovecho este espacio para Aprovecho este espacio para Aprovecho este espacio para

Aprovecho este espacio para dar las gracias y dedicarle este proyecto a mi dar las gracias y dedicarle este proyecto a mi dar las gracias y dedicarle este proyecto a mi dar las gracias y dedicarle este proyecto a mi tutor,

tutor, tutor,

tutor, Guillermo Carpintero Del Barrio por tres moGuillermo Carpintero Del Barrio por tres moGuillermo Carpintero Del Barrio por tres motivos fundamentalmenteGuillermo Carpintero Del Barrio por tres motivos fundamentalmentetivos fundamentalmentetivos fundamentalmente: : : : 1)

1) 1)

1) Por permitirme hacer realidad lo que en un principio fue tan sPor permitirme hacer realidad lo que en un principio fue tan sPor permitirme hacer realidad lo que en un principio fue tan sPor permitirme hacer realidad lo que en un principio fue tan sóóóólo un lo un lo un lo un bonito sueño bonito sueño bonito sueño bonito sueño.... 2) 2) 2)

2) PPPPor estar ahí siempre que te he necesitadoor estar ahí siempre que te he necesitadoor estar ahí siempre que te he necesitadoor estar ahí siempre que te he necesitado a lo largo del tiempo a lo largo del tiempo a lo largo del tiempo a lo largo del tiempo.... 3)

3) 3)

3) Por encarnar a la perfección eso de lo que nuesPor encarnar a la perfección eso de lo que nuesPor encarnar a la perfección eso de lo que nuesPor encarnar a la perfección eso de lo que nuestra universidad hace tra universidad hace tra universidad hace tra universidad hace tanta gala,

tanta gala, tanta gala,

tanta gala, que es la excelencia.que es la excelencia.que es la excelencia.que es la excelencia.

Muchas g Muchas g Muchas g

Muchas gracias a mis padres, racias a mis padres, racias a mis padres, racias a mis padres, a a a mi hermano, a mi hermano, mi hermano, a mi hermano, a mis amigos y a a mis amigos y mis amigos y mis amigos y como no, como no, como no, como no, a a a mia mimimi Marta

Marta Marta

Marta,,,, por su por su por su por su cococonstante constante apoyo nstante nstante apoyo apoyo sin el cual me hubiese sido muy difícilapoyo sin el cual me hubiese sido muy difícilsin el cual me hubiese sido muy difícil poder finalizar sin el cual me hubiese sido muy difícil poder finalizar poder finalizar poder finalizar este proyecto;

este proyecto; este proyecto;

este proyecto; y y y y también también también también a mis compañeros de Universidada mis compañeros de Universidada mis compañeros de Universidad,,,, especialmente a mis compañeros de Universidad especialmente especialmente a el especialmente a el a el a el Mariano y el Nacho

Mariano y el Nacho Mariano y el Nacho

Mariano y el Nacho,,,, por los buenos momentos por los buenos momentos por los buenos momentos por los buenos momentos pasadospasadospasados tantpasados tant tant tanto dentro como fuera o dentro como fuera o dentro como fuera o dentro como fuera de las clases

de las clases de las clases de las clases....

(3)

Diseño de un Micro-Robot de Competición para Prueba de Laberinto Proyecto Fin de Carrera de Alberto Cela Criado

INDICE DEL PROYECTO FIN DE CARRERA

1.

MEMORIA

2.

PLANOS

3.

PLIEGO DE CONDICIONES

(4)

Diseño de un Micro-Robot de Competición para Prueba de Laberinto Proyecto Fin de Carrera de Alberto Cela Criado

1

(5)

Diseño de un Micro-Robot de Competición para Prueba de Laberinto Proyecto Fin de Carrera de Alberto Cela Criado

Indice de la Memoria

Capítulo 1

Objeto del proyecto ……….……….……… 1

Capítulo 2 Motivación ……….…… 3 2.1. Introducción ………….……… 4 2.2 Antecedentes …...…….……… 4 2.3. Objetivos de diseño ….………. 5 2.4. Organización de la memoria ….………...……… 5 Capítulo 3 Estructura mecánica y alimentación ...……… 6

3.1. Estructura mecánica ….……… 7

3.1.1 Estructura de la placa base .……… 7

3.1.2 Estructura de la placa de control ….………..…………. 9

3.1.3 Interconexión del chasis y la placa de control ………...10

3.2. Movilidad de la estructura ………...10

3.2.1 Sistema de tracción diferencial ………...………...11

3.2.2 Caja reductora ……….…………...12

3.3. Alimentación del robot ….………...12

3.3.1 Baterias recargables de NiMH .………...………...13

3.3.2 Detector de batería baja ………...14

Capítulo 4 Sensores ……….….….. 15

4.1. Introducción ………….……….….. 16

4.2. Telémetro de infrarrojos ……….……….……... 16

4.3. Sistema de sensorial implementado ……….…....18

Capítulo 5 Estructura mecánica y alimentación ………. 19

5.1. Motores de corriente continua ……… 20

5.2. Control de los motores ……… 21

5.2.1 Control en lazo cerrado ….……….… 21

5.2.2 Modulación por ancho de pulso (PWM) ….………..… 22

5.2.3 Puente en H ……….………... 23

(6)

Diseño de un Micro-Robot de Competición para Prueba de Laberinto Proyecto Fin de Carrera de Alberto Cela Criado

Capítulo 6

Microcontrolador ………. 27

6.1. ¿Qué es un microcontrolador? …….………... 28

6.2. Microcontrolador 68HC11 de Motorola ...………...28

6.2.1 Comparadores del microcontrolador ………...………...29

6.2.2 Conversor analógico−digital (A/D) ………...………...31

6.3. Sistema microcontrolador desarrollado ...………...32

Capítulo 7 Programación ………... 34

7.1. Introducción ………….……….………….. 35

7.2. Tareas desarrolladas por el microcontrolador……….……. 35

7.2.1 Secuencia de RESET del programa ………..………… 35

7.2.2 Control de la trayectoria del robot y búsqueda de la salida .………... 38

7.3. Algoritmo de búsqueda de la salida del laberinto ………...…... 45

Capítulo 8 Etapas de diseño y conclusiones ………. 48

8.1. Introducción ……..….……….……… 49

8.2. Diseño por objetivos ……….…………... 49

8.3. Desarrollo del concurso y conclusiones personales ………... 51

8.4. Trabajo futuro …...………... 52

Bibliografía ……….……….. 53

Anexos ……….……….. 55

1. Diploma acreditativo del tercer premio ..……….... 56

2. Reportaje en revista Carlos III num. 19 (pág. 21) …..……….………... 57

3. Artículo divulgativo para el concurso ....……….…... 58

4. Poster divulgativo para el concurso …....………... 59

5. Tríptico del concurso ………..……….... 60

6. Programa del microcontrolador ………..……….... 61

7. Hoja de características del sensor GP2D12 ..………..……….... 67

(7)

Capitulo 1

Objeto del Proyecto

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 1

Capítulo 1

O

(8)

Capitulo 1

Objeto del Proyecto

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 2

E

l objetivo de este proyecto es diseñar y construir un micro-robot que cumpla con los requisitos para participar en la prueba del laberinto del concurso de micro-robots de la Universidad de Alcalá, Alcabot 2002.

La prueba consiste en la navegación autónoma por un laberinto de 4x4 metros entre un punto de partida, situado en el interior del laberinto, y la salida. El plano del la-berinto, cuyo diagrama se muestra en la figura 1.1, se conoce a priori y puede ser em-pleado en los algoritmos de guiado del robot. La posición de inicio se reserva hasta el día de la prueba. Gana el concurso el robot que realiza el trayecto en el menor tiempo

La normativa completa del concurso se puede ver en el Pliego de Condiciones de este proyecto.

Con motivo del artículo y el poster divulgativos realizados para el concurso, que se pueden consultar en los puntos 3 y 4 del Anexo, casi toda la Memoria de este proyec-to ha sido sintetizada en sólo dos hojas.

El robot fue presentado al concurso celebrado los días 25 y 26 de Abril de 2002 en Alcalá de Henares, donde compitió con más de 30 robots de diversas universidades españolas, resultando ganador del tercer premio.

(9)

Capitulo 2 Motivación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 3

Capítulo 2

M

(10)

Capitulo 2 Motivación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 4

2.1. Introducción

¿Por qué un micro-robot?

La robótica es una de las aplicaciones más apasionantes de la electrónica.

Un micro-robot es un pequeño robot móvil que dotado de un microcontrolador se encarga de realizar una tarea sencilla que frecuentemente realiza el ser humano. Acti-vidades como limpiar el suelo, cortar el césped o detectar minas enterradas pueden ser desarrolladas perfectamente por microbots. Entre sus características destacan que son móviles (se desplazan para realizar sus tareas), autónomos (no teledirigidos), de bajo coste, reducidas dimensiones y realizan tareas muy específicas.

Trabajar con micro-robots nos permite desarrollar un proyecto técnico desde el diseño hasta la implementación desde un punto de vista ameno y divertido. Por otra par-te, y dado que el Proyecto Fin de Carrera constituye una síntesis y colofón a los cono-cimientos adquiridos en las materias cursadas, que mejor que diseñar y construir un sis-tema móvil autónomo que ya de por sí es capaz de reunir conocimientos de areas de electrónica, automática, e informática además de un cierto grado de inteligencia artifi-cial.

¿Por qué la prueba del laberinto?

En el certamen de micro-robots de Alcabot 2002, hubo un total de 5 pruebas: rastreadores - velocistas - laberinto - sumo - prueba libre.

Las principales características de cada una de las pruebas se pueden consultar en el punto 5 del Anexo a esta Memoria, con motivo del Tríptico del concurso.

La prueba del laberinto tiene el atractivo añadido y el reto de que se puede aña-dir al robot cierto nivel de inteligencia que le permita buscar la salida del circuito, y que en otras pruebas no existe (por ejemplo, velocistas) o se encuentra limitada en favor de la parte mecánica (rastreadores y luchadores de sumo). La prueba libre tiene el inconve-niente de que no se puede competir con otros participantes bajo un mismo marco nor-mativo.

2.2. Antecedentes

En Alcabot 2001 el laberinto tenía una entrada y una salida, y los robots tenían que entrar en el laberinto y salir en el menor tiempo posible.

La salida en esta prueba podía encontrarse utilizando un sencillo algoritmo de seguimiento de pared. La analogía para este algoritmo es imaginar una persona ciega

(11)

Capitulo 2 Motivación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 5 manteniendo una de sus manos (la izquierda o la derecha) sacada tocando la pared y si-guiéndola hasta que encuentra el destino.

En cambio, en Alcabot 2002 el trazado del laberinto se ha diseñado de tal mane-ra que siguiendo el algoritmo del año anterior, los robots quedarían encermane-rados en su in-terior dando vueltas sobre un mismo recorrido del circuito. Por tanto, se insta a los par-ticipantes del concurso a desarrollar nuevos algoritmos para que sus robots sean capaces de encontrar la salida del circuito.

2.3. Objetivos de diseño

El primer objetivo fue minimizar el peso y el tamaño del robot con el fin de lo-grar una mayor velocidad de avance y capacidad de maniobra, que le permita encontrar la salida del laberinto en el menor tiempo posible. Todo ello redunda en dotar al conjun-to de un menor consumo de energía, lo que permite el uso de baterias más pequeñas y ligeras.

En todo momento se ha buscado el equilibrio entre la electrónica de precisión y los componentes más sencillos, así como un diseño final de coste reducido.

En cuanto a el desarrollo del algoritmo que permita al robot encontrar la salida del laberinto, se buscó minimizar el código fuente para adaptarlo por completo a la me-moria interna del microcontrolador, empleando para ello un enfoque original y creativo que dote al sistema de cierto grado de aleatoriedad controlada y propiedades emergen-tes, frente al enfoque más intensivo computacionalmente del mapeado del laberinto.

2.4. Organización de la memoria

La memoria comienza mediante el apartado denominado Objeto del Proyecto, en el que se incluye la información precisa de forma breve y concisa para que cualquier es-pecialista que lo lea pueda entender el problema técnico que se intenta resolver.

El presente capítulo trata de desvelar los motivos por los cuales se eligió este proyecto y no otro, así como los resultados de la búsqueda de información del antepro-yecto (antecedentes) y los objetivos globales de diseño.

Los capítulos centrales describen de las diferentes partes del robot y su funcio-namiento. Hablaremos por tanto de la estructura mecánica, sensores, motores, baterías, el microcontrolador y su programación.

Finalmente se presentan las conclusiones y se describe la experiencia de haber participado en el concurso de micro-robots organizado por la Universidad de Alcalá.

(12)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 6

Capítulo 3

E

(13)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 7

3.1. Estructura mecánica

Los robots móviles necesitan una estructura mecánica o chasis que constituya la plataforma en la que se alojan sus elementos principales: sensores, actuadores, controla-dores y baterias.

3.1.1 Estructura de la placa base

El chasis de nuestro micro-robot lo constituye la propia placa de tiras de fibra de vidrio sobre la que van montados mediante soportes atornillados los dos sensores latera-les y la caja con las baterías así como, por soldadura, los componentes de la etapa de amplificación, regulación de tensión y visualización del estado de las baterías mediante la tira de diodos LED.

Fig. 3.1 Estructura del chasis del micro-robot (vista superior)

El diagrama de bloques de la estructura se puede consultar en el punto 1.1 de los Planos de este Proyecto.

(14)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 8

En la parte inferior de la estructura mecánica se han atornillado las dos cajas re-ductoras de las ruedas motrices utilizadas para la tracción del micro-robot, mientras que la rueda libre esta construida con una pelota de ping-pong y un trozo de alambre unido por soldadura a la parte trasera de la plataforma. Además, se ha incorporado el sensor central atornillado mediante soporte a la parte delantera, de forma que se aprovecha aún más el espacio disponible para conseguir un diseño final de dimensiones muy reducidas, como se aprecia en la siguiente figura:

Fig. 3.2 Estructura del chasis del micro-robot (vista inferior)

La fibra de vidrio aporta poco peso al robot, lo que a su vez reduce el consumo eléctrico del sistema, y tiene suficiente robustez como para ser capaz de soportar coli-siones imprevistas y otras posibles situaciones de estrés de la estructura.

Con este diseño, se han optimizado los espacios libres entre los motores, senso-res y la alimentación del sistema para añadir los componentes electrónicos de la etapa de potencia, asi como los LEDs de visualización del estado de las baterías, el regulador de tensión y el interruptor de encendido del micro-robot.

(15)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 9

3.1.2 Estructura de la placa de control

La placa de control del micro-robot está hecha de circuito impreso en fibra de vidrio y contiene todos los elementos necesarios para el adecuado funcionamiento del microcontrolador, es decir, los conectores para alimentación, puertos de entradas y sali-das así como de comunicaciones con un ordenador externo via puerto serie (para su programación) junto con su adaptador de niveles, además del circuito de reset, y el reloj del sistema.

Fig. 3.3 Estructura de la placa de control

El diagrama de bloques de la estructura se puede consultar dentro los Planos de este Proyecto.

(16)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 10

3.1.3 Interconexión del chasis y la placa de control

La arquitectura final del micro-robot es del tipo "tarta de varios pisos", con las baterías y la placa de control sobre la base.

La integración de las dos plataformas se logra utilizado separadores metálicos, además de dos cables planos (buses) de 16 líneas cada uno, que corresponden a los puertos del microcontrolador que utilizamos para el control y lectura de actuadores y sensores, y un cable de alimentación y tierra, que se ha trenzado para reducir posibles inductancias parásitas, como podemos ver en la siguiente figura:

Fig. 3.4 Vista lateral del micro-robot

Las dimensiones finales del robot has sido de tan sólo 10 x 16 x 12 cm (ancho x largo x alto) y su peso 600 gramos, lo cual le ha conferido grandes ventajas competiti-vas de cara al concurso con otros robots.

3.2. Movilidad de la estructura

A la hora de diseñar la tracción del micro-robot, podemos optar por una arqui-tectura de triciclo, formada por dos ruedas de tracción y una de dirección independientes o por una estructura similar a los coches tradicionales formada por dos ruedas tractoras con control de la dirección y dos ruedas sin tracción , o por una estructura formada por dos ruedas a tracción independientes y una rueda libre como la que se muestra en el dia-grama de la figura 3.5 que es el que hemos utilizado para nuestro robot.

(17)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 11

Con este tipo de estructura el micro-robot puede realizar maniobras de escape en los callejones sin salida del laberinto de manera rápida y sencilla.

3.2.1 Sistema de tracción diferencial

La estructura que se ha elegido para nuestro micro-robot nos permitirá la realizar movimientos hacia adelante, hacia atrás, giro a la derecha, giro a la izquierda y así como el giro sobre su propio eje.

El sistema motriz diferencial está formado por dos ruedas accionadas por moto-res colocadas en la parte delantera del robot, más una rueda libre situada en la parte trasera para evitar que la plataforma bascule.

Fig. 3.5 Estructura de tracción diferencial

Con este tipo de sistema el control de la trayectoria del vehículo se consigue ajustando la velocidad de giro de ambas ruedas. Así, cuando ambas ruedas giran con idéntica velocidad y en el mismo sentido, el vehículo describe una línea recta; mientras que si las velocidades difieren o tienen sentido opuesto, el robot describe una trayectoria curvilínea. Por tanto, este sistema permite que el robot gire sobre sí mismo, es decir, so-bre un eje vertical al plano del vehículo, pasando por el centro geométrico del eje que une las ruedas del robot.

Como rueda libre, se ha optado por una pelota de ping-pong unida a la estructura con un trozo de alambre rígido, con capacidad para rodar y deslizarse fácilmente por la superficie lisa del suelo del circuito de la prueba del laberinto.

Respecto a las ruedas motrices que se han utilizado para la tracción del robot son recicladas de un juguete (de bajo coste) y están formadas por un pequeño motor de co-rriente continua acoplado a cada rueda a través de una caja reductora que proporciona

(18)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 12

una velocidad más baja y un par de salida más elevado, puesto que los motores de CC. proporcionan velocidades de giro de salida considerables.

3.2.2 Caja reductora

La caja de transmisión está formada por una corona (el engranaje grande) de 42 dientes y un piñón (engranaje pequeño) de 12 dientes que disminuyen la velocidad en un cuarto (12/48). Como hay tres pares tal y como podemos ver en la figura 3.6 el tren completo reduce la velocidad en ¼ x ¼ x ¼ = 1/64. Por tanto, cada 64 giros del motor, las ruedas del mismo darán una sola vuelta.

Fig. 3.6 Tren de engranajes de la caja reductora

Con esta configuración conseguimos que los motores del robot, que inicialmente giran a 700 rpm. pasen a tener una velocidad muy inferior de unas 112 revoluciones por minuto, que proporcionan finalmente una velocidad de avance a todo el conjunto de unos 40 cm/s al alimentarlo con 7.2 voltios, es decir, una celda del laberinto a cada se-gundo. Cabe recordar que el laberinto del concurso está formado por 9 x 9 casillas de 40 x 40 cms. (en total 81 celdas), como podemos ver en el plano del mismo contenido en el Pliego de Condiciones de este Proyecto.

3.3. Alimentación del robot

Para la alimentación del robot se valoraron diversas opciones entre las que des-tacan las pilas recargables, frente a las convencionales dado que nos permitieron hacer un mayor numero de pruebas durante la fase de I+D del robot a un coste muy inferior en perspectiva. Dentro de las baterías recargables, se optó por las de NiMH frente a las de NiCd por tener mayores densidades de energía por celda, además de un menor “efecto memoria” (reducción de su capacidad efectiva si no se ha descargado por completo la pila antes de iniciar una recarga).

En cuanto a las baterías de ion Litio tienen muchas ventajas entre las que desta-can su bajo peso, elevada densidad de energía, nulo efecto memoria, descarga lineal

(19)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 13

(mientras la batería se está descargando su voltaje varía muy poco, no necesitando de un regulador de voltaje), pero se descartaron debido a su elevado precio.

3.3.1 Baterias recargables de NiMH

Se han empleado 6 pilas de 1.2 V y 1600 mAh de NiMH para la alimentación de todo el micro-robot. Dado que el consumo total del mismo se estima en 500 mA, la au-tonomia del robot sería de 3 horas, aproximadamente (suficiente para no tener que cam-biarlas en todo el concurso).

Fig. 3.7 Baterias de alimentación del robot

Para evitar el posible ruido eléctrico de la tensión de alimentación se ha separado la parte lógica (circuitos integrados) y los sensores, que trabajan a una tensión de 5 V proporcionada por un regulador lineal de tensión, de la parte de los motores, que e ali-mentan a 7.2 V directamente de las baterías.

El regulador mantiene una tensión de salida estable a medida que las pilas se van descargando, como se puede ver en el siguiente diagrama:

(20)

Capitulo 3

Estructura mecánica y Alimentación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 14

3.3.2 Detector de batería baja

Se ha dotado al bloque de alimentación de un indicador de batería baja, que está constituido por un sencillo divisor de tensión, y que ha sido diseñado para que cuando la tensión de las pilas sea inferior a un determinado umbral, fijado en 6.5 V, el microcon-trolador del robot lo detecte a través de una de sus entradas a su conversor A/D interno, como puede apreciar en el esquema de la figura 3.9

Fig. 3.9 Sensor de batería baja con conexión al microcontrolador y salida por LEDs El microcontrolador genera la señal de aviso para el necesario cambio de pilas (antes de que se empiecen a agotar, poniendo en riesgo el adecuado funcionamiento del micro-robot) a través de una secuencia de luces que genera a través de los diodos LED que han sido conectados a la salida de uno de sus puertos, como se ve en el diagrama de la figura anterior.

(21)

Capitulo 4 Sensores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 15 Capítulo 4

S

(22)

Capitulo 4 Sensores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 16

4.1. Introducción

Independientemente de la magnitud que miden, los sensores se pueden agrupar en dos grandes categorias: detectores y transductores.

Los detectores son sensores cuya salida tiene únicamente dos estados, es decir, por ejemplo, si un robot ha chocado con un obstáculo o no; mientras que los transducto-res tienen una salida que varía de forma continua dentro de un rango de valotransducto-res, por ejemplo una distancia se puede transformar en una tensión variable entre 0 y 5 V.

Aunque los sensores todo/nada tiene la ventaja de su precio, nuestro robot ha si-do si-dotasi-do de telémetros con el fin de implementar diversos comportamientos como el seguimiento de paredes, detección de obstáculos, cambios de las paredes a seguir, etc. utilizando la distancia como parámetro de control, así como para conseguir tener una mayor precision en su posicionamiento.

Los telémetros de infrarrojos son adecuados para medir distancias cortas (del rango de unos cuantos centímetros). Teniendo en cuenta que las paredes del laberinto tienen 40 centímetros de ancho, queda clara su elección frente a los sensores de ultraso-nidos, que pueden alcanzar rangos de varios metros.

4.2. Telémetro de infrarrojos

Aunque es posible construir un telémetro empleando componentes electrónicos, se ha optado por usar módulos intregrados dada su buena precisión, coste y reducido tamaño. En concreto, se ha escogido la gama de telémetros de Sharp por ser la mas ex-tensa y asequible. Dentro de esta familia, encontramos telémetros analógicos y digitales.

Fig. 4.1 Telémetro GP2D12 de Sharp

Se ha elegido el modelo con salida analógica, que encaja perfectamente con el conversor A/D interno del microcontrolador de Motorola, y que además es capaz de proporcionarnos lecturas continuas de las distancias en cortos intervalos de tiempo, de unos 40 ms. (frente a los 75 ms. del modelo con salida digital), suficientes para lograr el control en tiempo real de la trayectoria del robot cuando está siguiendo las paredes y de-tectando obstáculos mientras recorre el interior del laberinto en busca de la salida.

El GP2D12 es capaz de medir distancias de 10 a 80 cms., más que suficiente pa-ra los 40 cms. de ancho de las calles del laberinto, y su salida analógica varía entre los

(23)

Capitulo 4 Sensores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 17

0.4 y 2.4 V con lo cual se han conectado directamente los tres sensores del micro-robot que detectan las distancias a las paredes laterales y frontales, a los puertos del conversor A/D del microcontrolador como se puede ver en el siguiente esquema:

Fig. 4.2 Conexión de los sensores al conversor A/D del microcontrolador

Estos telémetros tienen un consumo medio de 33 mA y no necesitan un circuito de control externo, a diferencia de su modelo análogo digital (GP2D02).

Fig. 4.3 Diagrama de bloques Interno del GP2D12

El principio de funcionamiento del sensor es por triangulación de la luz que re-bota sobre el objeto. El elemento a la izquierda del sensor según vemos la figura 4.4 es un led infrarrojo que emite un haz que será reflejado por el objeto y posteriormente re-cogido por el elemento situado a la derecha. Este último se conoce como PSD (Sensor Detector de Posición). El haz de luz incide con un ángulo diferente en función de la dis-tancia del sensor. Este ángulo de incidencia es captado por una película lineal fotosensi-ble que proporciona un valor analógico a la salida en función de la posición en la que el rayo de luz impacta.

(24)

Capitulo 4 Sensores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 18

Fig. 4.4 Medida de distancias por triangulación

4.3. Sistema de sensorial implementado

El robot necesita detectar o seguir las paredes que se va encontrando en su cami-no a derecha, izquierda y centro para ser capaz de recorrer sus calles con agilidad. Para ello, se ha diseñado un sistema compuesto por tres telémetros de infrarrojos situado a la derecha, izquierda y centro respectivamente.

La disposición de los sensores respecto a la plataforma del robot se puede ver en la figura 4.5, donde también podemos observar que los sensores laterales se adelantan unos 15 grados respecto a la visión frontal de las paredes con el fin de conseguir una trayectoria final del robot más estable (con menos oscilaciones) especialmente cuando tenga que realizar el trazado de las curvas a 90º y los giros a 180º.

(25)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 19 Capítulo 5

M

(26)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 20

5.1. Motores de corriente continua

En un robot móvil los motores son los responsables de alterar el comportamiento exhibido por el micro-robot, generando su trayectoria a partir de señales procedentes del microcontrolador.

En nuestro robot se han utilizado motores de corriente continua que podemos ver en la figura 5.1, para transforman la energía eléctrica de las baterías (también de CC.), en energía mecánica.

Fig. 5.1 Motor de corriente continua

Se ha dotado a los motores de CC. de condensadores para suprimir el ruido cau-sado por los picos de tensión originados en las inductancias de los mismos tras su con-trol mediante señales moduladas por ancho de pulso, así como para evitar que la fric-ción de las escobillas en el colector pueda interferir con la circuitería electrónica.

Para ello, se han soldado tres condensadores de cerámica de 100nF cada uno en-tre el positivo y la carcasa uno, negativo y carcasa otro, y enen-tre positivo y negativo el tercero, como se aprecia en el diagrama de la figura 5.2

(27)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 21 Además se ha dotado a cada motor de una caja reductora, cuyas características ya se explicaron en el Capítulo 3.

5.2. Control de los motores

Dado que el microcontrolador no puede manejar los motores directamente, ya que no puede entregar suficiente corriente por sus salidas, se ha utilizado un circuito ca-paz de acondicionar dichas señales, de manera que la energía que necesitan los motores proviene directamente de las baterías del robot y sólo las señales de control derivan del microcontrolador.

5.2.1 Control en lazo cerrado

El control de la velocidad de giro de los motores mediante el circuito acondicio-nador de señales (amplificador) nos permitirá, junto con la información aportada por los sensores, la navegación del robot por el interior del laberinto manteniendo una distancia constante a una pared para poder seguirla, o bien para realizar reducciones de su veloci-dad ante la presencia de obstáculos (paredes frontales). Por otra parte, el control del sen-tido de giro de los motores mediante el mismo dispositivo, nos facilitará que el robot pueda realizar giros sobre sí mismo cuando se encuentre en presencia de por ejemplo, callejones sin salida.

De esta forma se dotado al robot de un sistema deregulación en lazo cerrado, que es aquel cuyas entradas están determinadas, al menos en parte, por las salidas o res-puesta del sistema, tal y como se muestra en el siguiente diagrama de bloques:

(28)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 22

5.2.2 Modulación por ancho de pulso (PWM)

La reducción de la velocidad de motor en unas condiciones de carga determina-das, se consigue reduciendo la tensión de alimentación del motor, de manera que para controlar la velocidad del robot habrá que controlar el valor de la tensión de sus moto-res. Para lograrlo de manera eficiente se ha utilizado el método de modulación por an-chura de pulso o PWM (Pulse Width Modulation).

En dicho método el motor se alimenta con una tensión que, en lugar de ser con-tinua todo el tiempo, conmuta entre dos estados (encendido y apagado) de manera que si las transiciones se realizan lo suficientemente rápido (en nuestro caso, una frecuencia de 50 Hz. es suficiente para que el robot no avance “a tirones”) el motor no tiene tiempo de reducir su velocidad a cero. En la práctica la tensión de alimentación está constituida por un tren de pulsos cuadrados en el que siempre se mantiene el valor máximo (ampli-tud de pulso) pero se controla el ancho de los pulsos. De este modo se modifica el valor medio de la tensión que se suministra a cada motor.

En la figura 5.4 podemos observar el aspecto típico de la tensión con modula-ción de anchura de pulso aplicada en bornes del motor, donde el valor medio de la seña-lización vendrá dado por:

Donde d es el denominado ciclo de trabajo, y será el parámetro que controla la variación de la tensión media, puesto que tanto la tensión máxima como la frecuencia de modulación de la señal permanecerán constantes.

(29)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 23 En la siguiente figura se puede ver una señal modulada por ancho de pulsos, mostrando la tensión media resultante para cada unos de los distintos ciclos de trabajo:

Fig. 5.5 Señal PWM con distintos ciclos de trabajo

5.2.3 Puente en H

El control de la velocidad y sentido de giro de los motores se ha implementado mediante un circuito de conmutación denominado puente en H.

El puente en H recibe este nombre porque esquemáticamente se puede se puede representar como una H, en la que el tramo horizontal estaría conectado el motor y en los otros cuatro tramos rectos verticales, se conectan cuatro interruptores, como se apre-cia en el siguiente esquema:

(30)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 24 Un puente H se construye con 4 interruptores (transistores). Cuando los interrup-tores S1 y S4 están cerrados (y S2 y S3 abiertos) se aplica una tensión positiva en el motor, haciéndolo girar en un sentido. Abriendo los interruptores S1 y S4 (y cerrando S2 y S3), el voltaje se invierte, permitiendo el giro en sentido inverso del motor, tal y como podemos ver en la figura 5.7

Con la topología que estamos usando, los interruptores S1 y S2 nunca podrán es-tar cerrados al mismo tiempo, porque esto cortocircuies-taría la fuente de tensión. Lo mis-mo sucede con interruptores S3 y S4.

Fig. 5.7 Funcionamiento del puente en H

Para el diseño de este driver pueden se pueden utilizar componentes discretos ta-les como transistores bipolares o MOSFETs de potencia. En nuestro caso hemos utiliza-do un circuito integrautiliza-do que contiene utiliza-dos puentes en H para el control simultáneo de los dos motores del micro-robot.

5.2.4 Circuito integrado L293B

El L293B de SGS-Thomson es un driver de 4 canales capaz de proporcionar una

corriente de salida de hasta 1A por canal. Cada canal es controlado por señales de entra-da compatibles TTL y caentra-da pareja de canales dispone de una señal de habilitación que desconecta las salidas de los mismos.

Dispone de una patilla para la alimentación de los actuadores que se están con-trolando, de manera que dicha alimentación es independiente de la lógica de control.

En la Figura 5.8, se muestra el diagrama de bloques del L293B. La señal de con-trol EN1activa la pareja de canales formada por los drivers 1 y 2. La señal EN2 activa

la pareja de drivers 3 y 4. Las salidas OUTnse asocian con las correspondientes INn.

Las señales de salida son amplificadas respecto a las de entrada tanto en tensión, como en corriente (máx. 1 A). En la figura 5.9 se muestra el funcionamiento para cada uno de los drivers.

(31)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 25 Fig. 5.8 Diagrama de bloques del C.I. L293B

VInn VOUTn VENn Función:

H L H Giro a la derecha L H H Giro la izquierda H Z L Motor desconectado L Z L Motor desconectado

Leyenda: H= Nivel alto "1", L= Nivel bajo "0", Z = Alta Impedancia Fig. 5.9 Tabla de funcionamiento del driver

En nuestro caso hemos utilizado este circuito dejando permanentemente habili-tadas las entradas de inhibición (EN1 y EN2), de manera que la aplicación del método de variación de la tensión media mediante modulación por ancho de pulsos para el con-trol de la velocidad y el sentido de giro de los motores del robot, se ha implementado empleando las cuatro lineas de control que resultan de conectar las señales IN1-4 (pines 2, 7, 15 y 10) del circuito acondicionador a los pines PA3, PA4, PA5 y PA6 del micro-controlador, tal y como podemos ver en el esquema de la figura 5.10.

(32)

Capitulo 5 Motores

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 26 Fig. 5.10 Diagrama de conexiones para el control de los motores con el L293B y el microcontrolador

El motor derecho se encuentra conectado a los drivers 1 y 2, que están controla-dos por las líneas del Puerto A del microcontrolador PA3 y PA6, mientras que el motor izquierdo se conecta a los drivers 3 y 4, que están controlados por las líneas PA4 y PA5.

Las señales PWM procedentes del MC68HC11 se aplican por las salidas del Puerto A para obtener el movimiento del robot necesario para navegar por el interior del laberinto siguiendo las paredes y detectando los obstáculos.

(33)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 27

Capítulo 6

M

(34)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 28

6.1. ¿Qué es un microcontrolador?

El microcontrolador es el encargado de procesar la información obtenida por los sensores y actuar en consecuencia modificando la trayectoria del robot para conseguir su objetivo de encontrar la salida del laberinto.

Un microcontrolador se caracteriza por incorporar en un solo circuito integrado una unidad central de proceso (CPU) además de una serie de recursos internos. La CPU permite que el microcontrolador pueda ejecutar instrucciones almacenadas en una me-moria. Los recursos internos son memoria RAM, ROM, EEPROM, puerto serie, puertos de entrada/salida, temporizadores, comparadores, capturadores, etc. Se puede decir que es una evolución del microprocesador, al añadirle a este último las funciones que antes era necesario situar externamente con otros circuitos. En definitiva, un microcontrolador es un circuito integrado independiente que nos facilita la tarea de diseño y reduce el es-pacio, redundando todo ello en una aplicación final más económica y estable.

6.2. Microcontrolador 68HC11 de Motorola

El MC68HC11 es un microcontrolador con una CPU de 8 bits, una frecuencia de bus de 2 Mhz y una serie de recursos internos que en el caso de nuestro modelo, el MC68HC811E2 son básicamente los siguientes:

• 256 bytes de memoria RAM

• 2 Κbytes de memoria EEPROM

• 5 puertos de 8 bits, con pines de entrada, salida y de entrada/salida

• Conversor analógico−digital de 8 canales y 8 bits de resolución.

• Una UART para comunicaciones serie asíncronas (SCI)

• Un módulo de comunicaciones serie síncronas (SPI)

• 5 comparadores con salida hardware

• 3 capturadores de entrada

• Un acumulador de pulsos externos de 8 bits

• Temporizador principal de 16 bits

• Interrupciones en tiempo real

• 2 entradas de interrupciones externas

Esta familia está fabricada sobre tecnología HCMOS, combinando un tamaño reducido y elevadas velocidades con un consumo mínimo de potencia y alta inmunidad al ruido.

Para el diseño de nuestro robot, se ha utilizado el modelo HC811E2 de la fami-lia, básicamente por ser el único que posee 2048 bytes de memoria EEPROM (los de-más tienen como máx. 512 bytes), que utilizaremos para introducir todo el código de programa que guiará al robot por el trazado del laberinto hasta encontrar su salida, en un tiempo limitado.

(35)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 29

Fig. 6.1 Diagrama de bloques interno del MC68HC11

A continuación se describirán dos de los recursos internos del microcontrolador utilizados de manera decisiva en el diseño de nuestro robot: los comparadores y el con-versor A/D.

6.2.1 Comparadores del microcontrolador

Existen 5 comparadores independientes de 16 bits en el microcontrolador. El funcionamiento de cada comparador es el siguiente: Se introduce un valor en sus regis-tros correspondientes. El temporizador principal se va incrementando. Cuando el valor del temporizador es igual al de algún comparador, se produce una interrupción (si están habilitadas) y se modifica opcionalmente el estado lógico de un pin del microcontrola-dor, como se aprecia en la figura 6.2.

(36)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 30

Fig. 6.2 Diagrama de bloques interno del temporizador principal

Puesto que los comparadores son independientes, existe una interrupción para cada uno que se puede enmascarar mediante un bit situado en el registro de máscara de interrupciones TMSK1 ($1022). El registro de interrupciones TFLG1 ($1023) contiene las banderas de interrupción: los bits que se activan cuando se produce alguna de las in-terrupciones de los comparadores, bits que deben ser puestos a cero antes de terminar la rutina de servicio de interrupción.

Cuando el valor del comparador es igual al del temporizador, se produce una ac-ción determinada en el pin sobre el que está actuando el comparador. Existen 4 acciones posibles que se seleccionan mediante 2 bits para cada comparador. Estos bits se encuen-tran en el registro TCTL1 ($1020). Las acciones posibles son: No afectar al pin corres-pondiente, poner el pin a ’1’, poner el pin a ’0’ y cambiar de estado el pin.

La salida hardware esta activa cuando al activarse el comparador se produce una acción sobre el pin de salida asociado. En caso contrario se dice que la salida hardware esta inhibida. En este sentido el comparador 1 es diferente al resto puesto que él puede

(37)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 31

actuar sobre los cinco pines de salida simultaneamente. Los otros sólo actuan sobre su pin asociado.

Por defecto (Al hacer RESET) los comparadores se inicializan con los valores $FFFF y no realizan ninguna acción sobre los pines (Están desconectados). Con esta configuración, los bits 6, 5, 4 y 3 del puerto A se pueden utilizar como salida normal (el puerto A comparte estos pines con el comparador). Sin embargo, cuando los compara-dores están configurados para salida hardware no es posible cambiar el estado del pin escribiendo un valor en el bit adecuado del puerto A.

La acción "Cambiar estado del pin" es muy interesante. Cada vez que el tempo-rizador se iguala al valor del comparador, el estado del pin se cambia de valor lógico, es decir, si estaba a "1" pasa a "0" y viceversa. De esta manera se producen señales cua-dradas de cualquier frecuencia muy fácilmente, como las que utilizaremos para el con-trol de la velocidad de nuestro robot por PWM.

El comparador 1 permite controlar 5 pines simultáneamente. Cada vez que el re-gistro del comparador 1 es igual que el del temporizador se produce una salida hardware por los 5 pines más significativos del puerto A.

Mediante el registro OC1M ($100c) se configuran los pines que van a ser afec-tados por el comparador 1. Un 1 indica que el pin va a ser utilizado y un 0 indica que no. Los 5 bits más significativos del registro OC1M se corresponden con los pines de los 5 bits más significativos del puerto A. Cada vez que el temporizador principal se iguale al comparador 1, se manda por los pines activados un cierto valor que se encuen-tra en el registro OC1D ($100D). Los 5 bits más significativos de este registro coinciden con los 5 bits más significativos del puerto A.

Si los 5 pines están activos (Valor $F8 en OC1M) y el registro OC1D contiene el valor $A8 (10101000 en binario), al activarse el comparador se envían los bits 10101 por los pines de los bits 7,6,5,4 y 3 del puerto A. El bit 7 del puerto A sólo se puede uti-lizar si previamente se configura para funcionar en modo salida (Registro PACTL).

Para generar las señales de control los motores del robot, utilizamos los registros OC1M y OC1D del comparador 1, de manera que si el primero está a 1 (habilitado), el dato (0 ó 1) en OC1D se saca por el bit correspondiente del Puerto a cuando se produce una comparación en el OC1.

6.2.2 Conversor analógico−digital (A/D)

El microcontrolador 68HC11 tiene una serie de conversores analógico digitales que son bastante útiles y en nuestro caso utilizaremos para adaptar las señales proceden-tes de los telémetros de distancias del robot y para comprobar el estado de las baterías.

Una característica del 68HC11 es que proporciona dos entradas (VRL, VRH) de referencia para las conversiones. VRH se corresponde con el valor máximo y VRL con el valor mínimo. En nuestro diseño utilizamos el rango 0V− 5V.

(38)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 32

Se ha programado el conversor A/D con la opción de múltiples canales habilita-da (MULT=1) de manera que se realizan cuatro conversiones consecutivas en los cana-les del puerto E conectados a los tres sensores de distancias y al sensor del estado de las baterías del robot, de manera que el resultado de las lecturas se almacena en los regis-tros de memoria del A/D (ADR1 a ADR4) y se actualiza automáticamente cada 64 mi-crosegundos (128 ciclos de reloj) como podemos ver en la figura 6.3

Fig. 6.3 Secuencia de conversión del A/D

De esta forma, aprovechamos las cualidades del conversor A/D interno del mi-crocontrolador para obtener unas lecturas de los sensores en tiempo real, así como su presentación al resto de rutinas del programa desarrollado, que veremos a continuación en el siguiente capítulo dedicado a la programación, de manera “muy fresca” evitando así mismo tener que escribir codigo de programa adicional que ralentice el sistema de atención a interrupciones del microcontrolador.

6.3. Sistema microcontrolador desarrollado

El microcontrolador obtiene los datos de las distancias a las paredes frontales y laterales del laberinto a través de los telémetros que tiene conectados y utiliza esa in-formación para dirigir al robot a través del control de la trayectoria y velocidad de sus motores con el fin de encontrar la salida empleando una estrategia (algoritmo) diseñada previamente.

Las señales de control involucradas en el sistema así como su conexión al mi-crocontrolador se muestran en el diagrama de la figura 6.4.

(39)

Capitulo 6 Microcontrolador

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 33

(40)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 34 Capítulo 7

P

(41)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 35

7.1. Introducción

A continuación explicaremos el programa realizado para conseguir que el robot se mueva por el laberinto y encuentre su salida.

Básicamente, el robot utiliza las paredes del laberinto como referente para seguir una trayectoria de avance en paralelo a las mismas. Para ello, se basa en la información que le llega a través de los sensores de distancias laterales, mientras que el sensor cen-tral lo utiliza para detectar a tiempo las paredes que puedan aparecer de frente en su avance por el trazado del interior del laberinto, de forma que las pueda esquivar sin lle-gar a chocar.

Simultáneamente, el micro-robot es capaz de encontrar la salida del laberinto mediante un algoritmo de guiado que le permite hacer cambios entre las paredes del cir-cuito que está siguiendo.

Cabe destacar que el tamaño del programa completo desarrollado para el robot ocupa tan sólo 1400 bytes de memoria, es decir, algo menos del 75% de la memoria in-terna del microcontrolador.

7.2. Tareas desarrolladas por el microcontrolador

El programa está compuesto por una serie de rutinas de muy rápida ejecución, que concurren prácticamente en paralelo, dotando al robot de la capacidad de moverse por el interior del circuito y encontrar la salida. Dichas tareas se ejecutan cada 20 mili-segundos dentro del programa de atención a interrupciones del temporizador OC1 y son las siguientes:

- Algoritmo de navegación autónoma:

o Generación de la señal PWM (control de la velocidad del robot) o Seguimiento de paredes

o Detección de obstáculos

- Algoritmo de guiado del robot hacia la salida del laberinto:

o Cambios en las paredes a seguir o Esperas para realizar los cambios

7.2.1 Secuencia de RESET del programa

En la fig. 7.1 se muestra la secuencia de RESET mediante el cual el programa configura todos sus registros, e inicializa los motores para que el robot avance en línea recta, enciende el conversor A/D y procede a la ejecución del resto de rutinas para con-trolar el robot.

(42)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 36

Fig. 7.1 Secuencia de RESET del programa

El código fuente del programa completo, donde se puede ver la secuencia de RESET, se encuentra en el punto 9.5 del Anexo.

Según las normas del concurso, que se encuentran en el Pliego de Condiciones, el robot debe avanzar 30 cms. (hasta la siguiente casilla) en la dirección marcada por el vector de inicio antes de empezar a navegar, siendo penalizado en caso contrario.

Para ello se ha desarrollado una rutina de Búsqueda de Pared Inicial, que pode-mos ven el diagrama de flujo de la fig. 7.2, en la que el robot mira a izquierda, derecha y centro consecutivamente mientras avanza hacia delante hasta que se encuentra una pa-red con alguno de sus tres sensores. A continuación se activa una señalización (flag) co-rrespondiendo al tipo de pared detectada, que será utilizada posteriormente por los algo-ritmos de guiado del robot para empezar a navegar por el circuito.

(43)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 37

(44)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 38

Tras la ejecución de la rutina de Búsqueda de pared inicial el programa principal se queda “entretenido” con la comprobación de la tensión de las baterías, de manera que si están cerca de llegar a agotarse lo visualiza en los diodos LED del robot, mediante una secuencia de luces específica, de manera que se minimicen los riesgos derivados de quedarse sin baterías durante el desarrollo del concurso.

Fig. 7.2 Rutina de Visualización del estado de las baterías

El programa principal queda entretenido, a la espera de ser interrumpido cada 20 milisegundos por el temporizador OC1, que contiene todo el código del programa que guía al robot hasta encontrar la salida del circuito.

7.2.2 Control de la trayectoria del robot y búsqueda de la salida

Se ha utilizado el temporizador TOC1 para generar las señales PWM que contro-lan la velocidad de los motores, como se aprecia en la figura 7.3, así como para leer las distancias de los sensores y corregir la trayectoria del robot mediante el algoritmo del cambio de paredes a seguir y las rutinas de espera para el cambio de pared a seguir, el

(45)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 39

seguimiento de paredes y la detección de obstáculos. Todo ello en tiempo real, exacta-mente, cada 20ms, que es el periodo de la señal modulada por pulsos que el microcon-trolador envía a cada motor.

Fig. 7.3 Rutina de interrupción del TOC1

Cabe destacar que se han desarrollado rutinas cortas y ágiles para que se ejecu-ten a modo de comportamientos en paralelo capaces de dotar al robot de propiedades emergentes que faciliten la búsqueda de la salida del circuito.

En la rutina de generación de la señal PWM, cuyo diagrama de flujo se muestra en la fig. 7.4, aprovechamos los registros asociados al temporizador OC1 del microcon-trolador, de máscaras (OC1M) y de datos (OC1D) para generar la señal modulada por

(46)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 40

ancho de pulsos, por los pines del Puerto A asociados a cada uno de los motores en fun-ción de las trayectorias que queremos generar para el robot.

El registro Precarga2 contiene los diferentes tiempos de “Ton” de la señal PWM.

Fig. 7.4 Rutina Generación de señal PWM.

Para buscar la salida del laberinto, el robot avanza siguiendo las paredes izquier-da y derecha durante 15 y 5 segundos respectivamente, y consecutivamente, como ve-mos en el diagrama de la Fig. 7.5

(47)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 41

Fig. 7.5 Rutina de Cambio de pared

Llegados a este punto, y con el robot empezando a navegar por el interior del la-berinto, lo primero que hacemos es utilizar el sensor central para detectar las paredes de frente, de forma que cuando están cerca, es decir, a menos de 28 centímetros, que es la distancia óptima para evitar que colisione en función de su velocidad, se aleja de las mismas siguiendo la trayectoria marcada por la pared que viene siguiendo en ese mo-mento.

Para realizar los giros que permitan al robot seguir las paredes frontales, se han configurado las dos ruedas para que giren con sentidos opuestos (una hacia delante y la otra hacia atrás) y se ha reducido notablemente su velocidad, obteniendo como resultado que el robot “pivota” (gira sobre su propio eje) y puede continuar con su trayectoria sin alterar a penas su ritmo de avance.

(48)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 42

En el diagrama de la Fig. 7.6, que ilustra todo lo anterior, también podemos ob-servar como mientras el robot está realizando los giros para evitar los obstáculos, se in-hibe la posibilidad de cambiar de paredes, lo que redunda en una trayectoria final más estable y robusta.

(49)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 43

El cambio de paredes solamente se lleva a cabo cuando el robot tiene “a la vista” (a menos de 30 cms.) esa pared a la que se dirige, evitando de este modo la posibilidad de trayectorias erráticas e imprevistas, así como de colisiones con los cantos de algunas de las paredes del trazado del laberinto. Esto último, se ilustra en el siguiente diagrama:

Fig. 7.7 Rutina de Espera para cambio de pared

Si observamos de nuevo el diagrama de la figura 7.3, veremos que la última ru-tina contenida en el temporizador OC1 es la de seguimiento de paredes, que seguida-mente pasamos a comentar para finalizar este bloque.

El robot utiliza los sensores laterales para avanzar en paralelo a una pared man-teniéndose a entre 17 y 20 centímetros de la misma, es decir, aproximadamente en la

(50)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 44

mitad de los pasillos del laberinto. De esta forma, prácticamente no se ve alterada su trayectoria al efectuar los cambios de la pared a seguir.

Además, como se observa en el diagrama de flujo de la Fig. 7.8, se han añadido dos márgenes de seguridad, a las distancias de 16 y 21 cms., para dotar al sistema de mayor estabilidad en su trayectoria, especialmente cuando las paredes que sigue cam-bian bruscamente de ángulo, como sucede con las curvas del circuito (giros de 90º) o los cantos de las paredes y las “islas” (giros de 180º).

Fig. 7.8 Rutina de Seguimiento de paredes

En la siguiente figura, se muestra la trayectoria real del robot con sus oscilacio-nes iniciales hasta estabilizarse, en respuesta al trazado de una curva del laberinto, si-guiendo para ello el algoritmo de control de la fig. 7.8

(51)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 45

Fig. 7.8 Trayectoria real del robot en el seguimiento de paredes del laberinto.

7.3. Algoritmo de búsqueda de la salida del laberinto

Para que el robot pueda encontrar la salida del laberinto, hay dos planteamientos básicos iniciales:

1) Basado en el modelado del entorno y la planificación, como se aprecia en la figura 7.10, aprovechando el conocimiento a priori del plano del labe-rinto, no así el punto de inicio del recorrido, el cual tiene la ventaja de que una vez introducido en la memoria del robot, este podría encontrar la salida por el camino más corto, y la clara desventaja de su gran tamaño de código de programa que requiere de más memoria para su almacena-miento y recursos computacionales.

(52)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 46

Fig. 7.10 Paradigma secuencial de modelado/planeado

2)

Basado en un cierto grado de “aleatoriedad controlada” y propiedades emergentes, dotando al robot de instrucciones simples que den como re-sultado la resolución del laberinto con la ventaja de un consumo de recur-sos menor (memoria, periféricos, etc.) y de su mayor flexibilidad (sería capaz de encontrar la salida en otros laberintos con ligeras modificacio-nes en su configuración) y la desventaja de emplear algo más de tiempo en algunos casos, para encontrar la salida. Por otra parte, el algoritmo de-be ser suficientemente robusto como para evitar que el robot quede atra-pado dando vueltas a una misma zona del circuito, sin dar con la salida.

Fig. 7.11 Paradigma concurrente de comportamientos

En nuestro caso, y dentro de este último paradigma, se ha optado por dotar al robot de cierto grado inteligencia artificial que emerge de dotar al robot de un comportamiento con aleatoriedad controlada (rutina de cambio de pared) y el añadido de otras “capas” de comportamientos deterministas (rutina de espera pa-ra el cambio de pared) de manepa-ra que tpa-ras su fusión resulte que el robot siempre es capaz de encontrar la salida del circuito.

A continuación, y para una mejor comprensión del algoritmo de búsqueda de la salida del laberinto, se muestra un diagrama de estados conformado por las rutinas des-critas con anterioridad (en las figuras 7.5 y 7.7) de Cambio de pared y Espera para cam-bio de pared.

(53)

Capitulo 7 Programación

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 47

Fig. 7.12 Diagrama de estados del algoritmo de búsqueda de la salida del laberinto En el Estado 1, el comportamiento del robot consiste en seguir la pared derecha. Cuando pasan 5 segundos (en realidad pasan 5 seg. menos el tiempo que tarda en tener la pared derecha a la vista desde el Estado 4) cambia al Estado 2, en el que sigue la pa-red de la derecha y comienza a buscar la izquierda. Cuando el sensor tiene la papa-red iz-quierda “a la vista”, pasa al Estado 3, en el que el robot sigue la pared iziz-quierda; mien-tras que si no hay pared continúa en el Estado 2, a la espera de la detección. Si estando en el Estado 3, en el que el robot está siguiendo la pared izquierda, pasan ya los 15 se-gundos (en realidad son 15 seg. menos el tiempo que tarda en encontrar la pared iz-quierda estando en el Estado 2) cambia al Estado 4, en el que sigue la pared izq. y busca la derecha. Por último, si estando en el Estado 4 el robot tiene la pared derecha a la vis-ta, transita de nuevo al Estado 1, mientras que si no la puede ver aún, continúa en el Es-tado 4 a la espera de la detección.

Con este algoritmo de Cambio de paredes y espera para el cambio surgen las propiedades emergentes, como que el robot es capaz de encontrar la salida desde cual-quier punto en su interior sin perderse, ni atascarse y en un plazo de tiempo relativamen-te corto (que en unos puntos de inicio del recorrido será mayor que en otros). Además, cabe destacar que el programa demostró su robustez al introducir casualmente ligeras modificaciones en el trazado del laberinto a escala que se construyó en el stand de la Universidad Carlos III con motivo de la IV Feria de Madrid por la Ciencia en Ifema, en la que se pudo exhibir el robot en múltiples ocasiones, comprobando siempre lo expues-to con anterioridad.

(54)

Capitulo 8

Etapas de diseño y Conclusiones

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 48 Capítulo 8

E

(55)

Capitulo 8

Etapas de diseño y Conclusiones

Diseño de un Micro-Robot de Competición para Prueba de Laberinto

Proyecto Fin de Carrera de Alberto Cela Criado Pág. 49

8.1. Introducción

El objetivo que se planteó al inicio de este proyecto fue diseñar y construir un micro-robot que cumpla con los requisitos para competir en la prueba del laberinto del III concurso de micro-robots de la Universidad de Alcalá.

Cuando pensamos en el diseño de un robot tan complejo, se hace necesaria la di-visión del problema en partes más simples. En el apartado de diseño por objetivos de es-te capítulo se describe esa planificación en etapas sucesivas y los diversos problemas de ingeniería involucrados. El siguiente apartado, nos presenta las conclusiones así como la experiencia de participar en el concurso. Por último, se comentan algunas líneas de tra-bajo futuras e ideas sobre aplicaciones prácticas derivadas del presente proyecto.

8.2. Diseño por objetivos

Cuando pensamos en un laberinto como el de la figura 8.1, imaginamos un sis-tema extremadamente complejo, y en realidad lo es, pero si lo observamos detenida-mente, llegamos a la conclusión de que está formado por piezas de cuatro tipos como podemos ver en la figura 8.2.

Referencias

Documento similar