Permalänk
Medlem

DIY Ambilight med Arduino och RGB LED-remsa

När nu ens stora skärm hamnade mot väggen så fick man tillbaka suget för ett DIY ambilight projekt igen. Jag använde en RGB LED-remsa, separat nätaggregat och en Arduino Uno för detta projekt. Arduinon är kopplad med USB till min dator där Prismatik sköter resten.

Speltest:

Dold text

Länkar:
Arduino Uno:
https://store.arduino.cc/arduino-uno-rev3

LED remsan
https://www.amazon.se/gp/product/B08JJ7FLV3/ref=ppx_yo_dt_b_a...

Nätaggregatet
https://www.electrokit.com/produkt/switchat-nataggregat-5v-10...

Notera om du ska göra nåt sånt här själv får du räkna ut hur mycket det drar. På min 40" blev det 164 LEDs. Varje LED drar 0.2W och ska ha 5V. Detta drar då max 32.8W. En 5V/10A har max effekt 50W vilket ger mig lagom med headroom.

Utöver dessa huvudenheter behövde jag en strömkabel till nätaggregatet, schysst dubbelhäftande tejp, en USB-A till USB-B till arduinon för jag tog endast enheten utan tillbehör samt andra småkablar för koppla ihop allt. Ska man göra det snyggare än mig klipper man även LED-remsan och löder ihop vid hörnena. Tror inte det gör större skillnad men snyggare är det.

Fler länkar:

Program som används är Arduinos egna för ladda upp till arduinon.
https://www.arduino.cc/en/Main/Software_

Programmet man laddar upp till sin Arduino, kalibrerat rätt ordning (GRB = RGB) för denna LED-remsa:
https://github.com/Wifsimster/adalight_ws2812

Prismatik som läser av skärmen och skickar infon till arduinon:
https://github.com/psieg/Lightpack/releases

Prismatik kom ut ett bra tag sedan till Lightpack för de som minns. Sweclockers artikel om Lightpack. Sedan dess har användare gjort mjukvaran avsevärt bättre än den var förr. Mycket snålt program att ha i bakgrunden.

Så här ser Prismatik ut i windows:

Dold text

Så här ser det ut när Prismatik jobbar med screengrab. I setup får man skriva in antal LED i sin remsa, i vilken ordning de följer, hur de är upplagda tex om du bara har LED på sidorna om skärmen eller skippat LEDs vid skärmfoten. Jag kan ändra på storleken på rutorna och flytta runt de om jag så önskar.

Dold text

Grov förklaring vad som sker:
Skärmen är kopplad till datorn som en vanlig skärm. Vilken skärm som helst kan användas.
Mjukvaran Prismatik i windows läser av skärmen för att se vilka färger som visas.
Datorn är kopplad med USB till en Arduino Uno.
Prismatik skickar informationen till Arduinon.
Arduinon är direkt kopplad till LED-remsan och skickar då den datan Prismatik samlat in till LED-remsan.

Hur jag har kopplat det:

Dold text

Jag följde denna video för generell guide:
https://youtu.be/nzDnr76fZCc

Denna artikel hade även bra information:
https://www.makeuseof.com/tag/make-ambilight-60/

Är det något ni undrar över är det bara att fråga

Besök galleriet här

Permalänk
Medlem

En solklar femma! Det var ett mycket fint och gediget arbete.

Permalänk
Medlem
Skrivet av Dreijer:

En solklar femma! Det var ett mycket fint och gediget arbete.

Stort tack!

Permalänk
Medlem

Kanonsnyggt, 5/5 RGB.

Permalänk
Medlem

Skit snyggt!
Borde väl funka att göra samma på en data skärm?
Använda samma teknik?

Love RGB

Permalänk
Medlem

Häftigt! Bra jobbat!

Köpte själv en ambilight-lösning man bara skulle koppla in i TV:ns USB (Ali express).
Det funkade förvisso men färgen på ”ambilight”-effekten släpade med typ två sekunder vilket var outhärdligt och gräsligt.
Gav bort skräpet särbons pappa som bygger modeller och annat pyssel, han fick det att fungera med lite pill till en mini hårdrocksscen när han hade byggt upp Sweden Rock från 2015.
Fascinerande hobby.

Permalänk
Medlem

Väcker goa minnen då man gjorde detta med den första Raspberryn. Fungerade kanon men LED remsan trillade av vid en flytt och kom aldrig tillbaka igen.

Permalänk

Går det och bygga en till en 75" tv ?
hur kopplas den in så den visar tvns färger?

Permalänk
Medlem

Riktigt nice!

Har själv funderat på hur man ska få till ambilight. Kört med 5st Hue Play bakom TVn men det fungerade ärligt talat inte bra. Man kan bara ställa in var på bredden som ljuskällorna sitter på skärmen, inte på höjden. Så att ha en lampa i toppen av TVn betydde inte att den läste av färgen där .

Sen har jag kikat på philips addresserbara LED slinga men den kräver en HDMI dosa, som i nuläget inte finns med HDMI 2.1

Så nu letar jag lösning som jag kan köra med min CX48 för 4k/120hz gaming.
Hur är "lagget" på denna lösningen när man Gejmar?
Hur bra fungerar det i Windows med mjukvara osv?

Vet du om det även fungerar i ANdroid TV på något sätt, t.ex. i en Nvidia shield..?

Permalänk
Medlem

Har du lust att lägga upp en bild hur du gjorde kopplade kablarna ?

Permalänk
Medlem

Hoppla! Satte nästan frukostmackan i halsen när man såg framsidan imorse.

Skrivet av AxxT:

Skit snyggt!
Borde väl funka att göra samma på en data skärm?
Använda samma teknik?

Love RGB

Javisst! Min phillips är egentligen en datorskärm. Windows kör prismatik som läser av skärmen. Arduinon får sen datan via USB och matar LED-remsan med informationen.

Skrivet av werter123456789:

Går det och bygga en till en 75" tv ?
hur kopplas den in så den visar tvns färger?

Ja det bör gå. Ett capture card med passthrough bör lösa det problemet. Så länge en dator (Raspberry PI?) kan ha en skärm att läsa av så kan prismatik eller snarlik mjukvara skicka den infon till arduinon.

Skrivet av Nima2001:

Riktigt nice!

Hur är "lagget" på denna lösningen när man Gejmar?
Hur bra fungerar det i Windows med mjukvara osv?

Vet du om det även fungerar i ANdroid TV på något sätt, t.ex. i en Nvidia shield..?

Tack!
Har bara provat film och i spelvägar Ori and the will of the wisps. Men inget märkbart lagg. Jag tror jag brukar märka sånt annars.
Prismatik är snål med resurser i bakgrunden. Sen har den fler roliga verktyg, tex LEDs blinkar till musiken eller bara lite ambient light eller snurrande RGB.
Angående Nvidia Shield ja läs mitt svar ovan.

Skrivet av hanjou:

Har du lust att lägga upp en bild hur du gjorde kopplade kablarna ?

Javisst! Jag kan ladda upp mer ingående bilder och information i eftermiddag!

Tack för alla kommentarer

Permalänk
Medlem

Riktigt fint! Har varit inne på att göra en liknande lösning tidigare, men mjukvaran som fanns då drog jäkligt mycket prestanda. Hur ser det ut på den fronten med din lösning? Drar programmet som ska läsa av skärmen mycket resurser?

Permalänk
Medlem

Snyggt. Ser bra ut Gav inspiration.

En Raspberry Pi 4 annars som videospelare, så borde man ganska smidigt kunna slänga ihop ett pythonscript som gör något liknande (kanske med opencv, men behövs nog inte) och styr leds via GPIO, dock är den lite mer begränsad i prestanda.

Permalänk
Medlem

Snyggt jobbat

Om man får komma med ett par kanske oönskade tips:

Det ser ut som du kopplat in såväl styrsignal som matning till ledstripen direkt? En frånkopplingskonding över matningen, och strömbegränsning för styrsignalen, kan göra underverk såväl för livslängd som funktion. Om värden på kondingar och resistorer för detta tvistar de lärde, men här finns en bra och begriplig guide att utgå från. Se särskilt avsnittet "Protect Your WS2812's!" Glöm inte heller att terminera signallinan mot jord i slutet av stripen.

För den som tänkt bygga något liknande är det värt att kolla på en slinga med WS2813 istället för WS2812B. Det är en uppgraderad version med redundant styrsignalspassthrough, som bara är marginellt dyrare. I en WS2813-slinga blockerar inte döda LEDs styrsignalen till resten av segmentet, dvs det är bara den döda LEDen som slocknar, den tar inte med sig resten av segmentet. Förmodligen skulle man inte ens märka om en LED försvann i denna applikation.

Permalänk
Medlem

Najs! Jag byggde något liknande som en skola för PC för Alla för ett tiotal år sedan. Artikeln fanns visst kvar online för den intresserade

https://pcforalla.idg.se/2.1054/1.537010/sa-bygger-du-din-ege...

Permalänk
Medlem

Jag har kört på en Hyperion lösning (RPI), men om man kör Arduino istället, kan man skippa game capture card?
Har du testat hur det funkat med HDCP2.2 och/eller 4K via typ Netflix eller något annat?

Får nämligen inte min o funka med ATV4K, så om Arduino löser det är det nästa projekt för min del också

5/5!

/M

Permalänk
Medlem

Jag uppdatera med lite mer information i beskrivningen

Skrivet av Gorian:

Riktigt fint! Har varit inne på att göra en liknande lösning tidigare, men mjukvaran som fanns då drog jäkligt mycket prestanda. Hur ser det ut på den fronten med din lösning? Drar programmet som ska läsa av skärmen mycket resurser?

Verkar dra absolut ingenting!

Skrivet av kaput:

Snyggt jobbat

För den som tänkt bygga något liknande är det värt att kolla på en slinga med WS2813 istället för WS2812B. Det är en uppgraderad version med redundant styrsignalspassthrough, som bara är marginellt dyrare. I en WS2813-slinga blockerar inte döda LEDs styrsignalen till resten av segmentet, dvs det är bara den döda LEDen som slocknar, den tar inte med sig resten av segmentet. Förmodligen skulle man inte ens märka om en LED försvann i denna applikation.

Jag får kika lite mer på de andra du nämner, men detta tar jag med mig! Blir det av igen eller om denna dör så blir det definitivt en WS2813 i stället!

Skrivet av MrOrsh:

Najs! Jag byggde något liknande som en skola för PC för Alla för ett tiotal år sedan. Artikeln fanns visst kvar online för den intresserade

https://pcforalla.idg.se/2.1054/1.537010/sa-bygger-du-din-ege...

Ett bra tag sen ja, kul! Artikeln jag länkar i slutet jag använde lite som generell guide är väldigt lik din

Skrivet av Mustaf:

Jag har kört på en Hyperion lösning (RPI), men om man kör Arduino istället, kan man skippa game capture card?
Har du testat hur det funkat med HDCP2.2 och/eller 4K via typ Netflix eller något annat?

Får nämligen inte min o funka med ATV4K, så om Arduino löser det är det nästa projekt för min del också

5/5!

/M

Min dator och Prismatik är som din RPI och Hyperion Skillnaden är att min dator också driver skärmen, så behövs ju inget capture card. Arduinon är endast länken mellan datorn och LED-remsan så att säga.
Nu provade jag endast Disney+ men prismatik kan inte plocka upp något med hårdvaruaccelerering igång i chrome. Stänger jag av hårdvaruaccelerering så funkar det som det ska!

Permalänk
Medlem
Skrivet av LPG:

Jag får kika lite mer på de andra du nämner, men detta tar jag med mig! Blir det av igen eller om denna dör så blir det definitivt en WS2813 i stället!

Ja, gör det så snart som möjligt, innan något ballar ur. Adresserbara RGB-LEDs tenderar att vara ganska känsliga. Det är komponenter för några kronor, väl värda investeringen

Glömde nämna att WS2813 är direkt kompatibla med WS2812 ur styrsynpunkt. Din kod och Fastled/Neopixel-libbarna kan användas rakt av utan ändringar.

Permalänk
Medlem
Skrivet av kaput:

Ja, gör det så snart som möjligt, innan något ballar ur. Adresserbara RGB-LEDs tenderar att vara ganska känsliga. Det är komponenter för några kronor, väl värda investeringen

Det är rätt ljusstarka grejer, så jag har sänkt till ca 50% ljusstyrka i Prismatik för livslängds skull. Jag använder inte skärmen i dagligt bruk den går igång titt som tätt när man ska titta på serier/film eller spela spel med handkontroller.

Skrivet av kaput:

Glömde nämna att WS2813 är direkt kompatibla med WS2812 ur styrsynpunkt. Din kod och Fastled/Neopixel-libbarna kan användas rakt av utan ändringar.

Riktigt trevligt att veta. Tack!

Skrivet av hanjou:

Har du lust att lägga upp en bild hur du gjorde kopplade kablarna ?

Gjort! Pilarna är lite åt fel håll men det är alltid nåt

Permalänk
Medlem

En dum fråga, men varför använda en Arduino när allt ändå är kopplat till en dator med Windows? Måste väl vara smidigare att koppla led direkt till laptop/dator om det ändå är där screengrab sker?

I övrigt ett coolt projekt. Blir ju själv sugen på det här nu till TVn.

Permalänk
Medlem

Mycket snyggt! Är själv på g för ngt liknade (läs: exakt samma), men jag kommer nog lägga listerna i skenor med diffusorer, typ: https://www.ledgrossisten.se/led-lister-c-4/led-profiler-c-49...

Permalänk
Medlem

snyggt gjort,
två saker som jag skulle gjort annorlunda dock, lagt leden i alulist dvs använt led utan silikon (värme dödar led fort) samt skulle jag lött kanterna och inte vikt listen. tips, du kör digital list, det är inte ovanligast att man kan få "skumma" effekter av störningar från andra saker, skulle du få problem med det kläm ditt ett par ferritkärnor.
hur har du monterat säkringarna?

Permalänk
Medlem
Skrivet av LPG:

Det är rätt ljusstarka grejer, så jag har sänkt till ca 50% ljusstyrka i Prismatik för livslängds skull. Jag använder inte skärmen i dagligt bruk den går igång titt som tätt när man ska titta på serier/film eller spela spel med handkontroller.

Hehe, joo, det är förstås bra i den meningen, men det skyddar inte LEDs och nätdel mot transienter vid snabba strömuttagsförändringar när LEDsen ändrar färg/intensitet, eller du slår på/av grejorna. Det är där såväl frånkopplingskonding som strömbegränsningsresistor på signallinan kommer in i bilden

Permalänk
Medlem
Skrivet av kaput:

Snyggt jobbat

Om man får komma med ett par kanske oönskade tips:

Det ser ut som du kopplat in såväl styrsignal som matning till ledstripen direkt? En frånkopplingskonding över matningen, och strömbegränsning för styrsignalen, kan göra underverk såväl för livslängd som funktion. Om värden på kondingar och resistorer för detta tvistar de lärde, men här finns en bra och begriplig guide att utgå från. Se särskilt avsnittet "Protect Your WS2812's!" Glöm inte heller att terminera signallinan mot jord i slutet av stripen.

För den som tänkt bygga något liknande är det värt att kolla på en slinga med WS2813 istället för WS2812B. Det är en uppgraderad version med redundant styrsignalspassthrough, som bara är marginellt dyrare. I en WS2813-slinga blockerar inte döda LEDs styrsignalen till resten av segmentet, dvs det är bara den döda LEDen som slocknar, den tar inte med sig resten av segmentet. Förmodligen skulle man inte ens märka om en LED försvann i denna applikation.

saknar ws2813 en ren vit kanal eller har den fått det på samma sätt som sk6812?

Permalänk
Medlem
Skrivet av aragon:

saknar ws2813 en ren vit kanal eller har den fått det på samma sätt som sk6812?

WS2813 finns i både RGB och RGBW-version.

Permalänk
Medlem
Permalänk
Medlem

Klarar listen i sig av att göra nåt som påminner om varmvitt om man vill att backlighten ska kunna matcha flux till exempel? Eller blir det grönt?

Permalänk
Medlem
Skrivet av Nima2001:

Hur är "lagget" på denna lösningen när man Gejmar?

Lagt till en video med lite Breath of the Wild
Jag ska se om jag kan spela in och räkna ut ungefär ms, upplevelsen är bra i alla fall.
30 FPS video frame to frame:

Dold text
Skrivet av wh2ne:

Såg det genom analytics i youtube rätt skoj ändå!

Skrivet av Napoleongl:

Klarar listen i sig av att göra nåt som påminner om varmvitt om man vill att backlighten ska kunna matcha flux till exempel? Eller blir det grönt?

Intressant nog har Prismatik en inställning "Apply screen color modifications (F.lux, redshift).
Hur bra det funkar i verkligheten med denna list vågar jag dock inte säga. Många spel i fullskärm (vilket är ett måste om man ska få ut färgerna i områdena prismatik läser av skärmen) stänger ju ändå av dessa funktioner.

@kaput Jag drog iväg en beställning på lite komponenter det är så billigt så varför inte men du nämnde även att man bör terminera signallinan till jord i slutet av linan, vad fyller detta för funktion?

Permalänk
Medlem
Skrivet av kaput:

WS2813 finns i både RGB och RGBW-version.

misstänkte att den inte hade ww, jag förmodar den kör w i samma led rgb dvs inget eget led för w? (4 i 1)

Permalänk
Medlem
Skrivet av talonmas:

En dum fråga, men varför använda en Arduino när allt ändå är kopplat till en dator med Windows? Måste väl vara smidigare att koppla led direkt till laptop/dator om det ändå är där screengrab sker?

I övrigt ett coolt projekt. Blir ju själv sugen på det här nu till TVn.

Om du har en GPIO header på din dator, som på en Raspberry Pi, så är det väldigt smidigt. Annars kanske det är möjligt att lösa om du har en äldre dator genom parallel-porten eller serie-porten. Om du inte har någon sådan port, då, ja, var ska du koppla in slingan i datorn? Arduinons funktion i detta sammanhanget är i stort sett att ge din dator en drös general-purpose input/output pinnar.

Beroende på operativsystem och processprioritering kan det potentiellt även vara svårt att få utmatningsprocessen tillräckligt mycket i realtid för att det inte ska bli några problem med timings eller synkronisering mot ljusslingan. En mikrokontroller som en arduino har inget operativsystem ivägen som behöver schemalägga en mäng processer som vill köra parallelt. Allt kör i realtid på den.