Sin duda uno de los proyectos que merecen la pena llevar a cabo pues nos ofrece a nosotros como espectador una nueva experiencia al disfrutas de nuestras series, películas, contenido en streaming o incluso nuestros videojuegos.
¿Qué es el ambilight?
Ambilight es un sistema de retroiluminación creado por la compañía Philips para la línea de sus televisores planos de plasma y LCD.
Ambilight es una tecnología diseñada para mejorar la experiencia visual y se puede utilizar con cualquier tipo de señal de televisión. Sea cual sea la fuente de la señal, la tecnología Ambilight analiza las señales entrantes y produce la luz lateral ambiental adecuada para el contenido que se está visualizando en la pantalla.

Material para la elaboración
La elaboración de este ambiligith está enfocada en los sistemas más actuales pues la única fuente de señal recibida será a través de dispositivos con puertos HDMI.
Necesario
- 1 Raspberry Pi 3
- 1 Memoria SD (8 GB)
- Y&H Capturadora de video HDMI o Alternativa
- 2 Cables HDMI
- Tira de Leds (WS2812)
- 2 Fuentes de alimentacion 2 A y 5,1 V
- Jumpers Macho-Hembra
- Mini Protoboard
- Cautín tipo lápiz
- Soldadura
Opcional
Procedimiento
Paso #1 Instalación y configuración de Raspberry Pi OS
Antes de iniciar tenemos que descargar todo software necesario para llevar a cabo el proyecto, en este caso descargaremos tanto el sistema operativo Raspberry Pi OS y BalenaEtcher.
Raspberry Pi OS
Primeramente, nos tenemos que dirigir a la página oficial de raspberry y descargar el sistema operativo Raspberry Pi OS, en este caso haremos uso de la versión lite ya que esta nos bastara pues no necesitaremos hacer uso de una interfaz gráfica.

BalenaEtcher
Después descargaremos BalenaEtcher desde su página oficial y lo instalaremos como cualquier programa, este software nos permitirá flashear el sistema Raspberry Pi OS en nuestra memoria microSD.

Instalación del sistema operativo
Para esto solo basta con abrir BelenaEtcher.

Seleccionaremos el sistema operativo descargado (archivo zip) y de igual manera seleccionaremos la memoria microSD y seguidamente seleccionamos Flash! esperaremos a que el proceso termine. (Este procedimiento eliminara todos los datos de la memoria microSD)

Habilitar SSH y Wi-Fi en Raspberry
Para trabajar de una manera más cómoda desde nuestra computadora habilitaremos la conexión por ssh las cual nos permitirá conectarnos a nuestra raspberry desde nuestro computador, para ello una vez que hemos terminado de flashear el sistema operativo en nuestra microSD accederemos a ella desde nuestro explorador de archivos en Windows.

Dentro de la raíz de la microSD en la partición boot es necesario crear dos nuevos archivos con el nombre «ssh» y «wpa_supplicant.conf» (el archivo wpa_supplicant.conf puede ser omitido si nuestra raspberry estará conectada por cable Ethernet) el archivo ssh no deberá contener ningún tipo de extensión como txt, exe, etc.

Si haremos uso de la conexión Wi-Fi es necesario configurar adecuadamente nuestro archivo wpa_supplicant.conf para ello lo abriremos con algún editor de texto como lo puede ser nuestro bloc de notas o visual studio code.
Solo bastara con modificar el siguiente apartado del código «ssid y psk» por el nombre y contraseña que corresponda a nuestro Wi-Fi, pegaremos y guardaremos los cambios:
country=us
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="Nombre_De_Mi_Red"
psk="Contraseña_De_Mi_Red"
}
Conectarnos a nuestra Raspberry por SSH
Una vez configurado todo y conectado nuestra raspberry a una fuente de alimentación procedemos a conectarnos, para ello debemos saber cuál es la dirección IP que nuestro Router/Modem le asigno, existen varias formas, la más facil y rápida es acceder a nuestra terminal (La terminal a utilizar puede ser CMD, PowerShell, etc.) y colocar el comando:
ping raspberrypi.local -4
El resultado que nos devolverá es la dirección IP de nuestra Raspberry Pi, en este caso la IP es 192.168.0.11

Seguiremos haciendo uso de nuestra terminal y ahora nos conectaremos por medio de ssh, para ello solo basta con escribir el siguiente comando sustituyendo «DireccionIP» Por la IP propia de nuestra raspberry:
ssh pi@DireccionIP //Sustituimos la IP por la propia
Una vez establecida la conexión nos pedirá colocar la contraseña que corresponde al usuario, como estamos utilizando la configuración por defecto, la contraseña es «raspberry«, la cual podremos cambiar si así lo queremos.

Una vez conectados siempre es recomendable actualizar los paquetes y dependencias de nuestro sistema, para ello utilizaremos los siguientes comandos:
sudo apt update
sudo apt upgrade -y
Paso #2 Instalación de Hyperion
Hyperion es la herramienta que usaremos y la cual nos permitirá configurar y controlar los leds para lograr un ambilight en nuestros televisores.
Hyperion es una implementación de iluminación ambiental o parcial de código abierto. Es compatible con muchos dispositivos LED y capturadores de video..
https://github.com/hyperion-project/hyperion.ng
Para más información del proyecto podemos acceder a su GitHub.
Descargar Hyperion
Para descargarlo nos dirigimos al siguiente enlace Hyperion en el cual podremos revisar la versión más actual del proyecto.
Buscamos el enlace con el nombre «Hyperion-2.0.0-alpha.9-Linux-armv7l.deb» (El nombre pude variar solo tenemos que asegurarnos que la versión descargada sea «armv7» para raspberry Pi 3 o «armv6» para raspberry Pi Zero W y su extensión «.deb«)

Haremos clic derecho y seleccionaremos «Copiar dirección del enlace«

Una vez teniendo copiado el enlace de descarga tenemos que dirigirnos a nuestra terminal con la conexión SSH abierta y colocar el comando «wget + enlace de descarga«

Instalar Hyperion
Una vez descargado colocamos el siguiente comando el cual instalara hyperion en nuestra Raspberry.
sudo dpkg -i Hyperion-2.0.0-alpha.9-Linux-armv7l.deb

Después de la instalación reiniciaremos nuestra raspberry Pi y nos volveremos a conectar por SSH.
Una vez estando de nuevo conectados a nuestra raspberry ejecutaremos los siguientes comandos:
sudo systemctl disable --now hyperiond@pi
sudo systemctl enable --now hyperiond@root
Pruebas
Para asegurarnos que hyperion está funcionando en nuestra raspberry, tendremos que acceder a su panel de control, para ello abriremos nuestro navegador y colocaremos la dirección IP de nuestra raspberry además del puerto en el que está escuchando Hyperion, por defecto es el puerto 8090.
El resultado debe ser parecido al siguiente: 192.168.0.11:8090

Paso #3 Instalación de Hardware
Sin duda la parte más «rápida» de este proyecto, ya que solo nos enfocaremos en la instalación de todos nuestros leds y accesorios que le darán vida a nuestro ambilight. 😅
Nota: Antes de alimentar nuestros leds, raspberry, etc. Tenemos que asegurarnos primeramente de conectar todo, una vez conectado todo el hardware procedemos a conectarlo a un tomacorriente.
Conexión de LEDS y Raspberry
Esta será la parte que más trabajo nos pedirá ya que tenemos que colocar nuestra tira de leds alrededor del televisor además de soldar las uniones en cada esquina.
Para la selección de los leds todo dependerá de las dimensiones y pulgadas del televisor, para televisores de 40 pulgadas o más es recomendable tener tiras con 60 leds/m ya que esto nos permitirá tener una mayor definición en nuestro ambilight, televisores de menor dimensión y pulgadas bastará con tiras de 30 leds/m.

Tenemos que tomar en cuenta al momento de cortar nuestra tira led hacia a donde apuntan las flechas ya que al soldar nuestras tiras la polaridad tiene que coincidir (no hay protección de inversión de polaridad) para más información de los leds puedes visitar playbyte.

Una vez soldados los leds y colocados en nuestro televisor, el resultado se vería algo similar a lo siguiente.
Después de tener nuestra tira de leds lista, colocaremos las conexiones de los mismos en un pequeña protoboard el conector por defecto de los leds fue retirado, esto para tener un mejor manejo de las conexiones en cuanto a la alimentación de los leds y la comunicación con nuestra raspberry.
- Rojo = Positivo
- Blanco = Negativo
- Verde = Datos

Seguidamente conectaremos nuestra raspberry a la protoboard, para ello haremos uso de uno de los pines GND o Ground (cable azul) y el pin GPIO 18 (cable verde).

- Azul = Negativo
- Verde = Datos

Para finalizar este apartado solo nos falta conectar una fuente de alimentación que suministre el voltaje necesario a nuestros leds, para ello se utilizó el cargador de un IPad, aunque puede ser usado cualquier cargador similar, pero cumpliendo con el voltaje necesario.
En el caso del cable se uso un USB genérico, removiendo el conector micro USB e intercambiándolo por pequeños jumpers correspondientes a su lado positivo (cable blanco) y negativo (cable negro)

Una vez teniéndolo bastara con conectarlos a nuestra protoboard haciendo coincidir las conexiones positivas y negativas. (Tomar bastantes precauciones cuando se realice la conexión)

Accesorios
Ahora nos enfocaremos en colocar todo el hardware restante, esta sección la dividiremos en dos partes ya que se explicará como hacer este proyecto si queremos hacer uso de una sola fuente de video o si por el contrario queremos hacer uso de múltiples fuentes como una PC, Laptop, consola de videojuegos (PS5, Xbox Series X, Nintendo Switch) o reproductores de streaming (Roku TV, Amazon Fire TV, Google Chromecast).
Fuente de video única
En este apartado nos centraremos únicamente en hacer funcionar nuestro ambilight con una sola fuente de video, el resultado será el mismo, aunque con la desventaja de que si en algún momento queremos cambiar por otro dispositivo tendremos que hacer el cambio de manera manual.
Para esto colocaremos nuestra capturadora de video a la cual le conectaremos nuestra fuente de video (Input) y en el otro extremo colocaremos un cable HDMI el cual conectara nuestra capturadora a nuestro Televisor/Monitor (Output), además conectaremos el puerto USB a nuestra raspberry.
Nota: En este caso se utilizó un Amazon Fire TV como ejemplo.


Con esto conectado ya tendremos terminado todo nuestro ambilight. 😎
Múltiples fuentes de video
En esta parte veremos cómo agilizar un poco el apartado de tener varias fuentes de video conectadas, esto no es obligatorio para el funcionamiento de nuestro ambilight y es perfectamente prescindible, pero si queremos tener una experiencia aún mejor lo podremos realizar.
Para ello haremos uso de un switch en el cual podremos conectar varias entradas video y obtener la salida de la señal que deseemos.

Para realizar esto bastar con conectar la salida de nuestro Switch a la entrada de nuestra capturadora.

Y por último conectaremos todas las fuentes de video a las estradas de nuestro switch, con esto tendremos listo el hardware de nuestro ambilight. 😎

Paso #4 Configuración de Hyperion
Ahora estamos listos para la última parte, es necesario modificar varios parámetros dentro del panel de control de Hyperion, para ello tenemos que acceder mediante nuestra computadora, usando la dirección IP y el puerto de escucha.
Nota: Recuerda cambiar la dirección IP por la tuya.
192.168.0.11:8090

En el menú lateral izquierdo nos dirigiremos al apartado de «Configuration / LED Hardware / LED Controller».

En el apartado «Controller Type» seleccionaremos «ws281x» y en «RGB byte order» seleccionamos «GRB«.

Dentro del mismo menú nos dirigiremos al apartado de » LED Layout«.

Este apartado tendrá que ser modificado de acuerdo con la configuración de cada uno, ya que tendremos que colocar el número de leds con lo que contamos, en este caso la configuración fue la siguiente.
- Top / Parte superior = 56 leds
- Left / Parte izquierda = 32 leds
- Right/ Parte Derecha = 30 leds
En este caso al no utilizar leds en la parte inferior la dejamos en 0, después solo damos clic en «Save Layout«.
Algo a tomar en cuenta es que Hyperion en la parte derecha nos da información que nos puede ser de utilidad, nos da el total de leds con los que contamos y nos muestra cuanto es el consumo máximo de energía de los leds.

Ahora en el menú nos dirigiremos al apartado de «Configuration / Capturing Hardware».
Dentro de este menú seleccionamos «Enable USB Capture» en «Priority channel» colócalos «240» y guardamos la configuración.

Siguiendo en este menú buscamos el apartado de «USB Capture» donde modificaremos lo siguiente:
- Device: USB Video: USB Video.
- Video standard: Automatic (Si conocemos el sistemas de codificación al que pertenece el televisor se puede seleccionar manualmente).
- Device Resolution: 800×600 (Seleccionaremos una calidad de imagen menor, esto para reducir el delay entre lo que muestra el televisor y la iluminación de los leds).
- Size decimation: 4

Por último, tenemos que acceder «Configuration / Remote Control» y en el panel de «Components control» tenemos que dejar seleccionados las siguientes opciones.
- Smoothing
- Blackbar Detection
- USB Capture
- LED device

Listo, nuestro ambilight está terminado. 😄
Resultado final
Aquí una pequeña muestra de lo que es capaz nuestro ambilight.
Nintendo Switch (Zelda: breath of the wild)
Muy Pronto.
Amazon Fire TV Stick
Muy Pronto.
Laptop
Muy Pronto.
Recomendaciones
Algunas recomendaciones bajo mi experiencia son:
- Tener un pared totalmente lisa.
- El color de nuestra pared tiene que ser de color blanco.
- Dejar al menos 20 cm de distancia entre nuestro TV y objetos/muebles.
Extras
Para no depender siempre de alguna fuente de video activa podemos descargar una aplicación para Android o IOS la cual nos permitirá manejar nuestros LEDs remotamente, cambiando los colores o seleccionando alguno de los efectos que tiene por default Hyperion.
febrero 27, 2021 a las 7:08 am
No me permite avanzar de la descarga del archivo me sale lo siguiente
wget: unable to resolve host address ‘github.com’
wget: no se puede resolver la dirección del host ‘github.com’
febrero 28, 2021 a las 3:38 am
Asegúrate de escribir correctamente el comando, no deberías tener problemas para descargarlo.
wget https://github.com/hyperion-project/hyperion.ng/releases/download/2.0.0-alpha.9/Hyperion-2.0.0-alpha.9-Linux-armv7l.deb
De igual forma revisa que cuentes con una conexión a internet estable y puedes intentar cambiar los DNS en tu computadora, podrías internar modificarlo por los DNS de google (8.8.8.8).
Saludos, cualquier duda no dudes en escribir un comentario. 😁