Bouw uw eigen dynamische omgevingsverlichting voor een mediacentrum

Bouw uw eigen dynamische omgevingsverlichting voor een mediacentrum / DIY

Als je veel films op je pc of mediacenter bekijkt, ben ik er zeker van dat je met het verlichtingsdilemma te maken hebt gehad; schakel je alle lichten helemaal uit? Houd je ze voluit? Of gebruik je een dimmer om ergens een saaie gele gloed te behouden? Nou, lijd niet meer.

Voor minder dan $ 100, kunt u een verbazingwekkend verlichtingssysteem instellen dat zal weergeven wat er op het scherm staat; als de video een blauwe nachtscène is, zijn de lichten blauw; wanneer een gloed van oranje vuur oplicht, zo ook uw lichten. Welkom in de wereld van RGB-omgevingsverlichting.

Components

  • RGB-lichtstrip - dit is een strip van RGB LED's van 5 meter die op eBay kan worden gekocht en die vanuit Hong Kong voor minder dan £ 20 per stuk wordt verzonden. Als je in elektronicawinkels koopt, betaal je per meter en een spoel van 5 meter kost drie of vier keer dat, dus koop online. Dit type LED-strips kunnen in elke kleur worden gewijzigd, maar alleen in één keer - ze kunnen niet individueel worden aangepast.
  • 12v voeding - het benodigde vermogen (ampage) is afhankelijk van het aantal strips met LED's dat u gaat aansluiten. Elke meter trekt ongeveer 0,6 ampere, maar dit hangt af van de dichtheid van uw leds, dus controleer uw specifieke ledstrip. 3A zou voldoende zijn voor de 5m-strip die ik hierboven heb gekoppeld, en afzonderlijke voedingen kunnen voor ongeveer £ 10 worden gekocht als je er geen ergens anders kunt kopen.
  • 3 x MOSFET N-transistors - je kunt waarschijnlijk goedkoper vinden, maar ik heb een pakket van 6 gekocht (type STP16NF06FP) voor ongeveer £ 10. Deze worden gebruikt om de stroom van de Arduino te isoleren - door de strips rechtstreeks op de Arduino aan te sluiten, wordt deze met de hoeveelheid stroom die ze trekken gebroed. U hebt 1 MOSFET-transistor per LED-kleurkanaal nodig, voor rood, groen en blauw.
  • Arduino Wat is Arduino en wat kun je ermee doen? Wat is Arduino en wat kun je ermee doen? De Arduino is een opmerkelijk klein elektronisch apparaat, maar als je er nog nooit een hebt gebruikt, wat precies zijn ze dan, en wat kun je ermee doen? Meer lezen - Ik heb de kosten van dit artikel niet opgenomen, omdat wordt aangenomen dat u er al een hebt en er zijn verschillende klonen die u kunt kopen als u zich geen officiële kunt veroorloven.

De totale kosten waren daarom rond £ 40 exclusief de Arduino.

Invoering

Het project bestaat uit twee delen. Eerst maken we een basis Arduino-circuit dat luistert naar opdrachten van de computer en de RGB-leds in een geschikte kleur instelt. De tweede omvat het gebruik van een nieuwe applicatie genaamd Processing en Java op de computer - om uit te zoeken welke kleuren momenteel op het scherm staan, deze te matigen en uit te voeren naar de seriële communicatiepoort voor de Arduino om op te reageren.

Deel 1: Circuit en Arduino

Het circuit dat we gebruiken is heel eenvoudig, zoals je kunt zien in het onderstaande schema. De ledstrip moet worden geleverd met een mannelijke stekker aan het ene uiteinde die u direct in het breadboard kunt plaatsen.

Uw ledstrip kan variëren, maar als u goed kijkt, ziet u het wel 12v, R, G, B ergens op de rails geschreven. Deze strips kunnen eigenlijk op deze koperen punten worden gesneden (elke 3 LED's die ik heb), dus als je de strips in de hoeken van je tv wilt knippen, kun je dat veilig doen - je hoeft de hele 5 m niet te gebruiken , dus je hebt misschien nog wat over voor een toekomstig project. Verbind de positieve 12v rechtstreeks met de externe voeding.

De MOSFET's hebben drie pinnen; poort, draineren, en bron. De poort is als de elektronische schakelaar die de Arduino zal bedienen. Dit bepaalt vervolgens de stroom die vloeit tussen de bron en de afvoer. De afvoer van elke MOSFET moet worden aangesloten op de aarde van de Arduino en de aarde van de voeding, terwijl de bron wordt aangesloten op de ledstripkanalen.

Wanneer je het circuit hebt voltooid, download en voer je deze testcode uit (oorspronkelijk van LadyAda, pinnen gewijzigd). Je zou je LED-strip door een verscheidenheid aan kleuren moeten zien dwarrelen.

Deel 2: Verwerking

Verwerking downloaden en uitvoeren. Je zult er misschien versteld van staan ​​dat het er uitziet bijna precies zoals de Arduino-ontwikkelomgeving; Dat komt omdat de Arduino-omgeving erop is gebaseerd, hoewel ze allebei verschillende functies hebben. Grijp deze code - oorspronkelijk van Silicon Republic maar door mij zwaar aangepast om de instellingen voor de schermgrootte automatisch te maken en met een betere kleurweergave - en neem even de tijd om erover te kijken. In principe gebruikt het een Java-klasse genaamd Robot om elk een scherm vast te leggen 10ms; het pikt vervolgens elke oneven pixel uit en middelt de totale kleur. Als prestatie een probleem voor u is, verhoogt u de skipValue verander van 3 of 4 om meer pixels over te slaan - het algehele effect zou hetzelfde moeten zijn, maar het zal sneller werken als het minder pixels onderzoekt. Ten slotte heb ik een filter toegevoegd dat helpt de kleur te verzadigen door het maximum te verhogen en de minimaal gevonden RGB-waarden te verlagen (zonder dit vond ik de kleuren te wit).

Start de app; de eerste keer krijgt u waarschijnlijk een foutmelding wanneer deze probeert toegang te krijgen tot de verkeerde seriële poort.

Controleer het foutopsporingsvenster voor een lijst met huidige seriële poorten en noteer het nummer naast waar uw Arduino op is aangesloten. In mijn geval op een Mac is de USB-verbinding poort 4. Verander het nummer in deze regel naar de juiste poort:

port = new Serial (this, Serial.list () [4], 9600); // baudrate instellen

Opslaan en opnieuw uitvoeren; je zou een klein venster moeten zien verschijnen - dit vertegenwoordigt de gemiddelde kleur van alles op het scherm. Start een schilderij app of iets met sterke kleuren om het te testen, anders zal het waarschijnlijk alleen een duistere schaduw van grijs tonen. Stop de applicatie als je klaar bent met testen, want we hebben de seriële poort nodig om de Arduino te programmeren.

Ten slotte laad deze code op uw Arduino. In plaats van willekeurige kleuren naar de ledstrip te sturen, leest deze code de waarden van de seriële poort (die de verwerking uitvoert naar). Het is vrij eenvoudig te begrijpen, het enige moeilijke deel is het gebruik van een marker in de seriële gegevens:

if (Serial.available ()> = 4) if (Serial.read () == 0xff) red = Serial.read (); groen = Serial.read (); blauw = Serial.read (); 

Dit zorgt ervoor dat we de correcte bytewaarden lezen - de verwerkingsapp voert een markering uit als een “breekpunt” tussen elke reeks waarden, zodat de Arduino niet uit de synchronisatie raakt en denkt dat de groene waarde voor blauw enz. is.

Zodra de Arduino-code is geüpload (in eerste instantie zou er geen uitvoer op de ledstrip moeten zijn), kunt u de app Verwerking laden en uitvoeren; onmiddellijk zou je je omgevingslicht moeten zien werken.

Hier is een videodemo van hoe het voor mij werkte met een of andere willekeurige trippy-videoclip.

Wat denk je?! Hoewel het niet zo indrukwekkend is als iets dat elk deel van het scherm analyseert en individuele LED-pixels gebruikt, is het een stuk goedkoper en een stuk helderder. Het enige nadeel hiervan is dat alles op je mediacenter-computer moet worden uitgevoerd - het werkt bijvoorbeeld niet bij gewone tv-uitzendingen of je Xbox 360. Als u problemen, vragen of suggesties heeft, vraag het dan alstublieft; of misschien een link naar een video van je voltooide installatie.

Ontdek meer over: Arduino, Media Player.