En este caso, a partir del regalo de la maqueta de un camión, en concreto el Peterbilt 377 de Italeri, se me ocurrió la idea de añadirle algo de electrónica para darle un poco de vida.
Empecé considerando ponerle luces LED para intermitentes, luces de cruce, de carretera, posición, freno, marcha atrás y luz de trabajo (hacia la quinta rueda), además de las luces de cortesía de la cabina. Pero eso resultaba demasiado parecido al proyecto Luces avión a escala y requeriría un montón de cables entre la maqueta y una base que contuviese todos los interruptores necesarios.
Dándole otra vuelta más, se me ocurrió que quizá podría hacerlo de manera inalámbrica mediante transceptores (transmisores + receptores) de RF (radiofrecuencia). Pero éstos, para cumplir con el requisito de un proyecto económico, debían ser módulos de este tipo. El precio es bajo (alrededor de 6.50 €), pero, presentan un inconveniente: el número máximo de canales es cuatro. Eso implica que solamente podría tener cuatro interruptores o circuitos independientes para activar todas las luces, o bien, tendría que añadir codificadores/decodificadores para obtener más entradas/salidas. Además, o implementaba lógica adicional o enviaba un valor alto o bajo continuamente por cada canal para mantener encendidas las luces del camión, lo que supone un consumo "elevado" de corriente.
Entonces, investigando un poco me topé con algo que cambió mi concepción del proyecto por completo: el módulo bluetooth HC-05. Se trata de un módulo muy económico (menos de 5 €) con el que se puede enviar y recibir cualquier dato inalámbricamente mediante dispositivos que posean bluetooth. De hecho, los módulos HC-05 y HC-06 (Linvor) son idénticos con la salvedad de que el primero posee la capacidad de actuar en modo maestro y no solamente en modo esclavo, por lo que contiene dos conexiones adicionales (6 en lugar de 4).
Ahora ya podría controlar a distancia todo el sistema de luces del camión. ¿Pero cómo? Lo más versátil que se me ocurrió es a través de un dispositivo móvil o incluso ordenador con bluetooth. Para ello habría que desarrollar una aplicación nativa para el sistema operativo en cuestión o, mejor aún, aprovechar mis conocimientos del motor de videojuegos Unity 3D para crear una aplicación con gráficos 3D que emulasen el interior de la cabina de un camión, de modo que los interruptores para las luces fuesen los del propio juego.
Todo esto está muy bien, pero por mucha información que le enviemos a nuestro módulo HC-05, éste lo único que hace es recoger la información transmitida a través del aire y ponerla en cable a través de puerto serie para que alguien interprete esa información. Ese intérprete no es otro que un microcontrolador cuya lógica software permite la ejecución de determinadas acciones a la llegada de cierta información.
Recordando mis tiempos de estudiante en la universidad, ya había tenido algo de práctica con la programación de microcontroladores, en lenguajes ensamblador y C, siendo éste último el más empleado. Debía adquirir por tanto un grabador de microcontroladores para poderles "quemar" el software que desarrollase.
Haciendo un estudio de posibles dispositivos y principales fabricantes de microcontroladores, aunque en la universidad empleé los de Microchip, finalmente me decanté por los AVR de Atmel, que habían tenido un gran tirón recientemente, quizá debido a que son los que incorporan los módulos Arduino. Adquirí tres unidades del modelo Attiny84 y tres del Atmega328P-PU (el mismo que lleva Arduino Uno).
El Attiny84 contiene más que de sobra lo que necesitaba para iniciarme en la programación de microcontroladores de Atmel haciendo pruebas de encendido alterno de varios diodos LED, así como la regulación de su intensidad mediante la señal PWM (señal de onda cuadrada con anchura de pulso a nivel alto variable, dando lugar a voltajes de salida eficaces variables).
Actualmente, por falta de tiempo, solamente he podido probar el funcionamiento por separado tanto de los módulos HC-05 como de los microcontroladores. A continuación se muestra una prueba de comunicación entre el ordenador y el HC-05.
El puerto COM40 es la conexión bluetooth entre el PC y el HC-05 (inalámbrica) y el COM3 es la conexión por cable entre el HC-05 y el puerto serie del microcontrolador (que ahora vuelve al PC para debug). Lo que se envía inalámbricamente por el COM40 se recibe en el HC-05 y se retransmite a través del COM3. Además, se ha probado la comunicación a través de Unity 3D, resultando satisfactoria.
También he pensado añadir una cámara pequeña, TTL como ésta o ésta, dentro de la cabina y emitir en directo la imagen a la aplicación. De este modo se podría controlar de un modo mucho más realista la maqueta. Debido al ancho de banda necesario para transmitir imágenes en directo, el módulo bluetooth debería ser sustituido por un módulo WiFi, que ofrece una velocidad de conexión mucho mayor.
Actualmente existe un módulo muy barato, incluso más que el HC-05, y no es otro que el ESP8266 (no llega a los 3 € la unidad). Pero aunque su ancho de banda es mayor y es más económico, presenta ciertos inconvenientes que solamente pueden ser tolerados si las ventajas que aporta frente al bluetooth son relevantes. Está claro, que al ser WiFi, podemos tener acceso a él desde cualquier parte del planeta siempre y cuando éste se encuentre conectado a una red con salida a internet.
Ese es uno de los problemas que presenta el WiFi frente al bluetooth: el módulo tiene que configurarse cada vez que se cambie de ubicación para que se conecte a la misma red WiFi a la que el dispositivo con la aplicación si se quiere controlar localmente. Posiblemente pueda levantarse una red WiFi desde el propio módulo y que sea siempre el mismo, pudiendo ser buscado por el dispositivo de control, pero no he podido probarlo ya que aún no me ha llegado el pedido.
En cualquier caso, debido al alto coste que supone añadir una cámara, de momento queda fuera de los planes. También he previsto el uso de fibra óptica para las luces del camión que, debido a la escala, sean difícilmente reproducibles con LED, además del ahorro de consumo que supone poder iluminar muchos puntos a la vez mediante la luz emitida por un solo LED.
Finalmente, también he adquirido varios servomotores pequeños TowerPro SG90 (9g) por menos de 2 € cada uno para controlar la dirección (solamente un servomotor). A continuación pueden verse las pruebas realizadas sobre el funcionamiento de los servomotores gracias a código ejecutado dentro del microcontrolador Attiny84.