Proyecto Robot autónomo

Este ambicioso proyecto de un robot autonomo me obliga a conjugar la programacion en asembler ,Delphi y diseño electrónico ya que he evitado en todo lo posible el copiar otros diseños . Esto me ha exigido el leer mucho, lo cual es bueno, y a pensar muchisimo para resolver los problemas que me voy encontrando.. lo cual no se si es bueno ya que me queda poco pelo.
En los planteamientos de la estructura del robot el mayor temor que he tenido ha sido a quedarme pobre de recursos, no solo economicos, de capacidad y velocidad de proceso. Desde el principio ya planteé el robot con sus capacidades de habla y escucha y con la mayor cantidad de sensores posibles para que sea capaz de desenvolverse en un entorno desconocido .. y no raye las puertas de madera de las habitaciones.
Antes de tocar ningun tornillo ni soldar nada tube que comprobar mi capacidad para hacer un programa de PC capaz de escuchar ..analizar las palabras y dar una respuesta hablando y escuchando en español. Esta respuesta puede ser hablar o enviar ordenes a los motores, también este PC debe recibir datos continuos de sensores para saber los estados del entorno del robot y ser capaz de hacer inferencia con los procesos inferiores.Aplico la vieja máxima de dividir los problemas, utilizo un micro PIC de control de motores, otro a los sensores y un tercero que une todo: notores,sensores y PC. de esta forma aislo los problemas inerentes de cada trabajo pero me obliga a una comunicación continua entre ellos protocolizada de alguna manera y fiable además de rápida ya que cuando todo está en movimiento el flujo de datos entre todos es abundante.
He procurado simplificar todo lo posible, he evitado grandes protocolos y circuitos sofisticados con componentes exóticos.

A cada microprocesador le he puesto un nombre, dado que me he embarcado en esta aventura los he bautizado con nombres marineros.
El "comandante" es un PC con una placa VIA Epia miniITX muy pequeña metida en una caja que la alimenta a 12 V. ,esta placa lleva un soft que se encarga de la comunicación con el "navegante" vía puerto serie, de la escucha y habla y tambien un servidor telnet por el que podemos conectarnos de dos modos :comandos telnet y mediante un programa de gestión remoto resolviendo con los datos que le llegan del "sonar" y enviando ordenes a "maquinas" con los movimientos.
El "navegante" es el encargado de la inteligencia inferior o de supervivencia, tiene a su cargo el llevar a buen puerto el robot y saber ejecutar las ordenes del "comandante"
"Sonar" está siempre escuchando, tiene a su cargo seis sensores ultrasónicos SFR04 y seis bumpers de colisión ,informando al navegante en valoras absolutos de distancia.
Cuando hay que moverse es el "maquinista" el responsable de activar los motores con sentido de marcha ,velocidad y giros apoyado con la rueda trasera de timón.

Una de las mayores ventajas de la división del trabajo es que cada microprocesador esta especializado y sobre todo recibe comandos de alto nivel, así si hay que moverse el "navegante" le envía el comando de "adelante" al maquinista y este arranca motores asegurando el sentido de marcha .. si le decimos "derecha" varía las relacciones de velocidad de las ruedas y ajusta la rueda de dirección en el sentido correcto a la dirección de marcha.
De este modo todas las ordenes desde el comandante al maquinista se hacen por comandos y cada elemento sabe lo que tiene que hacer compartiendo la carga de trabajo ..... y complicandome la vida a mi ..pero es parte de la diversiónEstoy ,como te puedes imaginar, continuamente retocando y mejorando el robot así que todo esto es provisional. Por cierto .... le he puesto de nombre Marcelo... lo reconoce muy bien el sistema de voz .