Nuestro propio condensador de fluzo parte 3: Electrónica
En este apartado vamos a describir la parte de ingeniería del proyecto. Tal vez la que de más quebraderos de cabeza, y de la que más conocimientos requiere. Por supuesto, esto es una interpretación libre, pero se puede diseñar de otra forma, con otra funcionalidad. Lo bueno que tiene Arduino y la electrónica es que cada vez la frontera de la imaginación está más cerca de la realidad.
Importante!! Tened en cuenta que esta parte es bastante técnica y requiere unos conocimientos un tanto avanzados en electrónica digital. No puedo enseñar paso a paso todo lo que hay detrás del condensador, esto es sólo una guía de cómo lo hice. Detrás hay muchas asignaturas de electrónica en la carrera, y experiencia propia. Si al leerlo, te queda más o menos claro, y puedes sacarle mejoras, enhorabuena! Doc Brown estará orgulloso de ti. Si por el contrario no entiendes casi nada de lo que explico, me temo que el condensador te queda un poco grande. Yo no podré ayudarte más. Este proyecto no es sólo cargar un sketch en un arduino, es diseñar circuitos digitales, programar microcontroladores, diseñar placas, soldar, depurar los circuitos, frustrarse cuando has metido la pata y no sabes donde… Si nunca has hecho nada de eso, mejor empezar por algo más básico.
Importante2!! Todos los derechos de esta obra pertenecen a sus respectivos autores. No poseo los derechos sobre Regreso al Futuro. No obstante, esta obra está bajo licencia Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
Esquemático
A continuación os adjunto el esquemático de toda la electrónica del condensador, y que describiré en este post.
Listado de componentes
A continuación os adjunto la lista de componentes que ha volcado el Eagle del esquemático. Como veis, son todos componentes discretos, un arduino nano (aunque el esquemático ponga que es mini), el wtv020… En conjunto debe andar todo por los 20 euros, dependiendo de dónde lo compréis
A mayores, necesitaréis:
- El módulo para visualizar la velocidad, que lo podéis encontrar en ebay por menos de 3 dólares. Buscad por 4 bits digital led tube display.
- Un módulo de Bluetooth, para intercambiar mensajes entre el móvil y el condensador. Podéis encontrarlo en ebay por unos 4 euros.
- Un voltímetro analógico, que yo lo saqué desguazando un voltímetro barato de los chinos.
- Un amplificador de audio. Yo compré uno en Ebay por 3 dólares, un tda7266.
- Un altavoz… El mío lo saqué de un viejo televisor tirado en la calle.
- Todo lo necesario para montar la placa. Yo opté de nuevo por una perfboard interconexionada con hilo de wrapping AWG32.
Electrónica del Condensador de fluzo
Lo más característico del condensador son las tres hileras de leds en forma de Y que parpadean en secuencia. Ese es un trabajo ideal para un contador 4017, al igual que hicimos con la protonpack y la powercell. Nada fuera de lo común. Lo hemos pensado para poner cuatro leds en la hilera, intercalados con los leds blancos de viaje en el tiempo.
Podéis pensar en gobernar los cuatro leds con cuatro salidas analógicas del arduino. Funciona, pero, cuando montéis todo, os daréis cuenta que hubiera sido mejor ahorrar pines, porque os harán falta. Así que la solución que he implementado es gobernar el 4017 con un 555 como reloj, y tales pulsos, dárselos yo con una salida digital del micro. De esta forma, de las cuatro salidas digitales que tendríais que usar para los leds, pasaríais a necesitar solo una.
Los leds de viaje en el tiempo requieren de otra salida independiente del arduino. Por tanto, para controlar todos los leds, sólo necesitáis de dos salidas digitales.
¿Cómo se gobierna el condensador? Para simular el viaje en el tiempo, hemos hecho una aplicación para android que envía comandos al propio condensador. Esta parte la describiremos en el apartado app. La forma de conectar el condensador con la app es mediante bluetooth. Toda la lógica y procesamiento la he dejado en el dispositivo móvil, de tal forma que arduino es «tonto», simplemente hace lo que el móvil le envía.
De esta forma, cuando el móvil le envíe al arduino el comando «Vas a x km/h», arduino simplemente escribirá en el velocímetro la velocidad.
Incluso he descargado al arduino de la tarea de calcular las frecuencias de parpadeo de los leds. Es el propio móvil el que se encargará de enviarle el tiempo en el que generar los pulsos de reloj para hacer el parpadeo de las luces del condensador. Si el móvil no está encendido el condensador parpadeará con la frecuencia de velocidad cero.
Por tanto, lo más complejo que tiene el sketch de arduino es implementar un parser que interprete los comandos que el dispositivo móvil le envía. La reacción a ellos es inmediata: o escribir la velocidad, o generar un pulso de reloj, o iniciar el viaje en el tiempo.
Cuando el arduino recibe una velocidad superior a 88 km/h (lo hemos reducido de 88mph, o 140km/h a 88km/h, por seguridad, no es legal en España alcanzar esa velocidad en ninguna carretera), éste iniciará el viaje en el tiempo: se encenderán los leds blancos, se reproducirá el sonido del viaje en el tiempo, y, al acabar, se vaciará la cámara de plutonio, y el led indicador de la cámara, empezará a parpadear. Para rellenar otra vez la cámara de plutonio, he habilitado un botón en la app para recargarlo. A continuación lo veremos en detalle.
Para reproducir los sonidos de viaje en el tiempo, he utilizado el socorrido a la par que puñetero WTV020. Como el módulo no saca demasiada potencia, le he acoplado un amplificador de audio. En ebay hay un montón de ellos por tres dólares, y que funcionan muy bien. Yo compré el tda7266, y lo conecté a un altavoz de una televisión vieja que encontré tirada en la calle.
Arduino
Como os he adelantado, Arduino será el encargado de coordinar las órdenes que le lleguen a través de la app. Él dará los pulsos de reloj para activar el 555, que a su vez, activará el 4017, se encargará de mandar las órdenes al módulo de audio… Etc.
El sketch no es nada del otro mundo, pero por el momento no voy a poner el código en la web, porque quiero adecentarlo un poco más, porque de momento lo tengo para andar por casa. Ya os digo que lo más complicado es hacer el parser, el resto es pan comido.
La app
Como he avanzado, la app es la que va a tener prácticamente toda la lógica y potencia de cálculo: se encargará de comunicarse por el condensador vía bluetooth, en caso de tener el gps activo, se encargará de calcular la velocidad, y mandársela al condensador, o, si no está el gps activo, mandará la velocidad que simulemos a través de un slider. También enviará la señal de reset, y los comandos del reproductor de música.
He dividido la app en dos pantallas principales: La pantalla del velocímetro, y la del reproductor de música (auxiliares está la de debug, y la de ajustes, que aún está en proyecto). En la parte superior siempre estará visible la botonera para cambiar de pantalla o conectar.
En la pantalla del velocímetro, como he dicho, se mostrará en el velocímetro digital o el valor de velocidad del slider, o, de estar el gps activo, la velocidad calculada. Para el cálculo de la velocidad he utilizado la fórmula de haversine, y funciona relativamente bien. Para eliminar el ruido, le he aplicado un pequeño filtro acumulativo a la serie de medidas… Bueno, no quiero entrar mucho en detalles, pero como veréis, todavía tiene mucho ruido, con lo que tengo que seguir investigando. Aún tengo que ajustar bien los dígitos…
La pantalla del reproductor, como veis, es muy sencilla, no tiene nada de especial. En el apartado extras veremos un poco más en qué consiste:
Cámara de plutonio
La cámara de plutonio es, realmente, un voltímetro. La solución más sencilla para mi fue ir a los chinos, comprar un voltímetro analógico, el más cutre que había de tres euros, desguazarlo y quedarme sólo con la parte del medidor. Un par de resistencias en serie en la salida digital que indica el estado de la cámara de plutonio, y listo. Sencillo y efectivo.
Un poco más enrevesado es el circuito de parpadeo del led que indica que la cámara está vacía. Merecía la pena dejar libre a arduino de esa tarea tan rutinaria, así que la he hecho con un circuito astable hecho con un 555, y gobernado su señal de RESET por la misma salida digital que genera el arduino, y que indica el nivel de carga de plutonio en la cámara. Sólo hay una pega: El RESET es activo a nivel bajo, lo que implica que no nos vale la misma señal de la cámara de plutonio, sino que es esa misma señal negada. Fácil tarea para un negador hecho con un transistor de propósito general como el 3904.
Velocímetro
Esto se puede hacer exactamente como la peli (un display de siete segmentos y dos dígitos), pero he decidido no complicarme la vida, puesto que implementarlo necesitaría de bastantes más pines del arduino. Así que me fui a lo sencillo: utilizar un módulo que existe en internet, buscad por «4 bits digital tube led display», y os saldrán un montón de resultados en ebay, y por menos de dos euros. Lo mejor de todo es que dentro tiene un controlador que te permite controlar el display con sólo dos salidas, puesto que utiliza el protocolo I2C. Podéis buscar por internet, la gente se ha currado unas librerías muy guapas que te facilitan un montón el trabajo. Chapeau por ellos!
Extras
Como todo proyecto friki que se precie, debería tener un reproductor de música para reproducir la banda sonora. Y eso lo hemos implementado en otra pantalla de la aplicación. De esta forma, cuando queramos podemos hacer que desde el móvil, suene la banda sonora de la peli a través del propio condensador!! La app tiene 6 bancos de memoria en los que almacenar los tracks para reproducirlos de manera más sencilla. No tiene nada fuera de lo común, simplemente enviar comandos de cambiar de banco de memoria, play, pause, stop… Si has llegado hasta aquí, esto son dos horas muy gratificantes, porque las harás en seguida.
Unas cuantas fotos
Y un vídeo de demostración
El futuro…
Aparte de mejorar esta versión, aún quedan unos puntos futuros a desarrollar cuando tenga un poco de tiempo:
- Mr fusion: ya tengo una idea de cómo se podría hacer y funcionará. Evitará tener que recargar
- Refinar el algoritmo de suavizado de la velocidad. El actual aún tiene demasiado rizado en las mediciones.
Flux Capacitor por http://www.furgalladas.com se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
Basada en una obra en http://www.furgalladas.com.
Deja un comentario