Como os comenté en la entrada anterior, quedaba pendiente que la luz estroboscópica, que puse para que el efecto de cortocircuito fuera aún más real, funcionara. Voy a explicar como lo he hecho porque es algo que no había usado y me parece muy interesante para los que tenéis instalado marcduinmo en vuestro droide.
Voy a intentar explicar como estaba antes y cual era el problema actual, pero primero, voy a explicar como estoy activando esta luz.

La luz se activa mediante un relé temporizador. Esto es un dispositivo que una vez llega el punto de activación del relé, este estará activo por x segundos y después se apagará solo. Esté es un ejemplo de este tipo de relés. Los segundos son configurables. Además permite otro tipo de secuencias, pero para nuestro caso, la que nos interesa es esa. Llega activación al relé –> este funciona durante 12 segundos en mi caso. La propia luz estroboscópica ya tiene el efecto ese de parpadeo. Esta es la que yo tengo.
Una vez explicado esto vamos a ver como estaba antes y la solución actual.
ANTES
Si recordáis, antes tenia una placa arduino que leía lo que expulsaba el Kyber y lo traducía a comandos marcduino. Es decir, yo sabía cuando se había pulsado el boton de «hacer cortocircuito». Así que era muy sencillo, desde la placa Arduino activaba (ponía a high) un pin que activaba el relé de la luz estroboscópica cuando detectaba que se había pulsado el botón de cortocircuito.
AHORA
Ahora el kyber se comunica directamente con marcduino sin ninguna placa intermedia. Esto hacía que no tuviera forma de saber cuando se había pulsado el botón y por tanto no sabía como activar el relé. Estuve un tiempo pensando soluciones, alguna bastante disparatada… hasta que recordé que las placas marcduino tienen conexión para una tercera placa. Si amigos, desde la placa marcduino esclavo puedes conectar en seríe una tercera placa a su puerto seríe a 9600 baudios. Pero ¿qué códigos se pasan a esa tercera placa? La página de curiousMarc nos da la solución:

Traduciendo: Los comandos que empiezan por % son pasados desde la placa esclavo por su puerto de salida, quitando el prefijo %. Es decir, que si yo mando a marcduino el comando %LUZ\r , se expulsará LUZ\r por ese puerto serie.
Así que la solución es clara. Sólo tengo que escuchar lo que expulsa ese puerto seríe, y cuando llegue LUZ, activar el relé. Ese código estará en la placa arduino que controla el periscopio y el sable, así reducimos el número de placas. Esa placa y la luz están en el aro del dome, y la placa marcduino está en el propio dome, así que bajaremos esa señal por el slipring.
Ahora sólo queda mandar el comando LUZ. Y eso es muy fácil, sólo lo tenemos que añadir a la instrucción que mandamos desde el kyber. Algo así:

El resultado es este:
Os aseguro que el efecto queda mucho mejor en persona que en el video 🙂
Así que ya sabéis, podemos leer salidas desde marcduino usando el comando %.
BONUS TRACK
Además de poner la luz, he hecho lo último que me quedaba de los astropixels. Cambiar el Brezel de Rear Display. El tema es que los teeces tienen 5 filas de leds, y astropixels solo 4, así que esa pieza no me valía. Por suerte, se pueden encontrar los archivos de esos bezels e imprimirlos en 3D.
Os dejo unas fotos de la pieza y de como queda puesta.


Hemos hecho muchas cosas de la lista de tareas. Lo siguiente será cambiar un par de servos que están rotos y probar las baterías LiPo, a ver que tal funcionan. Ya os contaré….
Deja una respuesta