Píxeles direccionables

En los últimos 5 años se ha puesto a disposición del público una amplia gama de LEDs y tecnologías asociadas a ellos. Hasta entonces, si quería usar LEDs tenía que comprarlos de forma individual y controlarlos por medio de un micro-controlador. Los píxeles RGB sencillos y sus controladores llevan ya tiempo en el mercado. Con ellos podía controlar una amplia gama de píxeles a todo color con impresionantes animaciones. Esto estaba genial para luces decorativas, tiras de luces, etc. Pero con este sistema sólo podía controlar un segmento de la tira a la vez. 

Pero ¿y si quería crear una red de píxeles y controlar cada uno de forma individual? Pues allí es donde entran en juego los píxeles direccionables.

El píxel direccionable APA102 / SK9822

Estos increíbles pequeños dispositivos están en el mercado en muchas variantes, tamaños, distribuciones, mecanismos de control, configuraciones de color, etc... pero todos ellos comparten algunos aspectos clave:

  • Cada uno de ellos tiene 3 x LEDs Ultra Bright en su interior. Uno ROJO (R), verde (G) y azul (B) (también existen variantes RGB y blanco de las que hablaremos más tarde)
  • Cada uno de ellos tiene un pequeño CI (circuito integrado) montado en el píxel y que controla la forma en la que son activadas las luces de forma individual.
  • Estas unidades pueden ser conectadas en cadena para crear sistemas muy complejos.
  • Y lo más importante de todo: pueden ser direccionados de forma individual.

Ahora podemos tener una gran tira de píxeles donde puede indicar a cada uno de ellos de forma concreta lo que debe de hacer y en qué momento a alta velocidad. Estos píxeles suelen venir en tiras de cobre semiflexibles en distintas configuraciones y anchuras. También puede adquirirlas en PCB de cualquier tamaño en redes, círculos o en casi cualquier configuración que uno pueda imaginar. ¡O incluso de forma individual!


Un ejemplo de algunos píxeles WS2812 en una tira de 12 mm con una densidad de 144 píxeles por metro

Los diferentes tipos de pixels

Dentro de esta categoría de píxeles direccionables nos encontramos con una enorme cantidad de tecnologías distintas. Se diferencian unas de otras en determinados aspectos, y todas tienen un uso específico

  • La frecuencia y el método de controlar físicamente los LEDs RGB individuales que hay dentro de cada píxel 
  • El protocolo de comunicaciones usado por un dispositivo de control para comunicarse con el circuito integrado de los píxeles 
  • Los niveles de redundancia 
  • El nivel de control individual de color y brillo 

Para resumir, vamos a describir los 2 tipos de píxeles más habituales. El objetivo final de esta guía es que pueda funcionar con alguno.

El píxel direccionable de 4 puntas 

Neopixel / WS2812 / SK6812

Los de arriba son 3 modelos con exactamente la misma tecnología. Los píxeles tiene 4 puntas.

  • Ground - conectada a la masa común de la línea de fuente de alimentación 
  • Data IN - conectado a su dispositivo de control o a la salida de datos del píxel anterior 
  • Data OUT - conectado a la entrada DATA IN del píxel siguiente
  • +5V - Conectado a la toma de +5V común de la línea de fuente de alimentación

Estos píxeles usan un protocolo basado en el PWM (modulación de anchura de pulso) para comunicarse entre ellos. 

Su dispositivo de control envía una señal serie a una velocidad predefinida (de unos 800 kHz, pero ligeramente distinta entre los distintos modelos). La señal es una lista ordenada de bytes, cada uno de ellos representando el nivel de brillo de cada valor RGB de los píxeles. El orden en el que son enviados los bytes controla el píxel que quiera que se ilumine. Por ejemplo, si tiene 3 píxeles en una cadena, para que se ilumine en el patrón R G B, de forma que el píxel 1 fuese el R (rojo), el píxel 2 el verde (G) y el 3 el azul (B), debería enviar el bloque de datos siguiente:

[255 0 0] [0 255 0] [0 0 255]

Este tipo de píxeles son la variante más asequible de las que puede comprar. Tienen una velocidad máxima de transferencia de 800 kHz lo que se convierte en un factor limitante en grandes instalaciones, especialmente cuando su dispositivo de control tiene que transmitir datos a cadenas de píxeles muy largas. 

La forma de trabajar en estos casos es dividir su instalación en grupos de esquemas con salida en paralelo. Por ejemplo, si tuvieses una parrilla de píxeles de 100 tiras de ancho y 100 píxeles de alto conectada en una larga cadena, tardaría mucho tiempo en que todos los píxeles se actualizasen y su velocidad de refrescado sería muy baja. Si tiene un controlador capaz de 10 salidas en paralelo, podría dividir su instalación en hasta 10 bloques, lo que aumentaría su velocidad de trabajo.

Rango de píxeles posibles en esta familia:

Puede adquirirlos en diversas densidades de píxeles, anchura de la tira y nivel de impermeabilización. Aquí puede ver las densidades usadas de forma habitual en montaje SIN impermeabilización.

El píxel direccionable de 6 puntas (control SPI)

Dotstar / APA102 / SK9822 

Estos son píxeles de alto rendimiento que tienen un alto control de los ajustes de brillo y color. 

Tenga en cuenta que los 3 modelos de arriba son exactamente el mismo tipo de píxel pero fabricado/comercializado por empresas diferentes. El APA102 fue el modelo original. Adafruit lo comercializa con el nombre "Dotstar" para diferenciarse del resto, mientras que el SK9822 es un modelo más reciente fabricado por otra empresa. 

Preferimos más estos por su mayor rendimiento. Estos píxeles tienen 6 puntas etiquetadas de la siguiente forma:

  • Ground - conectada a la masa común de la línea de fuente de alimentación 
  • Clock IN - Entrada serie de señal CLK 
  • Data IN - Entrada serie de señal DAT 
  • Clock Out - Salida serie CLK INVERTIDA
  • Data Out - Salida serie de señal DAT  
  • +5V - Conectado a la toma de +5V común de la línea de fuente de alimentación

El control de estos píxeles requiere un protocolo serie que puede ser implementado fácilmente en la mayoría de lenguajes de programación. Dispone además de un amplio rango de controladores prefabricados que podemos usar, de los que luego hablaremos. La comunicación con estos píxeles implica la creación de una cadena de bytes de este tipo:

Esquema inicio
Esquema Pix 1 GB
Pix 1 azul
Pix 1 verde
Pix 1 rojo
...
SIGUIENTES 4 bytes de datos de PIXEL
...
Esquema FINAL
  • Esquema inicio (32 bits): Este esquema les dice a los píxeles qué datos están entrando. Su ajuste es 32 x 0's
  • Esquema Pix 1 GB (8 bits): Este esquema le permite controlar el nivel de brillo global de ese píxel en concreto con 32 pasos. 223 = el valor de brillo más bajo y 255 es el más alto 
  • Pix 1 azul (8 bits): un valor de 0 a 255 para controlar el nivel de AZUL de ese píxel 
  • Pix 1 verde (8 bits): un valor de 0 a 255 para controlar el nivel de VERDE de ese píxel
  • Pix 1 rojo (8 bits): un valor de 0 a 255 para controlar el nivel de ROJO de ese píxel
  • Esquema final (32 bits): Este esquema de 32 x 1s es enviado para indicar que todos los píxeles deben aplicar los datos recibidos. Este bloque es enviado después de la asignación de todos los píxeles.

Estos píxeles pueden ser usados para GRANDES instalaciones dado que pueden ser controlados con frecuencias muy altas. Puede enviar datos al píxel SK9822 a un máximo de 30 MHz (30 Mbit). 

No obstante, en realidad esta velocidad suele ser mucho más lenta porque depende de una serie de requisitos técnicos. Debe asegurarse de que tiene una fuente de alimentación adecuada distribuida a todos los píxeles, una conexión a tierra y blindaje frente a los ruidos correcta, un adecuado sistema de buffer de la fuente de alimentación, etc... Aquí tiene unos enlaces con las distintas densidades. Vienen con unas densidades muy similares al Neopixel:

Para el resto de esta guía usaremos el píxel SK9822 para simplificar las cosas. Funciona perfectamente en todos los casos descritos. Por ser más concretos usaremos el píxel SK9822 5050 (5x5 mm)

Artículos relacionados