Archivos del proyecto

Control de tiras leds a traves de wifi, utilizando la placa ESP8266 + tiras leds ws2812b 

Con la placa ESP8266 instalada en Arduino IDE, podemos programar los módulos ESP8266 como un microcontrolador independiente.

Instalación con Arduino IDE

A partir de 1.6.4, Arduino permite la instalación de paquetes de plataformas de terceros utilizando Boards Manager. Los paquetes ESP8266 disponibles para Windows, Mac OS y Linux (32 y 64 bits).

  • Instale Arduino 1.6.5 desde el sitio web de Arduino.
  • Inicie Arduino y abra la ventana de Preferencias.

  • Abra Boards Manager desde Herramientas> Menú de placa e instale la plataforma esp8266 (y no olvide seleccionar su placa ESP8266 desde Herramientas> Menú de placa después de la instalación).

 
 
Si necesita mas ayuda puede consultar el siguiente video para instalar la placa
 
 
 
Vamos a analizar los principales para esta prueba
 

Pines de alimentación:   Hay cuatro pines de alimentación. Pin VIN y tres pines de 3.3V .

  • VIN se puede utilizar para suministrar directamente el NodeMCU / ESP8266 y sus periféricos. La potencia suministrada en VIN se regula a través del regulador integrado en el módulo NodeMCU; también puede suministrar 5 V regulados al pin VIN
  • Los pines de 3.3V son la salida del regulador de voltaje incorporado y pueden usarse para suministrar energía a componentes externos.

GND:    son los pines de tierra de NodeMCU / ESP8266 GPIO Pins: NodeMCU / ESP8266 tiene 17 pines GPIO que se pueden asignar a funciones como I2C, I2S, UART, PWM, control remoto IR, luz LED y botón mediante programación. Cada GPIO digital habilitado se puede configurar en pull-up o pull-down interno, o en alta impedancia. Cuando se configura como una entrada, también se puede configurar como activación de borde o activación de nivel para generar interrupciones de CPU.

LED WS2812B

  • Cada «LED» dispone de un integrado que almacena 3 bytes (el WS2812b)
  • Tiene en su interior 3 LEDs tipo 5050 (5.0 x 5.0 mm) con los colores básicos RGB (Red-Green-Blue). Combinando estos colores podemos representarlos todos.
  • Entrada de alimentación Vcc/GND y Datos (DataIn). Estas entradas se replican como salida Vcc, GND y DataOut para el siguiente LED, si lo hay.

En esta imagen aumentada se puede ver el integrado WS2812b y los tres microleds tipo 5050.

Hemos dicho que el integrado WS2812b almacena 3 bytes (24 bits), la razón es porque utiliza 1 byte por cada led/pixel de color RGB. Con un byte (o 8 bits) se puede almacenar valores de 0 a 255, eso significa que cada microled/pixel RGB puede tener hasta 256 niveles. Por lo tanto si combinamos los tres colores RGB, podemos representar mas de 16 millones de colores posibles. Imaginamos que tenemos una tira de 5 LED’s y queremos encender el LED1 de rojo, el LED3 de color verde y el LED5 de color azul, dejando el resto apagados. Pues bien, la idea es lanzar una ristra de bits de esta forma:

Esto quiere decir que siempre vamos a enviar toda la información para cada uno de los LEDs, aunque estén apagados.

Luego una vez todos tienen la información, se lanza la señal resetcode y todos muestran la información que tienen almacenada:   Documentacion tecnica: http://www.seeedstudio.com/document/pdf/WS2812B%20Datasheet.pdf

Las informacion que viaja a traves de la tira led, tiene un sentido y direccion, el cual se muestra con una flecha dibujada en la tira:

Podemos cortar la tira leds en segmentos, haciendo el corte en donde se encuentran los 3 circulos, esto nos permite poder crear diversas formas, pudiendo utilizar tramos de tiras leds de diferentes tamaños.

Podemos ver una conexion de esp8266 y ws2812b, es recomendable utilizar una resistencia en el Pin de datos, para evitar que entre mas voltaje y se queme la tira led.
 
     Referencias: http://akirasan.net/como-funciona-un-led-ws2812b/
 
Ahora que ya tenemos mas informacion sobre los elementos que vamos a usar, veamos el codigo que instalaremos dentro del ESP8266:

Conectaremos la placa a traves de usb para poder cargar el codigo.

Vamos a corroborar que tenemos seleccionada nuestra placa y el puerto

En los archivos descargados se encuentra el codigo que utilizaremos dentro de la placa, y las librerias que necesita para funcionar correctamente.

Vamos a Arduino/libraries , descomprimimos el archivo y las rutas quedaran de la siguiente manera:

Arduino\libraries\FastLED

Arduino\libraries\ArtnetWifi-master

Antes de instalar el codigo dentro de nuestra placa, vamos a corroborar que todo este bien configurado, Ctrl + R 

Deben aparecer esas letras en blanco al final de nuestra verificacion.

En el caso que aparezca algun error, recomiendo copiar la linea de codigo del error y googlear, ya que hay muchos foros donde ya se discutieron las soluciones.

Cargamos el codigo, a trave del serial monitor Ctrl+Shift+M podemos visualizar si el codigo fue ejecutado correctamente, nos tendria que devolver una direccion de ip asignada a la placa.

Como pudimos ver en el video, fue asignada la direccion ip a la placa

192.168.0.39 A esta ip enviaremos los datos desde Touchdesigner, el numero puede variar segun la configuracion de cada router.

En este codigo estamos usando el pin RX para enviar los datos, los pines Vin y GND para alimentacion, puede montar la placa en un protoboard segmentado:

Arme unas placas para conectar de manera mas simple a las tiras leds

Nuestra placa ESP ya esta lista, vamos a pasar a Touchdesigner para ver como enviaremos la informacion.

Abrimos el ejemplo de Touchdesigner, el cual se encuentra en los archivos descargados.

Dentro de TD vamos a utilizar un pequeño sistema, para elegir entre diferente contenido visual, que se enviara en tiempo real hacia nuestras tiras leds.

Tenes la posibilidad de asignar la cantidad de tiras leds que vamos a usar, y cuantos pixels tiene cada tira led.

Esos datos se enviaran al operador Crop TOP, el cual reducira la cantidad de pixels de nuestro contenido, para que se adapte a nuestras tiras leds de forma correcta. Los datos visuales seran convertidos a valores numericos, utilizando TOP Chop.

Los datos de la visual, seran segmentados en tres canales individuales R G B, en nuestro Select Chop los canales se agrupan por filas, vamos a utilizar el operador Shuffles Chop, para sequenciar los canales de manera horizontal, en 1 solo canal para R G B.

Agrupamos los 3 canales sequenciados a traves de un Merge Chop , sequenciamos nuevamente los canales cada 512 valores a traves del Shuffles Chop, para luego enviar esa informacion a traves del protocolo Artnet, usando DmxOut Chop

En la pestaña Network pondremos la IP de nuestra placa ESP8266

Puede profundizar sobre Pixelmapping con el siguiente video tutorial, lo grabe hace unos meses, ahi analizamos tecnicas dentro de TD para crear una interfaz 3D de previsualizacion para nuestra instalacion de tiras leds.

Espero que haya sido util la informacion, pronto subire mas.

Cualquier consulta al respecto, puede comentar este post.

Share this: