Maak van elke tv een Ambilight-tv
We zitten in de donkerste periode van het jaar. Een goed moment om wat sfeer aan te brengen met extra verlichting! In deze workshop gaan we een standaard tv voorzien van achtergrondverlichting middels een led-strip. Deze verlichting kleurt mee met het beeld van de tv. Daarvoor worden de televisiesignalen geanalyseerd. Je kent dit wellicht onder de naam Ambilight. Dit is een innovatie uit Eindhoven, waar Philips in 2004 de eerste televisie met deze onderscheidende feature introduceerde. Sinds 2014 worden Philips-tv’s door licentiehouder TP Vision gemaakt. Maar nog steeds zien we daarin de verlichtingstechniek terug in verschillende varianten.
Hoe voeg je het toe?
Heb je geen Philips-tv maar wil je toch Ambilight ervaren? Je kunt het dan achteraf toevoegen. Er zijn wat kant-en-klare opties te koop maar ze zijn relatief prijzig. Zo heeft Philips zelf al eens de Hue Play Gradient lightstrip uitgebracht. Deze strip is erg prijzig. Afhankelijk van je tv-formaat betaal je tussen €199,99 en €249,99. Je hebt behalve deze prijzige strip ook nog een Philips Hue Bridge (€59,99) nodig en de ook al zeer prijzige Hue Play hdmi sync box (€269,99). Dat kastje leest de hdmi-signalen en stuurt je verlichting en eventueel andere lampen aan. Je kunt er tot vier hdmi-apparaten op aansluiten.
Een veel voordeliger alternatief is de Govee DreamView T1 TV Backlight (ongeveer €80). Dit is een complete set met camera. Die camera monteer je op of onder je tv. Daarna kalibreer je deze via de app. De camera registreert na deze kalibratiestappen de kleuren op het tv-scherm, wat uiteraard werkt ongeacht de bron. Op basis daarvan stuurt het de leds aan die je achterop de tv plakt. Het gebruik van de camera geeft wel een klein beetje vetraging. Het voordeel van het gebruik van de camera is dat de installatie in principe iets makkelijker is. Al is de montage van de camera soms wel een uitdaging. Bij onze zelfbouwoplossing moet je zelf het tv-signaal afvangen.
In deze workshop richten we ons uiteraard op een zelfbouwoplossing. Deze optie is voordeliger en werkt naar onze mening ook beter dan de kant-en-klare opties. Bovendien kun je zelf alle componenten kiezen. Zo kun je bijvoorbeeld zelf beslissen aan welke zijdes de verlichting moet komen en heb je invloed op de nauwkeurigheid en felheid van de achtergrondverlichting. We nemen stap voor stap de vereisten met je door en gaan daarna het systeem bouwen en instellen!
Beperkingen zelfbouwoplossing
Bij onze zelfbouwoplossing gaan we een hdmi-signaal dat naar de tv gaat oppikken en omlussen. Daardoor kan een kleine singleboardcomputer, de Raspberry Pi, de vereiste beeldinformatie verzamelen (via een usb-videograbber). De Pi kan dan de aangesloten led-strips aansturen. Je kunt dit bijvoorbeeld inzetten voor apparaten als een Nvidia Shield TV, Apple TV, Google Chromecast of een ontvanger voor digitale televisie. Gebruik je een av-receiver als centrale middelpunt voor al deze apparaten? Dan pik je uiteraard dat hdmi-signaal richting de tv op. Het voordeel is dat Ambilight meteen werkt voor alle apparaten die op de av-receiver zijn aangesloten.
De zelfbouwoplossing heeft een beperking. Een hdmi-signaal is namelijk niet beschikbaar voor materiaal dat je rechtstreeks op de tv afspeelt. Denk aan bijvoorbeeld de Netflix- of YouTube-app van je smart tv zelf. De lightstrip van Philips heeft overigens diezelfde beperking. De Govee-set werkt met een camera en ondersteunt daardoor alle bronnen. Inclusief de ingebouwde apps van je smart-tv. En een ‘echte’ Ambilight-tv werkt uiteraard ook voor elke bron.
Waar je verder nog op moet letten is dat de achtergrondverlichting het beste werkt op een tv die voor een muur is geplaatst of die je aan de muur hebt opgehangen met een beugel. Een witte muur is ideaal, maar op een donkere muur is het effect ook zichtbaar. Zoals alle Ambilight-oplossingen werkt het het beste als het relatief donker is in de kamer. Overigens kan de led-strip die we gebruiken wel heel veel licht produceren. Je zult deze zelden op volle kracht gebruiken.
Boodschappenlijstje
Hieronder zie je een boodschappenlijstje, zodat je een idee krijgt van de gebruikte onderdelen en de kosten waarmee je rekening moet houden. Het is op het moment wel een uitdaging om aan een Raspberry Pi te komen. De beschikbaarheid zou in 2023 beter moeten worden. De prijzen die je hieronder voor de Pi ziet zijn op het moment niet realistisch, vanwege de woekerprijzen die je nu in de winkels tegenkomt.
Voor de andere onderdelen kun je terecht op websites als AliExpress en Amazon. Misschien heb je sommige onderdelen nog in huis. Als voeding kun je bijvoorbeeld de 5v-uitgang van een oude computervoeding gebruiken. Controleer wel hoeveel stroom die voeding aan deze 5v-uitgang kan leveren.
- Raspberry Pi 4 model B (vanaf plm. €40) of Pi Zero W 2 (vanaf plm. €20)
- MicroSD-geheugenkaart 32 GB (ongeveer €5)
- Led-strip WS2812B (met plakstrip) 5 meter b.v. 60 leds/meter (vanaf €15)
- Voeding voor leds 5V/10A (vanaf €15)
- Optioneel: aparte voeding voor de Raspberry Pi
- Usb-videograbber met hdmi ‘passthrough’ zoals deze van TKHIN (ongeveer €35)
- Toebehoren zoals jumper-wires
De basis: Raspberry Pi met Hyperion
De basis voor onze zelfbouwoplossing is een Raspberry Pi met daarop de Hyperion-software. Voor die software heb je een microSD-geheugenkaart nodig. Hyperion zorgt voor het analyseren van het beeldsignaal en aansturen van de led-strips. Omdat het verwerken van video vrij intensief is raden we een Raspberry Pi 4 aan. Ook met een Pi Zero W (2) zijn overigens goede resultaten te behalen. De led-strips die we gebruiken zijn van het type WS2812B. We geven je verderop wat tips voor de aanschaf van led-strips en voeding. Hyperion heeft het videosignaal nodig om mee te werken en daarvoor sluiten we een eenvoudige usb-videograbber aan op de Pi.
Videograbber
Een videograbber zorgt ervoor dat je een hdmi-signaal kunt vastleggen en verwerken met een pc of in ons geval een Raspberry Pi, via de usb-poort. Ze zijn erg populair in de wereld van videogames. Denk aan YouTubers die nieuwe spellen voor bijvoorbeeld de PlayStation willen demonstreren. Wij hebben bij het project deze videograbber van het merk TKHIN gebruikt. Die heeft een hdmi-ingang en een ‘passthrough’ hdmi-uitgang. Het inkomende hdmi-signaal wordt feitelijk onaangepast aan de uitgang doorgeven. Je kunt dus simpelweg de hdmi-kabel die naar de tv gaat in de hdmi-ingang van de videograbber steken en dan van de uitgang van de videograbber naar de tv.
De bewuste videograbber werkt ook voor 4k en mogelijk met hdr, maar dat hebben we niet getest. Voor hdr zul je voor ‘eerlijke’ kleuren ook eerder HyperHDR, een kloon van Hyperion, willen gebruiken. De gebruikte videograbber werkt trouwens ook uitstekend voor bronnen die de kopieerbescherming hdcp gebruiken, zoals Netflix en Amazon Prime.
Alternatieve aansluitmethodes
Behalve de genoemde videograbber met hdmi ‘passthrough’ zou je ook een zogenoemde hdmi-splitter kunnen gebruiken. Die biedt één inkomend hdmi-signaal tegelijkertijd op twee uitgangen aan. Je kunt dan vanaf de splitter met één van de uitgangen naar de tv en met de andere uitgang naar een videograbber. Je kunt nu een eenvoudigere usb-videograbber gebruiken (zonder ‘passthrough’). Deze zijn verkrijgbaar vanaf ongeveer €15.
Heb je een av-receiver met twee hdmi-uitgangen die beide hetzelfde signaal kunnen weergeven? Dan kun je die tweede uitgang gebruiken voor de videograbber en heb je dus geen splitter nodig. Dit werkt bijvoorbeeld op de meeste av-receivers van Denon. Zorg wel dat de videograbber minimaal dezelfde resolutie ondersteunt als je tv, bijvoorbeeld 4k als je in 4k wilt kunnen kijken.
Benodigde led-strips
Ambilight werkt met een reeks leds langs de randen van de tv, aan de achterkant, die individueel de kleur volgen die op het beeld op tv wordt getoond. Hierbij worden zogeheten individueel adresseerbare leds gebruiken. Wij kiezen de WS2812B. Deze led-strips zijn meestal van een handige plakstrip voorzien. Zorg wel dat je de ‘gewone’ IP30 en niet de waterdichte versie kiest, die laatste heeft meestal geen plakstrip! Qua lengte is 5 meter ideaal en voldoende voor grotere tv’s tot zo’n 60 inch. Je kunt er eventueel meerdere kopen en met elkaar doorverbinden. We geven de voorkeur aan de witte achtergrond (‘White PCB’) boven de zwarte, vanwege de betere lichtopbrengst.
De dichtheid van de ‘pixels’ op led-strips verschilt. Het meest gangbaar zijn led-strips met 30 of 60 pixels per meter. Bij dit project kiezen we voor een led-strip met 60 pixels per meter. We kunnen daarmee een hogere helderheid bereiken en een mooiere lichtspreiding. Nog meer pixels kan ook, maar let op dat je dan een zwaardere voeding nodig hebt, terwijl je de extreme helderheid niet nodig hebt. Zie ook ons achtergrondartikel over programmeerbare led-strips. Daarin vind je ook informatie over de werking van deze led-strips.
Voeding voor je led-strips
Je hebt voor de led-strip een 5v-voeding nodig die genoeg stroom kan leveren voor alle leds. Het meest gangbaar is een netadapter zoals je die ook vaak voor laptops ziet, soms ook ‘brick’ genoemd. Voedingen met metalen behuizing zijn ook geschikt, maar minder veilig omdat je hier een 220v-netsnoer op moet aansluiten. Deze aansluitpunten houd je liefst buiten bereik van (kinder)handen! Bij de voeding met metalen behuizing kun je via een potmeter de uitgangsspanning regelen. Deze ligt vaak wat hoger dan 5 volt.
Een voeding van 8 of 10A is voldoende voor dit project. De zwaarte van de voeding kun je eventueel zelf uitrekenen. Elke pixel vraagt grofweg tot 60 mA aan stroom. Wij hebben zelf 4 meter led-strip gebruikt met 60 pixels per meter. Dit komt neer op 240 pixels. Dan zou maximaal 14A aan stroom nodig zijn. Dat is echter in de situatie dat alle pixels de maximale helderheid hebben en de kleur wit weergeven. Dat komt in de praktijk zelden voor. Daarom kiezen we een voeding van 10A.
Voeding voor de Pi
De voeding voor je led-strips kun je ook voor de Pi gebruiken. Een aparte voeding voor de Pi mag ook, zoals de officiële voeding. Deze kun je bij de Pi 4 op de usb-c-poort aansluiten. Let er wel op dat de twee voedingen een gemeenschappelijke ground (gnd) moeten hebben. Dat bereik je door de gnd van de aparte led-voeding op één van de gnd-pinnen van de Pi aan te sluiten. Er zitten meerdere gnd-pinnen op de gpio-header. Bij deze workshop gebruiken we één voeding voor het hele systeem. Het nadeel is dat je in stand-by een klein beetje extra verbruik hebt.
MicroSD-kaart voorbereiden
Voor een snelle start kun je HyperBian installeren. Dat is een image met Raspberry Pi OS Lite en Hyperion. Haal het laatste zip-bestand genaamd HyperBian.zip op en pak het uit in een map. Je krijgt dan het .img-bestand dat je kunt flashen. We gaan het microSD-kaartje maken met de handige tool Raspberry Pi Imager. Het grootste voordeel van deze tool is dat we hierin alvast extra instellingen kunnen maken voor bijvoorbeeld het wifi-netwerk. Daar vind je in deze workshop meer informatie over.
Open Raspberry Pi Imager en kies Selecteer OS. Kies dan Gebruik eigen bestand en blader naar het .img-bestand. Druk op Kies opslagapparaat en wijs je microSD-geheugenkaart aan. Druk vervolgens op het instellingenicoontje. Je kunt nu vooraf enkele instellingen configureren.
Zet om te beginnen een vinkje bij Hostnaam en vul een hostname in, bijvoorbeeld hyperbian.local. Op dat adres kun je de Pi straks in je netwerk vinden. Zet een vinkje bij SSH inschakelen. Kies Gebruik wachtwoord authenticatie. Zet dan een vinkje bij Gebruikersnaam en wachtwoord instellen en voer de gebruikersnaam (pi) en een wachtwoord in. Zet een vinkje bij Wifi instellen en voer de ssid van je wifi-netwerk in en daaronder het wachtwoord. Zet een vinkje bij Regio instellingen en zorg dat de juiste tijdzone is ingesteld. Kies ten slotte Opslaan. Klik dan op Schrijf om het geheugenkaartje te maken.
Onderdelen bevestigen
De meeste led-strips zijn voorzien van een kleefstrip, zodat het niet veel moeite kost om deze te bevestigen. Je plakt ze gewoon aan de achterkant op de tv, op ongeveer een centimeter van de rand. Bedenk waar je de andere onderdelen gaat bevestigen, zodat je weet wat een handig punt is om te beginnen met plakken. Zelf beginnen we aan de onderkant, ongeveer in het midden. Plak vervolgens de led-strip rondom. De hoekjes zijn wat lastiger. Je kunt koppelstukjes gebruiken of draadjes solderen, maar het is in de praktijk eigenlijk veel makkelijker om een soort lusje te maken.
Op de achterkant van de tv zal vaak meer dan genoeg ruimte zijn om alle andere onderdelen te bevestigen. Al is de manier van bevestigen soms een uitdaging. Voorzie de Raspberry Pi alvast van de zojuist gemaakte microSD-geheugenkaart. Bevestig hem dan met bijvoorbeeld dubbelzijdig tape achterop de tv. Voor de andere wat zwaardere onderdelen, zoals een voeding, videograbber of hdmi-splitter, kun je bijvoorbeeld klittenband gebruiken. Die kun je vaak wel ergens aan je tv of muurbeugel vastmaken.
Als je het handig vindt kun je ook alle onderdelen in bijvoorbeeld een tv-meubel of kleine behuizing wegstoppen.
Alles aansluiten
Een led-strip heeft een connector voor 5v (rood), gnd (wit of zwart) en data (meestal groen). Ook zijn er vaak twee losse extra draden voor 5v en gnd. We raden aan om die twee losse draden rechtstreeks op de voeding aan te sluiten.. De led-strip wordt nu van voeding voorzien. We gaan de connector gebruiken om de Raspberry Pi van spanning te voorzien en om de datalijn aan te sluiten.
We gebruiken simpele jumper-wires. De mannelijke kant kun je in de connector steken. De vrouwelijke kant steek je dan in de header van de Pi. Zorg dat je de 5v met één van de 5v-pinnen (pin 2 of 4) op de Pi verbindt en de gnd op één van de gnd-pinnen aansluit (bijvoorbeeld pin 6). De data sluit je aan op gpio 18 (pin 12). Controleer of alles goed is aangesloten, want de header van de Pi geeft je maar beperkte bescherming als je iets fout hebt aangesloten. Zet daarna de voeding aan en controleer of de lichtjes op de Raspberry Pi gaan branden.
Basisinstellingen
Om de led-strips werkend te krijgen moet Hyperion op de Rasberry Pi als root-gebruiker worden uitgevoerd. Gebruik daarom een programma als het bekende PuTTY of een alternatief waarmee je via ssh in kunt loggen. Gebruik het adres hyperbian.local en de hiervoor ingestelde gebruikersnaam (pi) en wachtwoord. Geef daarna de volgende twee opdrachten:
sudo systemctl disable --now hyperion@pi
sudo systemctl enable --now hyperion@root
Als je met de browser naar de ingestelde hostnaam op poort 8090 gaat (in ons voorbeeld http://hyperbian.local:8090/) zie je als het goed is de openingspagina van Hyperion. Je kunt eventueel het niveau van de instellingen veranderen naar Expert. Daarvoor klik je rechtsboven op het instellingenicoontje en kies je Instellingen level. Je ziet daar ook een optie om de taal te veranderen, bijvoorbeeld naar Nederlands of Engels. De enige instelling die we hier aanpassen is de naam. Hiervoor ga je via het menu links naar Algemeen. Vul dan bij Configuratienaam een herkenbare naam in, bijvoorbeeld Woonkamer TV.
Led-strips instellen
Hyperion heeft straks wat informatie nodig over de opstelling van je leds. Tel daarom aan elke zijde van je tv hoeveel leds er zijn geplaatst en noteer het aantal. Tel aan de zijde waar je bent begonnen, meestal is dat aan de onder- of bovenkant, ook hoeveel leds er links en rechts van het beginpunt zijn. Ga naar Configuratie en dan naar LED hardware. Bij Besturingstype kies je onder het kopje RPi PWM voor ws2812x. Vul bij Hardware LED het totale aantal leds in. Bewaar de instellingen.
Hyperion weer nu het totale aantal leds maar nog niet de verdeling. Daarvoor ga je naar LED Opmaak. Hier stel je in hoeveel leds er aan elke zijde zijn. Kies Klassieke opmaak (LED Raam). Vul de velden Boven, Onder, Links en Rechts in. Dit gaat uit van het vooraanzicht van de tv. Controleer of je op het ingestelde totaal uitkomt. Vul dan het veld Invoer positie in, in feite je beginpunt vanaf de linkerbovenhoek. Rechts zie je een visualisatie, ook weer vanuit het vooraanzicht. Als de datarichting niet klopt kun je dat wijzigen met een vinkje bij Keer richting om. Volg via een icoontje rechtsboven de verwijzing naar RGB Byte volgorde wizard om de juiste rgb-volgorde in te stellen.
Videograbber instellen
We gaan als laatste de videograbber instellen. Hiervoor ga je via het menu naar Capturing Hardware. Zet onder USB opname een vinkje bij Activeer. Selecteer dan het apparaat en de resolutie. Hoewel de meeste videograbbers overweg kunnen met 1080p of zelfs hoger is dat voor Hyperion geen vereiste. De optie 720p met 30 frames per seconde geeft al meer dan genoeg nauwkeurigheid en geeft ook minder vertraging, waardoor het geheel vaak soepeler werkt. Je kunt ook met lagere waardes zoals 960×540 of 800×450 experimenteren. Zet een vinkje bij Signaal detectie. Als laatste is het soms nodig om het hele systeem te herstarten.
Alles uitproberen
Je kunt nu als het goed is genieten van Ambilight! Probeer bijvoorbeeld de Philips lightwaves-demo of Magic Fluids hdr op YouTube. Of zet één van je favoriete films of series op. Voor debuggen is de ingebouwde visualisatie van Hyperion erg praktisch. Klik daarvoor binnen de webinterface van Hyperion op het tv-icoontje rechtsboven. Het laat de kleuren van de leds zien. En als je op Live video klikt zie je dit ook met de huidige videostream richting de videograbber. Die is wel iets vertraagd, maar het geeft je een goede indicatie of de led-configuratie klopt.
Als je het leuk vindt kun je onder Configuratie en dan Effecten nog een effect instellen voor tijdens het opstarten en voor inactieve momenten, als er geen signaal is. Je kunt uit tientallen effecten kiezen. Verder kan het in de praktijk soms nodig zijn om de kleuren wat te kalibreren. Deze opties vind je onder Configuratie en dan Beeldverwerking.
Integratie Home Assistant
Hyperion kun je ook eenvoudig aan Home Assistant toevoegen als integratie. Je kunt dan met deze bekende software voor thuisautomatisering bijvoorbeeld de helderheid regelen. Leuk detail is dat je dankzij die integratie ook op afstand, op je dashboard van Home Assistant, kunt zien wat er op de tv wordt afgespeeld! Al is misschien niet iedereen daar blij mee…