Construyase su propio Ambilight en seis sencillos pasos


Ambilight es una tecnología diseñada para mejorar la experiencia visual  analizando una señal de video  entrante y produciendo una  luz lateral ambiental adecuada al contenido que se está visualizando en la pantalla  con  un resultado bastante atractivo , el cual  además de la sensación de estar viendo una pantalla aun mayor.
Hasta hace muy poco este efecto solo se podía conseguir si comprábamos una TV que contara con ese sistema y no había otra opción, pero   gracias  a la potencia de la Raspberry Pi  2 o 3  , una capturadora  de vídeo  y por supuesto , una tira de 50 leds WS2801  es bastante sencillo tal y como vamos a  ver a continuación.
En este  post  vamos a ver como es posible emular un sistema «Ambiligt»  donde el hardware que controlará  todo el sistema sera únicamente una Raspberry Pi 2  o 3  equipada con una distribución compatible ( Openelec)   y el software de control de  leds Hyperion. Además de controlar los leds, la combinación de la Raspberry Pi junto con Kodi constituye un excelente Media Center capaz de reproducir todo tipo de contenidos de audio, vídeo e imagen, de reproducir nuestra colección multimedia almacenada en el PC o en un disco externo, e incluso de reproducir directamente contenidos on-line si se posee  las  subscripción en el hogar  y por supuesto cuenta con la conexión  de suficiente ancho de banda como por ejemplo ftth.
Es importante ademas resaltar  que es  posible disfrutar de la emulación de  ambilight con fuentes de vídeo externas a la Pi  usando una económica  capturadora  de vídeo  que permitirá  que la emulación no solo funcione con el contenido multimedia que reproducimos desde la Raspberry Pi  , también  responderá a la señal de video externa que le introduciremos  procedente de una fuente externa de video como por ejemplo puede ser la señal de video procedente de un descodificador de Imagenio .
Para concretar  un poco  mas  en este montaje  necesitaremos los siguientes componentes:
  • Una Raspberry Pi 2 o 3
  • Un tarjeta microsd  de al menos 2GB   donde instalamos  el sw para la Raspeberry Pi
  • Fuente con salida microusb  para la Raspberry Pi (5V/1Amp)
  • Tira de leds con el chip WS2801
  • Fuente dimensionada para alimentar la tira de leds (5v /2amp debería bastar)
  • Capturadora de video usb USBTV007 o compatible
  • Caja para albergar la Raspberry-Pi 2

PASO 1: SELECCIÓN DE TIRA DE LEDS y ALIMENTACIÓN

Antes de empezar  con el montaje ,  la tira de  leds   RGB   direccionable es muy importante que ésta esté basada en el chip  ws2801 (LEDs WS2801). Existen tiras basadas en el chip WS2801   en formato “luces de navidad”, pero lo mas habitual es adquirirla en forma de cinta autoadhesiva pues es mucho mas sencillo instalarlas detrás de nuestro TV  pues  se pueden pegar directamente en la parte de atrás del tv  y no necesitan un engorroso cableado   y ademas  no nos  dará  ningún tipo de problemas  con la Raspberry Pi

Un ejemplo de tira  compatible con WS2801 es  esta  que puede comprarse en Amazon por menos de 27€

tira de leds.png

 

Un aspecto importante que no debemos  olvidar  es que para alimentar dicha tira de leds  WS2801 ,  necesitaremos aparte  una fuente de alimentación  dimensionada para el número de leds que vayamos a adquirir , (lo normal seria  una fuente de  5v y 2A para  unos 50 leds)

Este tipo de tiras de leds  tienen que alimentarse  con una fuente de alimentación externa así que si pensaba alimentarlos con la propia Raspberry olvídese, ya que no va a tener los suficiente intensidad para ello  Para saber que fuente de alimentación necesita , tendría  que conocer el consumo .Dado que el voltaje de alimentación es de 5V  y el consumo viene indicado en vatios por metro, por ejemplo 8.64 watts por metro puede calcular la  intensidad necesaria  aplicando   la siguiente formula:

I (Amp) =P (Watts) / V (voltaje) ->  8.64/5 = 1.728 amperios. por tanto necesita una fuente de alimentación de 5V y 1.728 amperios (mejor 2 amperios para que vaya holgada)

Si se quiere ahorrar los cálculos visite http://www.rapidtables.com/calc/electric/Watt_to_Amp_Calculator.htm

Como regla aproximada  para 50 LEDs se necesitan al menos una fuente de  2 amperios ,para 100 leds 4 amperios, etc.

 

PASO 2 :CONEXIÓN RASPBERRY PI

Desde el punto de vista técnico usar un  conversor de niveles es lo correcto , pero es posible que muchas tiras de leds WS2801  a pesar de ser compatibles con niveles TTL , también sean tolerantes a 3.3V  y por tanto para conectar estas a la Raspberry Pi  2  o 3  no sea necesario por tanto este conversor , por lo que en una primera aproximación se podría prescindir de este circuito

Loas tiras de  LEDs  WS8201 tienen 4 conexiones:

  • Alimentación positiva de +5V DC
  • Tierra
  • Ddata
  • Clock

Los cables de alimentación van conectados a la fuente de alimentación  de  al menos 2 Amperios   y los cables de datos (data y clock) se conectan a los puertos GPIO de la Raspberry. Concretamente el cable data se tiene que conectar al pin MOSI y el cable clock se conecta al pin SCLK.  El negativo además de conectarse al cable de alimentación negativa de los leds debe conectarse a un pin  GND.

 

PASO3 : CONEXION CAPTURADORA

En el mercado existen multitud de capturadoras USB, siendo en general conocidas bajo la marca o  denominación de Easycap. A día de hoy, sólo dos tipos de chipsets son compatibles con el ambilight, por eso es importante seleccionar una capturadora de este tipo que internamente use uno de los siguientes chipsets:
  • STK1160 (el más antiguo)
  • USBTV007 (el más reciente).Se recomiendo adquirir el USBTV007 (también reconocido por Fushicai) porque funciona muchísimo mejor que el obsoleto STK1160.
Las últimas imágenes de OpenELEC son compatibles con ambos chipsets, pero deberemos certificarnos que efectivamente la imagen que tenemos en la Pi soporta el chipset de la capturadora conectada.
easycap.png
Acertar en la compra de la capturadora es el quid del éxito. Hay multitud de variantes, todas ellas conocidas genéricamente por EasyCap, pero no todas nos van a servir. La opción de ir por lo seguro es por ejemplo  adquirir la capturadora en la propia tienda de Lightberry (acertará al 100% porque ellos ya han seleccionado las que efectivamente valen para el ambilight , de hecho actualmente solo comercializan las USBTV007).

PASO 4: INSTALACIÓN DE LOS LEDS EN LA TV

Realmente lo mas sencillo es por optar por tiras adhesivas  WS2801 pues tienen la ventaja que la instalación es más discreta y queda mucho mejor. La desventaja es que seguramente tenga que cortar la tira  para  poder abarcar todo el perímetro de la televisión, lo cual  implica que una vez que haya cortado y pegado cada trozo, tendrá que soldar un conector a ambos lados para volver a unir los contactos de la tira  (aunque  si no quiere soldar la tira esta la opción de comprar tantos metros de leds en formato continuo y pegar esta por todo el perímetro de la TV doblándolas en las esquinas.

Una peculiaridad  de esta tiras ,es que ademas de que se pueden cortarse según la longitud que se requieran ( siempre por la linea de corte que separa cada bloque  chip+led rgb del siguiente) .Otro aspecto muy interesante  es que ,  también es posible ampliarlas gracias a  los conectores que llevan en cada extremo, pudiendo  unirse  entre ellas fácilmente sin soldar nada hasta completar la longitud total que  se necesite ( la cual normalmente sera el perímetro interior de su TV).

No debemos olvidar que esta tiras tienen una flecha que indican el sentido de la conexión de las tiras que debe respetarse escrupulosamente  sobre todo a la hora de conectar varias tiras entre si : es decir siempre empezaremos por la izquierda de la flecha con la conexión a la raspberry y seguiremos el orden de la flecha para interconectar las tiras que se precisen

conector.png

En todo caso , la distribución   mas  normal de montaje de la tira de leds  es pegar la tira horizontal mas grande  en la parte abajo   y seguir  hacia la derecha hasta continuar el perímetro de la TV como se ve en la foto siguiente:

 

PASO 5 :CREACIÓN IMAGEN OPENELEC

OpenELEC se construye desde cero específicamente para una tarea, para ejecutar Kodi pues sólo incluye el software necesario. Debido a esto  es pequeño (aproximadamente 150 MB), se instala literalmente en minutos, y, puede arrancar muy rápidamente en 5-20 segundos, dependiendo del tipo de hardware utilizado. Además, OpenELEC está diseñado para ser gestionado como un dispositivo: puede actualizarse automáticamente y puede gestionarse completamente desde la interfaz gráfica. Aunque funciona en Linux, nunca necesitará ver una consola de administración, un terminal de comandos o tener conocimientos de Linux para usarlo.
Para que nuestra Raspberry Pi funcione como un potente Media Center necesitamos una distribución de Kodi (antes XBMC), y adicionalmente,  el software para el control de los leds  ,que el ideal por prestaciones es el  Hyperion .Este sw puede instalarse  a partir de una imagen de OSMC o bien Openelec ,  pero otra forma mas sencilla y cómoda es  descargarnos alguna de las distribuciones ya existentes al efecto con el sw de Hyperion  ya preinstalado como puede ser la imagen de Lighberry basada en Raspbmc la cual ya  trae Hyperion preinstalado, el driver para la capturadora   y  por tanto  casi todo esta hecho.
En el caso de  disponer de una Raspberry Pi 2 o 3 descargaremos   OpenELEC 7 beta3 for RPi2 / RPi3

lightberry

Una vez descargada descomprimiremos el zip  recuperando la imagen que debería tener el formato   8gbsmallnew0518v2.img.   
Descargaremos e instalaremos  ( en caso de no tener instalado) el sw  SDFormatter con objeto de formatear a bajo nivel la tarjeta microsd.
sdfor
Asimismo, necesitamos  también la utilidad Win 32 Disk Imager que nos va a  permitir grabar de forma sencilla cualquier imagen en la tarjeta microSD:
win32
Tanto en el primer programa, como en este, es obvio que tendremos que cuidar en extremo  la unidad o  drive  /destino  que seleccionemos ,pues podríamos borrar el contenido de nuestra unidad flash usb , un disco externo, etc  , así que como recomendación, al ejecutar estas aplicaciones lo mejor  es extraer de forma segura todas las unidades removibles antes de usar ambos programas.

PASO 6 :CONFIGURACIÓN

Una vez terminada de  generar la imagen extraeremos la SD de nuestro PC  y la introduciremos en nuestra Raspberry Pi .
Una vez arrancada la Raspberry   lo primero es configurar Kodi para que se muestre en español. Para ello debe acceder a
SYSTEM > Settings > Appearance >International > Language , configurar el idioma en español de España y de esta forma ya veremos todos los textos y ayudas en español

También se pueden configurar add-ons, los skins, etc pero sobre todo puede ser interesante conocer  la dirección IP de la Raspberry Pi para conectarnos a esta  via ssh ,para lo cual nos iremos a Sistema–>Información del sistema  y tomaremos nota de la dirección IP ( por ejemplo la ip 192.168.1.54 ). Esta no servirá  para  conectarnos rro ssh ( por ejemplo con el programa putty)    con los siguientes datos:

Una vez que ya hayamos configurado Kodi a nuestro gusto y comprobado que accedemos sin problemas a nuestros contenidos multimedia vía red o directamente conectados a uno de los puertos USB de la Pi, pasaremos a personalizar la configuración del Hyperion para  introducir la configuración de LEDS de nuestra instalación de Lightberry.
Para ello tenemos varias opciones,pero la más sencilla y rápida es, con la  Raspberry conectada a internet,  desplazarnos hacia el menú PROGRAMS/PROGRAMAS y ejecutaremos  la aplicación pre-instalada, Hyperion Config Creator  la cual nos permitirá configurar paso a paso la instalación de nuestra  Lightberry en nuestra TV   donde iremos definiendo:
  • Tipo de tira de leds: en nuestro casi   podemos elegir  Lightberry HD for Rasperry pi (ws2801)
  • Numero de leds horizontales ( deben ser idéntico numero de leds  en ambos lados)
  • Numero de leds  verticales   ( deben ser idéntico numero de leds  en ambos lados)
  • Donde comienza el primer led (Right/button corner and goes up)
  • Confirmación  de  que tenemos un capturadora de TV conectada

Una vez terminado el asistente de hyperion confi creator deberíamos ver el arco iris  así como la prueba de colores  , con lo  que deberiamos  haber  terminado de  configurar nuestra instalación , pero ¿como comprobamos si esta funcionando la capturadora?  
Pues usaremos simplemente el segundo menú disponible en  PROGRAMS/PROGRAMAS y ejecutaremos  la aplicación pre-instalada Hyperion  Grabber Screenshot.
Al ejecutar  esta  appp ,  simplemente nos preguntara sobre el tipo de señal de video (en nuestro caso PAL) y en el caso de que tengamos conectada sobre la entrada de video de la capturadora cualquier señal de video ( por ejemplo procedente de un descodificador de imagenio ) entones  si la imagen presentada no es negra  , es indicativo que esta funcionando la capturadora ,  con lo cual  en cuanto reinicie el servicio Hyperion    ya debería ver como cambian las luces en función de la imagen de la fuente de video  externa  ( en nuestro caso desde un descodificador )  ,

 

 

Antes de  terminar  destacsar que para la plataforma  Android existe una app que  permite controlar los leds que tengamos instalados  estableciendo un color  fijo   o  incluso aplicando efectos bastante vistosos. La puede descargar aquí: https://play.google.com/store/apps/details?id=nl.hyperion.hyperionfree&hl=es

 

Si se decide a montar el circuito  lo normal es que le funcione a la primera  y a lo sumo tenga que hacer un mínimo ajuste en la secuencia RGB    ,pero si no le responde puede mirar este post que trata diferentes problematicas   , o directamente probar la tira de leds sobre un arduino

 

 

Fuentes:

https://github.com/tvdzwan/hyperion/wiki

http://lightberry.eu/

Como detectar la combinación de colores de una tira de leds WS2801


Ambilight es una tecnología diseñada para mejorar la experiencia visual  analizando las señales entrantes y produciendo una  luz lateral ambiental adecuada al contenido que se está visualizando en la pantalla un resultado bastante atractivo , el cual  además de la sensación de estar viendo una pantalla aun mayor.Hasta hace muy poco este efecto solo se podía conseguir si comprábamos un TV que contara con ese sistema y no había otra opción, pero recientemente  con la aparición de placas con suficiente capacidad computacional, se puede emular gracias al software de Hyperion ejecutándose en una Raspberry Pi conectado a  una tira de leds WS2801. A pesar de que este tipo de tiras usan el mismo chip no todas usan la misma secuencia de color ,lo cual se traduce que si la conectamos a una Raspberry Pi y no ajustamos este parámetro el efecto no sera tan realista pues el software cambiara  colores..

 

 

tira de leds.png

 

Las tiras de  leds   RGB   direccionables   basadas en el chip  ws2801 (LEDs WS2801) son las mas habituales para todo  tipo de montajes   donde se requiera direccionar un conjunto de leds RGB  con muy  pocos hilos , los cuales en el caso del WS2801  son unicamente dos : la señal de reloj y la linea de datos, ademas claro de la alimentación que es de 5V DC.

Existen tiras basadas en el chips WS2801   en formato «luces de navidad» con cables físicos que van uniendo cada  plaquita compuesta por el propio chip ws2801 ,el led RGB  y por supuesto la electronica asociada, pero lo mas habitual, es adquirir  el conjunto  en forma de cinta autoadhesiva unos circuitos a continuación de otros . Por ejemplo ,   esta  ( que puede comprarse en Amazon por menos de 27€). Una peculiaridad  de esta tiras  ws2801,es que se pueden cortar según la longitud que se requieran , así como además que también es posible ampliarlas gracias a  los conectores que llevan en cada extremo, pudiendo  unirse  entre ellas hasta donde se necesite.

Un aspecto importante es  que para alimentar dicha tiras  también  necesitaremos aparte  una fuente de alimentación  dimensionada para el números de leds que vayamos a adquirir ( por ejemplo para 50 leds  puede ser una fuente de  5v y 2A )

Aunque para emular el efecto ambilight  lo mas habitual es usar una Raspberry Pi   (como vimos  en este post ) es posible que el efecto producido no sea satisfactorio  básicamente porque la configuración por defecto de nuestra tira de leds  no sea la de la configuración «normal « que es la combinación RGB

Para averiguar que combinación RGB  es la  usada en nuestra tira de leds,lo mejor es que  conectemos  esta a una placa  Arduino UNO   o similar  (si no tenemos ninguna   puede adquirirse en Amazon por menos de 10€ )ws2801

 

Normalmente un led  WS2801  ,  solo 4 tiene  conexiones  , que a efectos de pruebas(máximo 2 leds)   podemos hacerlo así:

  • El cable VERDE proveniente del pin SD de la tira de leds al pin 11 del Arduino Uno.
  • El cable ROJO proveniente del pin CK  de al tira de leds al  pin 13 del Arduino Uno.
  • El cable NEGRO proveniente del pin  GND de la tira de leds al pin GND del Arduino Uno.
  • El cable AZUL proveniente del pin +5V de al tira de leds lo conectaremos a la  conexión +5v de Arduino

Es decir la forma de conectar uno  o dos leds WS2801  a  un Arduino  seria según el siguiente esquema :

leds arduino

Destacamos que el circuito que proponemos es para testar  uno o dos leds RGB del tipo WS2801   pues normalmente  la tira de  verios LEDs deben ser alimentados externamente fuera de la linea de +5V de  Arduino 5V,  pues de no hacerlo podrían estropear el regulador de la placa a qu ese conecte ,  a menos que solo vayamos a probar uno  o a lo sumo dos leds   donde si podremos conectar directamente a los 5v de nuestro Arduino  al igual  que la masa o  tierra que también conectaremos  a  la masa de Arduino.

 PRUEBA  DE  UNA TIRA DE LEDS DE MAS DE DOS LEDS 

En caso de no disponer de un led individal  NO debemos  realizar el esquema anterior pues podríamos quemar  nuestro Arduino, en lugar  de esto, conectaremos la tira de leds  por un lado a una fuente de 5V /2amp .  y por el otro a Arduino , por uno de los extremos segun el esquema habitual:

 

arduino.png

Como  hemos comentado en este blog ,en el caso de usar una tira de leds  hemos de tener cuidado ya que se conecta los tres hilos a Arduino  en uno de los extremos de la tira de leds  (el lado izquierdo de la tira ) .Como en cada extremo quedan sueltos los cables opuestos (normalmente el cable rojo es el positivo y el azul el negativo) conectaremos estos  también  para dar la alimentación a  la tira de  leds ( aunque también se podría hace  por las conexiones de la tira que también den energía  ya que llevan 5V  en una las 4 conexiones ).

 SOFTWARE EN EL ARDUINO

Para probar la combinacion RGB   conectaremos un modudo a  un   Arduino    el cual   ademas  hará de «puente» entre el ordenador host y la tira basado en WS2801 . Los datos de LED se transmiten, y  no se almacenan en búfer, lo que significa que si  hay mas código en Arduino  podrían generar demoras debido a la RAM limitada del Arduino,pero no obstante el algoritmo ejerce cierto esfuerzo para evitar las pérdidas de buffer

 El protocolo de cierre WS2801, basado en retardo, podría desencadenarse inadvertidamente si el bus USB o la CPU  está desbordada con otras tareas. Este código almacena datos entrantes en serie e introduce pausas intencionadas si hay una amenaza del buffer  lleno prematuro.

El costo de esta complejidad es algo que  reduce el rendimiento, pero la ganancia es muy buena  evitando  la mayoría de los fallos visuales  incluso aunque finalmente una función de carga en el bus USB y  host CPU, quede  fuera de  control.

Si no lo tenemos, descargaremos el software de arduino (Página oficial de arduino) y lo instalamos.

Conectamos el arduino uno a nuestro pc con el cable usb. Si pide los drivers, se pueden encontrarlo en la carpeta arduino-1.0.4\drivers.

Descargaremos  esta biblioteca:fastled biblioteca descarga, la cual  importaremos  al Arduino IDE.

Ahora toca cargar el sketch para lo cual  descaremos el código Adalight para las luces  aqui 

Descomprimiremos el archivo y  añadimos los archivos que acabamos de descargar en la carptea Mis documentos/ Arduino  y ng

Arrancaremos el software de arduino y  configuramos en el ide la placa Arduino en Herramientas –>Placa Arduino Uno ( o la placa que tengamos)   sin  olvidar el puerto de comunicaciones

Iremos a  File> Sketchbook> Arduino> Adalight  y uan vez cargado el sketch debemos ajustar el numero de leds  (podemos el numero de leds para este test) que  tengamos en la instalación  así como la velocidad máxima (500000 )

 #define NUM_LEDS 88 // Max LED count
LED_PIN 11 // arduino output pin – probably not required for WS2801
GROUND_PIN 10 // probably not required for WS2801
BRIGHTNESS 255 // maximum brightness
SPEED 500000 // virtual serial port speed, must be the same in boblight_config

Ahora ya podemos   compilar el software( botón primero que  pone un v de verificar).

adalight.PNG

Si no ha habido errores ahora podemos subir  el sw pulsando el botón de Upload( flechita a la derecha  en el software de Arduino.

Al contrario de lo que sucede  con el sketch LedlIght donde se iluminan las luces  de 3 colores rojo, verde y azul si todo ha ido bien, si tenemos conectadas los leds al arduino y a la fuente externa, cuando carguemos este  código dentro del Arduino solo lucirá el primer led de la cadena lo cual significará que estamos en buen camino.

IMG_20170221_170329.jpg

El código dentro de Arduino es no volátil, así que no se borrará aunque desconecte la tarjeta.

Sw en el PC

Una vez tenemos el sw de Adalight en un Arduino, toca instalar  el programa de captura que  envíe las señales correspondiente a nuestro Arduino

Entre los programas de captura  ambibox es el mejor especialmente con  windows 10, ya que no solo  tiene la capacidad para capturar su escritorio  sino de poner un fondo personalizable, convertir la tira en luces psicodelicas en función del audio,fondo variable automático ,plugins, etc

Se  puede encontrar aqui, tanto el software como el add-on para XBMC.

Una vez   descargado , durante la instalación se puede seleccionar  la opción de instalación completa ,marcando ademas la opción de descarga e instalación de playclaw.

Empezamos la configuración, pulsamos sobre el botón de mas ajustes :

more

En la parte inferior ,como vemos seleccionaremos como Device  Adalight , elegiremos  el puerto de comunicaciones ( el mismo al que este conectado el Arduino) y en el numero de zonas, coloremos  el numero de leds total que tengamos instalados ( en el ejemplo 88).

ORDEN DE LA SECUENCIA DE COLORES

Necesitamos averiguar  el  orden de colores, lo cual podemos probar   fijando un color mediante el selector de Mode  ( Static Background ), pinchando en el color ( aparecerá la paleta), pulsando en el check de Use backlight  (para activar el encendido de la tira al color seleccioando )  y finalmente  seleccionando en el combo order of colors la combinacion adecuada a la tira(o muestra )  que tengamos  :

 

combinaciones

En order of colors hay 6 opciones  posibles : RGB,RBG ,BRG ,BGR,GRB y  GBR  ,de la cual  debemos ir seleccionando  una  a una y pinchando en la paleta de colores   un numero de colores significativos  hasta que el color de los leds sea similar al de paleta y esa sera la combinación de orden de leds de nuestra tira .

Si no deseamos probar toda la paleta de colores , una idea es utilizar los colores primarios (rojo,verde  y azul ) para comprobar si se corresponde el color de la paleta seleccionada con la combinación de leds iluminada .

En el ejemplo anterior podemos ver como la combinación verde seleccionada  se corresponde con los leds iluminados en verde:

IMG_20170507_090930

Una combinación  muy habitual, por extraño que parezca, para muchas tiras de leds económicas   es  BGR

Una vez que ya sabemos cual es una la combinación correcta  de su tira de leds WS2801, si la va a usar en una Raspberry Pi    con el software de Hyperion,  si tiene configurado   el fichero de configuración hyperion.config.json hay que modificarlo  y copiarlo  en la Raspberry PI en el directorio /storage/.config     (   no confundir  con  la ruta /storage/hyperion/configuration/)

hyperion .

 

Lo que debemos modificar  en el hyperion.config.json  es parte primaria sobre la cabecera «device»  cuya configuración contiene los siguientes campos:

  •  ‘name’: El nombre de usuario del dispositivo (sólo se utiliza para fines de visualización)
  •  ‘type’: El tipo del dispositivo o leds (los tipos conocidos por ahora son ‘ws2801’, ‘ldp8806’, ‘ ‘lpd6803’, ‘sedu’, ‘adalight’, ‘lightpack’, ‘test’ y ‘none’)
  • output : La especificación de salida depende del dispositivo seleccionado. Esto puede ser, por ejemplo, el especificador de dispositivo, número de serie del dispositivo o el nombre del archivo de salida
  • rate’: El baudrate de la salida al dispositivo
  • colorOrder’: Es aqui el parametro qeu nos interesa  pues especifica el orden de los bytes de color (‘rgb’, ‘rbg’, ‘bgr’, etc.).Es muy  importante destacar que si no ajustamos este valor  se pueden cambiar el borde de los colores .Por ejemplo muchas tiran son del t tipo BGR, lo cual significa que si dejamos marcado por defecto en RGB  cambiará en todas las visualizaciones el rojo por el azul y biceversa

Ejemplo de configuración  de la sección  device correspondiente al post anterior  :

“device”: {
“colorOrder”: “bgr”,
“rate”: 500000,
“type”: “ws2801”,
“name”: “MyPi”,
“output”: “/dev/spidev0.0”
},

Ademas de cmbiar  el orden de colores  tambien podemos manipular la  configuración de manipulación de color utilizada para ajustar los colores de salida a un entorno específico.
La configuración contiene una lista de transformaciones de color. Cada transformación contiene  los  siguientes campos:

  •  ‘id’: El identificador único de la transformación de color (p. Ej. ‘Device_1’)
  • ‘leds’: Los índices (o índices) de los leds a los que se aplica esta transformación de color  (por ejemplo, ‘0-5, 9, 11, 12-17’). Los índices son basados ​​en cero.
  •  ‘hsv’: La manipulación en el dominio de colores Valor-Saturación-Valor con lo siguiente  parámetros de ajuste:
    •  ‘saturationGain’ El ajuste de ganancia de la saturación
    • ‘valueGain’ El ajuste de ganancia del valor
  • ‘rojo’ / ‘verde’ / ‘azul’: La manipulación en el dominio de color Rojo-Verde-Azul con los  siguientes parámetros de sintonización para cada canal:
    •  ‘umbral’ El valor de entrada mínimo requerido para que el canal esté encendido
      (más cero)
    •  ‘gamma’ El factor de corrección de la curva gamma
    •  ‘blacklevel’ El valor más bajo posible (cuando el canal es negro)
    •  ‘whitelevel’ El valor más alto posible (cuando el canal es blanco)

Al lado de la lista con transformaciones de color también hay una opción de suavizado.
‘Suavizado’: Suavizado de los colores en el dominio del tiempo con la siguiente sintonización  parámetros:

  • ‘type’ El tipo de algoritmo de suavizado (‘linear’ o ‘none’)
  •  ‘time_ms’ La constante de tiempo para el algoritmo de suavizado en milisegundos
  •  ‘updateFrequency’ La frecuencia de actualización de los leds en Hz

Ejemplo de configuración  de la seccion color  correspondiente al post anterior  

“color”: {
“transform”: [
{
“blue”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0.0,
“whitelevel”: 0.84999999999999998,
“gamma”: 2.0
},
“leds”: “0-81”,
“hsv”: {
“saturationGain”: 1.0,
“valueGain”: 1.0
},
“green”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0.0,
“whitelevel”: 0.84999999999999998,
“gamma”: 2.0
},
“id”: “leds”,
“red”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0.0,
“whitelevel”: 1.0,
“gamma”: 2.0
}
},
{
“blue”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0,
“whitelevel”: 0,
“gamma”: 2.0
},
“leds”: “82-149”,
“hsv”: {
“saturationGain”: 0,
“valueGain”: 0
},
“green”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0,
“whitelevel”: 0,
“gamma”: 2.0
},
“id”: “ledsOff”,
“red”: {
“threshold”: 0.050000000000000003,
“blacklevel”: 0,
“whitelevel”: 0,
“gamma”: 2.2000000000000002
}
}
],

Ttambien podemos cambiar la configuración para cada led individual. En eta parte se especifica el área  promediado de una imagen de entrada para cada led para determinar su color. Cada elemento de la lista  contiene los siguientes campos:

  •  index: El índice del led. Esto determina su ubicación en la cadena de leds; cero
    Siendo el primer led.
  •  hscan: La parte fraccional de la imagen a lo largo de la horizontal utilizada para el promedio  (mínimo y máximo inclusive)
  •  vscan: La parte fraccional de la imagen a lo largo de la vertical utilizada para el promedio  (mínimo y máximo inclusive)
  •  ‘updateFrequency’ La frecuencia de actualización de los leds en Hz


“leds” :
[
{
“index” : 0,
“hscan” : { “minimum” : 0.0000, “maximum” : 0.0500 },
“vscan” : { “minimum” : 0.0000, “maximum” : 0.0800 }
},
{
“index” : 1,
“hscan” : { “minimum” : 0.0000, “maximum” : 0.0357 },
“vscan” : { “minimum” : 0.0000, “maximum” : 0.0800 }
},

…………………..

{
“index” : 87,
“hscan” : { “minimum” : 0.0000, “maximum” : 0.0500 },
“vscan” : { “minimum” : 0.0000, “maximum” : 0.0714 }
}
],

 

Por ultimo , tambien podemos tocar la  configuración del motor de efectos, el cual contiene los siguientes elementos:

  • paths: Una matriz con ubicaciones absolutas de directorios con efectos
  • bootsequence: El efecto seleccionado como ‘secuencia de arranque’. Es importante cambiar a su valor en OpenElec  “/storage/hyperion/effects”

Ejemplo de configuración sección  effects correspondiente al post anterior  :

“effects”: {
“paths”: [
“/storage/hyperion/effects”
]
},

 

Una vez copiado el fichero  hyperion.config.json en storage/.config reinicie la RPI y si todo ha ido bien debería ver un efecto de arcoiris y las luces deberían ser coherentes con los colores que precise reproducir el sw de hyperion