Hirdetés

média központ fényHa sok filmet néz a számítógépén vagy a médiaközpontban, biztos vagyok benne, hogy a világítási dilemmával szembesült; kikapcsolja az összes fényt? Teljes robbanás közben tartja őket? Vagy dimmer kapcsolóval tartja tompa sárga fényét valahol? Nos, ne szenvedjen többé.

Kevesebb, mint 100 dollárért elindíthat egy csodálatos világítási rendszert, amely tükrözi a képernyőn megjelenő képet; ha a videó kék éjszakai jelenet, a fény kék lesz; amikor egy narancssárga tűz villog, akkor a fények is. Üdvözöljük a környező RGB világítás világában.

Alkatrészek

  • RGB fénycsík - ez egy 5 méteres RGB LED-ek csíkja, amelyet az eBay-en lehet megvásárolni és Hongkongból szállítani, egyenként kevesebb, mint 20 fontért. Ha elektronikai üzletekben vásárol, akkor a mérővel fizet, és az 5 méteres tárcsa három-négyszerese lesz, tehát vásároljon online. Az ilyen típusú LED-csíkok bármilyen színre cserélhetők, de csak egyszerre - nem állíthatók be külön-külön.
  • 12 V tápegység - a szükséges energia (amperes) attól függ, hogy hány LED csíkot csatlakoztat. Minden mérő kb. 0,6 ampert húz, de ez a LED-ek sűrűségétől függ, ezért ellenőrizze az adott LED-csíkot. A 3A elegendő lenne a fent összekapcsolt 5 méteres sávhoz, és külön tápegységeket vásárolhat körülbelül 10 fontért, ha nem tud beszerezni másutt.
  • 3 x MOSFET N tranzisztorok - Valószínűleg olcsóbbat talál, de vettem egy 6 darab csomagot (STP16NF06FP típus) körülbelül 10 fontért. Ezeket az áramot leválasztják az Arduino-tól - ha a csíkokat közvetlenül az Arduino-val összekötik, akkor az meghúzza az árammennyiséget. LED-es színes csatornánként 1 MOSFET tranzisztorra van szükség, a vörös, a zöld és a kék színhez.
  • Arduino Mi az Arduino és mit lehet tenni vele?Az Arduino egy figyelemre méltó kis elektronikai eszköz, de ha még soha nem használta ezt, akkor mi is pontosan ezek, és mit lehet ezzel csinálni? Olvass tovább - Nem szerepeltem ennek a cikknek a költségeit, mivel feltételezhető, hogy már rendelkezik ilyennel, és számos klón vásárolható meg, ha nem engedheti meg magának, hogy hivatalos.

A teljes költség tehát kb £40 kivéve az Arduino-t.

Bevezetés

A projekt két részből áll. Először létrehozunk egy alapvető Arduino áramkört, amely figyeli a parancsokat a számítógépről és beállítja az RGB LED-eket a megfelelő színre. A második rész egy új alkalmazás, az úgynevezett Feldolgozás és a Java a számítógép oldalán - annak meghatározása, hogy milyen színek jelennek meg a képernyőn, átlagolja őket, és a kimenetet adja ki a soros kommunikációs portba, hogy az Arduino reagáljon.

1. rész: Áramkör és Arduino

Az általunk használt áramkör nagyon egyszerű, amint az az alábbi ábrán látható. A LED-csíkot az egyik végén dugaszoló dugóval kell ellátni, amelyet közvetlenül a kenyérpultba helyezhet.

média központ fény

A LED-csík változhat, de ha alaposan megnézed, látni fogod 12v, R, G, B valahol a sínekre írták. Ezeket a csíkokat ténylegesen meg lehet vágni ezeken a rézpontokon (mindenki 3 LED-en van, ami van nekem), tehát ha a a tévék sarkaiban ezt biztonságosan megteheti - az egész 5 métert sem kell használnia, így lehet, hogy van néhány jövője projektben. Csatlakoztassa a pozitív 12 V-ot közvetlenül a külső tápegységhez.

dinamikus környezeti megvilágítás

A MOSFET-eknek három csap van; kapu, csatornaés forrás. A kapu olyan, mint az elektronikus kapcsoló, amelyet az Arduino irányít. Ez meghatározza a forrás és a lefolyó között áramló áramot. Minden MOSFET lefolyóját össze kell kötni az Arduino földjével és a tápegység földjével, miközben a forrás csatlakozik a LED csík csatornákhoz.

dinamikus környezeti megvilágítás

Amikor befejezte az áramkört, töltse le és futtassa ezt tesztkód (eredetileg a LadyAda-tól, csapok módosítva). Látnia kell, hogy a LED-csík különböző színekben örvénylik.

dinamikus környezeti megvilágítás

2. rész: Feldolgozás

Letöltés Feldolgozás és fuss. Meglepődhet, ha úgy néz ki, mint amilyennek látszik majdnem pontosan mint az arduino fejlesztési környezet; azért, mert az arduino környezet alapul, bár mindkettő különböző funkciókat lát el. Fogd ezt a kódoteredetileg Szilícium Köztársaság de nagymértékben módosítottam, hogy a képernyő méretének beállítása automatikusan és jobb színviszonyok mellett történjen - és szánjon egy pillanatra átnézni. Alapjában véve egy Java osztályt hív Robot minden képernyőképet készíteni 10ms; ezután kiválaszt minden páratlan pixelt és átlagolja a teljes színt. Ha a teljesítmény problémát jelent számodra, növelje meg a kihagyási érték 3 vagy 4 értékre változtatható, hogy több pixelt átugorjon - a teljes effektusnak azonosnak kell lennie, de gyorsabban fog futni, mivel kevesebb pixelt vizsgál. Végül hozzáadtam egy szűrőt, amely elősegíti a szín telítettségét azáltal, hogy növeli a maximális RGB-értékeket és csökkenti a minimális RGB-értékeket (anélkül, hogy a színek túlságosan fehérek voltak).

Futtassa az alkalmazást; először valószínűleg hibát fog kapni, amikor megpróbálja elérni a rossz soros portot.

dinamikus környezeti megvilágítás

Ellenőrizze a hibakeresési ablakot az aktuális soros portok listáján, és jegyezze fel a számot az Arduino csatlakoztatása mellett. Az én esetemben Mac-nél az USB-kapcsolat a 4. portot jelenti. Változtassa meg a sor ezen számát a megfelelő portra:

port = új soros (ez, Serial.list () [4], 9600); // beállított adatátviteli sebesség

Mentés és újrafutás; egy felugró ablakot kell látnia - ez a képernyő minden színének átlagos színét képviseli. Indítson el egy festőalkalmazást vagy valami erőteljes színekkel való tesztelést, különben valószínűleg csak egy zavaros szürke árnyalat jelenik meg. Állítsa le az alkalmazást, amikor befejezte a tesztelést, mivel a soros port hozzáférésére van szükségünk az Arduino programozásához.

média központ fény

Végül, töltse be ezt a kódot tovább az Arduino-ba. Ahelyett, hogy véletlenszerű színeket küldne a LED-sávra, ez a kód a soros port értékeit olvassa be (amelyre a feldolgozás kiadja). Meglehetősen könnyű megérteni, az egyetlen bonyolult rész a marker használata a soros adatokban:

if (Serial.avable ()> = 4) { if (Serial.read () == 0xff) { piros = Serial.read (); zöld = Serial.read (); kék = Serial.read (); } }

Ez biztosítja a helyes byte-értékek beolvasását - a Processing alkalmazás egy jelölőt bocsát ki „töréspontként” az egyes értékek között, hogy az Arduino ne kerüljön ki a szinkronból, és azt gondolja, hogy a zöld értéknek szól kék stb.

Miután feltöltötte az Arduino kódot (kezdetben nem szabad kimenet lenni a LED-csíkon), akkor betöltheti és futtathatja a Processing alkalmazást; azonnal látnia kell, hogy működik a környezeti fény.

Itt található egy videofemutató arról, hogyan működött nekem egy véletlenszerű trippy zenei videóval.

Mit gondolsz?! Bár ez nem annyira lenyűgöző, mint valami, amely a képernyő minden részét elemzi és felhasználja egyedi LED pixelek, sokkal olcsóbb és sokkal fényesebb. Ennek egyetlen hátránya, hogy mindent a médiaközponti számítógépen kell futtatni - ez nem működik például a szokásos TV-műsorszórás vagy az Xbox 360 esetén. Ha bármilyen problémája, kérdése vagy javaslata van, kérjük, kérdezze meg; vagy talán link egy videóra a befejezett beállításokról.

James rendelkezik mesterséges intelligencia BSc-vel, CompTIA A + és Network + tanúsítvánnyal rendelkezik. A MakeUseOf vezető fejlesztője, és szabadidejét VR paintballon és társasjátékokon játszik. Gyerekkora óta épít PC-ket.