Bygg din egen dynamiska omgivande belysning för ett mediacenter

Bygg din egen dynamiska omgivande belysning för ett mediacenter / DIY

Om du tittar på många filmer på din dator eller mediasenter, är du säker på att du har mött belysningsdilemmet. stänger du helt av alla ljus? Håller du dem på full blast? Eller använder du en dimmer switch för att hålla en tråkig gul glöd någonstans? Tja, lida inte mer.

För mindre än 100 dollar kan du skapa ett fantastiskt belysningssystem som kommer att återspegla vad som är på skärmen. Om videon är en blå nattscen kommer ljusen att vara blå; när en flaska apelsin eld blinkar på, så kommer dina ljus. Välkommen till världens omgivande RGB-belysning.

Komponenter

  • RGB-ljusremsa - det här är en 5 meter lång rad RGB-LED som kan köpas på eBay och skickas från Hong Kong för mindre än 20 kr. Om du köper i elektronikaffärer betalar du av mätaren och en rulle på 5m kostar tre eller fyra gånger så köp online. Dessa typer av LED-remsor kan ändras till vilken färg som helst, men bara på en gång - de kan inte anpassas individuellt.
  • 12V strömförsörjning - den nödvändiga effekten (ampare) beror på hur många band av lysdioder du ska ansluta. Varje meter drar ungefär 0,6 ampere, men det beror på tätheten hos dina lysdioder så var noga med att kontrollera din speciella LED-remsa. 3A skulle vara tillräcklig för den 5m-remsa som jag länkade ovanför, och separata nätaggregat kan köpas för omkring £ 10 om du inte kan källa någon annanstans.
  • 3 x MOSFET N-transistorer - du kan hitta billigare, men jag köpte ett paket med 6 (typ STP16NF06FP) för omkring £ 10. Dessa används för att isolera strömmen från Arduino - att ansluta remsor direkt till Arduino skulle steka det med den mängd ström de drar. Du behöver 1 MOSFET-transistor per LED-färgkanal, för röd, grön och blå.
  • Arduino Vad är Arduino & Vad kan du göra med det? Vad är Arduino och vad kan du göra med det? Arduino är en anmärkningsvärd liten elektronik enhet, men om du aldrig har använt en tidigare, precis vad exakt är de, och vad kan du göra med en? Läs mer - Jag har inte inkluderat kostnaden för det här objektet eftersom det antas att du redan har en, och det finns en mängd olika kloner du kan köpa om du inte har råd med en officiell.

Den totala kostnaden var därför runt £ 40 inte inklusive Arduino.

Introduktion

Projektet består av två delar. Först kommer vi att skapa en grundläggande Arduino-krets som lyssnar på kommandon från datorn och sätter RGB-lysdioderna i en lämplig färg. Den andra innebär att man använder en ny applikation som heter Processing och Java på datorns sida - för att se vilka färger som för närvarande finns på skärmen, genomsnittliga dem och mata ut det till seriell kommunikationsport för att Arduino ska reagera på.

Del 1: Circuit och Arduino

Kretskortet vi använder är väldigt enkelt som du kan se från diagrammet nedan. LED-remsan ska förses med en manplugg i ena änden som du kan placera direkt i brödbrädet.

Din LED-remsa kan variera, men om du tittar noga ser du 12v, R, G, B skrivet på skenorna någonstans. Dessa remsor kan faktiskt skäras vid dessa kopparpunkter (var tredje LED på dem jag har), så om du vill klippa remsorna i hörnen på din TV kan du säkert göra det - du behöver inte använda hela 5m heller , så du kanske har kvar några för ett framtida projekt. Anslut den positiva 12v direkt till extern strömförsörjning.

MOSFET har tre stift; Port, dränera, och källa. Porten är som den elektroniska omkopplaren som Arduino kommer att styra. Detta bestämmer sedan strömmen som strömmar mellan källan och dräneringen. Dräneringen av varje MOSFET ska anslutas till Arduino och jordens ström, medan källan ansluts till LED-bandkanalerna.

När du har slutfört kretsen, ladda ner och kör denna testkod (ursprungligen från LadyAda, stift modifierade). Du bör se din LED-remsa virvla genom olika färger.

Del 2: Bearbetning

Hämta Processing och körning. Du kan bli förvånad över att hitta den som ser ut nästan exakt som Arduino utvecklingsmiljö; Det beror på att Arduino-miljön var baserad på det, men de utför båda olika funktioner. Ta tag i den här koden - ursprungligen av Silicon Republic men kraftigt modifierad av mig för att göra inställningarna för skärmens storlek automatiskt och med bättre färgrepresentation - och ta en stund att titta över det. I grund och botten används det en Java-klass som heter Robot att göra en skärmdump varje 10 ms; det plockar sedan ut varje udda pixel och medeltal den totala färgen. Om prestanda är ett problem för dig, öka skipValue variabel till 3 eller 4 för att hoppa över fler pixlar - den övergripande effekten ska vara densamma men den körs snabbare när den undersöker mindre pixlar. Slutligen lade jag till ett filter som hjälper till att mätta färgen genom att öka maximal och minska minsta RGB-värden som hittats (utan detta fann jag att färgerna var för vita).

Kör appen; Första gången kommer du förmodligen att få ett fel eftersom det försöker få åtkomst till fel serieport.

Kontrollera felsökningsfönstret för en lista över aktuella seriella portar och notera numret bredvid vad din Arduino är ansluten till. I mitt fall på en Mac är USB-anslutningen port 4. Ändra numret i den här raden till rätt port:

port = ny seriell (detta, seriell.list () [4], 9600); // Ange baudränta

Spara och kör igen; du borde se ett litet fönster dyker upp - det här representerar den genomsnittliga färgen på allt på skärmen. Starta en målningsapp eller något med starka färger för att testa det, annars kommer det förmodligen bara att visa en mörk gråskugga. Stoppa programmet när du är klar med att testa när vi behöver seriell portåtkomst för att programmera Arduino.

Slutligen ladda denna kod till din Arduino. I stället för att skicka slumpmässiga färger till LED-remsan, läser denna kod värdena från serieporten (vilken bearbetning matas ut till). Det är ganska lätt att förstå, den enda svåra delen kan vara användningen av en markör i seriella data:

om (Serial.available ()> = 4) om (Serial.read () == 0xff) red = Serial.read (); grön = Serial.read (); blå = Serial.read (); 

Detta säkerställer att vi läser de korrekta byte värdena - Processing app matar ut en markör som en “brytpunkt” mellan varje uppsättning värden så att Arduino inte kommer att synas och tror att det gröna värdet är för blått mm.

När Arduino-koden har laddats upp (det finns ingen utgång på LED-remsan i början), då kan du ladda och köra Processing app; omedelbart bör du se ditt omgivande ljus fungerar.

Här är en videodemo om hur det fungerade för mig med lite slumpmässig trippy musikvideo.

Vad tror du?! Även om det inte är så imponerande som något som analyserar varje del av skärmen och använder individuella LED-pixlar, är det mycket billigare och mycket ljusare. Den enda nackdelen med detta är att allt måste köras på din mediasenterdator - det kommer inte att fungera med vanlig tv-sändning eller din Xbox 360, till exempel. Om du har några problem, frågor eller förslag, var snäll och fråga. eller kanske länka till en video av din färdiga inställning.

Utforska mer om: Arduino, Media Player.