jueves, 22 de mayo de 2008

Competición de velocidad

Nuestra última aportación a esta práctica ha sido una mejora para que la hormiga camine más rápida y tenga opción de ganar en la prueba de velocidad.

Lamentablemente olvidamos grabar un vídeo, pero no cronometrarla: Tardó aproximadamente 18 segundos en recorrer un metro.
Como es lógico esta prueba debe hacerse sin la placa que contiene la circuitería del receptor de infrarrojos, puesto que en ese caso, el peso de ésta haría ralentizar el movimiento.

miércoles, 14 de mayo de 2008

Boya móvil

Otro vídeo de como se orienta la hormiga. En este además podemos apreciar que, incluso moviendo la boya, la hormiga se va reorientando hacia ella.

lunes, 12 de mayo de 2008

Hormiguita no hay camino, se hace camino al andar

Al fin vemos la luz al final del túnel. La hormiga ya es capaz de orientarse debidamente hacia el emisor de infrarrojos, situado a una distancia aproximada de 1.70 m. Y no sólo si éste está de frente, sino también si está de espaldas a la "cabeza" de la hormiga.
A continuación explico el funcionamiento básico:
La hormiga lleva incorporada en el extremo inferior de la "cabeza" el sensor capaz de detectar un haz de luz infrarroja. La circuitería está preparada para que la detección sea de una onda cuadrada de frecuencia 38Khz. Dicha circuitería estima el nivel de señal recibido y entrega un "1" al Coldfire en caso de recepción y "0" en caso de no recepción.
El software tiene programado una interrupción cada 100ms que comprueba si en el pin establecido del puerto de entrada recibe un "1" o no. En caso afirmativo, configura el sistema motriz de la hormiga con un índice de giro en función de la posición del servo de rotación del brazo en el instante de la recepción.
  • Este proceso se realiza sin cálculos matemáticos: un estímulo (recepción), una respuesta (orientación). Este sistema tiene un inconveniente que estamos tratando de solucionar. Funciona muy bien para las distancias largas, pero falla en las distancias cortas. A poca distancia del emisor, aumenta mucho la frecuencia con que se recibe "1" y por tanto la hormiga no para de recibir información sobre cambios del índice de giro. Esto produce en la hormiga una sensación de "no saber qué hacer" que se traduce en "cada pata va a su aire". Se reduce mucho la velocidad pero (ventaja) al final acaba llegando justamente al emisor. Este sistema es el que se ha utilizado en el vídeo.
    Se hace camino al andar porque nunca deja de reorientarse. A medida que anda, rastrea.

    Una fácil solución a esto podría ser programarlo para que cuando detecte una posición central, simplemente camine recto, deshabilite las interrupciones y menos líos. Dos inconvenientes tiene esto:
    1. No llega exactamente a la boya (puede llegar a tener un error de más de medio metro)
    2. Pierde la funcionalidad de "seguir al emisor". Es decir, que el emisor se pueda mover y la hormiga va siguiéndole. Nos gustaría mantener esta libertad a modo de mejora.

  • El sistema alternativo es tomar varias muestras (3 por ejemplo) y hacer la media de las tres para tomar la decisión de orientarse. Este sistema es ventajoso en cuanto a que los movimientos de la hormiga son más "limpios", mantiene la velocidad más o menos constante, funciona bien a distancias cortas pero hay situaciones en las que no funciona del todo bien. La explicación que se nos ocurre es la siguiente: Cuando la hormiga está girando (para dar la vuelta al principio por ejemplo), las posiciones de referencia para reorientarse, que son las de la rotación del brazo, están desvirtuadas porque no se está teniendo en cuenta que la hormiga está girando, por lo que si se toman varias medidas y se hace la media, puede ser que camine hacia un lugar en el que para nada está el emisor.
    Sin embargo este sistema experimentalmente funcionaba bastante bien, aunque fallaba en la mitad de las situaciones probadas.
    Tampoco hemos podido profundizar mucho en esta manera porque hemos tenido problemas al monitorizar lo que hace el programa con las posiciones recibidas. La información que nos aparece en pantalla en incoherente y no es la que esperamos desde luego. Aún no conocemos las razones.

Trataremos ahora de encontrar la mejor solución y mejorarla en la medida de lo posible.
De momento este vídeo en el que se demuestra que la hormiga llega, que no es poco.

Making of...

Aquí van algunas fotos del laborioso trabajo de montaje del receptor de infrarrojos y la circuitería asociada en la hormiga. Con mucha maña y alguna que otra chapucilla...



martes, 6 de mayo de 2008

Integración del receptor en la hormiga.

Para integrar el receptor en la hormiga, hemos metido la placa en el interior de la hormiga como podemos ver en la siguiente imagen:


Además, el receptor (BPW41) más el tubo los hemos integrado en una placa de tiras muy pequeña y mediante unos cables llevamos las bornas del receptor a la placa y lo hemos colocado en el extremo del brazo. Lo podemos ver en la siguiente fotografía:


Para alimentar la placa del interior de la hormiga, hemos optado por poner una alimentación independiente debido a que si la cogemos de los servos introducen mucho ruido y en la controladora tenemos 8V y nosotros necesitamos 5V y -5V. La masa del circuito es la masa común de la controladora.
Lo hemos probado y tiene una distancia de 1.5m aproximadamente de recepción.


Podemos ver como funciona en el vídeo posterior:






El problema que tenemos actualmente es la poca distancia de recepción y que cuando lleva mucho rato los servos pierden fuerza y se queda parada como "tiritando". Trabajaremos para solucionarlo.
Todos los vídeos que llevamos están disponibles en
http://es.youtube.com/hormigaLsed08

Avances en hardware

Ante la imposibilidad de fijar un comparador de nivel que nos diese un valor de 5V a todas las distancias asi que sustituimos el módulo del comparador de nivel por dos inversores de histéresis seguidos pa no negar la lógica de las señales. Estos inversores de histéresis como ya sabemos si tenemos una señal por debajo de 3.3V o 2.7V(depende de si es TTL o CMOS) la pone a 0V y si está por encima la lleva a 5V.
El problema que teníamos es que el receptor tiene un ángulo de recepción de +/-65º y es demasiado para que la hormiga se oriente correctamente y llegue a su destino. Para ello, hemos integrado un tubo de plástico negro que nos reduce muchísimo el ángulo de recepción haciéndolo muy pequeño.
Podemos ver como funciona con el tubo en el siguiente vídeo: