viernes, 27 de abril de 2012

SESIÓN 11 - Resolviendo laberintos

- ROBÓTICA ESCOLAR - 
¡Nuestros robots ya resuelven laberintos!

En la undécima sesión de trabajo :
  • Hemos terminado de construir nuestros dos prototipos de "robot resuelve-laberintos".
  • También se terminó de contruir un primer laberinto de pruebas fácilmente modificable.
  • Para calibrar los sensores, hemos construido una tabla de datos. Variando las distancia del sensor a un "trozo de muro" del laberinto, comprobábamos el valor numérico que dicho sensor devolvía al microcontrolador. Usando estos valores el robot sabrá en cada instante a qué distancia tiene un objeto.
  • Se ha realizado una prueba de funcionamiento para el sensor frontal de distancia. Consistía en recorrer un laberinto cuadrado y cerrado por dentro sin chocar. 
  • Después se ha hecho otra prueba similar para el sensor derecho. En este caso había que recorrer el laberinto anterior pero por fuera.
  • Por último hemos fusionado los algoritmos de las dos pruebas anteriores y con unos pequeños ajustes hemos conseguido que nuetros coches-robot ya sean capaces de resolver laberintos..




Robot 1 resolviendo el laberinto

Hasta ahora, en cada entrada de este blob, hemos ido descriendo cada sesión de trabajo conforme fue desarrollándose, es decir, cronológicamente. ¡Esta vez vamos a empezar por el final!
Vamos a comenzar mostrando cómo nuestro primer prototipo de robot ha sido capaz de resolver un laberinto de pruebas. Veámoslo.



El prototipo 1 de robot resuelve un laberinto





Por supuesto, antes a resolver el laberinto, tuvimos que hacer otra serie de tareas pruebas y comprobaciones.


Primer prototipo de robot resuelve-laberintos finalizado
 .
A continuación  mostramos varias fotos detalladas de nuestro robot.

Prototipo 1 de robot resuelve-laberintos



Vista trasera del robot



Detalles de los sensores de distancia frontal y derecho





Calibración del sensor de distancias
Para cada distancia, de 3 a 30cm y de centímetro en centímetro, anotamos el valor que internamente manejaba el microcontrolador obteniendo la siguiente tabla:

Tabla realizada a partir de mediciones con el sensor


Aquí puede verse una imagen de cómo se llevó a cabo la calibración.

Para realizar la tabla anterior fuimos poniendo un muro a distintas distancias




Prueba 1 para comprobar el sensor frontal de distancia del robot 1

Para comprobar el funcionamiento del sensor de frontal de distancia, hicimos un programa en el que al encontrarse "pared" de frente, el robot tenía que girar a la izquierda.
Por tanto debería ser capaz de recorrer un muro cuadrado y cerrado por dentro.

Probando el sensor frontal. El robot debe seguir el circuito por dentro.

El programa que se utilizó para esta primera prueba se encuentra en el siguiente enlace:




Prueba 2 para comprobar el sensor derecho de distancia del robot 1

De forma similar a la anterior, programamos el robot ahora para que cada vez que no detecte "pared" a su derecha, gire a la derecha.
De esta forma ahora el robot debería ser capaz de recorrer el circuito anterior, pero por afuera.

Probando el sensor derecho. El robot debe seguir el circuito por fuera.

El programa que se utilizó para la segunda prueba se encuentra en el siguiente enlace:



Ya solo quedaba unir los dos programas anteriores y resolver un laberinto, como se vio en el vídeo del principio de esta entrada del blog.









Segundo prototipo de robot resuelve-laberintos finalizado

Mostramos a continuación el segundo prototipo de robot que hemso realizado, prácticamente igual que el anterior, pero ligeramente mayor.

Prototipo 2. Tiene más espacio. El portapilas puede ir tumbado.



Aquí se ven todos los componente del robot.



Vista trasera del segundo robot



Robot 2 resolviendo el laberinto

Este robot es más grande que el anterior.
Le pusimos directamente el mismo programa, y aunque con alguna dificultad, también logró salir del laberinto.

Prototipo 2 también resolviendo el mismo laberinto.