Rétroéclairage adaptatif pour téléviseur Raspberry Pi - Ambilight Analog

image

Il s'agit d'un téléviseur de 50 pouces avec 37 points RVB de rétroéclairage adaptatif en haut et sur les côtés de l'écran. Comment créer un rétro-éclairage adaptatif similaire pour n'importe quel écran ou téléviseur est un sujet galvaudé, mais tout à fait pertinent pour un certain nombre de raisons.

Tout d'abord, tout change. Il y a quelques années, aucun projet ne fonctionnait sans béquilles logicielles ou matérielles. En tout cas, je n'ai pas vu de telles publications. Ceux qui sont décrits sur Internet perdent leur pertinence en raison de l'obsolescence des plates-formes logicielles ou matérielles, ou ne mettent en œuvre cette technologie que pour les moniteurs connectés à un PC.

Deuxièmement, il n'y a pas et il n'y aura pas de téléviseurs Samsung, Sony, Elge et autres prenant en charge cette technologie sur le marché, car elle a été brevetée par Philips pendant de nombreuses années à venir. Et enfin, toutes les solutions «prêtes à l'emploi» disponibles sur Ali et d'autres comme lui ont un certain nombre de limitations dans la flexibilité des paramètres et l'adaptation à la taille d'image du contenu vidéo, les réglages de la gamme de couleurs, etc., n'étant qu'une béquille matérielle analysant un signal externe et travailler uniquement sur la formation du rétro-éclairage.

Option de capture de trame "Matériel"


Si vous ne parlez pas des options théoriques de raffinement et de modernisation du récepteur de télévision lui-même, vous devez accepter le fait que dans tous les cas, vous devrez traiter le signal HDMI - c'est-à-dire Il sera utilisé pour l'analyse de trame et le rétro-éclairage. Ici, seules deux options de mise en œuvre se suggèrent: avec le traitement du signal de n'importe quelle source (comme les lightpacks avec ali) et avec la mise en œuvre de la source elle-même sous la forme d'un décodeur TV avec rétro-éclairage adaptatif.

Dans le premier cas, nous obtenons une sorte de polyvalence - vous pouvez connecter une console de jeu ou une sorte de joueur à l'appareil. Dans le second - nous collectons ce même "une sorte de joueur" avec une fonction de rétro-éclairage intégrée. En expérimentant, j'ai implémenté les deux options, mais ici je ne me concentrerai que sur la seconde, et voici pourquoi:

image

Dans le schéma fonctionnel donné de la première variante, le signal HDMI de n'importe quelle source arrive au répartiteur, où il est divisé en deux sorties. Dès le premier, le contenu est lu sur n'importe quel récepteur ou moniteur TV. À partir de la seconde, le signal entre simultanément dans le scaler matériel, où il est converti en un signal analogique avec des trames basse résolution - 320x480. Le signal analogique est envoyé à un grabber USB matériel, qui prend des «captures d'écran» de chaque trame et les transmet via le port USB à l'entrée d'un mini PC monocarte - Raspberry Pi 3 B +. Le logiciel sur les framboises analyse les trames à l'aide du programme Hyperion et, via l'une des sorties GPIO, fournit des séquences de contrôle à l'entrée d'une bande d'adresse comme WS2812B ou APA102. Tout cela a bien fonctionné, mais il présente quelques inconvénients sous la forme d'un tas de fer avec des connexions et un petit retard dans l'émission d'un signal de rétro-éclairage. Le retard n'était perceptible que sur les vidéos de test avec un changement brusque de couleurs dans la plupart des images. Sinon, rien à redire, sauf pour le coût de tout le fer dans cette mise en œuvre:

Raspberry Pi 3 B + - environ 55 $.
Boîtier de radiateur - 14 $.
Splitter HDMI 1080P actif pour 2 sorties - 15 $.
HDMI 1080P vers AV Scaler - 15 $.
Pince USB EasyCap - 18 $.
Alimentation - environ 10 $.
Carte microSD de 32 Go - 10 $.
Câbles de connexion et autres petites choses - environ 10 $.
Total, sans compter la bande d'adresse - près de 150 $.

Ce n'est pas qu'une telle option va immédiatement au four - elle peut bien être utile pour organiser le rétro-éclairage sur certains grands écrans préfabriqués dans la publicité ou les présentations, et le prix n'est pas le pire pour le résultat - mais pour un usage domestique, j'ai opté pour la deuxième option - dans Surtout des "logiciels". Il est sorti plus facile, moins cher, plus compact et plus rapide. Pour un usage commercial, il peut également être tout à fait approprié - un Raspberry Pi avec un lecteur peut être utilisé avec succès dans des projets où vous devez lire automatiquement de manière cyclique et transparente du contenu à partir du moment où vous l'allumez, éteignez le lecteur, à nouveau automatiquement - selon le calendrier à la fin de la journée. Après avoir écrit un petit script, nous aurons un appareil publicitaire avec la fonction de rétro-éclairage adaptatif de tous les écrans, d'au moins dix mètres de haut. Mais revenons à un usage domestique ...

Cadres de capture de l'option "Logiciel"


Les fonctions du Media Center et du contrôle du rétro-éclairage resteront derrière le même Raspberry Pi 3 B +, et toutes les connexions seront désormais réduites à la connexion de plusieurs connecteurs - alimentation, Internet, rétro-éclairage et HDMI au téléviseur. Pas plus que tout autre décodeur:

image

Pour l'avenir, je tiens à noter que le Raspberry Pi 3 B + s'est avéré être un centre multimédia de décodeur TV complètement universel avec toutes les capacités nécessaires d'un tel appareil, ainsi qu'un rétro-éclairage adaptatif personnalisable pour tout téléviseur moderne (et pas si) doté d'une entrée HDMI.

La base du logiciel est l'OS Libreelec ouvert, spécialement affiné pour le lecteur Kodi. Le site du projet contient toutes les informations nécessaires.

À propos des capacités de l'une des plates-formes les plus puissantes et flexibles pour lire du contenu vidéo-audio, IPTV, etc. peut être lu en notant dans n'importe quel moteur de recherche "description kodi des opportunités". Il y a beaucoup d'informations en russe sur ce sujet. J'utilise peut-être 1/10 de toutes les fonctionnalités de la plate-forme et cela me suffit. La plateforme est activement prise en charge, dispose d'une communauté réactive. Par conséquent, nous lisons, nous étudions - sur le wiki de ces projets et sur les forums, il y a presque toutes les informations nécessaires et les réponses aux questions. Nous prenons le kit de distribution et les instructions d'installation et de configuration sur le site web du projet Libreelec. Puisque l'OS est multi-plateforme, n'oubliez pas que notre projet est construit sur Raspberry.

Violant une tradition étrange mais bien établie de commencer de telles publications avec une description des types de bandes d'adresse et comment les coller maladroitement sur les murs arrière des téléviseurs à domicile, je commencerai par installer et configurer un logiciel à carte unique. Malheureusement, faire des instructions étape par étape pour la configuration est presque impossible - cela prendrait une demi-centaine de pages de texte sans captures d'écran. De plus, la plate-forme du joueur se développe activement, les versions OS et Kodi changent, les informations actuelles - elles cessent bientôt de l'être. Par conséquent, voici seulement les points principaux ainsi que des liens vers des sources d'informations utiles.

Pour configurer la partie logicielle du rétroéclairage, contrôler la télécommande infrarouge et le lecteur lui-même, vous devez avoir une première idée de la disposition des répertoires Libreelec, du fonctionnement du réseau local, de la console, de l'utilisation de la ligne de commande, etc., car nous ferons certaines choses dans le processus. à la main. Grâce aux installateurs sur la carte microSD, seuls le système d'exploitation Libreelec et le complément de mise en évidence - Hyperion, seront installés.

Étant donné que le Raspberry Pi ne dispose pas d'une horloge en temps réel, d'un BIOS et d'une alimentation de sauvegarde intégrés, tout ce qui est nécessaire pour fonctionner se trouve sur la carte microSD. Pour installer le système d'exploitation sur la carte, vous devez télécharger le package NOOBS à partir du site Web du projet Raspberry (au moment de l'installation, j'ai utilisé la version de construction 3.2.1) ou un outil spécial - «LibreELEC USB-SD Creator» .

La carte mémoire doit avoir de bonnes vitesses de lecture et d'écriture, c'est-à-dire être au moins de niveau 10. En termes de volume, le système d'exploitation Libreelec prend peu de place, des cartes de 16 Go suffiront pour le travail, si vous ne souhaitez pas acheter une plus grande quantité. Il peut être utilisé pour stocker n'importe quel contenu.

Dans le cas de NOOBS, le contenu de l'archive zip est décompressé à la racine d'une carte microSD formatée en FAT32, la carte est insérée dans l'emplacement libre de framboise, l'alimentation est allumée, puis, en choisissant le système d'exploitation nécessaire dans le programme d'installation et en suivant les instructions, déployez Libreelec. Cependant, les développeurs de la plate-forme recommandent l'installation à l'aide de LibreELEC USB-SD Creator, qui télécharge et écrit lui-même le package de distribution sur la carte, puis la carte est également insérée dans l'emplacement de framboise, où le programme d'installation déploie le système d'exploitation après avoir mis sous tension. Dans ce cas, les sections de la carte sont reformatées, après quoi sous Windows, vous ne verrez pas tout le volume réel du support. Si, pour une raison quelconque, vous devez restaurer les partitions à leur état initial, vous devrez d'abord nettoyer la carte avec l'utilitaire Windows standard - DiskPart, puis dans la section "Gestion des disques" créer une nouvelle partition sur l'espace libre du support et la formater.

Pour simplifier l'installation et la configuration de l'OS, j'ai temporairement connecté un moniteur et un clavier séparés avec une souris aux framboises.

De plus, pour configurer et configurer le logiciel framboise, vous aurez besoin de sa connexion avec un PC et un accès Internet, de préférence câblé. Le logiciel installé sur le PC pour la connexion via SSH - PuTTY et WinSCP, ainsi que la machine virtuelle Java (jre-8u231-windows-x64) et le configurateur de démon Hyperion - HyperCon (HyperCon.jar). Vous pouvez utiliser un autre gestionnaire de fichiers pratique avec des panneaux, par exemple - Total Commander. Où télécharger et configurer - beaucoup d'informations sur des sites spécialisés, il suffit de rechercher des informations avec la requête de recherche "travailler avec PUttY et WinSCP". Le projet Hyperion possède également son propre forum et wiki.
Dans cette capture d'écran, il existe trois façons de connecter des framboises à un PC sous Win via SSH - via la console Putty, le gestionnaire de fichiers WinSCP et Total Commander:

image

Le compte administrateur de Librelec a un nom d'utilisateur et un mot de passe root @ libreelec par défaut, qui sont mieux modifiés pour des raisons de sécurité. Après une installation réussie dans les paramètres système, nous effectuons des actions simples - activer SSH, SMB, attribuer une IP statique, désactiver les mises à jour:

image

Il est supposé que les framboises sont connectées à votre réseau domestique et vous pouvez trouver l'adresse IP des appareils qui y sont connectés sur votre PC domestique. J'ai désactivé les mises à jour afin que le système de rétroéclairage adaptatif une fois réglé ne se bloque pas si le développeur modifie les composants qui lui sont liés dans Libreelec.

Dans les paramètres système des services dont vous avez besoin pour activer SSH et activer l'authentification par mot de passe, définissez également la version minimale du protocole SMB2, la valeur maximale - SMB3. Vous aurez besoin de SMB pour voir les répertoires du Raspberry Pi et les lecteurs flash qui y sont connectés depuis le PC:

image

Sous Windows 10, sur le PC dans les paramètres, vous devrez trouver et activer le support SMB, car il est désactivé par défaut:

image

Nous recherchons et ajoutons également la disposition du clavier russe dans les paramètres. Il ne se passera rien au clavier physique - il n'y aura de saisie qu'en anglais, mais dans le clavier virtuel à l'écran, il sera possible de saisir du texte en russe. Pour un accès pratique aux répertoires de la carte microSD et des lecteurs flash connectés aux framboises, vous pouvez créer et placer un raccourci avec l'adresse du répertoire distant sur la barre d'outils de Total Commander:

image

Les fichiers sur le réseau local seront transférés à une vitesse limitée par la bande passante de votre routeur domestique, et beaucoup plus rapide qu'en accès via SSH. Dans tous les cas, la copie d'un film ou d'une musique de cette manière sera plus pratique que le transport d'une clé USB d'un décodeur vers un PC. Vous verrez la structure du répertoire interne dans / stockage sur la carte framboise et les lecteurs connectés aux ports USB. Avec une connexion filaire, j'ai 100 Mbps. via le routeur, la vitesse de téléchargement maximale des fichiers d'un PC vers une clé USB en framboises était d'environ 12 Mo / s, ce qui correspond à peu près à la bande passante de ma connexion filaire.

Si nécessaire, à l'avenir, vous pouvez déployer sur votre PC n'importe quel serveur multimédia domestique (UPnP, DLNA) pour diffuser du contenu directement depuis votre PC.

Après avoir installé et configuré l'accès aux framboises à partir d'un PC via SSH à l'aide des programmes PUttY et WinSCP, vous pouvez procéder à l'installation et à la configuration du démon Hyperion. Il doit y avoir une machine virtuelle Java sur le PC.

Tout fonctionnera comme ceci - au début de Raspberry, un programme spécial, Hyperion, sera lancé en arrière-plan avec Kodi en arrière-plan. Elle analysera toutes les images vidéo et, en fonction des paramètres enregistrés dans le fichier de configuration, gérera la bande d'adresse via l'une des sorties GPIO de la framboise. Autrement dit, après les paramètres, tout fonctionnera de manière autonome, aucune communication ou interaction avec le PC n'est requise. Mais pour créer rapidement un fichier de configuration et installer Hyperion sur des framboises, il existe un configurateur pratique qui s'exécute sur un PC. Ce programme vous aidera à créer rapidement un fichier de configuration pour que le démon fonctionne, à le télécharger et à l'installer dans Raspberry et à vérifier les fonctionnalités du système à l'aide d'une interface graphique pratique.

Hypercon


Le configurateur s'appelle HyperCon, il ne nécessite pas d'installation, il suffit d'exécuter le fichier exécutable HyperCon.jar sur le PC et de voir cette fenêtre:

image

Sur le côté droit, il y a un écran virtuel pour lequel le rétro-éclairage sera configuré - zones de capture des couleurs, leur numérotation (commence à 0), direction, emplacement, indentation, chevauchement et profondeur. Dans la partie gauche, il y a cinq onglets avec des paramètres.

Brièvement sur les onglets du configurateur:

Quincaillerie (fer)

  • périphérique -> Nom de la configuration - tout nom pratique pour la configuration actuelle
  • périphérique -> Type - type de puce de la bande d'adresse, du module ou de quelque chose d'autre
  • périphérique -> Quantité de LED - nombre de pixels adressables (combien de LED sont dans la bande)
  • périphérique -> Ordre des octets RVB - couleurs suivantes dans le protocole utilisé

Construction (disposition des sources lumineuses)

  • cases à cocher -> (led en haut à gauche, etc.) - la présence d'une source de lumière dans les coins de la structure
  • LED horizontales -> Nombre de pixels en haut de la structure
  • LED gauche-> pixels gauches
  • LED à droite -> Le nombre de pixels sur le bord droit de la conception
  • Écart inférieur -> Le nombre de zones sautées le long du bas de la structure (pour contourner le pied du téléviseur ou toute la zone inférieure)
  • 1 er décalage LED -> Correction du décalage pixel pour définir le premier dans un coin pratique.

Processus d'image

  • Processus d'image -> Profondeur horizontale - profondeur de la zone horizontale,%
  • Processus d'image -> Profondeur verticale - profondeur de la zone verticale,%
  • Processus d'image -> Espace horizontal - indentation horizontale des zones à partir du bord,%
  • Processus d'image -> Espace vertical - indentation verticale des zones à partir du bord,%
  • Processus d'image -> Chevauchement - chevauchement des zones voisines,%

Détection Blackborder - Sensibilité et mode de traitement. Cela fonctionne en théorie comme ceci - le démon analyse les bords de l'écran au niveau spécifié et calcule la largeur des bords sombres à exclure des zones traitées. C'est pour les cas où une image grand écran est lue.

Processus (traitement de trame)

  • Lissage -> Activé (case à cocher pour activer l'anticrénelage)
  • Lissage -> Type
  • Lissage -> Temps
  • Lissage -> Mettre à jour la fréquence (taux de rafraîchissement)
  • Lissage -> Délai de mise à jour (délai avant la mise à jour de la trame)
  • Étalonnage des couleurs - éléments intuitifs qui vous permettent de définir le niveau d'éclat minimum et maximum, la saturation, la température, le niveau d'éclat d'arrière-plan sans signal, séparément pour chacune des 3 couleurs primaires.

La case cochée Envoyer en continu vous permet de voir les changements dans le processus de configuration déjà sur la structure assemblée.

Grabber (Grabber - frame grabber, l'onglet le plus intéressant)

  • Capteur de trame interne (logiciel de saisie)
  • Capteur de cadre interne-> activé
  • Accroche-cadre interne-> Largeur
  • Capteur de cadre interne-> Hauteur (hauteur de zone)
  • Capteur de cadre interne-> Intervalle
  • Capture d'image interne -> Canal prioritaire (priorité de ce canal)

Quelques clarifications sont nécessaires ici. L'astuce est que nous créons un lecteur multimédia basé sur le Raspberry Pi, qui jouera lui-même le contenu d'un réseau local, d'un lecteur flash ou d'une télévision IP sur la plate-forme LibreElec. Étant donné que le contenu tourne déjà avec le lecteur de framboise, la capture se fera par programme, sans grabber EasyCap externe, et le démon traitera les images lui-même, car dans ce cas, la source du signal sera la sortie HDMI du Raspberry Pi lui-même. Il est possible d'utiliser le même grabber externe pour une autre source sans déconnecter les priorités internes à un canal qui sont prévues pour cela, c'est le dernier élément pour configurer le grabber logiciel. Plus le nombre est élevé, plus la priorité de la chaîne est faible.

Exactement, il n'y a pas d'erreur.

  • Grabber V4L2 (Paramètres du pilote du matériel Grabber))
  • Grabber V4L -> Périphérique (périphérique USB à partir duquel la capture est effectuée - / dev / video0 par défaut)
  • Grabber V4L -> Input (L'entrée utilisée est 0 par défaut)
  • Grabber V4L -> Largeur (largeur de zone - -1 par défaut)
  • Grabber V4L -> Heigth (hauteur de zone - -1 par défaut)
  • Grabber V4L -> Décimation du cadre
  • Grabber V4L -> Décimation de la taille (taux de compression)
  • Grabber V4L -> Canal prioritaire (priorité de ce canal)
  • Grabber V4L -> mode 3D (sélection du mode 2D / 3D)
  • Grabber V4L -> Recadrer à gauche (recadrer à gauche)
  • Grabber V4L -> Crop Right (recadrer vers la droite)
  • Grabber V4L -> Crop Top (crop top)
  • Grabber V4L -> Crop Bottom (recadrer le cadre inférieur)
  • Grabber V4L -> les trois derniers points (seuil de commutation des canaux par couleur)

Externe

  • Externe -> Kodi Checker (Paramètres du lecteur Kodi, s'il est utilisé en tant que lecteur. Les cases à cocher sélectionnées désactiveront le rétroéclairage lors de l'exécution des fonctions spécifiées du lecteur. Vous pouvez configurer le rétroéclairage pour qu'il fonctionne uniquement lors de la lecture de contenu et s'éteindre dans tous les autres cas )
  • Externe -> Json / Proto / Boblight Server (paramètres de port du serveur, laissez comme sur l'écran)
  • Externe -> Booteffect / Couleur statique (Paramètres d'effet de démonstration au démarrage du démon)
  • Externe -> Json / Proto Forvard (paramètres du port de sortie, laisser comme à l'écran)

SSH (Paramètres de connexion PC avec Raspberry Pi)
  • SSH - Connexion -> Système (Choix du système d'exploitation installé sur le Raspberry Pi)
  • SSH - Connexion -> IP cible (adresse IP du Raspberry Pi)
  • SSH - Connexion -> Port (comme dans la capture d'écran - (22))
  • SSH - Connexion -> Nom d'utilisateur / mot de passe (nom - mot de passe défini sur le Raspberry Pi)
  • SSH - Connexion -> Connecter / Déconnecter (bouton de connexion-déconnexion avec Raspberry Pi)
  • SSH - Connexion -> Afficher le trafic (bouton pour appeler la console avec sortie d'informations)
  • SSH - Gérer Hyperion depuis HyperCon -> Inst / Upd. Hyperion (bouton pour installer le démon sur le Raspberry Pi ou mettre à jour le démon via le réseau. Pas de sudo get-install, connectez-vous au Raspberry Pi, piquez et attendez la sortie vers la console HyperCon)
  • SSH - Gérer Hyperion depuis HyperCon -> Supprimer Hyperion (bouton de désinstallation du démon)
  • SSH - Gérer Hyperion depuis HyperCon -> Démarrer / Arrêter (boutons stop-start du démon)
  • SSH - Gérer Hyperion depuis HyperCon -> Obtenir le journal (sortie vers les journaux de la console du démon, pratique pour
  • recherche d'aucune station d'accueil et lecture de codes d'erreur)
  • SSH - Envoyer la configuration Hyperion -> Chemin de configuration local (Envoyer le fichier de configuration à l'emplacement local spécifié sur le PC)
  • SSH - Envoyer la configuration Hyperion -> Envoyer la configuration (Envoyer le fichier de configuration via SSH vers Raspberry Pi)
  • SSH - Colorpicker (testeur de palette intuitif - vous pouvez vérifier la sortie de toutes les couleurs.
  • Les boutons sous les onglets enregistrent-chargent les paramètres d'HyperCon (pas le fichier de configuration du démon lui-même !!)
  • L'aide est compréhensible, et Créer une configuration Hyperion vous permet d'enregistrer localement le fichier de configuration du démon pour Raspberry Pi lui-même - hyperion.config.json

Comme vous pouvez le voir dans la liste ci-dessus, il existe de nombreuses options de personnalisation, ce qui rend l'outil très flexible pour toute liste de souhaits et tâches.

À titre d'exemple, ma configuration d'onglets:

image

image

Dans le premier onglet, nous organisons les zones de la même manière que les pixels de rétroéclairage à l'arrière du téléviseur seront physiquement situés. Vous pouvez remplir tout le périmètre ou une partie de celui-ci, définir la direction, le début, etc. Le type de bande que j'ai utilisé est WS2812B, donc dans la capture d'écran, le champ correspondant est sélectionné comme WS281x. Le nombre de pixels que j'ai déterminé la densité des LED sur la bande disponible et la diagonale de l'écran. Les onglets restants sont tels que décrits ci-dessus, et dans le plus récent, nous sélectionnons notre système d'exploitation sur le Raspberry Pi, configurons la communication via SSH et installons le démon Hyperion sur une seule carte. Ensuite, nous enregistrons la configuration HyperCon, créons un nouveau fichier de configuration Hyperion, envoyons la configuration créée au Raspberry Pi, démarrons et essayons ColorPicker pour vérifier si les couleurs correspondent à la palette. Si tout correspond,tout contenu joué par le lecteur Kodi contrôlera le rétro-éclairage. Sortie de signal GPIO - 18 (broche physique du peigne - 12).

Les détails de toutes les connexions seront décrits ci-dessous, après une description de tous les paramètres du programme.
Je n'ai pas configuré le démarrage, le démon démarre en même temps que le lecteur démarre. Cependant, c'était pour que le rétro-éclairage ne s'allume toujours pas. Ensuite, nous essayons de vérifier si le démarrage automatique du démon est enregistré dans "/storage/.config/ autostart.sh" et essayons de réinstaller le démon pour envoyer à nouveau sa configuration au Raspberry Pi. Le programme lui-même envoie la configuration au répertoire

Raspberry Pi -
"/storage/.config/ hyperion.config.json".
Vous pouvez également vérifier le fonctionnement du démon en envoyant une couleur sur l'onglet SSH HyperCon, en cochant la case «Mise à jour automatique» et en appuyant sur le bouton stop-start pour le redémarrer.
Si le démon ne démarre pas après le redémarrage du Raspberry Pi, essayez de changer le démarrage automatique dans le fichier

/storage/.config/autostart.sh //--------------------------------------------------------------------------------------------------------------- #!/bin/sh sleep 5 /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 //--------------------------------------------------------------------------------------------------------------- 

retardant ainsi l'exécution du démon.

Télécommande par n'importe quelle télécommande infrarouge


Comme en plus du rétro-éclairage, le préfixe sera un centre multimédia à part entière - vous devez y attacher et configurer la télécommande. Si votre téléviseur prend en charge la technologie CEC (Consumer Electronics Control, c'est-à-dire le protocole de contrôle via HDMI), Kodi peut configurer et utiliser la télécommande du téléviseur qui est déjà disponible avec le téléviseur pour contrôler le décodeur. Étant donné que tous les fabricants appellent ce protocole différemment sur leurs téléviseurs , (par exemple, LG - SimpLink, Samsung -Anynet, Sony - BRAVIA Sync), regardez dans les paramètres de votre téléviseur pour la prise en charge de cette fonction. Je n'ai pas une très bonne télécommande pour la télévision, alors je suis allé dans l'autre sens - j'ai pris celle qui était avec l'ancien Décodeur TV sur Android (alors que d'autres télécommandes commandées pour ce projet viennent de Chine):

image

Sur le peigne Raspberry, vous aurez besoin de broches + 5V, de la masse et du signal sur GPIO23 (broche physique - 16), car GPIO18 (broche physique - 12), qui est configuré pour les périphériques IR par défaut - est déjà occupé à émettre des paquets vers le rétro-éclairage.

Processus:

Pour connecter le pilote du récepteur IR, éditez le fichier /flash/config.txt, à la fin duquel nous écrivons la ligne (ici et ci-dessous sans guillemets):
"Dtoverlay = gpio-ir, gpio_pin = 23"

Après avoir connecté le récepteur IR aux framboises, vous devez obtenir les codes de numérisation pour les boutons de la télécommande dont nous avons besoin et leur lier les commandes. Après avoir déterminé le type de protocole dans la console avec la commande ir-keytable, nous attachons les codes de scan aux commandes reçues dans la console en utilisant
«Irrecord -l | grep ^ KEY ", faites manuellement les mappages et créez un tableau de ce type:
table ireltex, tapez: NEC

 0x8f64d KEY_0 0x8f642 KEY_1 0x8f641 KEY_2 0x8f640 KEY_3 0x8f646 KEY_4 

Et donc - tous les boutons et commandes dont nous avons besoin. J'ai eu 34 lignes d'allumettes. La première ligne est le nom de la table et le protocole de contrôle à distance. Les lignes suivantes représentent le code de balayage des boutons à gauche. À droite, séparé par un espace, se trouve la commande de contrôle Kodi. Et ainsi de suite, dans l'ordre.

La table doit être conservée. Pour ce faire, un fichier est créé (je l'ai appelé ireltex) à partir duquel ces liaisons seront lues. Le fichier doit être placé dans le dossier «/storage/.config/rc_keymaps/ireltex», puis créer le fichier
"/Storage/.config/rc_maps.cfg", nous y écrivons la ligne:
"* * Ireltex" (ess-mais tous sans guillemets).

Via la console Putty, chargez la table résultante dans le pilote:
"Ir-keytable -c -w /storage/.config/rc_keymaps/ireltex", redémarrez le Raspberry Pi et modifiez la dernière ligne du fichier
"/Flash/config.txt"
Maintenant, cela ressemble à ceci:
"Dtoverlay = gpio-ir, gpio_pin = 23, rc-map-name = ireltex"
Pour déposer
"/Storage/.config/autostart.sh" vous devez ajouter le chargement automatique du protocole de télécommande pour que l'enregistrement ressemble à ceci (pour ma télécommande et son protocole):

 #!/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 & 

Je redémarre à nouveau le Raspberry Pi et maintenant Kodi répond aux commandes de la télécommande.
Le processus d'installation complet avec des exemples dans l'original est décrit plus en détail ici .

Vous pouvez également taper dans le moteur de recherche la requête "LibreElec + IR Remote" et obtenir plusieurs articles sur ce sujet en russe.

Si vous suspendez également la sortie du récepteur IR, sauf GPIO 23 à l'entrée GPIO3 - le Raspberry Pi s'allumera par commande à partir de la télécommande. L'inconvénient de cette méthode de contrôle est que le signal d'allumage sera reçu par n'importe qui à partir de n'importe quelle télécommande IR, mais je n'ai pas trouvé d'autres moyens d'activer à distance les framboises. Vous devez donc créer un détecteur supplémentaire qui prend une commande et transmet uniquement ce signal à l'entrée GPIO3 Raspberry Pi.

Afin d'éviter les miracles avec un scintillement aléatoire spontané des pixels, la masse de la bande, en plus de la broche GND GPIO, doit être connectée directement à la borne négative de l'alimentation externe avec un fil correspondant à la section actuelle et le fil de signal D-IN doit être d'une longueur minimale.

Il ne faut pas oublier que différents récepteurs IR peuvent avoir des tensions d'alimentation (3,3 ou 5 V) et des affectations de broches différentes. Afin de ne pas endommager le récepteur ou les ports du Raspberry Pi, la connexion doit être effectuée conformément à la documentation du récepteur utilisé!
En conséquence, jusqu'à présent, toutes les connexions sur les broches GPIO Raspberry Pi ressemblent à ceci:

image

Inclusion correcte du Raspberry Pi avec télécommande IR


Maintenant, vous devez faire exactement l'inclusion «correcte» du Raspberry Pi à partir du bouton attribué sur la télécommande IR. Maintenant, l'appareil démarre lorsqu'un signal arrive sur la broche GPIO3 (cinquième broche physique), et comme le récepteur ne se soucie pas de ce qu'il doit recevoir dans cette plage infrarouge, le téléchargement provient d'un signal provenant de n'importe quelle télécommande, parfois même lorsque les lumières sont allumées dans la pièce, ce qui n'est pas pratique . Pour résoudre ce problème, entre le GPIO3 et la broche de signal du récepteur IR, vous avez besoin d'un intermédiaire qui décodera le signal, et uniquement si la commande correspond à celle précédemment attribuée, allumez le Raspberry Pi. De plus, vous devez pouvoir utiliser différentes télécommandes ou les boutons d'une seule télécommande. Bien sûr, vous pouvez écrire le firmware pour n'importe quel ATiny d'une valeur d'un demi-dollar et tout fonctionnera bien, mais comme nous parlons d'un constructeur répétable et simple, il est beaucoup plus facile d'utiliser le contrôleur relativement bon marché et compact - Arduino Nano. La carte fonctionnera en permanence en mode veille, surveillant tous les signaux entrants provenant de n'importe quelle source infrarouge. Et seulement lors du décodage de l'un des signaux prédéfinis - donnez une commande pour allumer le Raspberry Pi. Le contrôleur fournira également un simple clignotement si vous devez changer la télécommande du Raspberry Pi.

L'Arduino Nano sera alimenté pas tout à fait standard - de la broche + 5V GPIO RPi - à la broche + 5V Arduino. Il n'y a rien de mal à une telle mise en marche - du côté USB, la carte Arduino aura une entrée de stabilisateur interne, du côté de la broche Vin, la cathode à diode Schottky. Aucune charge autre que le récepteur IR ne sera connectée aux nano broches Arduino.

La table de connexion Arduino-Raspberry sera comme ceci - Sortie physique Raspberri Pi 3 B + / Sortie physique Arduino Nano
4 (+ 5v) / + 5V
6 (GND) / GND
5 (GPIO3) / D8
De plus, le récepteur IR se connectera aux broches d'alimentation de la carte Arduino - (GND, + 5V ou 3,3V), et le signal de sortie via les résistances 100R à la broche Arduino D7 et via 510R à la broche 16 (GPIO23) du Raspberry Pi. Ainsi, le récepteur IR transmettra directement toutes les commandes à l'entrée GPIO23, et une ou deux impulsions courtes n'apparaîtront sur le GPIO3 qu'à la réception des commandes prédéfinies dans le croquis.

Schéma de connexion du récepteur IR, de l'Arduino nano et de la bande d'adresse au Raspberry Pi:

image

Le cavalier supérieur «5V externe» permet à l'Arduino et à la framboise d'être alimentés par une source d'alimentation externe, ainsi que le rétro-éclairage du connecteur «Power» XS1, si, par exemple, le nombre de pixels est petit et ne crée pas une charge importante. Par le cavalier inférieur selon le schéma, la tension du récepteur IR peut être sélectionnée - 3,3 ou 5V. L'appareil sera conçu comme un blindage externe connecté au connecteur GPIO, dans lequel la carte Arduino nano, le récepteur IR et tous les connecteurs sont connectés.

Pour vérifier, il suffit de lire et d'entrer dans l'esquisse les codes de n'importe quel bouton, par exemple "OK" ou "ENTER", à partir de n'importe quelle télécommande. Vous pouvez également créer un tableau de commandes pour lancer la console en appuyant sur un groupe spécifique de boutons ou une séquence de touches. Le croquis utilise la bibliothèque iarduino_IR-master, dont une archive peut être facilement trouvée sur Internet. Il y a des exemples d'esquisse dans les archives de la bibliothèque, en utilisant l'un d'eux, par exemple receiver_GetProtokolAll, vous pouvez obtenir des codes de commande pour tous les boutons de la télécommande. Par la suite, ces codes doivent être écrits dans le croquis versé sur l'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); } } } //******************************************************************************* 

Étant donné que la bibliothèque iarduino_IR-master utilise le même temporisateur que certaines fonctions de «câblage» standard de l'environnement Arduino, vous ne pouvez pas utiliser micros (), millis (), tone () et éventuellement d'autres dans cette esquisse, sinon une tentative de compilation entraînera une erreur indistincte. Malgré cette approche des auteurs pour écrire du code, la bibliothèque remplit régulièrement ses fonctions et définit clairement les messages IR, leurs temporisations, la structure et les protocoles utilisés, et la possibilité de lire rapidement les codes de commandes de n'importe quelle console réduit sa configuration à un simple remplacement de variables dans l'esquisse.

L'ensemble de la superstructure a été conçu comme un bouclier, pour lequel les panneaux d'usine suivants ont été dessinés et commandés en Chine:

image

Ce blindage connecte une carte Arduino nano, un connecteur pour une alimentation commune de 5 V, un connecteur de rétro-éclairage TV et le blindage lui-même est inclus dans le peigne GPIO Raspberry Pi. Après avoir installé tous les composants, cela ressemble à ceci:

image

image

Il avait prévu de placer un couvercle translucide en coin en acrylique sur les trous prévus pour fixer les racks - mais ses mains n’ont pas atteint, et le décodeur n’est toujours pas visible ...

Beaucoup de choses ont été écrites partout sur la sélection et le collage de la bande d'adresse, cependant, j'ai aussi quelques commentaires sur ce sujet et l'installation.

D'abord sur les mythes.

"WS2812 n'est pas adapté au rétro-éclairage adaptatif, vous devez utiliser SK9822 ou même APA102"

Ils justifient cela par le fait que la fréquence de transfert de données des analogues APA102 est beaucoup plus élevée en raison de la présence d'une ligne d'horloge, et les LED elles-mêmes ont une gamme de couleurs plus large et sont plus fiables.

Tout cela est vrai, mais si nous divisons la fréquence de fonctionnement du WS2812B par le nombre de pixels et 32 ​​bits d'informations pour chacun d'eux, nous obtenons une fréquence de mise à jour de près de 300 Hz pour mes 91 LED. Ceci est plusieurs fois supérieur au seuil requis. Et tous les cas de «scintillement» et de «repos» sont à 146% en raison de la courbe du câblage de la terre et du fil de signal.

Le schéma de couleurs est similaire - Hyperion génère des packages 8 bits pour chaque couleur dans chaque pixel. Dans tous les cas, ce n'est que 256 gradations de luminosité de chacune des trois couleurs sur n'importe quelle bande. La différence de couleurs ne sera perceptible que dans la calculatrice sur l'écran d'un bon moniteur, mais la différence de l'éclat réel de ± une ou même plusieurs gradations que nos yeux ne verront en aucun cas - c'est l'anatomie de notre vision et nous ne pouvons rien y faire. De plus, le configurateur dispose d'outils pour ajuster la gamme de couleurs - si vous le souhaitez, vous pouvez obtenir une couleur blanche presque parfaite avec une luminosité proche de la luminosité maximale. Mais même ces gestes ne sont probablement pas nécessaires - le rétroéclairage crée uniquement l'arrière-plan sur le mur derrière le téléviseur, et non l'image sur l'écran ... Lors de l'analyse des zones de capture - Hyperion et Philips ne prennent pas un point spécifique, mais la couleur moyenne de toute la zone spécifiée, donc les nuances seront toujours quelque chose de différent de ceux qui sont reproduits en dynamique sur les bords de l'écran. Compte tenu de tout cela, il est inutile de tirer à partir d'un canon sur des moineaux, ce qui confirme en fait la conception du rétro-éclairage des téléviseurs Phillips d'origine, où seuls 37 points sont affichés sur la diagonale de 50 pouces et la largeur des zones est de 5-6 cm

Un autre mythe - "WS2812B est de courte durée, un mois plus tard, les pixels ont commencé à échouer."

Naturellement, ils commenceront. Et sur n'importe quelle bande. Chaque couleur de chaque LED 2812B à pleine luminosité consomme 18-20 mA. Par exemple, j'ai 91 LED. 91X3X20 = ​​5,5A. L'efficacité est d'environ 30 à 40%, ce qui signifie que plus de trois ampères entrent en chaleur. Le seul moyen efficace d'éliminer la chaleur des substrats des cristaux est les traces de cuivre du ruban, qui sont collées sur une certaine surface. Connecté à l'alimentation, mais le ruban non lumineux est également sensiblement chaud - les puces elles-mêmes en statique ont une certaine consommation de courant. Le couvercle en plastique arrière du téléviseur n'est pas le meilleur dissipateur thermique pour un fonctionnement à long terme de la bande, il est donc préférable et plus correct d'utiliser un profilé métallique spécial. De plus, il est livré avec un diffuseur de différentes profondeurs, largeurs et formes. Vous ne verrez pas de reflets sous forme de points colorés sur les surfaces brillantes de l'intérieur de la pièce, ce qui est également parfois important.

image

image

Lorsque tout est monté, connecté et vérifié - il reste à configurer le lecteur KODI à votre goût et votre couleur - installez tous les add-ons nécessaires, IPTV avec des programmes et partagez le contenu de votre PC domestique.

Si l'on compare le rétro-éclairage avec la version hardware - la réaction au traitement des images me semble plus claire - il n'y a pas de sensation de léger retard en une fraction de seconde. L'implémentation elle-même me semble tout à fait viable - elle s'est avérée être un simple constructeur reproductible assemblé sur la base du plug-in. Si vous prenez soin d'assembler le bouclier de commutation et d'enregistrer le système configuré en tant qu'image, il ne faudra pas plus de temps pour lancer un autre décodeur de ce type que pour n'importe quel boîtier TV "en boîte" sur Android. Si vous fabriquez le récepteur infrarouge à distance - l'appareil peut être caché derrière un téléviseur avec une option de montage mural. Si vous avez un système d'exploitation configuré ou son image, le système fonctionnera en mode complet la première fois que vous l'allumerez.

Pour ceux qui regardent les chaînes de télévision, vous devrez bricoler leurs listes de lecture IPTV payantes et de haute qualité ou gratuites et non fonctionnelles, les programmes télévisés pour les chaînes, les modules complémentaires et les paramètres du lecteur, qui, soit dit en passant, ont la possibilité de changer de skins, dont il existe actuellement un grand nombre pour tous le goût. Tout est pris en charge - affichage de la météo, de l'heure, des économiseurs d'écran, des centaines de modules complémentaires et d'applications différents. Par exemple, je voulais me débarrasser du menu OSD non rétractable, appelé pour rembobiner ou mettre en pause. Pour cela, l'addon - Hide Video OSD - était génial. Téléchargez l'archive zip, placez-la dans un endroit pratique pour les framboises, sélectionnez l'installation à partir de l'archive dans l'interface du module complémentaire, définissez-la, activez le module complémentaire dans les paramètres, définissez le temps en secondes, après quoi l'OSD sera automatiquement supprimé de l'écran.

En plus d'autres puces, Kodi possède une interface Web à part entière à travers laquelle vous pouvez configurer les paramètres, contrôler le lecteur et la bibliothèque multimédia à partir de votre PC à la maison.

Des publications sur toutes les fonctionnalités du lecteur et comment, par exemple, élever un serveur multimédia sur un PC pour Kodi, sont facilement disponibles dans RuNet. Pour des paramètres pratiques, omnivores et autres, je mettrais ce lecteur sur un pied d'égalité avec des projets tels que WinAmp et MPC-HC.

Une petite démo tournée sur des chaussons:

Source: https://habr.com/ru/post/fr486106/


All Articles