
Este es un televisor de 50 "con 37 puntos RGB de retroiluminación adaptativa en la parte superior y los lados de la pantalla. Cómo hacer una luz de fondo adaptativa similar para cualquier pantalla o televisor es un tema trillado, pero bastante relevante por varias razones.
En primer lugar, todo está cambiando. Hace un par de años no había ningún proyecto que funcionara sin muletas de software o hardware. En cualquier caso, no he visto tales publicaciones. Los que se describen en Internet pierden relevancia debido a la obsolescencia de las plataformas de software o hardware, o implementan esta tecnología solo para monitores conectados a una PC.
En segundo lugar, no hay y no habrá Samsung, Sony, Elge y otros televisores que admitan esta tecnología en el mercado, ya que fue patentada por Philips durante muchos años. Y finalmente, todas las soluciones "listas para usar" disponibles en Ali y otros como él tienen una serie de limitaciones en la flexibilidad de la configuración y la adaptación al tamaño del cuadro del contenido de video, los ajustes de la gama de colores, etc., siendo solo una muleta de hardware que analiza una señal externa y trabajando solo en la formación de la luz de fondo.
Opción de captura de fotogramas "Hardware"
Si no habla sobre opciones teóricas para el refinamiento y la modernización del receptor de televisión en sí, debe estar de acuerdo con el hecho de que, en cualquier caso, tendrá que procesar la señal HDMI, es decir, Se utilizará para análisis de cuadros y retroiluminación. Aquí, solo se sugieren dos opciones de implementación: con procesamiento de señal desde cualquier fuente (como paquetes de luz con ali) y con la implementación de la fuente en forma de decodificador de TV con retroiluminación adaptativa.
En el primer caso, obtenemos algún tipo de versatilidad: puede conectar una consola de juegos o algún tipo de jugador al dispositivo. En el segundo, recopilamos este mismo "algún tipo de jugador" con una función de retroiluminación incorporada. Mientras experimentaba, implementé ambas opciones, pero aquí me enfocaré solo en la segunda, y he aquí por qué:

En el diagrama de bloques dado de la primera variante, la señal HDMI de cualquier fuente llega al divisor, donde se divide en dos salidas. Desde el principio, el contenido se reproduce en cualquier receptor de TV o monitor. A partir del segundo, la señal ingresa simultáneamente al escalador de hardware, donde se convierte en una señal analógica con cuadros de baja resolución: 320x480. La señal analógica se envía a un capturador USB de hardware, que toma "capturas de pantalla" de cada cuadro y las transmite a través del puerto USB a la entrada de una mini PC de placa única: Raspberry Pi 3 B +. El software en frambuesas analiza marcos utilizando el programa Hyperion y, a través de una de las salidas GPIO, proporciona secuencias de control a la entrada de una cinta de direcciones como WS2812B o APA102. Todo esto funcionó bien, pero tiene un par de inconvenientes en forma de montón de hierro con conexiones y un pequeño retraso en la emisión de una señal de luz de fondo. La demora solo se notó en los videos de prueba con un cambio brusco de colores en la mayor parte del cuadro. De lo contrario, no hay quejas, excepto por el costo de todo el hierro en esta implementación:
Raspberry Pi 3 B +: alrededor de $ 55.
Caja del radiador - $ 14.
Divisor HDMI 1080P activo para 2 salidas - $ 15.
Escalador HDMI 1080P a AV - $ 15.
EasyCap USB grabber - $ 18.
Fuente de alimentación: alrededor de $ 10.
Tarjeta microSD de 32GB - $ 10.
Conexión de cables y otras cosas pequeñas: alrededor de $ 10.
Total, sin contar la cinta de direcciones: casi $ 150.
No es que tal opción vaya directamente al horno; puede ser útil para organizar la retroiluminación en algunas pantallas prefabricadas grandes en anuncios o presentaciones, y el precio no es el peor para el resultado, pero para el uso en el hogar me decidí por la segunda opción: en Principalmente "software". Salió más fácil, más barato, más compacto y más rápido. Para uso comercial, también puede ser bastante adecuado: la Raspberry Pi con el reproductor se puede utilizar con éxito en proyectos en los que necesita reproducir automáticamente cierto contenido de forma cíclica y sin problemas desde el momento en que lo enciende, apaga el reproductor, de nuevo automáticamente, de acuerdo con el programa al final del día. Después de escribir un pequeño guión, obtendremos un dispositivo publicitario con la función de retroiluminación adaptativa de cualquier pantalla, de al menos diez metros de altura. Pero volviendo al uso doméstico ...
Opción "Software" captura marcos
Las funciones del centro de medios y el control de la luz de fondo permanecerán detrás del mismo Raspberry Pi 3 B +, y todas las conexiones ahora se reducirán a la conexión de varios conectores: alimentación, Internet, luz de fondo y HDMI a la TV. No más que cualquier otro decodificador:

Mirando hacia el futuro, quiero señalar que el Raspberry Pi 3 B + resultó ser un centro multimedia de decodificador de TV completamente universal con todas las capacidades necesarias de dicho dispositivo, más una luz de fondo adaptable flexiblemente personalizable para cualquier televisor moderno (y no tan) que tenga una entrada HDMI.
La base del software es el sistema operativo Libreelec abierto, especialmente diseñado para el reproductor Kodi.
El sitio del proyecto contiene toda la información necesaria.
Acerca de las capacidades de una de las plataformas más potentes y flexibles para reproducir contenido de audio y video, IPTV, etc. puede leerse anotando en cualquier motor de búsqueda "kodi descripcion de oportunidades". Hay mucha información en ruso sobre este tema. Yo uso, quizás, 1/10 de todas las funciones de la plataforma y esto es suficiente para mí. La plataforma es apoyada activamente, tiene una comunidad receptiva. Por lo tanto, leemos, estudiamos: en la wiki de estos proyectos y en los foros hay casi toda la información necesaria y las respuestas a las preguntas. Tomamos el kit de distribución y las instrucciones de instalación y configuración en el sitio web del proyecto Libreelec. Dado que el sistema operativo es multiplataforma, no olvide que nuestro proyecto se basa en Raspberry.
Violando una tradición extraña pero bien establecida de comenzar tales publicaciones con una descripción de los tipos de cintas de direcciones y cómo pegarlas torpemente en las paredes traseras de los televisores domésticos, comenzaré instalando y configurando un software de placa única. Desafortunadamente, hacer instrucciones paso a paso para la configuración es casi imposible: tomaría medio centenar de páginas de texto sin capturas de pantalla. Además, la plataforma del jugador se está desarrollando activamente, las versiones del sistema operativo y Kodi están cambiando, la información actual, pronto deja de serlo. Por lo tanto, aquí están solo los puntos principales más enlaces a fuentes de información útil.
Para configurar la parte del software de la luz de fondo, controlar el control remoto IR y el reproductor en sí, debe tener una idea inicial de cómo están organizados los directorios de Libreelec, cómo funciona la red local, la consola, qué hacer con la línea de comando, etc., ya que haremos algunas cosas en el proceso a mano A través de los instaladores en la tarjeta microSD, solo se instalará el sistema operativo Libreelec y el complemento para resaltar: Hyperion.
Como la Raspberry Pi no tiene un reloj de tiempo real, BIOS y alimentación de respaldo incorporados, todo lo que se necesita para trabajar se encuentra en la tarjeta microSD. Para instalar el sistema operativo en la tarjeta, debe descargar el paquete
NOOBS del sitio web del proyecto Raspberry (en el momento de la instalación, utilicé la versión de compilación 3.2.1) o una herramienta especial:
"LibreELEC USB-SD Creator" .
La tarjeta de memoria debe tener buenas velocidades de lectura y escritura, es decir, tener al menos un grado 10. En términos de volumen, el sistema operativo Libreelec ocupa poco espacio, las tarjetas de 16GB serán suficientes para el trabajo, si no desea comprar una cantidad mayor. Se puede usar para almacenar cualquier contenido.
En el caso de NOOBS, el contenido del archivo zip se descomprime en la raíz de una tarjeta microSD formateada en FAT32, la tarjeta se inserta en la ranura libre de raspberry, se enciende, y luego, eligiendo el sistema operativo necesario en el instalador y siguiendo las instrucciones, implemente Libreelec. Sin embargo, los desarrolladores de la plataforma recomiendan instalar usando LibreELEC USB-SD Creator, que descarga y escribe la distribución en la tarjeta, luego la tarjeta también se inserta en la ranura de frambuesa, donde el instalador implementa el sistema operativo después de encender la alimentación. En este caso, las secciones de la tarjeta se vuelven a formatear, después de lo cual desde Windows no verá todo el volumen real de los medios. Si por alguna razón es necesario devolver las particiones a su estado inicial, primero deberá limpiar la tarjeta con la utilidad estándar de Windows: DiskPart, luego en la sección "Administración de discos" cree una nueva partición en el espacio libre del medio y formateela.
Para simplificar la instalación y configuración del sistema operativo, conecté temporalmente un monitor y un teclado separados con un mouse a las frambuesas.
Además, para configurar y configurar el software de frambuesa, necesitará su conexión con una PC y acceso a Internet, preferiblemente por cable. El software instalado en la PC para conectarse a través de SSH - PuTTY y WinSCP, así como la máquina virtual Java (jre-8u231-windows-x64) y el configurador del demonio Hyperion - HyperCon (HyperCon.jar). Puede usar otro conveniente administrador de archivos con paneles, por ejemplo, Total Commander. Dónde descargar y configurar: mucha información en sitios especializados, es suficiente buscar información con la consulta de búsqueda "trabajar con PUttY y WinSCP". El proyecto
Hyperion también tiene su propio foro y wiki.
En esta captura de pantalla, hay tres formas de conectar las frambuesas a una PC bajo win a través de SSH: a través de la consola Putty, el administrador de archivos WinSCP y Total Commander:

La cuenta de administrador de Librelec tiene un nombre de usuario y contraseña root @ libreelec de forma predeterminada, que se cambian mejor por razones de seguridad. Después de una instalación exitosa en la configuración del sistema, realizamos acciones simples: habilite SSH, SMB, asigne una IP estática, desactive las actualizaciones:

Se supone que las frambuesas están conectadas a su red doméstica, y puede encontrar la dirección IP de los dispositivos conectados a ella en la PC de su hogar. Desactivé las actualizaciones para que el sistema de retroiluminación adaptativo una vez ajustado no se bloquee si el desarrollador cambia algún componente relacionado con él en Libreelec.
En la configuración del sistema en los servicios, debe habilitar SSH y habilitar la autenticación de contraseña, también configure la versión mínima del protocolo SMB2, la máxima: SMB3. Necesitará SMB para ver los directorios de Raspberry Pi y las unidades flash conectadas desde la PC:

En Windows 10, en la PC, en la configuración, deberá buscar y habilitar el soporte para SMB, ya que está deshabilitado de forma predeterminada en él:

También buscamos y agregamos la distribución del teclado ruso en la configuración. El teclado físico no pasará nada: solo se ingresará en inglés, pero en el teclado virtual en pantalla será posible ingresar texto en ruso. Para un acceso conveniente a los directorios en la tarjeta microSD y unidades flash conectadas a frambuesas, puede crear y colocar un acceso directo con la dirección del directorio remoto en la barra de herramientas en Total Commander:

Los archivos en la red local se transferirán a una velocidad limitada por el ancho de banda de su enrutador doméstico, y mucho más rápido que en el acceso a través de SSH. En cualquier caso, copiar una película o música de esta manera será más conveniente que llevar una unidad flash USB desde un decodificador a una PC. Verá la estructura del directorio interno en / almacenamiento en la tarjeta de frambuesa y las unidades conectadas a los puertos USB. Con una conexión por cable, tengo 100 Mbps. a través del enrutador, la velocidad máxima de descarga de archivos desde una PC a una unidad USB en frambuesas fue de aproximadamente 12 MB / s, que corresponde aproximadamente al ancho de banda de mi conexión por cable.
Si es necesario, en el futuro puede implementar en su PC cualquier servidor de medios doméstico (UPnP, DLNA) para transmitir contenido directamente desde su PC.
Después de instalar y configurar el acceso a las frambuesas desde una PC a través de SSH utilizando los programas PUttY y WinSCP, puede proceder a instalar y configurar el demonio Hyperion. Debe haber una máquina virtual Java en la PC.
Todo funcionará de esta manera: al comienzo de Raspberry, se lanzará un programa especial, Hyperion, en segundo plano con Kodi en segundo plano. Analizará todos los cuadros de video y, dependiendo de la configuración grabada en el archivo de configuración, administrará la cinta de direcciones a través de una de las salidas GPIO de la frambuesa. Es decir, después de la configuración todo funcionará de forma autónoma, no se requiere comunicación o interacción con la PC. Pero para crear rápidamente un archivo de configuración e instalar Hyperion en frambuesas, hay un configurador conveniente que se ejecuta en una PC. Este programa lo ayudará a crear rápidamente un archivo de configuración para que el demonio funcione, descargarlo e instalarlo en Raspberry y verificar la funcionalidad del sistema utilizando una conveniente interfaz gráfica.
Hipercon
El configurador se llama HyperCon, no requiere instalación, solo ejecute el archivo ejecutable HyperCon.jar en la PC y vea esta ventana:

En el lado derecho hay una pantalla virtual para la que se configurará la luz de fondo: zonas de captura de color, su numeración (comienza desde 0), dirección, ubicación, sangrado, superposición y profundidad. En la parte izquierda hay cinco pestañas con configuraciones.
Brevemente en las pestañas del configurador:Hardware (hierro)- dispositivo -> Nombre de configuración: cualquier nombre conveniente para la configuración actual
- dispositivo -> Tipo - tipo de chip de la cinta de dirección, módulo u otra cosa
- dispositivo -> Cantidad de LED - número de píxeles direccionables (cuántos LED hay en la cinta)
- dispositivo -> Orden de bytes RGB - siguientes colores en el protocolo utilizado
Construcción (disposición de fuentes de luz)- casillas de verificación -> (led arriba a la izquierda, etc.) - la presencia de una fuente de luz en las esquinas de la estructura
- LED horizontales -> Número de píxeles en la parte superior de la estructura
- LED izquierda-> píxeles izquierdos
- LED a la derecha -> El número de píxeles en el borde derecho del diseño
- Espacio inferior -> El número de zonas omitidas a lo largo de la parte inferior de la estructura (para evitar la pata del televisor o toda la zona inferior)
- 1er desplazamiento del LED -> Corrección para el desplazamiento de píxeles para establecer el primero en una esquina conveniente.
Proceso de imagen- Proceso de imagen -> Profundidad horizontal - profundidad de zona horizontal,%
- Proceso de imagen -> Profundidad vertical - profundidad de zona vertical,%
- Proceso de imagen -> Espacio horizontal: sangría de zonas desde el borde horizontalmente,%
- Proceso de imagen -> Espacio vertical - zonas de sangría desde el borde verticalmente,%
- Proceso de imagen -> Superposición - superposición de zonas vecinas,%
Detección de borde negro - Sensibilidad y modo de procesamiento. Funciona en teoría de esta manera: el demonio analiza los bordes de la pantalla en el nivel especificado y calcula el ancho de los bordes oscuros para excluirlos de las zonas procesadas. Esto es para los casos en que se reproduce una imagen panorámica.
Proceso (procesamiento de trama)- Suavizado -> Habilitado (casilla de verificación para habilitar el suavizado)
- Alisado -> Tipo
- Suavizado -> Tiempo
- Suavizado -> Actualizar frecuencia (frecuencia de actualización)
- Suavizado -> Actualizar retraso (retraso antes de actualizar el marco)
- Calibración de color: elementos intuitivos que le permiten establecer el nivel de brillo mínimo y máximo, la saturación, la temperatura, el nivel de brillo de fondo sin señal, por separado para cada uno de los 3 colores primarios.
La casilla marcada Enviar continuo le permite ver los cambios en el proceso de configuración que ya se encuentra en la estructura ensamblada.
Grabber (Grabber - capturador de fotogramas, la pestaña más interesante)- Capturador de marco interno (capturador de software)
- Capturador de marco interno-> habilitado
- Capturador de marco interno-> Ancho
- Capturador de marco interno-> Altura (altura de zona)
- Capturador de marco interno-> Intervalo
- Capturador de trama interna-> Canal prioritario (prioridad de este canal)
Aquí se necesitan algunas aclaraciones. El truco es que estamos haciendo un reproductor multimedia basado en Raspberry Pi, que reproducirá contenido de una red local, unidad flash o TV IP en la plataforma LibreElec. Dado que el contenido ya está girando con el reproductor de frambuesa, la captura se realizará mediante programación, sin un capturador externo EasyCap, y el demonio se ocupará de los cuadros en sí, ya que en este caso la fuente de señal será la salida HDMI de la propia Raspberry Pi. Es posible utilizar el mismo capturador externo para otra fuente sin desconectar el interno; se proporcionan prioridades de canal para esto, este es el último elemento para configurar el capturador de software. Cuanto mayor sea el número, menor será la prioridad del canal.
Exactamente, no hay error.
- Grabber V4L2 (configuración del controlador de hardware Grabber))
- Grabber V4L -> Dispositivo (dispositivo USB desde el que se realiza la captura - / dev / video0 por defecto)
- Grabber V4L -> Entrada (la entrada utilizada es 0 por defecto)
- Grabber V4L -> Ancho (ancho de zona - -1 por defecto)
- Grabber V4L -> Altura (altura de zona - -1 por defecto)
- Grabber V4L -> Decimación de cuadros
- Grabber V4L -> Decimación de tamaño (relación de compresión)
- Grabber V4L -> Canal prioritario (prioridad de este canal)
- Grabber V4L -> Modo 3D (selección de modo 2D / 3D)
- Grabber V4L -> Recortar a la izquierda (recortar a la izquierda)
- Grabber V4L -> Recortar a la derecha (recortar a la derecha)
- Grabber V4L -> Crop Top (crop top)
- Grabber V4L -> Recortar fondo (recortar el marco inferior)
- Grabber V4L -> los últimos tres puntos (umbral para encender canales por color)
Externo- Externo -> Kodi Checker (Configuraciones para el reproductor Kodi, si se usa como reproductor. Las casillas de verificación seleccionadas apagarán la luz de fondo cuando realice las funciones especificadas del reproductor. Puede configurar la luz de fondo para que funcione solo cuando se reproduce contenido, y se apaga en todos los demás casos )
- Externo -> Servidor Json / Proto / Boblight (configuración del puerto del servidor, dejar como en la pantalla)
- Externo -> Booteffect / Color estático (configuración del efecto de demostración al iniciar el demonio)
- Externo -> Json / Proto Forvard (configuración del puerto de salida, dejar como en la pantalla)
SSH (Configuración de conexión de PC con Raspberry Pi)- SSH - Conexión -> Sistema (Elección del sistema operativo instalado en la Raspberry Pi)
- SSH - Conexión -> IP de destino (dirección IP de Raspberry Pi)
- SSH - Conexión -> Puerto (como en la captura de pantalla - (22))
- SSH - Conexión -> Nombre de usuario / contraseña (nombre - contraseña establecida en la Raspberry Pi)
- SSH - Conexión -> Conectar / Desconectar (botón conectar-desconectar con Raspberry Pi)
- SSH - Conexión -> Mostrar tráfico (botón para llamar a la consola con salida de información)
- SSH: administre Hyperion desde HyperCon -> Inst / Upd. Hyperion (Botón para instalar el demonio en la Raspberry Pi o actualizar el demonio a través de la red. Sin sudo get-install, conéctese a la Raspberry Pi, toque y espere la salida a la consola HyperCon)
- SSH - Administrar Hyperion desde HyperCon -> Eliminar Hyperion (botón de desinstalación de Daemon)
- SSH - Administre Hyperion desde HyperCon -> Iniciar / Detener (botones de detener-iniciar Daemon)
- SSH: administre Hyperion desde HyperCon -> Obtener registro (salida a los registros de consola del daemon, conveniente para
- )
- SSH – Send Hyperion Configuration -> Local Config Path ( )
- SSH – Send Hyperion Configuration -> Send Config ( SSH Raspberry Pi)
- SSH – Colorpicker ( – .
- - HyperCon- ( !!)
- HELP – , Create Hyperion Configuration Raspberry Pi — hyperion.config.json
– , .
, :

, . , , . , – WS2812B, WS281x. . , Raspberry Pi, SSH Hyperion . HyperCon, Hyperion, Raspberry Pi, ColorPicker . , Kodi . GPIO – 18 ( – 12).
, .
, . , . , «/storage/.config/ autostart.sh» , Raspberry Pi .
Raspberry Pi –
«/storage/.config/ hyperion.config.json».
, SSH HyperCon, «Autoupdate» - .
Raspberry Pi,
/storage/.config/autostart.sh //--------------------------------------------------------------------------------------------------------------- #!/bin/sh sleep 5 /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 //---------------------------------------------------------------------------------------------------------------
retrasando así la ejecución del demonio.
Control remoto por cualquier control remoto IR
Dado que además de la luz de fondo, el prefijo será un centro de medios completo; debe sujetarlo y configurar el control remoto. Si su televisor es compatible con la tecnología CEC (Consumer Electronics Control, es decir, el protocolo de control HDMI), Kodi puede configurar y usar el control remoto del televisor que ya está disponible con el televisor para controlar el decodificador. Dado que todos los fabricantes llaman a este protocolo de manera diferente en sus televisores , (por ejemplo, LG - SimpLink, Samsung -Anynet, Sony - BRAVIA Sync), busque en la configuración de su TV soporte para esta función. No tengo un control remoto muy bueno para la TV, así que tomé el otro camino: tomé el que estaba con el viejo Decodificador de TV en Android (mientras que otros controles remotos ordenados para este proyecto provienen de China):

En el peine Raspberry, necesitará pines de + 5V, tierra y señal en GPIO23 (pin físico - 16), ya que GPIO18 (pin físico - 12), que está configurado para dispositivos IR por defecto, ya está ocupado enviando paquetes a la luz de fondo.
Proceso:Para conectar el controlador del receptor IR, edite el archivo /flash/config.txt, al final del cual escribimos la línea (aquí y abajo sin comillas):
"Dtoverlay = gpio-ir, gpio_pin = 23"
Después de haber conectado el receptor IR a las frambuesas, debe obtener los códigos de escaneo para los botones del control remoto que necesitamos y vincular los comandos a ellos. Después de determinar el tipo de protocolo en la consola con el comando ir-keytable, adjuntamos los códigos de escaneo a los comandos recibidos en la consola usando
«Irrecord -l | grep ^ KEY ", realice manualmente las asignaciones y cree una tabla de este tipo:
tabla ireltex, tipo: NEC
0x8f64d KEY_0 0x8f642 KEY_1 0x8f641 KEY_2 0x8f640 KEY_3 0x8f646 KEY_4
Y así, todos los botones y comandos que necesitamos. Tengo 34 líneas de fósforos. La primera línea es el nombre de la tabla y el protocolo de control remoto. Las siguientes líneas son el código de escaneo del botón a la izquierda. A la derecha, separados por un espacio, está el comando de control Kodi. Y así sucesivamente, en orden.
La mesa debe mantenerse. Para hacer esto, se crea un archivo (lo llamé ireltex) desde el cual se leerán estos enlaces. El archivo debe colocarse en la carpeta "/storage/.config/rc_keymaps/ireltex", luego cree el archivo
"/Storage/.config/rc_maps.cfg", escribimos la línea en él:
"* * Ireltex" (ess-pero todo sin comillas).
A través de la consola Putty, cargue la tabla resultante en el controlador:
"Ir-keytable -c -w /storage/.config/rc_keymaps/ireltex", reinicie Raspberry Pi y cambie la última línea del archivo
"/Flash/config.txt"
Ahora se ve así:
"Dtoverlay = gpio-ir, gpio_pin = 23, rc-map-name = ireltex"
Archivar
“/Storage/.config/autostart.sh” necesita agregar la carga automática del protocolo de control remoto para que el registro se vea así (para mi control remoto y su protocolo):
#!/bin/sh ( sleep 5 ir-keytable -p nec )& sleep 5 /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 &
Reinicio el Raspberry Pi nuevamente y ahora Kodi responde a los comandos desde el control remoto.
Todo el proceso de configuración con ejemplos en el original se describe con más detalle
aquí .
También puede escribir en el motor de búsqueda la consulta "LibreElec + IR Remote" y obtener varios artículos sobre este tema en ruso.
Si cuelga la salida del receptor IR, excepto GPIO 23 también en la entrada GPIO3, la Raspberry Pi se encenderá mediante un comando desde el control remoto. La desventaja de este método de control es que la señal de encendido será recibida por cualquier persona desde cualquier control remoto IR, pero no he encontrado otras formas de encender las frambuesas de forma remota. Por lo tanto, debe hacer un detector adicional que tome un comando y transmita solo esta señal a la entrada GPIO3 Raspberry Pi.
Para evitar milagros con parpadeo aleatorio espontáneo de píxeles, la tierra de la cinta, además del pin GND GPIO, debe conectarse directamente al terminal negativo de la fuente de alimentación externa con un cable correspondiente a la sección transversal actual, y el cable de señal D-IN debe tener una longitud mínima.
Debe recordarse que diferentes receptores IR pueden tener diferentes voltajes de suministro (3.3 o 5V) y asignaciones de clavijas. ¡Para no dañar el receptor o los puertos de Raspberry Pi, la conexión debe realizarse de acuerdo con la documentación del receptor utilizado!
Como resultado, hasta ahora todas las conexiones en los pines GPIO Raspberry Pi se ven así:
Inclusión correcta de la Raspberry Pi con control remoto IR
Ahora debe hacer exactamente la inclusión "correcta" de la Raspberry Pi desde el botón asignado en el control remoto IR. Ahora el dispositivo se inicia cuando llega una señal al pin GPIO3 (quinto pin físico), y dado que al receptor no le importa qué recibir en este rango IR, la descarga proviene de una señal de cualquier control remoto, a veces incluso cuando las luces están encendidas en la habitación, lo cual no es conveniente . Para resolver este problema, entre el GPIO3 y el pin de señal del receptor IR, necesita un intermediario que decodifique la señal, y solo si el comando coincide con el asignado previamente, encienda la Raspberry Pi. Además, debe poder usar diferentes controles remotos o los botones de un control remoto. Por supuesto, puede escribir el firmware para cualquier ATiny por valor de medio dólar rublos y todo funcionará bien, pero como estamos hablando de un constructor simple y repetible, es mucho más fácil usar el controlador relativamente económico y compacto: Arduino Nano. La placa funcionará constantemente en modo de espera, monitoreando todas las señales entrantes de cualquier fuente IR. Y solo cuando decodifique una de las señales predefinidas, dé un comando para encender la Raspberry Pi. El controlador también proporcionará un parpadeo simple si necesita cambiar el control remoto para Raspberry Pi.
Arduino Nano se alimentará de forma no estándar, desde pin + 5V GPIO RPi hasta pin + 5V Arduino. No hay nada de malo con dicha activación: en el lado del USB, la placa Arduino tendrá una entrada estabilizadora interna, en el lado del pin Vin, el cátodo de diodo Schottky. No se conectará ninguna carga que no sea el receptor IR a los pines nano de Arduino.
La tabla de conexión Arduino-Raspberry será así: salida física Raspberri Pi 3 B + / salida física Arduino Nano
4 (+ 5v) / + 5V
6 (GND) / GND
5 (GPIO3) / D8
Además, el receptor IR se conectará a los pines de alimentación de la placa Arduino - (GND, + 5V o 3.3V), y la señal de salida a través de las resistencias 100R al pin D7 Arduino y a través de 510R al pin 16 (GPIO23) del Raspberry Pi. Por lo tanto, el receptor IR transmitirá directamente todos los comandos a la entrada GPIO23, y uno o dos pulsos cortos aparecerán en el GPIO3 solo al recibir los comandos predefinidos en el boceto.
Diagrama de conexión del receptor IR, Arduino nano y cinta de dirección a Raspberry Pi:
El puente externo superior de 5V permite que Arduino y Raspberry funcionen con una fuente de alimentación externa junto con la luz de fondo del conector de alimentación XS1, si, por ejemplo, el número de píxeles es pequeño y no crea una carga grande. Mediante el puente inferior de acuerdo con el esquema, se puede seleccionar el voltaje del receptor IR: 3.3 o 5V. El dispositivo se diseñará como un escudo externo conectado al conector GPIO, en el que se conectan la placa nano Arduino, el receptor IR y todos los conectores.
Para verificar, es suficiente leer primero e ingresar en el boceto los códigos de cualquier botón, por ejemplo "OK" o "ENTER", desde cualquier control remoto. También puede hacer una serie de comandos para iniciar la consola presionando cualquiera de un grupo específico de botones o una secuencia de teclas. El boceto utiliza la biblioteca iarduino_IR-master, cuyo archivo se puede encontrar fácilmente en Internet. Hay ejemplos de bocetos en el archivo de la biblioteca, utilizando uno de ellos, por ejemplo, receptor_GetProtokolAll, puede obtener códigos de comando para cualquier botón en el control remoto. Posteriormente, estos códigos deben escribirse en el boceto vertido en el Arduino Nano:
//******************************************************************************* #include <iarduino_IR_RX.h> // - iarduino_IR_RX IR(7); // IR, - const int Out_GPOI_3 = 8; // GPIO RPi uint32_t Code_001 = 0xFF708F; // RX code uint32_t Code_002 = 0x106FA857; void setup() { pinMode(Out_GPOI_3, OUTPUT); // 9600 / Serial.begin(9600); IR.begin(); // - } void loop() { if(IR.check()) // { // , if(IR.data == Code_001 or IR.data == Code_002) { digitalWrite(Out_GPOI_3, HIGH); // RPi delay(5); digitalWrite(Out_GPOI_3, LOW); // delay(5); digitalWrite(Out_GPOI_3, HIGH); // RPi delay(5); digitalWrite(Out_GPOI_3, LOW); // delay(5); } } } //*******************************************************************************
Dado que la biblioteca iarduino_IR-master usa el mismo temporizador que algunas funciones de "cableado" estándar del entorno Arduino, no puede usar micros (), millis (), tone () y posiblemente algunos otros en este boceto, de lo contrario, un intento de compilación conducirá a un error indistinto. A pesar de este enfoque de los autores para escribir código, la biblioteca realiza regularmente sus funciones y define claramente los mensajes IR, sus tiempos, estructura y protocolos utilizados, y la capacidad de leer rápidamente los códigos de comandos de cualquier consola reduce su configuración a un simple reemplazo de variables en el bosquejo.
Toda la superestructura fue diseñada como un escudo, para el cual se dibujaron y ordenaron las siguientes tablas de fábrica en China:

Este escudo conecta una placa nano Arduino, un conector para una fuente de alimentación común de 5V, un conector de luz de fondo de TV y el escudo en sí está incluido en el peine GPIO Raspberry Pi. Después de instalar todos los componentes, se ve así:


Planeaba colocar una cubierta translúcida de acrílico en la esquina en los orificios provistos para sujetar los bastidores, pero sus manos de alguna manera no alcanzaron, y el decodificador aún no es visible ...
Se ha escrito mucho en todas partes sobre la selección y pegado de la cinta de direcciones, sin embargo, también tengo algunos comentarios sobre este tema y la instalación.
Primero sobre los mitos.
"WS2812 no es adecuado para retroiluminación adaptativa, debe usar SK9822 o incluso APA102"Justifican esto por el hecho de que la frecuencia de transferencia de datos de los análogos APA102 es mucho mayor debido a la presencia de una línea de reloj, y los LED tienen una gama de colores más amplia y son más confiables.
Todo esto es cierto, pero si dividimos la frecuencia de funcionamiento de WS2812B por el número de píxeles y 32 bits de información para cada uno de ellos, obtenemos una frecuencia de actualización de casi 300 Hz para mis 91 LED. Esto es varias veces mayor que el umbral requerido. Y todos los casos de "parpadeo" e "inactivo" son 146% debido a la curva del cableado de la tierra y el cable de señal.
El esquema de color es similar: Hyperion genera paquetes de 8 bits para cada color en cada píxel. En cualquier caso, esto es solo 256 gradaciones de brillo de cada uno de los tres colores en cualquier cinta. La diferencia de colores solo se notará en la calculadora en la pantalla de un buen monitor, pero la diferencia en el brillo real de ± una o incluso varias gradaciones que nuestros ojos no verán en ningún caso: esta es la anatomía de nuestra visión y no hay nada que podamos hacer al respecto. Además, el configurador tiene herramientas para ajustar la gama de colores: si lo desea, puede lograr un color blanco casi perfecto con un brillo cercano al máximo. Pero incluso estos gestos probablemente no sean necesarios: la luz de fondo solo crea el fondo en la pared detrás del televisor, y no la imagen en la pantalla ... Al analizar las zonas de captura, tanto Hyperion como Philips no toman un punto específico, sino el color promedio de toda el área especificada, por lo tanto Las sombras siempre serán algo diferente de las que se reproducen en dinámica en los bordes de la pantalla. Dado todo esto, no tiene sentido disparar desde un cañón a los gorriones, lo que confirma el diseño de la luz de fondo en los televisores Phillips originales, donde solo se muestran 37 puntos en la diagonal de 50 "y el ancho de las zonas es de 5-6 cm.
Otro mito:
"WS2812B es de corta duración, un mes después los píxeles comenzaron a fallar".Naturalmente, comenzarán. Y en cualquier cinta. Cada color en cada LED 2812B a pleno brillo consume 18-20 mA. Por ejemplo, tengo 91 LED. 91X3X20 = 5.5A. La eficiencia es de aproximadamente 30-40%, lo que significa que más de tres amperios se calientan. La única forma efectiva de eliminar el calor de los sustratos de los cristales es las pistas de cobre de la cinta, que está pegada a alguna superficie. Conectado a la alimentación, pero la cinta no luminosa también es notablemente caliente: los chips en estado estático tienen cierto consumo de corriente. La cubierta posterior de plástico del televisor no es el mejor disipador de calor para el funcionamiento a largo plazo de la cinta, por lo que es mejor y más correcto usar un perfil de metal especial. Además, viene con un difusor de varias profundidades, anchos y formas. No verá reflejos en forma de puntos de colores en las superficies brillantes del interior de la habitación, que a veces también es importante.


Cuando todo está montado, conectado y comprobado, queda por configurar el reproductor KODI a su gusto y color, instale todos los complementos necesarios, IPTV con programas y comparta contenido desde la PC de su hogar.
Si comparamos la luz de fondo con la versión de hardware, la reacción al procesamiento de cuadros me pareció más clara, no hay sensación de un ligero retraso en una fracción de segundo. La implementación en sí me parece bastante viable: resultó ser un simple constructor repetible ensamblado sobre la base del complemento. Si se encarga de ensamblar el escudo de conmutación y guardar el sistema configurado como una imagen, no tomará más tiempo iniciar otro decodificador de ese tipo que cualquier caja de TV "en caja" en Android. Si hace que el receptor IR sea remoto, el dispositivo puede ocultarse detrás de un televisor con una opción de montaje en pared. Si tiene un sistema operativo configurado o su imagen, el sistema funcionará en modo completo la primera vez que lo encienda.
Para aquellos que miran canales de televisión, tendrán que jugar con sus listas de reproducción de IPTV pagas y de alta calidad, gratuitas o que no funcionan, programas de TV para canales, complementos y configuraciones de reproductor, que, por cierto, tienen la capacidad de cambiar las máscaras, de las cuales en este momento hay muchas para cualquier el sabor Todo es compatible: muestra el clima, el tiempo, los protectores de pantalla, cientos de complementos y aplicaciones diferentes. Por ejemplo, quería deshacerme del menú OSD no retráctil, llamado para rebobinar o pausar. Para esto, el complemento - Ocultar Video OSD - fue genial. Descargue el archivo zip, colóquelo en un lugar conveniente para las frambuesas, seleccione la instalación desde el archivo en la interfaz del complemento, configúrelo, habilite el complemento en la configuración, configure el tiempo en segundos, después de lo cual el OSD se eliminará automáticamente de la pantalla.
Además de otros chips, Kodi tiene una interfaz web completa a través de la cual puede configurar los ajustes, controlar el reproductor y la biblioteca de medios desde la PC de su hogar.
Las publicaciones sobre todas las características del reproductor y cómo, por ejemplo, crear un servidor de medios en una PC para Kodi, se encuentran fácilmente en RuNet. Por conveniencia, parámetros omnívoros y otros, pondría este reproductor a la par con proyectos como WinAmp y MPC-HC.
Una pequeña foto de demostración en zapatillas: