miércoles, 5 de marzo de 2008

Algunos problemillas

En nuestra siguiente sesión de laboratorio nos proponemos incorporar a la araña un brazo robótico que nos servirá para colocarle el sensor infrarrojo y así poder realizar barridos en busca de la señal proveniente del faro.

En el laboratorio conseguimos otra araña, distinta a la que habíamos probado el día anterior, que ya tenía montado el brazo robótico así que nos parece una buena idea utilizar esta en lugar de montar un brazo en la otra. Pero antes hemos tenido que corregir algunos problemas que nos han surgido:
- El primero de ellos es que algunas piezas encargadas de trasmitir el movimiento del servo a la pata de la araña se han salido de sus tuercas. Para solucionarlo hemos tenido que quitar algunas piezas para poder situarlas de nuevo correctamente.
- El segundo hace referencia a la controladora de servos, mostrada en la imagen:


Para nuestra aplicación utilizamos 15 servos (12 para las patas y 3 del brazo). El problema reside en el slot 2 de la controladora segunda no funciona correctamente como hemos podido comprobar. Esto tiene fácil solución: no usarlo. Pero este servo era utilizado por el programa para enviarle información del movimiento de una pata, por lo que hemos tenido que modificar el código para que ese movimiento sea enviado al servo 8 de la controladora 2 (en el cual conectamos el que antes estaba conectado al 2).
- Otro problema que nos sorprendió en un principio es que al ejecutar el programa, una pata se colocaba de inicio en una posición que no correspondía (a priori) con la que el programa le transmitía (la posición media: 127). Como pudimos comprobar, el fallo no era del programa, ni del servo, ni de la comunicación. En realidad estaban ocurriendo dos cosas que trataremos de explicar lo más sencillamente posible. Para entenderlo, diré que se solucionó corrigiendo (destornillador en mano) la posición incorrecta de la pata. Es decir, como esta pata debía estar situada en el medio (porque así lo indicaba el programa) y no lo estaba, pues la desatornillamos y la fijamos en la posición media real. De esta forma al iniciar el programa ahora sí están todas situadas en la posición media. El siguiente experimento nos saca de dudas sobre lo que estaba ocurriendo. Al conectar la alimentación de la araña, la controladora manda a sus servos una posición inicial que tiene preprogramada. En principio esta dirección es la 127 (posición media). Pues bien, al hacer esto, la pata conflictiva aparece unos 45º desplazada respecto de su posición media, lo que nos hace pensar que la posición inicial que la controladora envía no debe de ser la 127. El programa sin embargo sí envía la 127 y la pata se coloca bien en su posición media.
Deducimos entonces que el problema era en realidad dos: la posición media del servo y posición media real no coincidían y que la controladora no envía la posición inicial 127, sino otra. Esto no es en realidad problemático para nuestra aplicación.

Tras haber solucionado estos problemas, conectamos los servos del brazo a los que nos quedan libres en la controladora. Nos quedan libres sólo tres, puesto que uno no funciona.

La hormiga ya anda

Primer día de laboratorio y primera toma de contacto con nuestro principal instrumento: la hormiga. Hormiga por decir algo porque más bien parece una araña o, como se verá más adelante con la incorporación de un brazo robótico, un escorpión.

Hemos centrado el trabajo en familiarizarnos con el entorno de trabajo: fuentes de alimentación, coldfire, entorno de desarrollo... Nuestro primeros problemas aparecen en lo respecticvo a la alimentación. La hormiga que nos han proporcionado en el departamento está configurara para que la alimentación de las controladoras de servos y de los propios servos sea común. Esto plantea un problema ya que los servos consumen bastante potencia y deja a las controladoras sin apenas alimentación para su correcto funcionamiento. Esto se nota en que al "encender" la araña, los LEDs que indican la alimentación de las controladoras parpadean y éstas se resetean continuamente.
Decidimos pues, alimentar controladora y servos de forma independiente. De este modo la araña ya tiene suficiente fuerza para mover sus aparatosas patas. El programa que controla el movimiento de nuestra araña nos es facilitado gracias a que Felix Mencías y Alberto Hijosa desarrollaron en su día un completo tutorial al respecto. Cargamos pues el programa en el Coldfire y observamos que nuestra hormiga no camina como debería, sino que se tuerce. Este problema ya nos lo esperábamos ya que el programa que estos dos becarios desarrollaron estaba orientado a una versión anterior de la hormiga. Luego el fabricante decidió evolucionar la hormiga a araña e introducir un cambio fundamental respecto a la versión anterior. Esta modificación afecta a los servos dedicados al movimiento vertical de las patas derechas. Éstos están colocados a la inversa que en su predecesora, por lo que hubo que alterar el código para invertir estos movimientos.

Su trabajó costó localizar qué servos en concreto había que modificar pero finalmente se logró el objetivo del día. La araña ya es capaz de caminar y girar en todos los sentidos.