Introduction: Multieffect Arduino LED Matrix Controlada Por Bluetooth

La idea de crear una matriz así me rondaba la cabeza desde que vi el primer vídeo en youtube Make your own 10x10 LED Matrix.

En mi caso el montaje es algo diferente ya que puse las tiras de LED enteras y ademas la disposición fue en Zig-zag. la disposición de las tiras influye en la programación de lo que luego se muestra en la matriz. No es necesario ponerlo en zig-zag, pero si quieres utilizar mi codigo te aconsejo que lo hagas a no ser que quiers luego modificarlo tú.

Los efectos que hay en el código son 4:

  1. Marquee. Primeros pasos con las programación de FastLED. Sacado de aqui.
  2. Comet. Bastante sencillo del mismo autor. Aqui
  3. Sprites. Este efecto sustituyó el efecto Bounce que lo había modificado para que hubiera una bola rebotando en cada una de las columnas de la matriz. Pero ocupaba mucha memoria y creo que las clases de C++ que utilizaba no acababan de gustarle a la placa Nano. Así que cambie el efecto a Sprites. Básicamente pinta sprites en la pantalla en una localización y se pueden programar secuencias, animarlos. Muy chulo, el que mas me gusta. En el ejemplo se ve el Arbol de Navidad.
  4. Text Scrolling. Aquí empieza lo bueno. Basado en los Fonts. En principio iba a utilizar su librería, pero no me entraba y me dio infinitos problemas. Así que opté por utilizar su font y alguna cosa mas y hacerlo desde cero. ¡Ojo! que el font no tiene todos los caracteres, solo mayúsculas y algún símbolo.

Como dibujar los Sprites

He estado trabajando en otro proyecto en Python con pygame, para poder dibujar de manera facil los sprites animados MatrixMaker. Es bastante fácil de usar y exporta los dibujos en formato .h para poder usarlos en la matriz led.

El modulo de Bluetooth

Añadí una modulo de Bluetooth HC-05 que tenia por aquí sin usar para pode cambiar los efectos desde el móvil. En el código esta comentado casi todo.

Supplies

Step 1: Paso 1: Montar La Matriz En Una Base

  1. La base esta hecho de carton pluma. La idea era utilizar todos los LEDs que venían en la cinta que compré, asi que los dividí en 16 tiras de 15 LEds cada una.
  2. La separación entre LEDs era de 1, 65 cm calcule el tamaño de la base dejando espacio a los lados suficiente para que no quedara demasiado ahogada. 29,3 cm x 29,3 cm
  3. Pegar las tiras de LED en la base a una distancia entre centro de 1,65 cm. Para poder formar cuadrados de 1,65 cm2 con la rejilla.
    Importante: Todas las tras han de estar en la misma posición, de tal forma que las entradas de la tira marcadas con Din al mismo lado.

Nota: En la foto están marcados algunos LEDs para mejor comprensión.

Step 2: Paso 2: Cablear El Canal De Datos De Las Tiras De Led

Las tiras están montadas de tal forma que en la primera tira están los LEDs del 0-14, la siguiente del 15-29 y así sucesivamente. Esto es lo que se llama matriz en Zig-zag (bueno, yo la llamo así :-)) Para que la tira funcione correctamente hay que ir restableciendo la linea de datos que hemos roto cuando las cortamos. Es decir conectar las salidas DO, con las correspondientes entradas Din.

  1. En la primera foto se ven los LED 0 y 15 y se puede ver los agujeros en el carton pluma por donde meteremos los cables. Se pueden hacer con un clavo. Es fácil.
  2. En el LED 0 se conecta el pin de Arduino. y en el 15 esta conectado la salida marcada con DO del LED 14
  3. En la segunda foto se ven los LEDs 14 y 29. Si os fijáis el color del cable de la salida DO del LED 14 es Verde, el mismo que llega al Din del LED 15.
  4. Así iremos conectando todas las tiras del panel.

Step 3: Paso 3: Cablear La Alimentación De Las Tiras LED

Aquí podéis ver las distintas fases por las que pasé para dar corriente a las tiras. en la segunda foto se ve la solución definitiva: Alambre y los cables por separado.

No tiene secreto. hay que unir todos los conexiones marcadas con +5V por un lado y todas las marcadas con GND.

De los 2 lados por diversificar. El consumo de estos 200+ LEDs a todo consumo, puede ser bastante grande.

Tambien ponemos el conector para la fuente de alimentación.

Step 4: Paso 4: Conexiones a Las Placas

En el esquema se ve como van las conexiones. Hay que conectar el D2 de arduino al Din de la primera tira de LEDs.

Y los pines 3 y 4 al los de TxD y RxD respectivamente. Y por supuesto los de alimentación.

Con esto estaría listo el montaje.

Step 5: Paso 5: Construccion De La Rejilla

He de confesar que este paso fue el que mas quebraderos de cabeza me dio, para al final optar por una solución muy sencilla.

Intenté hacer la rejilla con:

  • Carton pluma: Tenis demasiado grosor.
  • Carton prensado de 2 mm: Imposible de cortar de manera fácil. hasta compré unas sierras para la dremel. Pero al final eran muchos cortes.
  • Impresión 3D: Bastante caro donde pregunté.
  • Corte laser: Solución final. Rápida y barata en el material que seleccione que fue cartón. Se puede hacer con muchos materiales.

Diseñé las plantillas para el proveedor CTRL X se las envié, me llamaron para confirmar una cosa del diseño, y al día siguiente estaban en casa 30€ en total.

Como veis en las fotos la precision del corte laser supera con creces la que hubiera tenido yo con cualquier método :-)

Muy contento con el servicio y el producto.

Esta parte del proyecto era la mas necesaria para que la matriz luciera en su esplendor. Ahora los colores de los led se ven mucho mejor.

Step 6: Consideraciones Finales

La aplicación para conectarse al Bluetooth puede ser cualquiera. Yo utilizo una de Android que se llama Terminal.

Una vez conectados podemos mandar el comando H para que muestre las opciones. Lo podéis ver en la imagen. Los efectos van del 1 al 4 y la letras son variaciones del efecto de Text Scrolling.

La opciones CH muestra las opciones de Color.

Step 7: MatrixMaker La App Para Ayudarte a Dibujar.

Para ayudarnos a poner los dibujos en la matrix, he creado una aplicacion en Python que nos ayuda a diseñar y exportar los datos para poder usarlos en el proyecto.

La podéis encontrar en mi github junto con el código para el proyecto:

  1. Codigo Arduino: https://gitlab.com/cnoceda/Led_Matrix_15x16
  2. MatrixMaker: https://gitlab.com/cnoceda/MatrixMaker

Subo unos videos para que lo veais en acción.

Nota 2021-02-03: He cambiado el repositorio a gitlab.com