Laboratorio hágaselo-usted-mismo

Vamos a suponer que ya dispone de algún soporte que quiera reproducir en nuestra pequeña matriz de LEDs.

Empecemos configurando Resolume creando un ajuste personalizado de salida avanzada para nuestro mapa de píxeles. Lo primero que debemos hacer es crear un fixture o aparato propio para nuestra pantalla de matriz de LEDs. Resolume le pemite crear cualquier variación de los esquemas usando su editor de fixture. 

Editor de fixtures o aparatos

Dentro de Resolume, haga clic en Application y elija Fixture Editor:
Este editor está dividido en 3 paneles:

Fixtures

Un listado de todos sus Fixtures o aparatos donde puede añadir y eliminar a voluntad, cambiar su nombre, etc

Fixture Parameters

Este panel le permite ajustar parámetros para el aparato que esté editando. Aspecto tales como el tipo de canales que tendrá, la anchura y altura del aparato, su dirección, espacio de color, etc

Pixels

Una representación visual y numérica del aparato o fixture que hemos creado


Nuestra matriz píxel de 14 x 14 tiene un total de 196 píxeles. Si recuerda de algo antes cuántos canales tenía cada universo DMX, se dará cuenta de que no podemos encajar esta matriz en 1 universo DMX, ya que solo es posible encajar 170 píxeles de datos RGB en 512 bytes! 

Así pues, tenemos que crear 2 aparatos que dividirán el panel en 2 secciones. Para mayor simplicidad, vamos a crear 2 aparatos que sean las partes izquierda y derecha de la matriz. Usaremos después estos aparatos en 2 universos. El dispositivo de control se encargará de compilar los datos DMX de ambos universos y renderizarlos de la forma correcta a los LED. No se preocupe, hablaremos de eso más adelante.
Aquí arriba puede ver una distribución física de todos los píxeles de nuestra matriz 14x14. 

Vamos a crear 2 aparatos llamados "14x14_LEFT" y "14x14 _Right". Tenga en cuenta que solo se diferenciarán en el atributo "distribution".

Fixture personalizado

Al hacer clic en el botón "+" del panel Fixtures, se creará un nuevo aparato o fixture para nosotros. Desplácese hasta él en el panel de la izquierda y haga doble clic en él para cambiar su nombre. Le llamaremos "14x14_LEFT"

Vamos ahora al panel Fixture Parameters para este aparato.

Width & Height

Esto nos permite ajustar la anchura y altura del aparato. Lo ajustaremos a 7 píxeles de anchura y 14 de altura.

Color Space

El atributo de espacio de color le dice a Resolume cómo organizar los datos de color de cada píxel y en qué orden aparecen los colores. Nuestros píxeles tienen LEDs RGB dentro PERO, y este es un gran PERO, el orden actual en el que los LED traducen los datos que les son enviados puede variar de los modelos de píxeles. 

Para mayor simplicidad usaré RGB y filtraré la distribución de datos real en el dispositivo controlador (Driver Device) más tarde. Tenga en cuenta que también puede controlar píxeles que sean RGBW (blanco) o solamente blancos. Existen gran cantidad de distintas configuraciones entre las que elegir.

Gamma

Dejaremos esto tal como está, en 2.5

Distribution

Este es probablemente el atributo más importante, ya que le indica a Resolume la colocación física de cada píxel. Nuestro panel está orientado de tal forma que el primer píxel está en la esquina inferior izquierda. Los datos fluyen hacia arriba desde allí, giran A LA DERECHA a la siguiente fila, luego ABAJO, luego A LA DERECHA y ARRIBA, etc. tal como es indicado por el icono que hemos elegido.

Ahora vamos a crear un segundo aparato. Puede hacer esto rápidamente haciendo CLIC DERECHO sobre el aparato activo "14x14_LEFT" y eligiendo DUPLICATE. Una vez duplicado, cambie el nombre de este segundo aparato a "14x14_RIGHT"

Los parámetros de este segundo aparato son los mismos, EXCEPTO que en este tenemos que cambiar la distribución ya que esta parte del panel empieza arriba!

Ahora que ya tenemos nuestros aparatos personalizados configurados, haga clic en Close (cerrar) para almacenarlos!

Mapa de píxeles

El paso siguiente es insertarlos en el sistema de salida avanzada de Resolume, ajustar su mapa virtual y colocarlos sobre su soporte real. 

De nuevo en la pantalla principal de Resolume, haga clic en el menú Output y elija Advanced

Haga clic en el menú PRESETS que está en la parte superior IZQUIERDA y haga clic en NEW para que aparezca una nueva distribución vacía. Observe que el gradiente de color que tengo en el pantallazo de arriba es el soporte que he elegido. Es un simple sombreador o shader llamado "Gradient" que está incluido dentro de Resolume.

Después tenemos que añadir (Add) un nuevo "DMX Lumiverse". Resolume trata uno de estos lumiverses como 1 universo DMX con un único ID de universo DMX e ID de subred. Cada lumiverso puede tener un máximo de 512 canales, tal como ocurre con un universor DMX normal. Haga clic en el gran icono "+" de la parte superior izquierda y elija "DMX Lumiverse"

Después tenemos que eliminar la sección "Screen 1" del esquema. Estamos configurando un sistema solo con salida DMX, por lo que no necesitamos ninguna otra salida para esta demo. Haga clic en "Screen 1" y haga clic en la "X" para eliminarlo del esquema. Se quedará con "Lumiverse 1". 

Duplique este Lumiverse haciendo clic derecho sobre él y eligiendo la opción Duplicate. Ahora debemos asegurarnos de que tenemos los aparatos correctos en cada Lumiverse. Por defecto, cuando cree un nuevo Lumiverse serán añadidos los últimos aparatos con los que estuvo trabajando. Por tanto, si no es el correcto, haga clic en él en el panel izquierdo y elija el correcto en el desplegable de la parte inferior derecha.

Nuestro esquema de salida avanzada tendrá 2 lumiverses. El 1 tendrá "14x14_LEFT" y el Lumiverse 2 tendrá "14x14_RIGHT"

En el panel central puede hacer clic en cada aparato y moverlo para colocarlo de la forma que quiera en la pantalla. La captura de pantalla de arriba tiene los dos aparatos separados para que pueda ver lo que hacemos. Necesitamos 2 cosas. Colocarlos juntos y redimensionarlos.

Vamos a hablar de la escala. Como puede ver arriba, los aparatos están insertados como cuadrados iguales. Pero estos aparatos en concreto son rectangulares porque tiene 7px de anchura y 14px de altura. Así que haga clic en el aparato de la izquierda y ajústelo usando los atributos Width y Height del panel derecho.

Para una mayor facilidad y visibilidad diremos que 1 píxel LED es igual a 50PX de la pantalla de su ordenador. Así pues, el aparato izquierdo tendrá una anchura de 7x50=350px y una altura de 14x50=700px
Ajustaremos los mismos atributos para el aparato derecho y después los juntaremos.

Hemos creado un mapa de píxeles virtual para nuestro panel. Ahora almacene el esquema. Haga clic en el desplegable PRESETS que está en la parte superior izquierda y elija SAVE AS. Asígnele el nombre "14 x 14 Panel". 

De vuelta al universo IDS, necesitamos ahora asignar cada aparato a su universo adecuado de forma que el dispositivo de control pueda saber qué universo debe ser renderizado en cada parte del panel. 

Haga clic en "Lumiverse 1" y en la parte izquierda verá Subnet y Universe. Dejaremos estos valores en 0:0. Haga clic ahora en "Lumiverse 2" y ajústelos a Subnet 0: Universe 1. 

Resolume enviará 2 bloques de datos cada vez que sea renderizado un fotograma desde su salida. El bloque 1 contendrá todos los datos del Lumiverse 1 y el bloque 2 los del Lumiverse 2. Su dispositivo de control recibirá entonces estos 2 bloques y será capaz de identificar qué bloque de datos debe ser copiado en cada lado de la matriz.

El controlador de píxeles DIY (hágaselo-usted-mismo)

En esta sección construiremos un dispositivo que le permitirá recibir datos Art-Net vía WiFi y enviarlos a nuestra matriz LED 14x14. 

He preparado un pequeño bloque de código que tiene todos los elementos necesarios para hacer esto. Si va a hacer esto partiendo absolutamente de cero, es necesario que sea capaz de entender la mayor parte de este código, dado que lo hemos diseñado para que sea modular y expansible a instalaciones mucho más grandes. 

Vamos a trabajar con las siguientes piezas de hard y software. Intentaré darle enlaces a los dispositivos concretos que uso por si quiere usar los mismos. Esta guía está diseñada para un PC Windows. Aquí vamos a suponer que su PC está conectado a una red inalámbrica o por cable y que tiene una red WIFI para conectar el ESP32 (lea más adelante el esquema de la red). Necesitará el SSD y clave de la WiFi. Su PC debe ser capaz de comunicarse en la red WiFi libremente.

Hardware

Software

Instalación del IDE Arduino y configuración del API ESP32

Descargue el IDE Arduino de arduino.cc, instálelo de la forma habitual y después haga lo siguiente en este orden concreto:

  1.  Vaya al Espressif GitHub para el ESP32 Arduino API 
  2. En la parte superior derecha, haga clic en "Clone or Download" y elija Download Almacene el fichero ZIP en su escritorio
  3. Vaya a la carpeta Documentos local de su ordenador y localice la carpeta Arduino "C:\Usuarios\NOMBRE DE USUARIO\Documentos\Arduino"
  4. Cree una carpeta llamada "Hardware" si no existe ya una allí
  5. Dentro de "Hardware" cree una carpeta llamada "espressif"
  6. Dentro de esta carpeta, extraiga el contenido del fichero ZIP del paso 2 y cambie el nombre de la carpeta extraída a "esp32"
  7. Vaya a la carpeta "esp32\tools" y localice el fichero ejecutable "get.exe"; haga doble clic en él y espere hasta que desaparezca el símbolo del sistema. Esto descargará el API más moderno de los servidores Espressif. Este proceso puede tardar entre 5-10 minutos dependiendo de su conexión de internet. Una vez que desaparezca el símbolo del sistema podrá pasar al siguiente paso.
  8. Abra el Arduino IDE. Haga clic en el menú Tools, elija Board y abra el desplegable. Si ha instalado todo correctamente en los pasos anteriores, verá un montón de placas ESP32 como esta


Después, descargue el código fuente del proyecto desde mi GitHub, almacene la carpeta en su escritorio y abra el fichero de prouecto "ESP32ArtNetDriver.ino". Haga clic en el menú de herramientas (Tools) y eija Boards. Localice después la placa "Node32S" y elíjala. 

Conecte el ESP32 a su PC por medio del cable USB y espere hasta que los drivers se instalen. Después en el IDE Arduino, vaya a a las herramientas, PORT y elija el puerto al que esté conectado el EPS32. Ahora ya estará listo para compilar y cargar el código al micro controlador, pero siga leyendo porque hay cosas que tenemos que cambiar.

En las líneas 22 y 23:

//Networking 

const char * ssid = "ArtNet"; 

const char * password = "megapixels";

Cambie el SSID y Password al nombre que tenga su red (en el caso del SSID) y a la password que tenga su red. Una vez que lo haya hecho, pulse en el botón UPLOAD, espere unos segundos para que el código se compile y cárguelo al ESP32. En este punto, ¡su DevBoard ya estará listo para el rock! ¡Conectemos ahora todo el hardware!

Notas acerca de la conexión en red de todo este laboratorio

Para obtener el máximo rendimiento de este montaje, la mejor opción es que conecte a su red el ordenador que use Resolume utilizando un puerto de red con cable. Puede enviar Art-Net vía WIFI desde Resolume, pero OBSERVARÁ retardos y una gran cantidad de paquetes perdidos debido a la propia naturaleza del protocolo UDP. Aquí puede ver un ejemplo de nuestra configuración de red preferida para este laboratorio:

Voy a usar un router con capacidad WIFI de nivel no profesional y relativamente barato fabricado por TP-LINK. Pero puede usar el router que quiera, siempre y cuando tenga capacidad DHCP

Conexión del hardware

Reúna todo su hardware y configúrelo como le mostramos arriba. 

Usamos el SN74HCT245 para el cambio de nivel. Las líneas DATA y CLOCK de los píxeles SK9822 asumen un nivel lógico de 5V, donde 0v = 0 y 5v = 1. ¡El ESP32 tiene niveles lógicos de 3.3V, donde 0v = 0 y 3.3v = 1! 

Una vez conectado todo, encienda su fuente de alimentación y prepárese para ver... ¡nada! 

Activación de la salida en Resolume

En esta fase, incluso aunque ya tuviese Resolume abierto no vería nada en el panel porque ¡todavía no estamos emitiendo ningún dato desde Resolume! 

Abra Resolume y vaya a la salida avanzada. Para esta demo vamos a usar el método "Broadcast" para enviar datos al ESP32. La emisión de paquetes UDP supone una ran cantidad de desafíos, especialmente vía WiFi, por lo que le recomendamos que en el futuro intente no usar este método salvo que tenga un laboratorio pequeño y perfectamente controlado.

Haga clic en "Lumiverse 1" y en el atributo "TargetIP" de la derecha elija "Broadcast", haga lo mismo para "Lumiverse 2" y entonces ¡ya debería ver su salida en su pantalla de matriz!

Artículos relacionados