Retroiluminación LED adaptativa para TV. Hyperion Ambilight: retroiluminación de TV adaptativa. Suavizado de LED por vecinos

Buenas tardes.

Para mi primer artículo, elegí una de mis artesanías más exitosas: HDMI-passthrough analógico de Ambilight de Philips, en adelante llamaré a esta composición “Atmosvet”.

Introducción
No es muy difícil encontrar soluciones y artículos listos para usar / abiertos en Internet sobre cómo hacer Ambilight para un monitor / TV si muestra una imagen desde una PC. Pero en mi sistema multimedia, mostrar una imagen en un televisor desde una PC toma solo el 5% del tiempo de uso, juego más tiempo desde las consolas de juegos, lo que significa que tuve que inventar algo propio.
Datos iniciales:
  • Televisor de plasma de 60"
  • HTPC basado en Asrock Vision 3D 137B
  • Xbox 360
La mayoría de los dispositivos usan HDCP para reproducir contenido incluso mientras juegan.
Requisito:
Es necesario proporcionar soporte centralizado para Atmosvet para todos los dispositivos conectados al televisor.
Implementación
No te diré cómo conecté una tira de LED de 4,5 m al televisor y qué se debe hacer con el Arduino, puedes usarlo como base.

La única advertencia:
Me di cuenta de que se estaban produciendo parpadeos extraños en la parte inferior de la pantalla, al principio cometí un error en la señal, volví a seleccionar el eliminador de parpadeo, cambié el tamaño de la imagen y desenterré un montón de otras cosas, mejoró, pero el parpadeo no ayudó. Empezó a mirar. Resultó que el parpadeo estaba solo al final de la cinta, y luego con escenas brillantes. Tomando un multímetro, medí el voltaje al principio, medio y final de la cinta y adiviné la causa del parpadeo: al principio de la cinta era de 4.9V (sí, la PSU china da un voltaje con desviación, esto no es significativo), en el medio 4.5 al final 4.22 - La caída de voltaje es demasiado significativa, tuve que resolver el problema simplemente - en el medio de la cinta traje energía de la fuente de alimentación, el cable comenzó detrás del televisor . Ayudó al instante, cualquier parpadeo se detuvo por completo.

Capturar una imagen con una cámara web
La primera versión de prueba para ejecutar la idea y su visualización se eligió capturando una imagen a través de una cámara web) se veía así:

La baja reproducción cromática y la alta latencia demostraron que esta implementación no se podía utilizar de ninguna manera.

Captura de una imagen a través de HDMI

En el proceso de investigación de posibles opciones, se eligió el siguiente esquema como el más confiable y económico:

  • La señal de todos los dispositivos se envía a un conmutador HDMI de 5 entradas y 1 salida compatible con HDCP
  • La señal de salida se alimenta a un divisor HDMI de 1 entrada y 2 salidas, que no solo es compatible con HDCP, sino que también lo apaga en la salida (gracias a los chinos).
  • Una de las señales de salida va al televisor.
  • Otra salida va al convertidor de HDMI a AV
  • La señal de S-Video va a la caja de captura ICONBIT
  • La caja de captura se conecta al HTCP en constante funcionamiento a través de USB, que está conectado al controlador de cinta Arduino en el televisor.

Inicialmente, parece salvaje y como muletas, pero:

  • Funciona.
  • Todo es total, ordenar desde China me costó 3-4 mil rublos.

¿Por qué no usé una placa de captura HDMI? Es simple: la opción más barata y asequible es Blackmagic Intensity Shuttle, pero no puede funcionar con una señal de 1080p/60fps, solo 1080p/30fps, lo cual no es aceptable, porque. No quería bajar la velocidad de fotogramas para poder capturar la imagen. + este caso cuesta alrededor de 10 mil. rublos - que no es barato con un resultado desconocido.

Las pérdidas en la conversión de HDMI a S-video son insignificantes para capturar color con una resolución de retroiluminación LED de 46x26.

Inicialmente, traté de usar EasyCap para capturar S-video (tiene muchas variaciones en chino), pero la conclusión es que el chip que se usa allí es extremadamente pobre y no se puede trabajar con él usando openCV.

Lo único negativo es que la señal de salida de S-Video contenía barras negras en los bordes que recortaban el contenido real (alrededor del 2-5 %), corté la imagen de salida de la tableta de captura para eliminar estas barras, la pérdida de la imagen en esas áreas en la práctica no afectó el resultado.

Suave
Para mí, esta fue la parte más interesante, porque. Realmente no me gusta meterme con los hierros.

Para capturar la imagen, utilicé openCV y, en particular, su envoltorio .NET emgu CV.

También decidí aplicar varias técnicas diferentes de procesamiento y preparación de imágenes antes de pasar la lista de colores al controlador.

Proceso de procesamiento de cuadros
1. Recibir un cuadro capturado
2. Recorta el marco para eliminar las rayas negras
Todo es simple aquí:
frame.ROI = new Rectangle(8, 8, frame.Width - 8, frame.Height - 18 - 8);
Recortamos 8 píxeles desde la parte superior, 8 desde la derecha y 18 desde la parte inferior (no hay una franja a la izquierda).
3. Cambie el tamaño del marco a la resolución de la luz de fondo, no es necesario que llevemos una imagen saludable con nosotros
Nada complicado tampoco, lo hacemos usando openCV:
frame.Resize(LedWidth - 2*LedSideOverEdge,
LedHeight - LedBottomOverEdge - LedTopOverEdge,
INTER.CV_INTER_LINEAR);
El lector atento notará una abundancia de variables. El caso es que el marco de mi televisor es bastante grande, ocupando 1 LED en los lados, 1 en la parte superior y 3 en la parte inferior, por lo que el cambio de tamaño se realiza en los LED que están directamente enfrente de la pantalla, y ya complementamos las esquinas más adelante. . Al cambiar el tamaño, solo obtenemos los colores promedio que deberán tener los píxeles LED.
4. Mapeo de los LED del marco recortado
Bueno, aquí también todo es simple, estúpidamente pasamos por cada lado y llenamos secuencialmente una matriz de 136 valores con el color de los LED. Dio la casualidad de que, en este momento, todas las demás operaciones son más fáciles de realizar con una matriz de LED que con un marco, que es más difícil de procesar. Además, para el futuro, agregué el parámetro de "profundidad" de captura (número de píxeles desde el borde de la pantalla, para promediar el color del LED), pero en la configuración final resultó ser mejor sin él.
5. Realice la corrección de color (balance de blancos/balance de color)
Las paredes detrás del televisor están hechas de madera, la madera es amarilla, por lo que debe compensar la amarillez.
var azul = 255.0f/(255.0f + blueLevelFloat)*pixelBuffer[k];
var verde = 255.0f/(255.0f + greenLevelFloat)*pixelBuffer;
var rojo = 255.0f/(255.0f + redLevelFloat)*pixelBuffer;
En general, inicialmente tomé el balance de color de las fuentes de algún editor de código abierto, pero no cambió el blanco (el blanco permaneció blanco), cambié un poco las fórmulas, escribí y obtuve exactamente lo que necesitaba: si el nivel de el componente de color es negativo (entiendo cómo, falta este color), luego agregamos su intensidad y viceversa. Para mis paredes funcionó: RGB (-30,5,85).

En la corrección de color, también realizo la ecualización del nivel de negro (el negro viene en alrededor de 13,13,13 en RGB) simplemente restando 13 de cada componente.

6. Realizar desaturación (reducir la saturación de la imagen)
En la configuración final no utilizo desaturación, pero puede ser necesaria en algún momento, de hecho hace que los colores sean más "pastel", como el Ambilight de Philip. No daré el código, simplemente convertimos de RGB -> HSL, reducimos el componente de saturación (saturación) y volvemos a RGB ya.
7. Eliminador de parpadeo
Da la casualidad de que la imagen de entrada "tiembla", esto es una consecuencia de la conversión a una señal analógica, según creo. Al principio traté de decidir a mi manera, luego busqué en las fuentes del filtro Defliker utilizado en VirtualDub, lo reescribí en C # (estaba en C ++), me di cuenta de que no funciona, porque es tal impresión de que tiene problemas con el parpadeo entre cuadros, al final combiné mi solución y este eliminador de parpadeo obtuvo algo extraño, pero funcionó mejor de lo esperado. El deflicker original solo funcionaba con la intensidad de todo el cuadro, lo necesito para cada LED por separado. El deflicker original comparó el cambio de intensidad como una suma, me gusta comparar mejor la longitud del vector de color, el deflicker original comparó el delta del cambio de intensidad en comparación con el cuadro anterior, esto no encaja, y lo rehice para el valor medio de la intensidad dentro de la ventana de fotogramas anteriores. Y muchas otras cositas, por lo que poco queda del deflicker inicial.
La idea principal: en función de la intensidad promedio de los cuadros anteriores, modifique el cuadro actual si su intensidad no es superior a un cierto umbral (tengo este umbral en la configuración final 25), si se supera el umbral, entonces la ventana se reinicia sin modificación.
Ligeramente modificado (para legibilidad fuera de contexto) código de mi deflicker:
Array.Copy(_leds, _ledsOld, _leds.Length); para (var i = 0; i< _leds.Length; i++) { double lumSum = 0; // Calculate the luminance of the current led. lumSum += _leds[i].R*_leds[i].R; lumSum += _leds[i].G*_leds[i].G; lumSum += _leds[i].B*_leds[i].B; lumSum = Math.Sqrt(lumSum); // Do led processing var avgLum = 0.0; for (var j = 0; j < LedLumWindow; j++) { avgLum += _lumData; } var avg = avgLum/LedLumWindow; var ledChange = false; if (_strengthcutoff < 256 && _lumData != 256 && Math.Abs((int) lumSum - avg) >= _strengthcutoff) ( _lumData = 256; ledChange = true; ) // Calcular el factor de ajuste para el led actual. escala var = 1,0; int r, g, b; if (ledChange) ( for (var j = 0; j< LedLumWindow; j++) { _lumData = (int) lumSum; } } else { for (var j = 0; j < LedLumWindow - 1; j++) { _lumData = _lumData; } _lumData = (int) lumSum; if (lumSum >0) ( escala = 1.0f/((avg+lumSum)/2); var filt = 0.0f; for (var j = 0; j< LedLumWindow; j++) { filt += (float) _lumData/LedLumWindow; } scale *= filt; } // Adjust the current Led. r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; // save source values var sr = r; var sg = g; var sb = b; var max = r; if (g >máx) máx = g; si (b > máx) máx = b; doble s; si (escala*máx > 255) s = 255,0/máx; otra cosa s = escala; r = (int)(s*r); g = (int) (s*g); b = (int) (s*b); // mantener resaltado double k; if (sr > _lv) ( k = (sr - _lv)/(doble) (255 - _lv); r = (int) ((k*sr) + ((1.0 - k)*r)); ) if ( sg > _lv) ( k = (sg - _lv)/(doble) (255 - _lv); g = (int) ((k*sg) + ((1.0 - k)*g)); ) si (sb > _lv) ( k = (sb - _lv)/(doble) (255 - _lv); b = (int) ((k*sb) + ((1.0 - k)*b)); ) _leds[i] = Color .FromArgb(r, g, b); ) /* Fase de ablandamiento temporal. */ if (ledChange || _softening == 0) continuar; var diffR = Math.Abs(_leds[i].R - _ledsOld[i].R); var diffG = Math.Abs(_leds[i].G - _ledsOld[i].G); var diffB = Math.Abs(_leds[i].B - _ledsOld[i].B); r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; suma; si (diffR< _softening) { if (diffR >(_suavizado >> 1)) ( suma = _leds[i].R + _leds[i].R + _ledsOld[i].R; r = sum/3; ) ) if (diffG< _softening) { if (diffG >(_suavizado >> 1)) ( suma = _leds[i].G + _leds[i].G + _ledsOld[i].G; g = sum/3; ) ) if (diffB< _softening) { if (diffB >(_suavizado >> 1)) ( suma = _leds[i].B + _leds[i].B + _ledsOld[i].B; b = suma/3; ) ) _leds[i] = Color.FromArgb(r, g, b); )
Sea _leds una matriz de LEDs de la clase Color, _ledsOld sean los valores de los cuadros antes de la conversión, LedLumWindow sea el ancho de la ventana de los cuadros anteriores, para estimar el cambio promedio de intensidad, en la configuración final tenía una ventana de 100, que son aproximadamente 30 cuadros por segundo equivalen a 3 segundos. _lumData: matriz de valores de intensidad de fotogramas anteriores.

Al final, este mecanismo dio efectos inesperados aún más agradables en la imagen, es difícil describir cómo se percibe visualmente, pero la hace más oscura cuando es necesario y más brillante cuando es necesario, como un contraste dinámico. El objetivo del deflicker es amplio, no solo para eliminar el parpadeo, sino también para equilibrar el color de salida en general, tanto en componentes como en tiempo dentro de la ventana.

8. Suavizado de LED por vecinos.
En general, en la configuración final, no me gustó mucho el suavizado y lo desactivé, pero en algunos casos puede ser útil. Aquí simplemente promediamos el color de cada LED sobre sus vecinos.
var smothDiameter = 2*_smoothRadius + 1; Array.Copy(_leds, _ledsOld, _leds.Length); para (var i = 0; i< _ledsOld.Length; i++) { var r = 0; var g = 0; var b = 0; for (var rad = -_smoothRadius; rad <= _smoothRadius; rad++) { var pos = i + rad; if (pos < 0) { pos = _ledsOld.Length + pos; } else if (pos >_ledsOld.Length - 1) ( pos = pos - _ledsOld.Length; ) r += _ledsOld.R; g += _ledsOld.G; b += _ledsOld.B; ) _leds[i] = Color.FromArgb(r/diámetro suave, g/diámetro suave, b/diámetro suave); )
9. Guardamos el estado actual para que el subproceso de envío de paquetes lo tome y lo envíe al controlador de retroiluminación.
Separé deliberadamente el proceso de procesamiento de cuadros y envío de paquetes al controlador: los paquetes se envían una vez en un cierto intervalo (tengo 40 ms) para que el arduino cante para procesar el anterior, porque más de 30 ms se ahoga, por lo que gira Destacar que no dependemos directamente de la captura de frame rate y no interferimos en ese proceso (y enviar un paquete también es una pérdida de tiempo).
Un poco sobre arduino
No puede simplemente tomar y enviar un paquete pesado al arduino a través de la serie, porque irá más allá del búfer HardwareSerial predeterminado y perderá su final.
Esto se resuelve de manera bastante simple: establecemos el valor del tamaño del búfer HardwareSerial en un tamaño suficiente para que quepa todo el paquete enviado con una matriz de colores, para mí es 410.
interfaz de usuario
El software en sí se implementó como un servicio ganador, para configurar todos los parámetros + habilitar/deshabilitar, hice una interfaz de usuario web que se comunicaba con el servicio a través del servicio web en el servicio. La interfaz final en la pantalla del teléfono móvil se ve así:
Resultado
Como resultado, el resultado cumplió con todas las expectativas, y ahora, cuando juego en consolas, me sumerjo aún más en la atmósfera del juego.

Como resultado general del trabajo, grabé un video con el trabajo de la atmósfera según mi esquema:

Muestra de prueba 1: Pacific Rim, escena de batalla de Shanghái, esta película es buena para pruebas y demostraciones, muchas escenas y destellos brillantes, rayos, etc.:

Muestra de prueba 2: algunos videos de MLP filtrados de YouTube funcionan muy bien para probar escenas con colores brillantes (me gustaron las rayas), así como escenas de ritmo rápido (al final del video se pueden ver los efectos de demora, solo visibles). en el video, cuando esto no se nota en la visualización real, traté de medir la demora en el video; resultó 10-20 ms):

Y finalmente, vale la pena señalar sobre el consumo de recursos de HTPC:
HTPC Tengo un ASRock Vision 3D en i3, el servicio de atmósfera consume 5-10% de la CPU y 32 MB de RAM.

Gracias por su atención, realmente espero que mi artículo ayude a alguien.

A continuación se muestra un proyecto para la fabricación de retroiluminación Ambilight para un televisor o monitor. El artículo anterior "Iluminación dinámica de TV" adoptó un enfoque simple utilizando cuatro tiras de LED RGB, lo que permite que solo se muestre un color en cada lado del televisor.
En este artículo, mejoraremos nuestra retroiluminación mediante el uso de píxeles LED RGB para controlar cada LED RGB. Leer más aquí:.

Entonces lo que necesitamos:
- cinta digital basada en el nuevo controlador WS2801. Una cinta de este tipo (25 LED) es suficiente para un monitor estático promedio normal. La distancia entre los módulos RGB es de aproximadamente 10 cm. Para un televisor grande, es posible que necesite 2 cintas de este tipo.
- Fuente de alimentación estabilizada de 5V para alimentar LED RGB. La corriente de alimentación máxima debe seleccionarse en función del consumo de energía de los módulos LED RGB. Si se usa una cinta (25 LED RGB), entonces se necesita una corriente de fuente de alimentación de 1,5 A, si son 2 cintas, entonces 3 A, respectivamente.
- Controlador Arduino, conectores y otras cositas.

Para facilitar la conexión al Arduino y la fuente de alimentación con una cinta, se realizaron pequeñas mejoras. Para las líneas de datos y de reloj de la cinta, se soldaron conectores para que pudieran insertarse de forma segura en los cabezales de Arduino. Se soldó un conector para conectar la fuente de alimentación. Desde el conector, se soldó una "tierra" común al Arduino. En la foto de abajo, creo que todo está bastante claro:

Arduino usó el pin 13 para el reloj y el pin 11 para los datos. Además, no te olvides del suelo.

Ahora, debemos decidir cómo se montará todo esto en la parte posterior del televisor o monitor. Aquí hay muchas opciones, y puede colocar estúpidamente los LED con cinta adhesiva en la parte posterior del monitor, o puede cortar una hermosa plantilla o plexiglás. Nuestra plantilla estaría hecha de plástico fino, con todos los recortes necesarios para el monitor y los soportes:

Luego, debe espaciar uniformemente 25 LED RGB LED. Obtuve la distancia entre los LED de unos 50 mm.

Cuando haga la plantilla, no bloquee los orificios de ventilación del monitor, si los hay.

Después de que todos los píxeles LED RGB estén arreglados, queda por conectar el controlador Arduino. Para estos fines, la cinta de doble cara es la más adecuada. Conecte el cable USB a Arduino y la fuente de alimentación de 5V a la tira de LED RGB.

Software

Puede descargar todo el software necesario desde GitHub. En la carpeta Arduino->LEDstream hay un boceto para Arduino. Compílelo y súbalo al controlador.

La computadora usa software bajo el IDE de procesamiento, que debe descargarse e instalarse por separado (¡no debe confundirse con el procesamiento Arduino!). Si su configuración no tiene 25 LED RGB, deberá realizar cambios en el boceto. Además, debe seleccionar el puerto COM al que está conectado el controlador Arduino para transmitir datos (vea la captura de pantalla a continuación).

El programa funciona de la siguiente manera: después del lanzamiento, el programa se ejecuta en segundo plano y constantemente toma capturas de pantalla de la pantalla y analiza los colores de los puntos individuales alrededor del perímetro. Luego calcula el color promedio de los puntos y envía los datos al controlador Arduino. Y no importa lo que se esté ejecutando en la computadora: un reproductor multimedia, un navegador con un video de YouTube u otra cosa.

No consideraremos el código del programa, porque esta bien comentado. Por cierto, en la carpeta Colorswirl hay un pequeño ejemplo de un boceto de demostración que muestra un arcoíris en los LED RGB.
Es posible que algún hardware antiguo no sea capaz de manejar la carga (por ejemplo, los primeros Atoms en netbooks), porque se toman capturas de pantalla constantemente. En este caso, reducir la resolución, por ejemplo, 800x600, puede ayudar.

Tecnología Ambilight

La tecnología de retroiluminación patentada de la compañía antes mencionada es una lámpara especial integrada en el televisor que le permite proyectar un brillo suave en la pared detrás del televisor de cierta manera, que, por así decirlo, continúa la imagen de la pantalla para aumentar la inmersión. en la atmósfera de lo que sucede en la pantalla.

La tecnología en sí nació en el siglo pasado debido a que, por un lado, el brillo de los receptores de televisión de entonces era insuficiente y la audiencia apagaba las luces cuando los miraba, por otro lado, viendo la televisión en el la oscuridad producía una fuerte tensión en los ojos, lo que conducía a una rápida fatiga y malestar general. La solución era obvia: la presencia de una fuente de luz difusa cerca (las llamadas lámparas de TV). Hoy, según el departamento de investigación de Philips, este problema está diseñado para resolver la tecnología "Ambilight".

De momento, ya existen 5 generaciones (y un montón de modificaciones) de esta tecnología, de las cuales las tres últimas son las más comunes:

  • Tecnología de retroiluminación de tres canales Envolvente Ambilight» con lámparas adicionales en la parte superior del cuerpo para expandir el campo de efectos hacia arriba y unión independiente del bloque izquierdo, derecho y superior de lámparas de fondo al área correspondiente de la pantalla.
  • tecnología de retroiluminación completa Envolvente completo Ambilight”, donde la pantalla ya está rodeada de lámparas por todos lados. En consecuencia, el procesador encargado de controlar las lámparas construye una imagen de fondo a partir del análisis de al menos cuatro áreas de la imagen en la pantalla. Para una mejor transmisión de la luz, la caja del televisor está equipada con un panel de pantalla trasero.
  • Tecnología " Espectros de Ambilight”, que permite crear una imagen “volumétrica” gracias a más de 120 LEDs de nueva generación y algoritmos avanzados de procesamiento de imágenes.

Todas las tecnologías crean, hasta cierto punto, luz ambiental detrás del televisor que complementa los colores y la intensidad de la luz de la imagen que se muestra en la pantalla.

¿Qué se puede decir al final de la reseña? Sin duda, el dispositivo es interesante y vale la pena probarlo, especialmente teniendo en cuenta que el fabricante ofrece una prueba de manejo gratuita durante 30 días, es decir, si no le gusta el dispositivo, puede devolverlo y recuperar su dinero. Sus costos en este caso serán iguales a los gastos de envío al fabricante. La principal desventaja es que el dispositivo funciona solo en conjunto con el software, lo que significa que se necesita una computadora para obtener el efecto de retroiluminación dinámica.

Resultados

Pues en el residuo seco tenemos:

ventajas

  • trabajar con cualquier tipo de monitores y televisores conectados a la computadora;
  • bajos requisitos de sistema para hardware de PC;
  • funcionalidad completamente implementada que no difiere de la declarada por el fabricante;
  • buen soporte de software, incluidos proveedores de software de terceros;
  • la posibilidad de configuración individual del producto y la creación de soluciones no estándar;
  • precio bajo;
  • amplias oportunidades de pago y entrega de bienes;
  • facilidad de instalación y configuración;
  • servicio de soporte técnico de habla rusa;
  • instrucciones detalladas de texto y video en el sitio web del fabricante;
  • prueba de manejo gratis.

menos

  • necesita una computadora para obtener el efecto de retroiluminación dinámica;
  • falta de software en la entrega, la necesidad de descargarlo de Internet;
  • la falta de instrucciones en el kit (incluso electrónico), la necesidad de leerlo en el sitio web del fabricante;
  • falta de una serie de elementos de fijación (cinta adhesiva de doble cara) para LED;
  • la necesidad de una determinada ubicación de la pantalla (15-30 cm de la pared) para obtener el efecto más correcto;
  • la ausencia de tarjeta de garantía y datos del fabricante tanto en el embalaje como en el propio producto.

Hace unos años, se publicó una reseña increíble en mySKU, que publicó . Los comentarios en esta revisión también son sorprendentes: es solo una gran base de conocimiento (tan grande que el navegador apenas carga esta página). El tiempo pasa, los componentes se abaratan, mySKU adquiere una nueva audiencia que podría haberse perdido esta reseña. También decidí describir el proceso de creación de una retroiluminación adaptativa para un televisor o monitor como Philips Ambilight con mis propias palabras. Quizás mi reseña le sea útil a alguien.

Philips en 2007 patentó una tecnología de retroiluminación de TV increíblemente simple, pero, sin exagerar, increíble. Con una retroiluminación tan adaptativa, los ojos se cansan menos cuando se ve en la oscuridad, aumenta el efecto de presencia, se amplía el área de visualización, etc. Ambilight es aplicable no solo al contenido de vídeo y fotografía, sino también a los juegos. Ambilight se ha convertido en un sello distintivo de los televisores Philips. Desde entonces, Philips ha estado atenta a que ninguno de los principales fabricantes se atreva a invadir lo sagrado al crear algo como esto. Probablemente, es posible licenciar esta tecnología, pero las condiciones son de alguna manera prohibitivas y otros actores del mercado no están particularmente ansiosos por hacerlo. Las empresas más pequeñas también intentaron (y ahora hay empresas que lo hacen) implementar una tecnología similar en forma de kits separados, pero el castigo de Philips fue inevitable. Entonces, en el mejor de los casos, si la empresa no renueva de alguna manera la patente o su derivado, otros fabricantes podrán producir algo similar solo en 2027.

Pero nosotros, los consumidores comunes, no nos vemos afectados por tal castigo. Somos libres de hacer lo que creemos que es correcto para nosotros. Hoy te contaré en detalle cómo hacer de forma independiente una iluminación de fondo adaptativa para un televisor o monitor como Philips Ambilight (en adelante, simplemente Ambilight). Para algunos, el artículo no contendrá nada nuevo, porque. hay docenas de proyectos de este tipo, y se han escrito cientos de artículos en diferentes idiomas, y hay miles de personas que ya han hecho lo mismo por sí mismas. Pero para muchos, todo esto puede ser muy interesante. No necesitas ninguna habilidad especial. Solo conocimientos básicos de física para el 8vo grado de secundaria. Bueno, bastantes cables de soldadura.

Para entender mejor de lo que estoy hablando, daré mi propio ejemplo de lo que sucedió. Costos reales para TV 42 "- alrededor de 1000 rublos y 2 horas de trabajo.



El video no transmite todas las sensaciones y el efecto en su conjunto, pero por primera vez los niños se sentaron con la boca abierta.

Posibles implementaciones

Hay varias variaciones de las opciones de implementación de Ambilight. Dependen de la fuente de vídeo.

La opción más barata, fácil y efectiva: la fuente de señal es una PC con Windows, Mac OS X o Linux. Ahora son muy comunes las cajas de Windows en los procesadores Atom, que cuestan desde $70. Todos ellos son ideales para implementar Ambilight. He estado usando varios decodificadores de Windows (en mi gabinete de TV) como reproductor multimedia durante varios años, escribí un pequeño grupo de reseñas y los considero los mejores decodificadores para contenido multimedia. La implementación de hardware de esta opción es la misma para todos los sistemas operativos enumerados. Se trata de esta opción que discutiré en el artículo.. La parte del software se referirá al sistema Windows, AmbiBox actuará como un programa de control universal. Con Mac OS X y Linux puede usar .

La segunda opción: la fuente de la señal es un decodificador de medios basado en Android, del cual también hay una gran cantidad. Esta opción es la más problemática. Primero, la luz de fondo solo funcionará en el combinador de medios Kodi (y las bifurcaciones de este proyecto). En segundo lugar, en la gran mayoría de los casos, todo funciona solo con la decodificación de video de hardware deshabilitada, lo cual es inaceptable para la mayoría de las cajas. La implementación de hardware del proyecto también impone ciertos requisitos. No lo tocaré, pero si me interesa algo en específico, intentaré responder en los comentarios.

La tercera opción es una solución independiente de la fuente. Esta es la solución más cara, pero absolutamente universal, porque. La señal se toma directamente del cable HDMI. Para ello, necesitará una microcomputadora suficientemente potente (como Raspberry Pi), un divisor HDMI (divisor), un convertidor AV HDMI-RCA, un dispositivo de captura de video analógico USB 2.0. Solo con esta opción podrá utilizar Ambilight con cualquier decodificador/receptor, Android box, Apple TV, videoconsolas (por ejemplo, Xbox One, PlayStation 4) y otros dispositivos que dispongan de salida HDMI. Para la versión con soporte de 1080p60, el costo de los componentes (sin tira de LED) será de alrededor de $70, con soporte para 2160p60 - alrededor de $100. Esta opción es muy interesante, pero debe escribir un artículo separado sobre ella.

Hardware

Para implementarlo, necesitará tres componentes principales: una tira de LED RGB controlable, una fuente de alimentación y una microcomputadora Arduino.

Primero, algunas explicaciones.

WS2811 es un controlador/controlador (chip) de tres canales para LED RGB con control de un solo cable (direccionamiento a LED arbitrario). El WS2812B es un LED RGB en un paquete SMD 5050 que ya tiene un controlador WS2811 incorporado.

Para simplificar, las tiras de LED adecuadas para el proyecto se denominan WS2811 o WS2812B.

La tira WS2812B es una tira con LED WS2812B en serie. La cinta funciona con un voltaje de 5 V. Existen cintas con diferentes densidades de LED. Normalmente es: 144, 90, 74, 60, 30 por metro. Hay diferentes grados de protección. La mayoría de las veces es: IP20-30 (protección contra la entrada de partículas sólidas), IP65 (protección contra polvo y chorros de agua), IP67 (protección contra polvo y protección contra inmersión parcial o breve en agua hasta una profundidad de 1 m) . Forro blanco y negro.

Aquí hay un ejemplo de una cinta de este tipo:


Una cinta WS2811 es una cinta en la que se colocan en serie un controlador WS2811 y algún tipo de LED RGB. Hay opciones diseñadas para voltajes de 5 V y 12 V. La densidad y la protección son similares a la versión anterior.

Aquí hay un ejemplo de una cinta de este tipo:


También hay "cintas" WS2811 con LED grandes y potentes, como en la foto de abajo. También son adecuados para implementar Ambilight en algún panel enorme.


¿Qué cinta elegir, WS2812B y WS2811?

Un factor importante es la alimentación de la cinta, de la que hablaré un poco más adelante.

Si tiene una fuente de alimentación adecuada en el hogar (a menudo, las fuentes de alimentación permanecen en el hogar debido a equipos viejos o dañados), elija una cinta según el voltaje de la fuente de alimentación, es decir. 5V - WS2812B, 12V - WS2811. En este caso, simplemente ahorrará dinero.

De mí mismo puedo dar una recomendación. Si el número total de LED en el sistema no supera los 120, entonces WS2812B. Si hay más de 120, entonces WS2811 con un voltaje de funcionamiento de 12 V. Por qué exactamente, comprenderá cuando se trata de conectar la cinta a la fuente de alimentación.

¿Qué nivel de protección de cinta debo elegir?

Para la mayoría, IP65 servirá. está recubierto con “silicona” (epoxi) por un lado y tiene una superficie autoadhesiva 3M por el otro. Es conveniente montar esta cinta en un televisor o monitor y es conveniente limpiarla del polvo.

¿Qué densidad de LED elegir?

Para el proyecto, son adecuadas las cintas con una densidad de 30 a 60 LED por metro (por supuesto, 144 es posible, nadie lo prohíbe). Cuanto mayor sea la densidad, mayor será la resolución de Ambilight (número de zonas) y mayor el brillo general máximo. Pero debe tenerse en cuenta que cuantos más LED haya en el proyecto, más complejo será el circuito de alimentación de la cinta y se necesitará una fuente de alimentación más potente. El número máximo de LED en un proyecto es 300.

comprar una cinta

Si su televisor o monitor está colgado en la pared y los 4 lados tienen mucho espacio libre cerca, entonces es mejor colocar la cinta en la parte posterior alrededor del perímetro en los 4 lados para obtener el máximo efecto. Si su televisor o monitor está instalado en un soporte, o no hay suficiente espacio libre debajo, la cinta debe colocarse en la parte posterior en 3 lados (es decir, la parte inferior sin cinta).

Para mí, elegí una cinta blanca WS2812B IP65 con 30 LED por metro. Ya tenía una fuente de alimentación adecuada de 5 V. Decidí 60 o 30 LED por metro, pero elegí este último después de revisar el video con ejemplos de implementación listos para usar: el brillo y la resolución me convenían, y la fuente de alimentación es más fácil de organizar, menos cables. Aliexpress tiene una gran cantidad de lotes de cintas WS2812B. Pedí 5 metros por $16. Para mi televisor (42", 3 lados) necesitaba solo 2 metros, es decir, podrías comprar por $ 10, los tres metros restantes para un amigo. Los precios a menudo cambian con los vendedores, hay muchas ofertas, así que elige uno barato mucho en Aliexpress con una calificación alta (las palabras clave de búsqueda son WS2812B IP65 o WS2811 12V IP65).




Compra de una fuente de alimentación para la cinta

La fuente de alimentación se selecciona por potencia y voltaje. Para WS2812B: voltaje de 5 V. Para WS2811: 5 o 12 V. El consumo máximo de energía de un LED WS2812B es de 0,3 W. Para WS2811 en la mayoría de los casos lo mismo. Aquellos. la potencia de la fuente de alimentación debe ser de al menos N * 0,3 W, donde N es la cantidad de LED en el proyecto.

Por ejemplo, tienes un televisor de 42", te decidiste por una cinta WS2812B con 30 LED por metro, necesitas 3 metros de cinta por los 4 lados. Necesitarás una fuente de alimentación con un voltaje de 5 V y una potencia máxima de 0.3 * 30 * 3 = 27 W , es decir, 5 V / 6 A. En mi implementación, solo se usan 3 lados, solo 60 LED (para ser precisos, luego 57) - potencia de 18 W, es decir, 5 V / 4 A.

He estado inactivo durante mucho tiempo con el cargador USB multipuerto ORICO CSA-5U (8 A), sobrante de la revisión anterior. Tiene alimentación paralela a los puertos (esto es de vital importancia), esta memoria es ideal para mí como fuente de alimentación, porque. Conectaré la cinta a través de 2 conexiones paralelas (las explicaciones estarán un poco más adelante en el artículo).


Si no tuviera esta memoria, elegiría (pero en los comentarios escriben que a menudo ponen 2.5 A adentro, por lo que es mejor estudiar este tema con más detalle).

comprar una microcomputadora

Ambilight será controlado por una microcomputadora Arduino. Arduino Nano en Aliexpress cuesta alrededor de una pieza.

Costos para mi opción (para TV 42"):

$10 - 2 metros WS2812B IP65 (30 LED por metro)
$ 4 - fuente de alimentación 5 V / 4 A (no gasté dinero en la fuente de alimentación, cito el costo para mayor claridad)
$2.5 - Arduino Nano
-----------
16,5$ o 1000 rublos

Implementación de hardware

Lo más importante es organizar correctamente la alimentación de la cinta. La cinta es larga, el voltaje cae a alta corriente, especialmente a 5 V. La mayoría de los problemas que surgen para quienes se hacen Ambilight están relacionados con la alimentación. Uso una regla: debe hacer una fuente de alimentación separada por cada 10 W de consumo máximo de energía a 5 V y 25 W de consumo de energía a 12 V. La longitud de la fuente de alimentación (desde la fuente de alimentación hasta la cinta) debe ser mínimo (sin margen), especialmente a 5 IN.

El diagrama de conexión general es el siguiente (el diagrama muestra la conexión de alimentación para mi versión):


Se suministra energía a la cinta en ambos extremos: dos conexiones paralelas. Por ejemplo, si hubiera retroiluminado en los 4 lados y la cinta tuviera 60 LED por metro (es decir, una potencia máxima de 54 W), entonces haría la siguiente fuente de alimentación:


Los cables de alimentación deben ser utilizados adecuadamente, cuanto menor sea el calibre (AWG), mejor, para que sean suficientes con margen para la intensidad de corriente calculada.

Hay dos pines que van al Arduino desde la cinta. GND para ser conectado al pin correspondiente en el Arduino. Y DATA, que debe conectarse al sexto pin digital a través de una resistencia de 300-550 Ohm (470 Ohm es mejor). Si no tiene una resistencia, en la mayoría de los casos todo funcionará bien sin ella, pero es mejor tener una. La resistencia se puede comprar por un par de centavos en cualquier tienda de radio. La microcomputadora Arduino en sí se puede colocar en cualquier estuche conveniente, muchos usan el huevo sorpresa Kinder para esto. El Arduino debe colocarse lo más cerca posible de la cinta para que el cable de DATOS sea lo más corto posible.

Soldar los cables a la cinta es fácil. La regla principal es que el tiempo de contacto con el soldador debe ser mínimo;

En mi caso resultó así:



Se utilizaron dos cables USB negros de alta calidad para la alimentación y uno blanco para la conexión a una computadora. Me quedé sin tubos termorretráctiles blancos, usé rojos. No es tan "bonito", pero me queda bien (de todos modos, está escondido detrás del televisor).

Una pregunta importante es cómo doblar la cinta en ángulo recto. Si tiene una cinta para 60 LED, entonces la cinta debe cortarse y conectarse con cables cortos (colocando todo esto en un tubo termorretráctil). Puede comprar conectores de esquina especiales para tres pines para tiras de LED (hay 4 pines en la imagen, solo por ejemplo):


Si tiene una tira de 30 LED, entonces la distancia entre los LED es grande, puede hacer una esquina fácilmente sin cortar. Retire una pieza del revestimiento de "silicona", aísle (incluso con "cinta adhesiva") la almohadilla de contacto y dóblela de acuerdo con el esquema:

Corté un trozo de cinta para practicar. Lo principal es no exagerar: ligeramente doblado una vez y eso es todo. No necesita doblar aquí y allá, no necesita apretar con fuerza la línea de doblado.


Aquí hay una vista trasera del televisor, todos los cables pasan por el orificio dentro del gabinete:

parte del programa

Este es el más simple.

Conectamos el microordenador Arduino a través de USB. El controlador (interfaz serie CH340) se instalará automáticamente. Si esto no sucede, en la carpeta IDE de Arduino hay una carpeta de Controladores con todo lo que necesita.

Inicie Arduino IDE y abra el archivo Adalight.ino.


Cambie el número de LED en el código. tengo 57


Herramientas > Placa > Arduino nano
Herramientas > Puerto > Seleccionar puerto COM (habrá la opción correcta)

Haga clic en el botón "Descargar":


El programa le informará cuando se complete la descarga (es literalmente un par de segundos).

Listo. Desconecte Arduino del USB y vuelva a conectar. La cinta se volverá roja, verde y azul en secuencia: el Arduino está activado y listo para funcionar.

Descarga e instala el programa. En el programa, haga clic en "Más configuraciones" y especifique el dispositivo: Adalight, puerto COM y la cantidad de LED. Elige el número de fotogramas a capturar (hasta 60).


A continuación, haga clic en Mostrar zonas de captura > Asistente de zonas. Elija la configuración de su cinta.


Haga clic en Aplicar y guardar configuración. Esto completa la configuración básica. Luego puedes experimentar con el tamaño de las zonas de captura, hacer la corrección de color de la cinta, etc. El programa tiene muchas configuraciones diferentes.


Para activar un perfil, simplemente haga doble clic en el icono correspondiente (perfiles de AmbiBox) en el área de notificación de Windows. La cinta se encenderá inmediatamente. También se apaga con un doble clic.

Eso es básicamente todo. Ya viste el resultado al principio del artículo. Nada complicado, barato y fresco. ¡Seguro que lo harás mejor!

Planeo comprar +439 Agregar a los favoritos Me gustó la reseña +270 +577

Philips en 2007 patentó una tecnología de retroiluminación de TV increíblemente simple, pero, sin exagerar, increíble. Con una retroiluminación tan adaptativa, los ojos se cansan menos cuando se ve en la oscuridad, aumenta el efecto de presencia, se amplía el área de visualización, etc. Ambilight es aplicable no solo al contenido de vídeo y fotografía, sino también a los juegos. Ambilight se ha convertido en un sello distintivo de los televisores Philips. Desde entonces, Philips ha estado atenta a que ninguno de los principales fabricantes se atreva a invadir lo sagrado al crear algo como esto. Probablemente, es posible licenciar esta tecnología, pero las condiciones son de alguna manera prohibitivas y otros actores del mercado no están particularmente ansiosos por hacerlo. Las empresas más pequeñas también intentaron (y ahora hay empresas que lo hacen) implementar una tecnología similar en forma de kits separados, pero el castigo de Philips fue inevitable. Entonces, en el mejor de los casos, si la empresa no renueva de alguna manera la patente o su derivado, otros fabricantes podrán producir algo similar solo en 2027.

Pero nosotros, los consumidores comunes, no nos vemos afectados por tal castigo. Somos libres de hacer lo que creemos que es correcto para nosotros. Hoy te contaré en detalle cómo hacer de forma independiente una iluminación de fondo adaptativa para un televisor o monitor como Philips Ambilight (en adelante, simplemente Ambilight). Para algunos, el artículo no contendrá nada nuevo, porque. hay docenas de proyectos de este tipo, y se han escrito cientos de artículos en diferentes idiomas, y hay miles de personas que ya han hecho lo mismo por sí mismas. Pero para muchos, todo esto puede ser muy interesante. No necesitas ninguna habilidad especial. Solo conocimientos básicos de física para el 8vo grado de secundaria. Bueno, bastantes cables de soldadura.

Para entender mejor de lo que estoy hablando, daré mi propio ejemplo de lo que sucedió. Costos reales para TV 42 "- alrededor de 1000 rublos y 2 horas de trabajo.


El video no transmite todas las sensaciones y el efecto en su conjunto, pero por primera vez los niños se sentaron con la boca abierta.

Posibles implementaciones

Hay varias variaciones de las opciones de implementación de Ambilight. Dependen de la fuente de vídeo.

La opción más barata, fácil y efectiva: la fuente de señal es una PC con Windows, Mac OS X o Linux. Ahora son muy comunes las cajas de Windows en los procesadores Atom, que cuestan desde $70. Todos ellos son ideales para implementar Ambilight. He estado usando varios decodificadores de Windows (en mi gabinete de TV) como reproductor multimedia durante varios años, escribí un pequeño grupo de reseñas y los considero los mejores decodificadores para contenido multimedia. La implementación de hardware de esta opción es la misma para todos los sistemas operativos enumerados. Se trata de esta opción que discutiré en el artículo.. La parte del software se referirá al sistema Windows, AmbiBox actuará como un programa de control universal. Con Mac OS X y Linux puede usar .

La segunda opción: la fuente de la señal es un decodificador de medios basado en Android, del cual también hay una gran cantidad. Esta opción es la más problemática. Primero, la luz de fondo solo funcionará en el combinador de medios Kodi (y las bifurcaciones de este proyecto). En segundo lugar, en la gran mayoría de los casos, todo funciona solo con la decodificación de video de hardware deshabilitada, lo cual es inaceptable para la mayoría de las cajas. La implementación de hardware del proyecto también impone ciertos requisitos. No lo tocaré, pero si me interesa algo en específico, intentaré responder en los comentarios.

La tercera opción es una solución independiente de la fuente. Esta es la solución más cara, pero absolutamente universal, porque. La señal se toma directamente del cable HDMI. Para ello, necesitará una microcomputadora suficientemente potente (como Raspberry Pi), un divisor HDMI (divisor), un convertidor AV HDMI-RCA, un dispositivo de captura de video analógico USB 2.0. Solo con esta opción podrá utilizar Ambilight con cualquier decodificador/receptor, Android box, Apple TV, videoconsolas (por ejemplo, Xbox One, PlayStation 4) y otros dispositivos que dispongan de salida HDMI. Para la versión con soporte de 1080p60, el costo de los componentes (sin tira de LED) será de alrededor de $70, con soporte para 2160p60 - alrededor de $100. Esta opción es muy interesante, pero debe escribir un artículo separado sobre ella.

Hardware

Para implementarlo, necesitará tres componentes principales: una tira de LED RGB controlable, una fuente de alimentación y una microcomputadora Arduino.

Primero, algunas explicaciones.

WS2811 es un controlador/controlador (chip) de tres canales para LED RGB con control de un solo cable (direccionamiento a LED arbitrario). El WS2812B es un LED RGB en un paquete SMD 5050 que ya tiene un controlador WS2811 incorporado.

Para simplificar, las tiras de LED adecuadas para el proyecto se denominan WS2811 o WS2812B.

La tira WS2812B es una tira con LED WS2812B en serie. La cinta funciona con un voltaje de 5 V. Existen cintas con diferentes densidades de LED. Normalmente es: 144, 90, 74, 60, 30 por metro. Hay diferentes grados de protección. La mayoría de las veces es: IP20-30 (protección contra la entrada de partículas sólidas), IP65 (protección contra polvo y chorros de agua), IP67 (protección contra polvo y protección contra inmersión parcial o breve en agua hasta una profundidad de 1 m) . Forro blanco y negro.

Aquí hay un ejemplo de una cinta de este tipo:


Una cinta WS2811 es una cinta en la que se colocan en serie un controlador WS2811 y algún tipo de LED RGB. Hay opciones diseñadas para voltajes de 5 V y 12 V. La densidad y la protección son similares a la versión anterior.

Aquí hay un ejemplo de una cinta de este tipo:


También hay "cintas" WS2811 con LED grandes y potentes, como en la foto de abajo. También son adecuados para implementar Ambilight en algún panel enorme.


¿Qué cinta elegir, WS2812B y WS2811?

Un factor importante es la alimentación de la cinta, de la que hablaré un poco más adelante.

Si tiene una fuente de alimentación adecuada en el hogar (a menudo, las fuentes de alimentación permanecen en el hogar debido a equipos viejos o dañados), elija una cinta según el voltaje de la fuente de alimentación, es decir. 5V - WS2812B, 12V - WS2811. En este caso, simplemente ahorrará dinero.

De mí mismo puedo dar una recomendación. Si el número total de LED en el sistema no supera los 120, entonces WS2812B. Si hay más de 120, entonces WS2811 con un voltaje de funcionamiento de 12 V. Por qué exactamente, comprenderá cuando se trata de conectar la cinta a la fuente de alimentación.

¿Qué nivel de protección de cinta debo elegir?

Para la mayoría, IP65 servirá. está recubierto con “silicona” (epoxi) por un lado y tiene una superficie autoadhesiva 3M por el otro. Es conveniente montar esta cinta en un televisor o monitor y es conveniente limpiarla del polvo.

¿Qué densidad de LED elegir?

Para el proyecto, son adecuadas las cintas con una densidad de 30 a 60 LED por metro (por supuesto, 144 es posible, nadie lo prohíbe). Cuanto mayor sea la densidad, mayor será la resolución de Ambilight (número de zonas) y mayor el brillo general máximo. Pero debe tenerse en cuenta que cuantos más LED haya en el proyecto, más complejo será el circuito de alimentación de la cinta y se necesitará una fuente de alimentación más potente. El número máximo de LED en un proyecto es 300.

comprar una cinta

Si su televisor o monitor está colgado en la pared y los 4 lados tienen mucho espacio libre cerca, entonces es mejor colocar la cinta en la parte posterior alrededor del perímetro en los 4 lados para obtener el máximo efecto. Si su televisor o monitor está instalado en un soporte, o no hay suficiente espacio libre debajo, la cinta debe colocarse en la parte posterior en 3 lados (es decir, la parte inferior sin cinta).

Para mí, elegí una cinta blanca WS2812B IP65 con 30 LED por metro. Ya tenía una fuente de alimentación adecuada de 5 V. Decidí 60 o 30 LED por metro, pero elegí este último después de revisar el video con ejemplos de implementación listos para usar: el brillo y la resolución me convenían, y la fuente de alimentación es más fácil de organizar, menos cables. Aliexpress tiene una gran cantidad de lotes de cintas WS2812B. Pedí 5 metros por $16. Para mi televisor (42", 3 lados) necesitaba solo 2 metros, es decir, podrías comprar por $ 10, los tres metros restantes para un amigo. Los precios a menudo cambian con los vendedores, hay muchas ofertas, así que elige uno barato lote en Aliexpress altamente calificado (las palabras clave de búsqueda son WS2812B IP65 o WS2811 12V IP65).




Compra de una fuente de alimentación para la cinta

La fuente de alimentación se selecciona por potencia y voltaje. Para WS2812B: voltaje de 5 V. Para WS2811: 5 o 12 V. El consumo máximo de energía de un LED WS2812B es de 0,3 W. Para WS2811 en la mayoría de los casos lo mismo. Aquellos. la potencia de la fuente de alimentación debe ser de al menos N * 0,3 W, donde N es la cantidad de LED en el proyecto.

Por ejemplo, tienes un televisor de 42", te decidiste por una cinta WS2812B con 30 LED por metro, necesitas 3 metros de cinta por los 4 lados. Necesitarás una fuente de alimentación con un voltaje de 5 V y una potencia máxima de 0.3 * 30 * 3 = 27 W , es decir, 5 V / 6 A. En mi implementación, solo se usan 3 lados, solo 60 LED (para ser precisos, luego 57) - potencia de 18 W, es decir, 5 V / 4 A.

He estado inactivo durante mucho tiempo con el cargador USB multipuerto ORICO CSA-5U (8 A), sobrante de la revisión anterior. Tiene alimentación paralela a los puertos (esto es de vital importancia), esta memoria es ideal para mí como fuente de alimentación, porque. Conectaré la cinta a través de 2 conexiones paralelas (las explicaciones estarán un poco más adelante en el artículo).


Si no tuviera esta memoria, elegiría (hay información de que es en esta fuente de alimentación que el interior se pone a 2.5 A, por lo que debe estudiar este tema con más detalle con el vendedor, o mirar otros modelos).

comprar una microcomputadora

Ambilight será controlado por una microcomputadora Arduino. Arduino Nano en Aliexpress cuesta alrededor de una pieza.

Costos para mi opción (para TV 42"):

$10 - 2 metros WS2812B IP65 (30 LED por metro)
$ 4 - fuente de alimentación 5 V / 4 A (no gasté dinero en la fuente de alimentación, cito el costo para mayor claridad)
$2.5 - Arduino Nano
-----------
16,5$ o 1000 rublos

Implementación de hardware

Lo más importante es organizar correctamente la alimentación de la cinta. La cinta es larga, el voltaje cae a alta corriente, especialmente a 5 V. La mayoría de los problemas que surgen para quienes se hacen Ambilight están relacionados con la alimentación. Uso una regla: debe hacer una fuente de alimentación separada por cada 10 W de consumo máximo de energía a 5 V y 25 W de consumo de energía a 12 V. La longitud de la fuente de alimentación (desde la fuente de alimentación hasta la cinta) debe ser mínimo (sin margen), especialmente a 5 IN.

El diagrama de conexión general es el siguiente (el diagrama muestra la conexión de alimentación para mi versión):


Se suministra energía a la cinta en ambos extremos: dos conexiones paralelas. Por ejemplo, si hubiera retroiluminado en los 4 lados y la cinta tuviera 60 LED por metro (es decir, una potencia máxima de 54 W), entonces haría la siguiente fuente de alimentación:


Los cables de alimentación deben ser utilizados adecuadamente, cuanto menor sea el calibre (AWG), mejor, para que sean suficientes con margen para la intensidad de corriente calculada.

Hay dos pines que van al Arduino desde la cinta. GND para ser conectado al pin correspondiente en el Arduino. Y DATA, que debe conectarse al sexto pin digital a través de una resistencia de 300-550 Ohm (470 Ohm es mejor). Si no tiene una resistencia, en la mayoría de los casos todo funcionará bien sin ella, pero es mejor tener una. La resistencia se puede comprar por un par de centavos en cualquier tienda de radio. La microcomputadora Arduino en sí se puede colocar en cualquier estuche conveniente, muchos usan el huevo sorpresa Kinder para esto. El Arduino debe colocarse lo más cerca posible de la cinta para que el cable de DATOS sea lo más corto posible.

Soldar los cables a la cinta es fácil. La regla principal es que el tiempo de contacto con el soldador debe ser mínimo;

En mi caso resultó así:



Se utilizaron dos cables USB negros de alta calidad para la alimentación y uno blanco para la conexión a una computadora. Me quedé sin tubos termorretráctiles blancos, usé rojos. No es tan "bonito", pero me queda bien (de todos modos, está escondido detrás del televisor).

Una pregunta importante es cómo doblar la cinta en ángulo recto. Si tiene una cinta para 60 LED, entonces la cinta debe cortarse y conectarse con cables cortos (colocando todo esto en un tubo termorretráctil). Puede comprar conectores de esquina especiales para tres pines para tiras de LED (hay 4 pines en la imagen, solo por ejemplo):


Si tiene una tira de 30 LED, entonces la distancia entre los LED es grande, puede hacer una esquina fácilmente sin cortar. Retire una pieza del revestimiento de "silicona", aísle (incluso con "cinta adhesiva") la almohadilla de contacto y dóblela de acuerdo con el esquema:

Corté un trozo de cinta para practicar. Lo principal es no exagerar: ligeramente doblado una vez y eso es todo. No necesita doblar aquí y allá, no necesita apretar con fuerza la línea de doblado.


Aquí hay una vista trasera del televisor, todos los cables pasan por el orificio dentro del gabinete:

parte del programa

Este es el más simple.

Conectamos el microordenador Arduino a través de USB. El controlador (interfaz serie CH340) se instalará automáticamente. Si esto no sucede, en la carpeta IDE de Arduino hay una carpeta de Controladores con todo lo que necesita.

Inicie Arduino IDE y abra el archivo Adalight.ino.


Cambie el número de LED en el código. tengo 57


Herramientas > Placa > Arduino nano
Herramientas > Puerto > Seleccionar puerto COM (habrá la opción correcta)

Haga clic en el botón "Descargar":


El programa le informará cuando se complete la descarga (es literalmente un par de segundos).

Listo. Desconecte Arduino del USB y vuelva a conectar. La cinta se volverá roja, verde y azul en secuencia: el Arduino está activado y listo para funcionar.

Descarga e instala el programa. En el programa, haga clic en "Más configuraciones" y especifique el dispositivo: Adalight, puerto COM y la cantidad de LED. Elige el número de fotogramas a capturar (hasta 60).


A continuación, haga clic en Mostrar zonas de captura > Asistente de zonas. Elija la configuración de su cinta.


Haga clic en Aplicar y guardar configuración. Esto completa la configuración básica. Luego puedes experimentar con el tamaño de las zonas de captura, hacer la corrección de color de la cinta, etc. El programa tiene muchas configuraciones diferentes.


Para activar un perfil, simplemente haga doble clic en el icono correspondiente (perfiles de AmbiBox) en el área de notificación de Windows. La cinta se encenderá inmediatamente. También se apaga con un doble clic.

Eso es básicamente todo. Ya viste el resultado al principio del artículo. Nada complicado, barato y fresco. Estoy seguro de que lo harás mejor, así que comparte tus manualidades en los comentarios.

Si encuentra un error, seleccione un fragmento de texto y presione Ctrl+Enter.