domingo, 23 de agosto de 2009

ENGENDRO I

Este es mi engendro, como su nombre indica:





Es un prototipo de microbot. Está gobernado por un microntrolador PIC 16F877. La tracción la dan dos servomotores FUTABA 3000 trucados para un giro total de 360º cada motor, y una rueda loca para los giros a derecha e izquierda. Dichos servomotores son gobernados por el driver L293B.

Lleva cuatro sensores de infrarrojo SHARP GP2D150A para detectar obstáculos a una distancia menor de 24 cm’s, dos sensores ópticos CNY70 para detectar y diferenciar líneas blancas de líneas negras y dos finales de carrera en la parte delantera, tanto izquierda como derecha, para detectar obstáculos al contacto.

La placa de control, además del pic, consta un conversor TTL/RS232 MAX 232 y un DB Sub 9 hembra para la comunicación por puerto serie para hacer, por ejemplo, un debugger y observar el funcionamiento paso a paso en pantalla, o bien para la grabación y reprogramación del pic in situ, sin necesidad de quitar el pic de la placa.


Todos los movimientos y funciones que pueda hacer el microbot son mostrados en un LCD de 2 líneas, 16 caracteres.

El microcontrolador se programa con el entorno de desarrollo integrado MPLAB IDE, en lenguaje C. Uso un programador JDM para grabar la primera vez el microcontrolador, asociado con el software WinPic800 o el IcProg. A partir de esa primera vez, utilizo el TinybldWin Bootloader para la reprogramación, ya que este software permite la programación por puerto serie y sin desconectar nada del circuito. Como requisito para la utilización de este software debo grabar un bootloader en la parte final de la memoria del pic para que pueda ser reconocido. Esto lo puedo hacer con el IcProg y el JDM.

Entre los múltiples comportamientos que puede realizar, actualmente trabajo en la forma de salvar obstáculos a distancia usando Redes Neuronales Artificiales (RNA’s). El microbot debe ser capaz de avanzar en cualquier entorno o laberinto sin chocar con ningún obstáculo. Para ello, primero le enseño cómo debe hacerlo; él debe aprenderlo y una vez lo ha aprendido por medio de las RNA’s, se programa con ese aprendizaje. A partir de ahí, debe ser capaz de actuar de forma independiente en condiciones en las cuales yo no le he enseñado pero que él sí que debe haber aprendido por medio del conocimiento generalizado.

Aunque las RNA’s puedan parecernos toda una ciencia, que lo es, no son tan difíciles al comienzo (sólo al comienzo) y nos ayudan a entender un poco nuestro propio aprendizaje y el aprendizaje de las máquinas que hoy día vemos como algo de ciencia ficción.

En la red hay infinidad de tutoriales para comenzar en este apasionado mundo.

No hay comentarios:

Publicar un comentario