Manejando paneles flexibles WS2812B
Ha pasado el tiempo, y mis actuales responsabilidades no me dan el tiempo que quisiera para compartir, pero me alegra ver como Internet ha crecido y hay muchos ingenieros que tienen portales activos, que van compartiendo novedades que hacen que el mundo de la programación sea accesible para todos, además de eso realizar compras de equipos de electrónica de consumo para realizar proyectos en electrónica DIY para IoT se ha abaratado mucho, por lo que conseguir cacharros para jugar se hace no tan complicado en estos tiempos.
Y bueno desde hace un tiempo vengo viendo videos de varios youtubers conocidos que usan y programan las tiras de led WS2812B, debido a su facilidad de usar al tener solo 3 pines (GND, DATO, VCC +5V), además de poder configurarse como RGB de 24 bits (255 variaciones por cada color), por lo que hizo que me interesara en jugar con ellas. Inicialmente me animo mucho la idea de jugar con ellas de paso que le enseñaba a mi hija a hacer unas secuencias navideñas.
Para eso inicialmente pensé conseguirme unas tiras LED que en aliexpress no estan muy caras Acá un ejemplo en Aliexpress entre 10 a 15USD
Sin embargo también he visto estos otros paneles
Cuyo precio varia entre 10 a 12USD para los de 8×32 y 16×16, y lo pueden encontrar buscándolo como Panel+de+luz+LED+RGB+Flexible+WS2812B también en Aliexpress
Inicialmente me compre una tira de 5m con 30 leds por metro, y además 1 panel de 16×16 y de 32×8, solo que debido a los retrasos por la pandemia llegaron en enero, por lo que al final decidí usarlos para preparar unos mensajes en el cumpleaños de mi última hija que fue en febrero.
Quiero aclarar que mi idea no es dar más de lo mismo, y por tanto no voy a simplemente usar solo las librerías típicas para el WS2812B, sino que voy a tratar de ir paso a paso. explicando el proceso que realizado, bueno acá les hago un pequeño listado de lo que pienso ir agregando en el transcurso de estos días:
- Entender el funcionamiento del modelo de matriz (funciona de forma diferente al sugerido en algunos videos).
- Manejar el WS2812B usando al diablillo IMP electric, con la posibilidad de cambiar las imágenes usando un servicio WEBREST, el cual tengo implementado sobre tarjeta Hanna v3 con un IMP v01, Donde almaceno imágenes monocromáticas en 1 solo color y a colores usando técnicas diferentes.
3. Revisar la estructura de los archivos BMP, de manera que podamos entender como estas compuestas, para de esta manera usarlas para almacenar las imágenes que queremos visualizar.
4. Usar javascript para crear nuestra estructura de datos de forma de entender como la imagen mostrada de la tortuga es el equivalente numérico al array tortuga.
5. Crear programa para arduino, que permita la visualización de imágenes 16×16 y de mayor tamaño a 16×16. (Hasta 384×16)
- NOTA: El tamaño de la imagen es configurable, en mi caso lo hice de esa manera, pero podrias cambiar a tu conveniencia.
6. Realizar el funcionamiento de la pantalla, pero usando el microcontrolador ESP 8285 M3 (Si me preguntan porque no uso otro, es porque eso lo tengo hace mucho tiempo, y no he tenido tiempo de usarlo), además de que posee una buena capacidad de memoria flash 1MB, por lo que no tuve problemas en almacenar imágenes grandes. (Inicialmente solo usado sin activar Wifi)
7. Migrar el programa a arduinos mas pequeños, usando el almacenamiento en FLASH con PROGMEN (Para Arduino Nano y Leonardo).
8. Activar el modulo Wifi del ESP 8285 para crear un servidor web que permita el cambio de los mensajes en pantalla, con la opción de controlarlas remotamente.
A continuación les muestro unos ejemplos del resultado.