Espejito, espejito, ¿quién es el más listo de este laboratorio?
Este proyecto se ha desarrollado como requisito para aprobar una asignatura en la Universidad Pública de Navarra (UPNA). El objetivo principal era organizar y planificar correctamente un proyecto electrónico con una fecha límite.
Para crear este producto acabado se han combinado conocimientos de diseño y electrónica. Por una parte, se trata de un concepto moderno, algo que querrías enseñar a tus amigos y familiares, pero por otra, no deja de ser un mueble útil que puedes integrar en tu casa y que a primera vista parece un objeto normal.
Bajo la superficie, encontraremos una combinación de dos microcontroladores que, unidos, controlan todos los componentes (tira de LED, micrófono, módulo Bluetooth y dos sensores capacitivos).
El efecto de infinito se consigue con el uso de dos espejos. El que está ubicado en la parte inferior es un espejo normal, mientras que el otro es unidireccional, por lo que solo refleja la mitad de la luz y permite que el resto lo atraviese. Las luces LED se sitúan entre ambos y, cada vez que la luz impacta en el espejo superior, parte de ella vuelve a crear el siguiente reflejo de los LED. Cada capa es la mitad de brillante que la anterior, por lo que se crea una ilusión de profundidad.
Mediante esta ilusión, hemos creado diferentes funciones, como una onda interactiva con colores personalizables activados por los sensores capacitivos, un juego de ping-pong para dos jugadores, un color estático escogido por el usuario, un efecto de arcoíris giratorio, una función de linterna con los LED blancos encendidos, un relámpago dinámico controlado por un micrófono, etc. Todas estas funciones se controlan mediante una aplicación de Android, creada con la web MIT App Inventor, que se conecta por Bluetooth con un módulo HC-06 incluido en la mesa.
En la primera etapa del proyecto usamos dos placas Arduino UNO en lugar de una PCB personalizada para comprobar si nuestras ideas eran factibles. Una vez verificado, usamos el software gratuito de diseño de PCB electrónico DesignSpark PCB para diseñar nuestra propia PCB, que sustituyó a las placas Arduino con dos ATMEGA328P independientes que se programaron mediante Arduino IDE.
La tira de LED es indexable, lo que significa que, al enviar los datos de un color al primer LED, este envía su color actual al siguiente, etc. Usamos la biblioteca NeoPixel de Adafruit para la comunicación entre el microcontrolador y la tira de LED. El rendimiento de la biblioteca fue lo suficientemente bueno para implementar las animaciones rápidamente.
Por último, usamos la técnica de grabado láser para insertar un código QR en la mesa. Es una herramienta útil para los usuarios, pues les permite descargarse la aplicación y la documentación.
Este vídeo muestra la mesa y todas las funciones descritas anteriormente: