reklama
Pokud sledujete hodně filmů v počítači nebo v mediálním centru, určitě jste čelili dilematu osvětlení; úplně zhasnete všechna světla? Máte je na plném výbuchu? Nebo používáte přepínač stmívačů, abyste někde udrželi matně žlutou záři? No, už netrpě.
Za méně než 100 USD můžete nastavit úžasný světelný systém, který bude odrážet to, co je na obrazovce; pokud je video modrou noční scénou, světla budou modrá; když se rozzáří záblesk oranžového ohně, vaše světla se také rozsvítí. Vítejte ve světě okolního osvětlení RGB.
Komponenty
- Světelný proužek RGB - jedná se o 5metrový proužek LED RGB, které lze zakoupit na eBay a odeslat z Hongkongu za méně než 20 GBP. Pokud nakupujete v obchodech s elektronikou, budete platit za metr a naviják o délce 5 metrů to bude stát třikrát nebo čtyřikrát, takže nakupujte online. Tyto typy LED pásek lze změnit na libovolnou barvu, ale pouze najednou - nelze je individuálně upravit.
- Napájení 12V - požadovaný výkon (ampage) závisí na tom, kolik proužků LED diod budete připojovat. Každý měřič čerpá přibližně 0,6 A, ale záleží to na hustotě vašich LED diod, takže nezapomeňte zkontrolovat konkrétní LED pásek. 3A by stačilo na 5m proužek, který jsem připojil výše, a samostatné zdroje napájení lze zakoupit za přibližně 10 liber, pokud je nemůžete získat jinde.
- 3 x Tranzistory MOSFET N - můžete probaby najít levnější, ale koupil jsem si balíček 6 (typ STP16NF06FP) za zhruba 10 liber. Používají se k izolaci proudu od Arduina - připojení proužků přímo k Arduinu by ho smažilo množstvím proudu, který čerpají. Potřebujete 1 tranzistor MOSFET na jeden barevný kanál LED, pro červenou, zelenou a modrou.
- Arduino Co je Arduino a co s tím můžete dělat?Arduino je pozoruhodné malé elektronické zařízení, ale pokud jste ho nikdy předtím nepoužívali, jaké přesně jsou a co s ním můžete dělat? Přečtěte si více - Nezahrnul jsem náklady na tuto položku, protože se předpokládá, že ji již máte, a existuje několik klonů, které si můžete koupit, pokud si nemůžete dovolit oficiální.
Celkové náklady se tedy pohybovaly kolem £40 bez Arduina.
Úvod
Projekt se skládá ze dvou částí. Nejprve vytvoříme základní obvod Arduino, který poslouchá příkazy z počítače a nastaví RGB LED na odpovídající barvu. Druhá zahrnuje použití nové aplikace s názvem zpracovává se a Java na straně počítače - zjistit, jaké barvy jsou aktuálně na obrazovce, průměrovat je a vydávat je na sériový komunikační port, na který Arduino reaguje.
Část 1: Obvod a Arduino
Okruh, který používáme, je velmi jednoduchý, jak můžete vidět na obrázku níže. LED pásek by měl být dodáván se zástrčkou na jednom konci, kterou můžete umístit přímo do prkénku.
Váš pásek LED se může lišit, ale pokud se podíváte pozorně, uvidíte 12v, R, G, B někde na kolejích. Tyto proužky lze ve skutečnosti vyříznout v těchto měděných bodech (každé 3 diody LED na těch, které mám), takže pokud chcete proužky prorazit na v rozích televizoru to můžete bezpečně udělat - nepotřebujete ani celých 5 metrů, takže možná budete mít nějaké zbývající do budoucna projekt. Připojte kladný 12V přímo k externímu napájení.
MOSFETy mají tři kolíky; brána, kanalizace, a zdroj. Brána je jako elektronický spínač, který bude Arduino ovládat. To pak určuje proud protékající mezi zdrojem a odtokem. Odtok každého MOSFETu by měl být spojen se zemí Arduino a se zemí napájecího zdroje, zatímco zdroj se připojí k LED pásmovým kanálům.
Po dokončení okruhu stáhnout a spustit testovací kód (původně od LadyAda, kolíky upravené). Měli byste vidět, jak se LED pásek víří různými barvami.
Část 2: Zpracování
Stažení zpracovává se a běžet. Možná vás překvapí, když to vypadá téměř přesně jako vývojové prostředí Arduino; je to proto, že na tom bylo založeno prostředí Arduino, i když oba vykonávají různé funkce. Chyťte tento kód – původně od Silicon Republic ale silně mě změnil, aby bylo nastavení velikosti obrazovky automatické a s lepším zobrazením barev - a chvilku se na to podíváme. V zásadě používá třídu Java nazvanou Robot pořizovat snímky obrazovky každý 10 ms; poté vybírá každý lichý pixel a průměruje celkovou barvu. Pokud je pro vás problém výkon, zvyšte skipValue proměnná na 3 nebo 4 pro přeskočení dalších pixelů - celkový efekt by měl být stejný, ale bude běžet rychleji, protože zkoumá méně pixelů. Nakonec jsem přidal filtr, který pomáhá saturovat barvu zvýšením maxima a snížením minimálních nalezených hodnot RGB (bez toho jsem zjistil, že barvy jsou příliš bílé).
Spusťte aplikaci; při prvním pokusu pravděpodobně dojde k chybě při pokusu o přístup k nesprávnému sériovému portu.
Zkontrolujte v ladicím okně seznam aktuálních sériových portů a poznamenejte si číslo vedle toho, do kterého je Arduino připojeno. V mém případě na počítači Mac je připojení USB port 4. Změňte číslo v tomto řádku na správný port:
port = new Serial (this, Serial.list () [4], 9600); // nastavit přenosovou rychlost
Uložit a znovu spustit; měli byste vidět malé vyskakovací okno - to představuje průměrnou barvu všeho na obrazovce. Spusťte aplikaci pro malování nebo něco se silnými barvami, abyste to vyzkoušeli, jinak pravděpodobně zobrazí pouze matný odstín šedé. Po dokončení testování zastavte aplikaci, protože k programování Arduina potřebujeme přístup ke sériovému portu.
Konečně, načíst tento kód na své Arduino. Namísto odesílání náhodných barev na LED pásek tento kód čte hodnoty ze sériového portu (do kterého zpracovává Zpracování). Je to docela snadné pochopit, jedinou obtížnou součástí může být použití značky v sériových datech:
if (Serial.available ()> = 4) { if (Serial.read () == 0xff) { red = Serial.read (); zelená = Serial.read (); blue = Serial.read (); } }
To zajišťuje, že čteme správné hodnoty bajtů - aplikace Zpracování vydá značku jako „bod přerušení“ mezi každou sadou hodnot, aby se Arduino nedostalo ze synchronizace a myslelo si, že zelená hodnota je pro modrá atd.
Jakmile je Arduino kód nahrán (na LED pásu by na začátku neměl být žádný výstup), můžete načíst a spustit aplikaci Zpracování; okamžitě byste měli vidět, že vaše okolní světlo funguje.
Zde je ukázka videa, jak to pro mě vyšlo s náhodným trippy hudebním videem.
Co myslíš?! I když to není tak působivé jako něco, co analyzuje každou část obrazovky a používá jednotlivé LED pixely, je to mnohem levnější a mnohem jasnější. Jedinou nevýhodou je, že vše musí být spuštěno v počítači s multimediálním centrem - nebude to fungovat například při běžném televizním vysílání nebo na vašem Xbox 360. Pokud máte nějaké problémy, dotazy nebo návrhy, zeptejte se prosím; nebo možná odkaz na video s dokončeným nastavením.
James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.