Adaptive Hintergrundbeleuchtung für Raspberry Pi TV - Ambilight Analog

Bild

Dies ist ein 50-Zoll-Fernseher mit 37 RGB-Punkten adaptiver Hintergrundbeleuchtung oben und an den Seiten des Bildschirms. Wie man eine ähnliche adaptive Hintergrundbeleuchtung für einen Bildschirm oder ein Fernsehgerät herstellt, ist ein abgedroschenes Thema, das jedoch aus einer Reihe von Gründen von Bedeutung ist.

Zunächst ändert sich alles. Vor ein paar Jahren gab es kein Projekt ohne Software- oder Hardware-Krücken. Auf jeden Fall habe ich solche Veröffentlichungen nicht gesehen. Diejenigen, die im Internet beschrieben werden, verlieren entweder aufgrund des Veraltens von Software- oder Hardwareplattformen an Relevanz oder implementieren diese Technologie nur für Monitore, die an einen PC angeschlossen sind.

Zweitens gibt es keine Samsung, Sony, Elge und andere Fernseher, die diese Technologie auf dem Markt unterstützen, da sie von Philips für viele Jahre patentiert wurde. Und schließlich - alle für Ali und andere wie ihn verfügbaren "Out-of-the-Box" -Lösungen weisen eine Reihe von Einschränkungen hinsichtlich der Flexibilität der Einstellungen und der Anpassung an die Bildgröße von Videoinhalten, Farbskalenanpassungen usw. auf, da es sich lediglich um eine Hardware-Krücke handelt, die ein externes Signal analysiert und arbeiten nur an der bildung der hintergrundbeleuchtung.

Frame-Capture-Option "Hardware"


Wenn Sie nicht über theoretische Möglichkeiten zur Verbesserung und Modernisierung des Fernsehempfängers selbst sprechen, müssen Sie der Tatsache zustimmen, dass Sie in jedem Fall das HDMI-Signal verarbeiten müssen - d. H. Es wird für die Frame-Analyse und Hintergrundbeleuchtung verwendet. Hier bieten sich nur zwei Implementierungsmöglichkeiten an: bei der Signalverarbeitung von jeder Quelle (wie Lightpacks mit Ali) und bei der Implementierung der Quelle selbst in Form einer TV-Set-Top-Box mit adaptiver Hintergrundbeleuchtung.

Im ersten Fall erhalten wir eine gewisse Vielseitigkeit - Sie können eine Spielekonsole oder einen Player an das Gerät anschließen. In der zweiten - wir sammeln die gleiche "Art von Player" mit einer eingebauten Hintergrundbeleuchtung. Beim Experimentieren habe ich beide Optionen implementiert, aber hier werde ich mich nur auf die zweite konzentrieren, und hier ist der Grund:

Bild

In dem angegebenen Blockdiagramm der ersten Variante gelangt das HDMI-Signal von einer beliebigen Quelle zum Splitter, wo es in zwei Ausgänge aufgeteilt wird. Der Inhalt wird von Anfang an auf jedem TV-Receiver oder Monitor wiedergegeben. Ab der zweiten Stufe gelangt das Signal gleichzeitig in den Hardware-Skalierer, wo es in ein analoges Signal mit Frames mit niedriger Auflösung (320 x 480) umgewandelt wird. Das analoge Signal wird an einen Hardware-USB-Grabber gesendet, der „Screenshots“ von jedem Frame erstellt und über den USB-Anschluss an den Eingang eines Einplatinen-Mini-PCs - Raspberry Pi 3 B + - überträgt. Die Software für Himbeeren analysiert Frames mit dem Hyperion-Programm und stellt über einen der GPIO-Ausgänge Steuersequenzen für die Eingabe eines Adressbands wie WS2812B oder APA102 bereit. All dies hat gut funktioniert, aber es hat ein paar Nachteile in Form eines Haufens Eisen mit Anschlüssen und eine kleine Verzögerung bei der Ausgabe eines Hintergrundbeleuchtungssignals. Die Verzögerung machte sich nur bei Testvideos bemerkbar, bei denen sich die Farben im größten Teil des Frames stark änderten. Ansonsten keine Beschwerden, außer den Kosten für das gesamte Eisen in dieser Implementierung:

Raspberry Pi 3 B + - ungefähr 55 $.
Kühlergehäuse - $ 14.
Aktiver HDMI 1080P-Splitter für 2 Ausgänge - 15 US-Dollar.
HDMI 1080P zu AV Scaler - 15 $.
EasyCap USB Grabber - $ 18.
Stromversorgung - etwa 10 US-Dollar.
32 GB microSD-Karte - 10 US-Dollar.
Anschließen von Kabeln und anderen kleinen Dingen - ca. 10 USD.
Insgesamt, ohne das Adressband - fast 150 Dollar.

Es ist nicht so, dass eine solche Option direkt in den Ofen gelangt - sie kann durchaus nützlich sein, um die Hintergrundbeleuchtung einiger großer vorgefertigter Bildschirme in Anzeigen oder Präsentationen zu organisieren, und der Preis ist nicht der schlechteste für das Ergebnis - aber für den Heimgebrauch habe ich mich für die zweite Option entschieden Meistens "Software". Es wurde einfacher, billiger, kompakter und schneller. Für den kommerziellen Gebrauch kann es auch durchaus geeignet sein - der Raspberry Pi mit dem Player kann erfolgreich in Projekten eingesetzt werden, in denen Sie Inhalte automatisch zyklisch und nahtlos abspielen müssen, sobald Sie ihn einschalten, und den Player automatisch wieder ausschalten - entsprechend dem Zeitplan am Ende des Tages. Nachdem wir ein kleines Drehbuch geschrieben haben, erhalten wir ein Werbegerät mit der Funktion der adaptiven Hintergrundbeleuchtung von Bildschirmen, die mindestens zehn Meter hoch sind. Aber zurück zum Heimgebrauch ...

"Software" -Option erfasst Frames


Die Funktionen des Media Centers und der Steuerung der Hintergrundbeleuchtung bleiben hinter demselben Raspberry Pi 3 B +. Alle Verbindungen werden nun auf das Verbinden mehrerer Anschlüsse reduziert - Stromversorgung, Internet, Hintergrundbeleuchtung und HDMI mit dem Fernseher. Nicht mehr als jede andere Set-Top-Box:

Bild

Mit Blick auf die Zukunft möchte ich darauf hinweisen, dass sich das Raspberry Pi 3 B + als ein vollständig universelles TV-Set-Top-Box-Media-Center mit allen erforderlichen Funktionen eines solchen Geräts sowie einer flexibel anpassbaren adaptiven Hintergrundbeleuchtung für jeden modernen (und nicht so) Fernseher mit HDMI-Eingang herausgestellt hat.

Die Basis der Software ist das offene Libreelec-Betriebssystem, das speziell für den Kodi-Player entwickelt wurde. Die Projektseite enthält alle notwendigen Informationen.

Informationen zu den Funktionen einer der leistungsstärksten und flexibelsten Plattformen für die Wiedergabe von Video-Audio-Inhalten, IPTV usw. kann durch Scoring in jeder Suchmaschine "Kodi Beschreibung der Möglichkeiten" gelesen werden. Zu diesem Thema gibt es viele Informationen in russischer Sprache. Ich benutze vielleicht 1/10 aller Plattformfunktionen und das reicht mir. Die Plattform wird aktiv unterstützt, hat eine responsive Community. Deshalb lesen wir, wir studieren - im Wiki dieser Projekte und in den Foren gibt es fast alle notwendigen Informationen und Antworten auf Fragen. Das Distributionskit sowie die Installations- und Konfigurationsanweisungen finden Sie auf der Libreelec-Projektwebsite. Da das Betriebssystem plattformübergreifend ist, vergessen Sie nicht, dass unser Projekt auf Raspberry basiert.

Ich verletze die seltsame, aber gut eingeführte Tradition, solche Veröffentlichungen mit einer Beschreibung der Arten von Adressbändern zu beginnen und wie man sie ungeschickt auf die Rückwände von Heimfernsehern klebt. Zunächst installiere und konfiguriere ich Single-Board-Software. Eine Schritt-für-Schritt-Anleitung zum Einrichten ist leider fast unmöglich - ohne Screenshots wären es ein halbes Hundert Seiten Text. Darüber hinaus entwickelt sich die Plattform des Players aktiv weiter, Betriebssystem- und Kodi-Versionen ändern sich, aktuelle Informationen - das hört bald auf. Daher finden Sie hier nur die wichtigsten Punkte sowie Links zu Quellen nützlicher Informationen.

Um den Softwareteil der Hintergrundbeleuchtung zu konfigurieren, die IR-Fernbedienung und den Player selbst zu steuern, müssen Sie zunächst eine Vorstellung davon haben, wie die Libreelec-Verzeichnisse angeordnet sind, wie das lokale Netzwerk funktioniert, wie die Konsole funktioniert, was mit der Befehlszeile geschehen soll usw. von Hand. Über die Installationsprogramme auf der microSD-Karte werden nur das Libreelec-Betriebssystem und das Add-In für die Hervorhebung - Hyperion - installiert.

Da der Raspberry Pi nicht über eine integrierte Echtzeituhr, BIOS und Backup-Stromversorgung verfügt, befindet sich alles, was für die Arbeit benötigt wird, auf der microSD-Karte. Um das Betriebssystem auf der Karte zu installieren, müssen Sie entweder das NOOBS- Paket von der Raspberry-Projekt-Website herunterladen (zum Zeitpunkt der Installation habe ich Build-Version 3.2.1 verwendet) oder ein spezielles Tool - „LibreELEC USB-SD Creator“ .

Die Speicherkarte sollte gute Lese- und Schreibgeschwindigkeiten aufweisen, dh mindestens die Note 10 aufweisen. In Bezug auf das Volumen nimmt das Libreelec-Betriebssystem wenig Platz ein, 16-GB-Karten werden für die Arbeit ausreichen, wenn keine Lust besteht, eine größere Menge zu kaufen. Es kann zum Speichern beliebiger Inhalte verwendet werden.

Bei NOOBS wird der Inhalt des Zip-Archivs in das Stammverzeichnis der mit FAT32 formatierten microSD-Karte entpackt, die Karte in den Steckplatz für stromlose Himbeeren eingelegt, der Strom eingeschaltet und anschließend das erforderliche Betriebssystem im Installationsprogramm ausgewählt. Befolgen Sie die Anweisungen für die Bereitstellung von Libreelec. Die Plattformentwickler empfehlen jedoch die Installation mit LibreELEC USB-SD Creator, der das Distributionspaket selbst herunterlädt und auf die Karte schreibt. Anschließend wird die Karte in den Himbeerslot eingesetzt, in dem das Installationsprogramm das Betriebssystem nach dem Einschalten bereitstellt. In diesem Fall werden Abschnitte der Karte neu formatiert. Danach wird unter Windows nicht mehr das gesamte tatsächliche Volumen des Mediums angezeigt. Wenn Sie aus irgendeinem Grund die Partitionen in den Ausgangszustand zurückversetzen müssen, müssen Sie die Karte zunächst mit dem Standard-Windows-Dienstprogramm DiskPart bereinigen. Erstellen Sie dann im Abschnitt "Datenträgerverwaltung" eine neue Partition auf dem freien Speicherplatz des Mediums und formatieren Sie sie.

Um die Installation und Konfiguration des Betriebssystems zu vereinfachen, habe ich vorübergehend einen separaten Monitor und eine separate Tastatur mit einer Maus an Himbeeren angeschlossen.

Um Himbeer-Software zu konfigurieren und zu konfigurieren, benötigen Sie außerdem eine Verbindung mit einem PC und Internetzugang, vorzugsweise über Kabel. Die auf dem PC installierte Software für die Verbindung über SSH - PuTTY und WinSCP sowie die Java Virtual Machine (jre-8u231-windows-x64) und der Hyperion-Daemon-Konfigurator - HyperCon (HyperCon.jar). Sie können einen anderen praktischen Dateimanager mit Bedienfeldern verwenden, z. B. Total Commander. Wo herunterladen und konfigurieren - viele Informationen auf spezialisierten Sites, es reicht aus, mit der Suchanfrage "Mit PUttY und WinSCP arbeiten" nach Informationen zu suchen. Das Hyperion- Projekt hat auch ein eigenes Forum und Wiki.
In diesem Screenshot gibt es drei Möglichkeiten, Himbeeren über SSH mit einem PC unter Windows zu verbinden - über die Putty-Konsole, den WinSCP-Dateimanager und Total Commander:

Bild

Das Librelec-Administratorkonto verfügt standardmäßig über einen Benutzernamen und ein Kennwort root @ libreelec, die aus Sicherheitsgründen am besten geändert werden. Nach einer erfolgreichen Installation in den Systemeinstellungen führen wir einfache Aktionen durch - aktivieren Sie SSH, SMB, weisen Sie eine statische IP zu, deaktivieren Sie Updates:

Bild

Es wird davon ausgegangen, dass Himbeeren mit Ihrem Heimnetzwerk verbunden sind, und Sie können die IP-Adresse der daran angeschlossenen Geräte auf Ihrem Heim-PC herausfinden. Ich habe Updates deaktiviert, damit das einmal eingestellte adaptive Hintergrundbeleuchtungssystem nicht abstürzt, wenn der Entwickler Komponenten in Libreelec ändert, die damit zusammenhängen.

Stellen Sie in den Systemeinstellungen der Dienste, die Sie zum Aktivieren von SSH und zum Aktivieren der Kennwortauthentifizierung benötigen, auch die Mindestversion des SMB2-Protokolls und die Höchstversion SMB3 ein. Sie benötigen SMB, um die Raspberry Pi-Verzeichnisse und die damit verbundenen Flash-Laufwerke vom PC aus zu sehen:

Bild

Unter Windows 10 müssen Sie in den Einstellungen auf dem PC die SMB-Unterstützung suchen und aktivieren, da diese standardmäßig deaktiviert ist:

Bild

Wir suchen auch nach dem russischen Tastaturlayout und fügen es in den Einstellungen hinzu. Mit der physischen Tastatur passiert nichts - sie wird nur in Englisch eingegeben, aber mit der virtuellen Bildschirmtastatur kann Text in Russisch eingegeben werden. Für einen bequemen Zugriff auf die Verzeichnisse auf der microSD-Karte und den mit Himbeeren verbundenen Flash-Laufwerken können Sie in Total Commander eine Verknüpfung mit der Adresse des Remote-Verzeichnisses in der Symbolleiste erstellen und platzieren:

Bild

Dateien im lokalen Netzwerk werden mit einer Geschwindigkeit übertragen, die durch die Bandbreite Ihres Heimrouters begrenzt ist und viel schneller als beim Zugriff über SSH. In jedem Fall ist das Kopieren eines Films oder einer Musik auf diese Weise bequemer als das Übertragen eines USB-Flash-Laufwerks von einer Set-Top-Box auf einen PC. Sie sehen die interne Verzeichnisstruktur in / storage auf der Himbeerkarte und den Laufwerken, die an die USB-Ports angeschlossen sind. Bei einer Kabelverbindung habe ich 100 Mbit / s. Über den Router betrug die maximale Download-Geschwindigkeit von Dateien von einem PC auf ein USB-Laufwerk in Himbeeren etwa 12 MB / s, was ungefähr der Bandbreite meiner Kabelverbindung entspricht.

Falls erforderlich, können Sie in Zukunft einen beliebigen Home Media Server (UPnP, DLNA) auf Ihrem PC bereitstellen, um Inhalte direkt von Ihrem PC zu streamen.

Nachdem Sie den Zugriff auf Himbeeren von einem PC über SSH mit den Programmen PUttY und WinSCP installiert und konfiguriert haben, können Sie mit der Installation und Konfiguration des Hyperion-Dämons fortfahren. Auf dem PC muss sich eine Java Virtual Machine befinden.

Alles wird in etwa so funktionieren - zu Beginn von Raspberry wird ein spezielles Programm, Hyperion, im Hintergrund mit Kodi im Hintergrund gestartet. Sie analysiert alle Videoframes und verwaltet abhängig von den in der Konfigurationsdatei aufgezeichneten Einstellungen das Adressband über einen der GPIO-Ausgänge der Himbeere. Das heißt, nach den Einstellungen funktioniert alles autonom, es ist keine Kommunikation oder Interaktion mit dem PC erforderlich. Um jedoch schnell eine Konfigurationsdatei zu erstellen und Hyperion auf Himbeeren zu installieren, gibt es einen praktischen Konfigurator, der auf einem PC ausgeführt wird. Mit diesem Programm können Sie schnell eine Konfigurationsdatei für den Daemon erstellen, diese in Raspberry herunterladen und installieren und die Systemfunktionalität mithilfe einer praktischen grafischen Oberfläche überprüfen.

Hypercon


Der Konfigurator heißt HyperCon, es ist keine Installation erforderlich. Führen Sie einfach die ausführbare Datei HyperCon.jar auf dem PC aus und sehen Sie das folgende Fenster:

Bild

Auf der rechten Seite befindet sich ein virtueller Bildschirm, für den die Hintergrundbeleuchtung konfiguriert wird - Farberfassungsbereiche, deren Nummerierung (ab 0), Richtung, Position, Einrückung, Überlappung und Tiefe. Im linken Teil befinden sich fünf Registerkarten mit Einstellungen.

Kurz auf den Registerkarten des Konfigurators:

Hardware (Eisen)

  • Gerät -> Konfigurationsname - ein beliebiger Name für die aktuelle Konfiguration
  • Gerät -> Typ - Chip-Typ des Adressbands, Moduls oder etwas anderem
  • Gerät -> Anzahl LEDs - Anzahl der adressierbaren Pixel (wie viele LEDs befinden sich auf dem Band)
  • Gerät -> RGB-Byte-Reihenfolge - folgende Farben im verwendeten Protokoll

Konstruktion (Anordnung der Lichtquellen)

  • Kontrollkästchen -> (LED oben links usw.) - Vorhandensein einer Lichtquelle in den Ecken der Struktur
  • LEDs horizontal -> Anzahl der Pixel am oberen Rand der Struktur
  • LEDs Links-> Linke Pixel
  • LEDs rechts -> Die Anzahl der Pixel am rechten Rand des Designs
  • Bottom Gap -> Die Anzahl der übersprungenen Zonen am unteren Rand der Struktur (um das TV-Bein oder die gesamte untere Zone zu umgehen)
  • 1. LED-Offset -> Korrektur für den Pixel-Offset, um den ersten Wert in einer praktischen Ecke festzulegen.

Bildprozess

  • Bildprozess -> Horizontale Tiefe - Horizontale Zonentiefe,%
  • Bildprozess -> Vertikale Tiefe - Tiefe der vertikalen Zone,%
  • Bildprozess -> Horizontale Lücke - Bereiche horizontal vom Rand einrücken,%
  • Bildprozess -> Vertikale Lücke - Bereiche vom Rand vertikal einrücken,%
  • Bildprozess -> Überlappung - Überlappung benachbarter Zonen,%

Blackborder-Erkennung - Empfindlichkeit und Verarbeitungsmodus. In der Theorie funktioniert das so: Der Dämon analysiert die Ränder des Bildschirms auf der angegebenen Ebene und berechnet die Breite der dunklen Ränder, um sie von den verarbeiteten Zonen auszuschließen. Dies gilt für Fälle, in denen ein Breitbild abgespielt wird.

Prozess (Frame-Verarbeitung)

  • Glätten -> Aktiviert (Kontrollkästchen zum Aktivieren von Anti-Aliasing)
  • Glätten -> Typ
  • Glätten -> Zeit
  • Glättung -> Update Frequenz (Bildwiederholfrequenz)
  • Glätten -> Aktualisierungsverzögerung (Verzögerung vor dem Aktualisieren des Frames)
  • Farbkalibrierung - intuitive Elemente, mit denen Sie die minimale und maximale Glimmstufe, Sättigung, Temperatur und Hintergrundglimmstufe ohne Signal für jede der 3 Primärfarben separat einstellen können.

Das markierte Kontrollkästchen Kontinuierlich senden ermöglicht es Ihnen, Änderungen im Konfigurationsprozess zu sehen, die sich bereits auf der zusammengesetzten Struktur befinden.

Grabber (Grabber - Frame Grabber, die interessanteste Registerkarte)

  • Interner Frame Grabber (Software Grabber)
  • Interner Framegrabber-> Aktiviert
  • Interner Framegrabber-> Breite
  • Interner Framegrabber-> Höhe (Zonenhöhe)
  • Interner Framegrabber-> Intervall
  • Interner Framegrabber-> Prioritätskanal (Priorität dieses Kanals)

Hier sind einige Klarstellungen erforderlich. Der Trick ist, dass wir einen Mediaplayer basierend auf dem Raspberry Pi entwickeln, der selbst Inhalte von einem lokalen Netzwerk, einem Flash-Laufwerk oder IP-TV auf der LibreElec-Plattform wiedergibt. Da sich der Inhalt bereits mit dem Himbeer-Player dreht, erfolgt die Erfassung programmgesteuert ohne einen externen EasyCap-Grabber, und der Dämon kümmert sich selbst um die Frames, da in diesem Fall die Signalquelle der HDMI-Ausgang des Himbeer-Pi selbst ist. Es ist möglich, denselben externen Grabber für eine andere Quelle zu verwenden, ohne die internen Einkanal-Prioritäten zu trennen. Dies ist der letzte Punkt, der den Software-Grabber konfiguriert. Je höher die Nummer, desto niedriger die Priorität des Kanals.

Genau, es gibt keinen Fehler.

  • Grabber V4L2 (Hardware Grabber-Treibereinstellungen)
  • Grabber V4L -> Gerät (USB-Gerät, von dem das Capture erstellt wird - standardmäßig / dev / video0)
  • Grabber V4L -> Input (Der verwendete Input ist standardmäßig 0)
  • Grabber V4L -> Breite (Zonenbreite - -1 standardmäßig)
  • Grabber V4L -> Höhe (Zonenhöhe - -1 standardmäßig)
  • Grabber V4L -> Frame-Dezimierung
  • Grabber V4L -> Größen-Dezimierung (Kompressionsverhältnis)
  • Grabber V4L -> Priority Channel (Priorität dieses Kanals)
  • Grabber V4L -> 3D-Modus (2D / 3D-Modusauswahl)
  • Grabber V4L -> Nach links beschneiden (Nach links beschneiden)
  • Grabber V4L -> Rechts beschneiden (rechts beschneiden)
  • Grabber V4L -> Erntedach (Erntedach)
  • Grabber V4L -> Crop Bottom (den unteren Rahmen beschneiden)
  • Grabber V4L -> die letzten drei Punkte (Schwelle zum Einschalten von Kanälen nach Farbe)

Externe

  • Extern -> Kodi Checker (Einstellungen für den Kodi-Player, falls dieser als Player verwendet wird. Durch Auswahl der Kontrollkästchen wird die Hintergrundbeleuchtung ausgeschaltet, wenn die angegebenen Funktionen des Players ausgeführt werden. Sie können die Hintergrundbeleuchtung so konfigurieren, dass sie nur bei der Wiedergabe von Inhalten funktioniert. In allen anderen Fällen wird sie ausgeschaltet )
  • Extern -> Json / Proto / Boblight Server (Server-Port-Einstellungen, lassen Sie wie auf dem Bildschirm)
  • Extern -> Booteffekt / Statische Farbe (Demo-Effekt-Einstellungen beim Starten des Daemons)
  • Extern -> Json / Proto Forvard (Ausgangsport-Einstellungen, belassen Sie die Einstellungen auf dem Bildschirm)

SSH (PC-Verbindungseinstellungen mit Raspberry Pi)
  • SSH - Verbindung -> System (Auswahl des auf dem Raspberry Pi installierten Betriebssystems)
  • SSH - Verbindung -> Ziel-IP (Raspberry Pi IP-Adresse)
  • SSH - Verbindung -> Port (wie im Screenshot - (22))
  • SSH - Verbindung -> Benutzername / Passwort (Name - Passwort auf dem Raspberry Pi eingestellt)
  • SSH - Verbindung -> Verbinden / Trennen (Connect-Disconnect-Taste mit Raspberry Pi)
  • SSH - Verbindung -> Verkehr anzeigen (Schaltfläche zum Aufrufen der Konsole mit Informationsausgabe)
  • SSH - Hyperion über HyperCon verwalten -> Inst / Upd. Hyperion (Schaltfläche zum Installieren des Daemons auf dem Raspberry Pi oder zum Aktualisieren des Daemons über das Netzwerk. Keine sudo get-Installation, Verbindung zum Raspberry Pi herstellen, Stöbern und Warten auf die Ausgabe an der HyperCon-Konsole)
  • SSH - Hyperion über HyperCon verwalten -> Hyperion entfernen (Schaltfläche "Daemon deinstallieren")
  • SSH - Hyperion über HyperCon verwalten -> Start / Stop (Daemon Stop-Start-Schaltflächen)
  • SSH - Hyperion über HyperCon verwalten -> Protokoll abrufen (Ausgabe in die Konsolenprotokolle des Daemons, praktisch für
  • )
  • 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

– , .

, :

Bild

Bild

, . , , . , – 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 //--------------------------------------------------------------------------------------------------------------- 

Dadurch wird die Ausführung des Dämons verzögert.

Fernbedienung mit jeder IR-Fernbedienung


Da das Präfix neben der Hintergrundbeleuchtung ein vollwertiges Media Center ist, müssen Sie die Fernbedienung daran befestigen und konfigurieren. Wenn Ihr Fernsehgerät die CEC-Technologie (Consumer Electronics Control, d. H. HDMI Control Protocol) unterstützt, kann Kodi die bereits mit dem Fernsehgerät gelieferte Fernbedienung für die Steuerung der Set-Top-Box konfigurieren und verwenden B. LG - SimpLink, Samsung - Anynet, Sony - BRAVIA Sync), suchen Sie in Ihren TV-Einstellungen nach Unterstützung für diese Funktion.Ich habe keine sehr gute Fernbedienung für TV, also bin ich in die andere Richtung gegangen - ich habe die genommen, die mit der alten übereinstimmt TV-Set-Top-Box auf Android (während andere bestellte Fernbedienungen für dieses Projekt aus China kommen):

Bild

Auf dem Himbeerkamm benötigen Sie +5 V-Pins, Masse und Signal auf GPIO23 (physischer Pin-16), da GPIO18 (physischer Pin-12), der standardmäßig für IR-Geräte konfiguriert ist, bereits damit beschäftigt ist, Pakete an die Hintergrundbeleuchtung auszugeben.

Prozess:

Um den Treiber des IR-Empfängers anzuschließen, bearbeiten Sie die Datei /flash/config.txt, an deren Ende wir die Zeile schreiben (hier und unten ohne Anführungszeichen):
Dtoverlay = gpio-ir, gpio_pin = 23

Nachdem Sie den IR-Empfänger an Himbeeren angeschlossen haben, müssen Sie die Scan-Codes für die Tasten auf der Fernbedienung abrufen, die wir benötigen, und die Befehle an sie binden. Nachdem Sie den Protokolltyp in der Konsole mit dem Befehl ir-keytable festgelegt haben, hängen Sie die Scan-Codes an die in der Konsole empfangenen Befehle an
«Irrecord -l | grep ^ KEY ", führen Sie die Zuordnungen manuell durch und erstellen Sie eine Tabelle dieser Art:
tisch ireltex, typ: NEC

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

Und so - alle Tasten und Befehle, die wir brauchen. Ich habe 34 Zeilen Streichhölzer. Die erste Zeile ist der Name der Tabelle und des Fernsteuerungsprotokolls. Die folgenden Zeilen sind der Tastenscancode auf der linken Seite. Rechts, durch ein Leerzeichen getrennt, befindet sich der Kodi-Steuerbefehl. Und so weiter, um.

Der Tisch muss gehalten werden. Dazu wird eine Datei erstellt (ich nenne sie ireltex), aus der diese Bindungen gelesen werden. Die Datei muss im Ordner „/storage/.config/rc_keymaps/ireltex“ abgelegt werden und dann erstellt werden
"/Storage/.config/rc_maps.cfg", schreiben wir die Zeile hinein:
"* * Ireltex" (ess-aber alle ohne Anführungszeichen).

Laden Sie über die Putty-Konsole die resultierende Tabelle in den Treiber:
"Ir-keytable -c -w /storage/.config/rc_keymaps/ireltex", starte den Raspberry Pi neu und ändere die letzte Zeile in der Datei
"/Flash/config.txt"
Nun sieht es so aus:
"Dtoverlay = gpio-ir, gpio_pin = 23, rc-map-name = ireltex"
Zu archivieren
"/Storage/.config/autostart.sh" Sie müssen das Autoload-Protokoll für die Fernbedienung hinzufügen, damit der Datensatz wie folgt aussieht (für meine Fernbedienung und das zugehörige Protokoll):

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

Ich starte den Raspberry Pi erneut neu und jetzt reagiert Kodi auf Befehle von der Fernbedienung.
Der gesamte Einrichtungsprozess mit Beispielen im Original wird hier ausführlicher beschrieben.

Sie können auch die Suchanfrage "LibreElec + IR Remote" in die Suchmaschine eingeben und erhalten mehrere Artikel zu diesem Thema in russischer Sprache.

Wenn Sie den Ausgang des IR-Empfängers außer GPIO 23 ebenfalls an den GPIO3-Eingang hängen, wird der Raspberry Pi auf Befehl der Fernbedienung eingeschaltet. Der Nachteil dieser Steuermethode ist, dass das Einschaltsignal von jeder IR-Fernbedienung empfangen wird, aber ich habe keine andere Möglichkeit gefunden, Himbeeren aus der Ferne einzuschalten. Sie müssen also einen zusätzlichen Detektor erstellen, der einen Befehl entgegennimmt und nur dieses Signal an den GPIO3 Raspberry Pi-Eingang überträgt.

Um Wunder mit spontanem zufälligem Pixelflimmern zu vermeiden, muss die Masse des Bandes zusätzlich zum GND-GPIO-Pin direkt mit dem Minuspol der externen Stromquelle verbunden werden und der D-IN-Signaldraht muss eine Mindestlänge aufweisen.

Es ist zu beachten, dass unterschiedliche IR-Empfänger unterschiedliche Versorgungsspannungen (3,3 oder 5 V) und Pinbelegungen haben können. Um den Receiver oder die Raspberry Pi Ports nicht zu beschädigen, muss der Anschluss gemäß der Dokumentation des verwendeten Receivers erfolgen!
Daher sehen alle Verbindungen auf den GPIO Raspberry Pi-Pins bisher so aus:

Bild

Korrekte Aufnahme des Raspberry Pi mit der IR-Fernbedienung


Jetzt müssen Sie genau die "richtige" Aufnahme des Raspberry Pi von der zugewiesenen Taste auf der IR-Fernbedienung machen. Jetzt fährt das Gerät hoch, wenn ein Signal am GPIO3-Pin (fünfter physischer Pin) ankommt. Da es dem Empfänger egal ist, was er in diesem IR-Bereich empfängt, wird das Signal von einer Fernbedienung heruntergeladen, manchmal sogar, wenn die Lichter im Raum eingeschaltet sind, was nicht praktisch ist . Um dieses Problem zu lösen, benötigen Sie zwischen dem GPIO3 und dem Signal-Pin des IR-Empfängers einen Intermediär, der das Signal decodiert. Schalten Sie den Raspberry Pi nur ein, wenn der Befehl mit dem zuvor zugewiesenen übereinstimmt. Außerdem müssen Sie in der Lage sein, verschiedene Fernbedienungen oder die Tasten einer Fernbedienung zu verwenden. Natürlich können Sie die Firmware für jeden ATiny im Wert von einem halben Dollar schreiben und alles wird gut funktionieren, aber da es sich um einen wiederholbaren und einfachen Konstruktor handelt, ist es viel einfacher, den relativ kostengünstigen und kompakten Controller - Arduino Nano - zu verwenden. Die Karte arbeitet ständig im Standby-Modus und überwacht alle eingehenden Signale von IR-Quellen. Und nur wenn Sie eines der vordefinierten Signale dekodieren - geben Sie einen Befehl zum Einschalten des Raspberry Pi. Der Controller bietet auch ein einfaches Blinken, wenn Sie die Fernbedienung für den Raspberry Pi ändern müssen.

Arduino Nano wird nicht ganz standardmäßig mit Strom versorgt - von Pin + 5V GPIO RPi bis Pin + 5V Arduino. An einem solchen Einschalten ist nichts auszusetzen - auf der USB-Seite verfügt das Arduino-Board über einen internen Stabilisatoreingang, auf der Vin-Pin-Seite über die Schottky-Diodenkathode. Keine andere Last als der IR-Empfänger wird nicht an die Arduino-Nano-Pins angeschlossen.

Die Arduino-Himbeer-Verbindungstabelle sieht folgendermaßen aus: Raspberri Pi 3 B + physikalischer Ausgang / Arduino Nano physikalischer Ausgang
4 (+ 5 V) / + 5 V
6 (GND) / GND
5 (GPIO3) / D8
Außerdem wird der IR-Empfänger mit den Stromanschlüssen auf der Arduino-Platine verbunden - (GND, +5 V oder 3,3 V) und das Ausgangssignal über die 100R-Widerstände an den D7-Arduino-Pin und über 510R an Pin 16 (GPIO23) des Raspberry Pi. Somit überträgt der IR-Empfänger alle Befehle direkt an den GPIO23-Eingang, und ein oder zwei kurze Impulse erscheinen auf dem GPIO3 nur nach Empfang der in der Skizze angegebenen Befehle.

Anschlussplan von IR-Empfänger, Arduino Nano und Adressband an Raspberry Pi:

Bild

Mit dem oberen Jumper „5V External“ können Arduino und Raspberry zusammen mit der Hintergrundbeleuchtung über den XS1-Anschluss „Power“ von einer externen Stromquelle mit Strom versorgt werden, wenn beispielsweise die Anzahl der Pixel gering ist und keine große Last entsteht. Mit dem unteren Jumper kann die Spannung des IR-Empfängers nach Schema ausgewählt werden - 3,3 oder 5V. Das Gerät wird als externe Abschirmung ausgelegt, die mit dem GPIO-Anschluss verbunden ist, an den die Arduino Nano-Platine, der IR-Empfänger und alle Anschlüsse angeschlossen sind.

Zur Überprüfung genügt es, die Codes aller Tasten, z. B. „OK“ oder „ENTER“, von jeder Fernbedienung aus zu lesen und in die Skizze einzugeben. Sie können auch eine Reihe von Befehlen eingeben, um die Konsole zu starten, indem Sie eine bestimmte Tastengruppe oder eine Tastenfolge drücken. Die Skizze verwendet die iarduino_IR-master-Bibliothek, deren Archiv leicht im Internet gefunden werden kann. Es gibt Skizzenbeispiele im Bibliotheksarchiv. Mit einem davon, zum Beispiel receiver_GetProtokolAll, können Sie Befehlscodes für beliebige Tasten auf der Fernbedienung abrufen. Anschließend müssen diese Codes in die auf den Arduino Nano gegossene Skizze geschrieben werden:

 //******************************************************************************* #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); } } } //******************************************************************************* 

Da die iarduino_IR-master-Bibliothek denselben Timer wie einige Standardfunktionen der Arduino-Umgebung verwendet, können Sie in dieser Skizze nicht micros (), millis (), tone () und möglicherweise einige andere verwenden, da andernfalls ein Kompilierungsversuch zu einem undeutlichen Fehler führt. Trotz dieses Ansatzes der Autoren, Code zu schreiben, führt die Bibliothek regelmäßig ihre Funktionen aus und definiert klar die IR-Meldungen, ihre Zeitabläufe, Struktur und verwendeten Protokolle. Die Fähigkeit, die Codes von Befehlen einer beliebigen Konsole schnell zu lesen, reduziert ihre Konfiguration auf ein einfaches Ersetzen von Variablen in der Skizze.

Der gesamte Aufbau wurde als Schutzschild konzipiert, für den in China folgende Fabrikschilder gezeichnet und bestellt wurden:

Bild

Diese Abschirmung verbindet eine Arduino Nano-Platine, einen Anschluss für eine 5-V-Stromversorgung, einen TV-Hintergrundbeleuchtungsanschluss und die Abschirmung selbst ist im GPIO Raspberry Pi-Kamm enthalten. Nach der Installation aller Komponenten sieht es so aus:

Bild

Bild

Er plante, an den Löchern, die zur Befestigung der Gestelle vorgesehen waren, eine durchsichtige Acryl-Eckabdeckung anzubringen - aber seine Hände griffen irgendwie nicht, und die Set-Top-Box ist immer noch nicht sichtbar ...

Überall wurde viel über die Auswahl und das Aufkleben des Adressbandes geschrieben, aber ich habe auch ein paar Kommentare zu diesem Thema und zur Installation.

Zuerst über Mythen.

"WS2812 ist nicht für adaptive Hintergrundbeleuchtung geeignet, Sie müssen SK9822 oder sogar APA102 verwenden."

Sie rechtfertigen dies mit der Tatsache, dass die Datenübertragungsfrequenz von APA102-Analoga aufgrund des Vorhandenseins einer Taktleitung viel höher ist und die LEDs selbst einen breiteren Farbumfang haben und zuverlässiger sind.

All dies ist wahr, aber wenn wir die Betriebsfrequenz von WS2812B durch die Anzahl der Pixel und 32 Bit Information für jedes von ihnen teilen, erhalten wir eine Aktualisierungsfrequenz von fast 300 Hz für meine 91 LEDs. Dies ist um ein Vielfaches höher als der erforderliche Schwellenwert. Und alle "Flicker" - und "Leerlauf" -Fälle sind 146% aufgrund der Krümmung der Erdung und der Signalleitung.

Das Farbschema ist ähnlich - Hyperion generiert 8-Bit-Pakete für jede Farbe in jedem Pixel. In jedem Fall sind dies nur 256 Helligkeitsstufen für jede der drei Farben auf einem Band. Der Farbunterschied macht sich nur im Taschenrechner auf dem Bildschirm eines guten Monitors bemerkbar, aber der Unterschied im tatsächlichen Leuchten um ± eine oder sogar mehrere Abstufungen wird unsere Augen auf keinen Fall sehen - dies ist die Anatomie unseres Sehvermögens, und wir können nichts dagegen tun. Darüber hinaus verfügt der Konfigurator über Tools zum Anpassen des Farbumfangs. Wenn Sie möchten, können Sie eine nahezu perfekte weiße Farbe bei nahezu maximaler Helligkeit erzielen. Aber selbst diese Gesten werden höchstwahrscheinlich nicht benötigt - die Hintergrundbeleuchtung erzeugt nur einen Hintergrund an der Wand hinter dem Fernseher und kein Bild auf dem Bildschirm ... Bei der Analyse der Aufnahmezonen nehmen Hyperion und Philips mehr als einen bestimmten Punkt auf, jedoch die durchschnittliche Farbe des gesamten angegebenen Bereichs Farbtöne sind immer etwas anderes als diejenigen, die dynamisch an den Rändern des Bildschirms wiedergegeben werden. Angesichts all dessen macht es keinen Sinn, mit einer Kanone auf Spatzen zu schießen, was das Design der Hintergrundbeleuchtung in den ursprünglichen Phillips-Fernsehern bestätigt, in denen nur 37 Punkte auf der 50-Zoll-Diagonale angezeigt werden und die Breite der Zonen 5 bis 6 cm beträgt.

Ein weiterer Mythos: "WS2812B ist kurzlebig, einen Monat später versagten die Pixel."

Natürlich werden sie anfangen. Und auf jedem Band. Jede Farbe in jeder 2812B LED bei voller Helligkeit verbraucht 18-20 mA. Zum Beispiel habe ich 91 LEDs. 91X3X20 = ​​5,5A. Der Wirkungsgrad liegt bei 30-40%, was bedeutet, dass mehr als drei Ampere in die Wärme gehen. Der einzige wirksame Weg, um Wärme von den Substraten der Kristalle abzuleiten, sind die Kupferspuren des Bandes, die auf eine Oberfläche geklebt sind. An die Stromversorgung angeschlossen, aber das nicht leuchtende Band ist auch spürbar warm - die Chips selbst in statischer Form haben einen gewissen Stromverbrauch. Die hintere Kunststoffabdeckung des Fernsehgeräts ist nicht der beste Kühlkörper für den Langzeitbetrieb des Bandes, daher ist es besser und korrekter, ein spezielles Metallprofil zu verwenden. Darüber hinaus ist ein Diffusor in verschiedenen Tiefen, Breiten und Formen erhältlich. Sie werden keine Reflexionen in Form von farbigen Punkten auf den glänzenden Oberflächen des Innenraums des Raums sehen, was manchmal auch wichtig ist.

Bild

Bild

Wenn alles montiert, verbunden und überprüft ist - Sie müssen den KODI-Player nur noch nach Ihrem Geschmack und Ihrer Farbe konfigurieren -, installieren Sie alle erforderlichen Add-Ons, IPTV mit Programmprogrammen und geben Sie Inhalte von Ihrem Heim-PC frei.

Wenn wir die Hintergrundbeleuchtung mit der Hardware-Version vergleichen - die Reaktion auf die Verarbeitung von Frames erschien mir deutlicher -, ist keine leichte Verzögerung im Bruchteil einer Sekunde zu spüren. Die Implementierung selbst scheint mir durchaus realisierbar zu sein - es stellte sich heraus, dass es sich um einen einfachen, wiederholbaren Konstruktor handelte, der auf der Basis des Plug-Ins erstellt wurde. Wenn Sie sich um die Montage des Schaltschilds und das Speichern des konfigurierten Systems als Image kümmern, dauert es nicht länger, eine solche Set-Top-Box zu starten, als für eine "boxed" TV-Box auf Android. Wenn Sie den IR-Empfänger fernsteuern, kann das Gerät hinter einem Fernseher mit Wandhalterung versteckt werden. Wenn Sie ein konfiguriertes Betriebssystem oder ein Image haben, arbeitet das System beim ersten Einschalten im Vollmodus.

Für diejenigen, die TV-Kanäle sehen, müssen Sie an ihren kostenpflichtigen und hochwertigen oder kostenlosen und nicht funktionierenden IPTV-Wiedergabelisten, TV-Programmen für Kanäle, Add-Ons und Player-Einstellungen basteln, die übrigens die Möglichkeit haben, Skins zu ändern, von denen es im Moment sehr viele für jeden gibt der Geschmack. Alles wird unterstützt - Wetter, Uhrzeit, Bildschirmschoner, Hunderte verschiedener Add-Ons und Anwendungen. Zum Beispiel wollte ich das nicht einklappbare OSD-Menü loswerden, das zum Zurückspulen oder Anhalten aufgerufen wird. Dafür war das Addon - Hide Video OSD - großartig. Laden Sie das Zip-Archiv herunter, legen Sie es an einem für Himbeeren geeigneten Ort ab, wählen Sie die Installation aus dem Archiv in der Addon-Oberfläche aus, legen Sie es fest, aktivieren Sie das Addon in den Einstellungen, legen Sie die Zeit in Sekunden fest, nach der das OSD automatisch vom Bildschirm entfernt wird.

Neben anderen Chips verfügt Kodi über ein vollwertiges Webinterface, über das Sie Einstellungen konfigurieren, den Player und die Medienbibliothek von Ihrem Heim-PC aus steuern können.

Veröffentlichungen über alle Funktionen des Players und darüber, wie Sie beispielsweise einen Medienserver auf einem PC für Kodi einrichten können, finden Sie in RuNet. Aus Bequemlichkeit, Allesfresser und anderen Gründen würde ich diesen Player mit Projekten wie WinAmp und MPC-HC gleichsetzen.

Eine kleine Demo mit Pantoffeln:

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


All Articles