Byg din egen dynamiske omgivelsesbelysning til et mediecenter

  • Brian Curtis
  • 0
  • 1767
  • 131
Reklame

Hvis du ser en masse film på din pc eller mediecenter, er jeg sikker på, at du står over for lysdilemmaet; slukker du alle lys helt? Holder du dem på fuld eksplosion? Eller bruger du en lysdæmperkontakt for at holde et kedeligt gult lys et eller andet sted? Nå, lide ikke mere.

For mindre end $ 100 kan du oprette et fantastisk lyssystem, der afspejler, hvad der er på skærmen; hvis videoen er en blå natscene, vil lysene være blå; når et blitz af orange ild blinker, så vil dine lys også. Velkommen til en verden af ​​omgivende RGB-belysning.

komponenter

  • RGB lysstrimmel - dette er en 5 meter stor RGB LED, der kan købes på eBay og sendes fra Hong Kong for mindre end £ 20 hver. Hvis du køber i elektronikbutikker, betaler du ved måleren, og en rulle på 5 m koster tre eller fire gange så meget, så køb online. Denne type LED-strimler kan ændres til enhver farve, men kun på én gang - de kan ikke justeres individuelt.
  • 12v strømforsyning - den krævede strøm (ampage) afhænger af, hvor mange lysdioder, du tilslutter. Hver meter trækker cirka 0,6 ampere, men dette afhænger af dine lysdiodernes densitet, så sørg for at kontrollere din specielle LED-strip. 3A ville være tilstrækkelig til den 5 m strimmel, som jeg har linket ovenfor, og separate strømforsyninger kan købes for omkring £ 10, hvis du ikke kan købe en anden steder.
  • 3 x MOSFET N-transistorer - du kan sandsynligvis finde billigere, men jeg købte en pakke med 6 (type STP16NF06FP) for omkring £ 10. Disse bruges til at isolere strømmen fra Arduino - ved at forbinde strimlerne direkte til Arduino ville det stege den med den mængde strøm, de trækker. Du har brug for 1 MOSFET-transistor pr. LED-farvekanal til rød, grøn og blå.
  • Arduino Hvad er Arduino & hvad kan du gøre med det? Hvad er Arduino og hvad kan du gøre med det? Arduino er en bemærkelsesværdig lille elektronik, men hvis du aldrig har brugt en før, hvad er de nøjagtigt, og hvad kan du gøre med en? - Jeg har ikke medtaget omkostningerne ved denne vare, da det antages, at du allerede har en, og der er en række kloner, du kan købe, hvis du ikke har råd til en officiel.

De samlede omkostninger var derfor omkring £ 40 ikke inklusive Arduino.

Introduktion

Projektet består af to dele. Først opretter vi et grundlæggende Arduino-kredsløb, der lytter til kommandoer fra computeren, og indstiller RGB-LED'erne til en passende farve. Den anden involverer at bruge et nyt program kaldet Processing og Java på computersiden - til at finde ud af, hvilke farver der i øjeblikket er på skærmen, gennemsnit dem og udsende det til den serielle kommunikationsport for Arduino at reagere på.

Del 1: Kredsløb og Arduino

Det kredsløb, vi bruger, er meget enkelt, som du kan se fra nedenstående diagram. LED-strimlen skal leveres med et hanstik i den ene ende, som du kan placere direkte i brødbrættet.

Din LED-strip kan variere, men hvis du ser nøje, vil du se 12v, R, G, B skrevet på skinnerne et eller andet sted. Disse strimler kan faktisk klippes på disse kobberpunkter (hver 3 LED på dem, jeg har), så hvis du vil klippe strimlerne i hjørnerne på dit tv, kan du med sikkerhed gøre det - du behøver heller ikke bruge hele 5m , så du har muligvis noget tilbage til et fremtidig projekt. Tilslut den positive 12v direkte til den eksterne strømforsyning.

MOSFET'erne har tre stifter; Port, dræne, og kilde. Porten er som den elektroniske switch, som Arduino vil styre. Dette bestemmer derefter strømmen, der flyder mellem kilden og afløbet. Afløbet på hver MOSFET skal tilsluttes Arduino-jorden og jorden til strømforsyningen, mens kilden tilsluttes LED-stripkanaler.

Når du har afsluttet kredsløbet, skal du downloade og køre denne testkode (oprindeligt fra LadyAda, pins modificeret). Du skal se din LED-strimmel hvirvle gennem forskellige farver.

Del 2: Behandling

Download behandling og kør. Du kan blive overrasket over, at det ser ud næsten nøjagtigt ligesom Arduino-udviklingsmiljøet; Det skyldes, at Arduino-miljøet var baseret på det, skønt de begge udfører forskellige funktioner. Grib denne kode - oprindeligt af Silicon Republic, men stærkt modificeret af mig for at gøre skærmstørrelsesindstillingerne automatiske og med bedre farvepræsentation - og tag et øjeblik på at se over det. Grundlæggende bruger den en Java-klasse, der kaldes Robot at lave en skærmbillede hver 10ms; det plukker derefter ud hver ulige pixel og gennemsnit den samlede farve. Hvis ydeevne er et problem for dig, skal du øge skipValue variabel til 3 eller 4 for at springe over flere pixels - den samlede effekt skal være den samme, men den kører hurtigere, da den undersøger mindre pixels. Til sidst tilføjede jeg et filter, der hjælper med at mætte farven ved at øge det maksimale og reducere de fundne minimum RGB-værdier (uden dette syntes jeg farverne var for hvide).

Kør appen; første gang får du sandsynligvis en fejl, da den forsøger at få adgang til den forkerte serielle port.

Kontroller fejlfindingsvinduet for en liste over aktuelle serielle porte, og bemærk nummeret ved siden af, hvad din Arduino er tilsluttet. I mit tilfælde på en Mac er USB-forbindelsen port 4. Skift nummeret på denne linje til den rigtige port:

port = new Serial (dette, Serial.list () [4], 9600); // indstil baudhastighed

Gem og kør igen; du skal se et lille vindue dukke op - dette repræsenterer den gennemsnitlige farve på alt på skærmen. Start en maleri-app eller noget med stærke farver for at teste den, ellers viser den sandsynligvis bare en grum skygge. Stop applikationen, når du er færdig med at teste, da vi har brug for den serielle portadgang til at programmere Arduino.

Til sidst skal du indlæse denne kode på din Arduino. I stedet for at sende tilfældige farver til LED-strip, læser denne kode værdierne fra den serielle port (som Processing sender ud til). Det er ret let at forstå, den eneste vanskelige del kan være brugen af ​​en markør i seriedataene:

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

Dette sikrer, at vi læser de korrekte byteværdier - Processing-appen udsender en markør som en “breakpoint” mellem hvert sæt af værdier, så Arduino ikke kommer ud af synk og tænker, at den grønne værdi er for blå osv.

Når først Arduino-koden er uploadet (der skulle ikke være nogen output på LED-strip først), kan du indlæse og køre Processing-appen; straks skal du se dit omgivelseslys arbejde.

Her er en video demo af hvordan det fungerede for mig med en tilfældig trippy musikvideo.

Hvad synes du?! Selvom det ikke er lige så imponerende som noget, der analyserer hver del af skærmen og bruger individuelle LED-pixels, er den meget billigere og meget lysere. Den eneste ulempe med dette er, at alt skal køres på din mediecentercomputer - det fungerer ikke med almindelig tv-udsendelse eller f.eks. Din Xbox 360. Hvis du har problemer, spørgsmål eller forslag, så spørg venligst væk; eller måske link til en video af din afsluttede opsætning.




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.