Oglas
Ako gledate puno filmova na računalu ili medijskom centru, siguran sam da ste se suočili s dilemom rasvjete; potpuno isključite sva svjetla? Držite li ih u punoj eksploziji? Ili koristite zatamnjivač kako biste negdje zadržali prljav žuti sjaj? Pa, ne trpi više.
Za manje od 100 USD možete postaviti nevjerojatan sustav rasvjete koji će odražavati ono što se prikazuje na zaslonu; ako je video plava noćna scena, svjetla će biti plava; kada plamen narančaste vatre gori, tako će se i vaša svjetla. Dobrodošli u svijet ambijentalne RGB rasvjete.
komponente
- RGB svjetlosna traka - ovo je traka RGB LED-a od 5 metara koja se može kupiti na eBayu i otpremiti iz Hong Konga za manje od 20 funti. Ako kupujete u trgovinama elektronike platit ćete brojilom, a kolut od 5 milijuna koštat će tri ili četiri puta više, stoga kupujte na mreži. Ove vrste LED traka mogu se promijeniti u bilo koju boju, ali samo sve odjednom - ne mogu se pojedinačno prilagoditi.
- 12v napajanje - potrebna snaga (ampage) ovisi o tome koliko LED traka ćete spojiti. Svaki metar crta otprilike 0,6 ampera, ali to ovisi o gustoći vaših LED-ova, stoga obavezno provjerite pojedinu LED traku. 3A bi bilo dovoljno za gornju traku od 5 metara, a odvojeni izvori napajanja mogu se kupiti za oko 10 funti ako ih ne možete pronaći negdje drugdje.
- 3 x MOSFET N tranzistora - možete probati naći jeftinije, ali kupio sam paket od 6 (vrsta STP16NF06FP) za oko 10 £. Koriste se za izoliranje struje iz Arduinoa - spajanje traka izravno na Arduino pržilo bi je količinom struje koju vuku. Potreban vam je 1 MOSFET tranzistor po kanalu LED boja, za crvenu, zelenu i plavu.
- Težak Što je Arduino i što možete učiniti s tim?Arduino je izvanredan mali elektronički uređaj, ali ako ga nikada prije niste koristili, samo što su točno i što možete učiniti s jednim? Čitaj više - Nisam uključio troškove ove stavke, jer se pretpostavljalo da je već imate, a postoji mnoštvo klonova koje možete kupiti ako si ne možete priuštiti službeni.
Ukupni trošak je, dakle, bio oko £40 ne uključuje Arduino.
Uvod
Projekt se sastoji iz dva dijela. Prvo ćemo stvoriti osnovni Arduino sklop koji sluša naredbe s računala i postaviti RGB LED na odgovarajuću boju. Drugi uključuje upotrebu nove aplikacije pod nazivom Obrada i Java na računalu - kako biste utvrdili koje su boje trenutno na zaslonu, procijenili ih prosječno i poslali na ulaz za serijsku komunikaciju na koji će Arduino reagirati.
Dio 1: Krug i Arduino
Krug koji koristimo je vrlo jednostavan, kao što vidite na donjem dijagramu. LED traka treba biti isporučena s muškim utikačem na jednom kraju koji možete postaviti izravno u ploču.

Vaša LED traka može se razlikovati, ali ako pogledate pažljivo, vidjet ćete 12v, R, G, B napisano negdje na tračnicama. Te se trake zapravo mogu rezati na tim bakrenim točkama (svaka 3 LED-a na onim koje imam), tako da ako želite rezati trake na kutove vašeg TV-a to sigurno možete učiniti - ni 5 m ne trebate koristiti, pa će vam možda ostati malo za budućnost projekt. Pozitivnih 12 V priključite izravno na vanjsko napajanje.

MOSFET-ovi imaju tri igle; vrata, odvod, i izvor. Vrata su poput elektroničke sklopke kojom će Arduino upravljati. Time se određuje struja koja teče između izvora i odvoda. Odvod svakog MOSFET-a treba biti spojen na tlo Arduino-a i na zemlju napajanja, dok se izvor spaja na kanale LED trake.

Kada završite krug, preuzmi i pokreni ovo testni kod (porijeklom iz LadyAda, izmijenjeni su igle). Trebali biste vidjeti svoju LED traku kako se okreće u raznim bojama.

Dio 2: Obrada
preuzimanje datoteka Obrada i trči. Možda ćete se iznenaditi kad to izgleda gotovo točno poput Arduinovog razvojnog okruženja; to je zato što se Arduino okruženje temeljilo na tome, iako obje obavljaju različite funkcije. Uzmi ovaj kod – izvorno od Silicijska republika ali ja uvelike izmijenjena kako bih postavke veličine ekrana postala automatska i s boljom reprezentacijom boja - i odvojite trenutak da ga pogledate. U osnovi koristi klasu Java koja se zove Robot napraviti svaki snimak zaslona 10ms; tada odabire svaki neobičan piksel i prosječno postigne ukupnu boju. Ako je za vas problem uspješnosti, povećajte vrijednost skipValue promjenjiva na 3 ili 4 za preskakanje više piksela - sveukupni učinak trebao bi biti isti, ali pokrenut će brže jer ispituje manje piksela. Na kraju sam dodao filter koji pomaže u zasićenju boje povećanjem maksimalnih i smanjenjem pronađenih minimalnih RGB vrijednosti (bez ovoga sam otkrio da su boje previše bijele).
Pokrenite aplikaciju; prvi put, vjerojatno ćete dobiti pogrešku dok pokušava pristupiti pogrešnom serijskom priključku.

Provjerite u prozoru za uklanjanje pogrešaka popis trenutnih serijskih portova i zabilježite broj pored onoga u koji je vaš Arduino priključen. U mom slučaju na Mac računalu, USB priključak je port 4. Promijenite broj u ovom retku u ispravan ulaz:
port = novi Serial (ovaj, Serial.list () [4], 9600); // postaviti brzinu prijenosa
Spremite i ponovo pokrenite; trebali biste vidjeti mali skočni prozor - to predstavlja prosječnu boju svega na zaslonu. Pokrenite aplikaciju za slikanje ili nešto jakih boja da biste je testirali, inače će vjerojatno prikazati samo mutnu nijansu sive. Zaustavite aplikaciju kada završite testiranje jer nam treba serijski ulaz za programiranje Arduino-a.

Posljednje, učitajte ovaj kod na svoj Arduino. Umjesto slanja nasumičnih boja na LED traku, ovaj kod očitava vrijednosti iz serijskog porta (na koji obrada izlazi). To je prilično lako razumjeti, jedini težak dio može biti upotreba markera u serijskim podacima:
ako je (Serial.available ()> = 4) { ako je (Serial.read () == 0xff) { crvena = Serial.read (); zelena = Serial.read (); plava = Serial.read (); } }
To osigurava da čitamo ispravne vrijednosti bajta - aplikacija Processing daje oznaku kao "prekidnu točku" između svakog niza vrijednosti, tako da se Arduino neće isključiti i misliti da je zelena vrijednost za plava itd.
Nakon što se prenese Arduino kod (prvo na LED traci ne bi trebao biti izlaz), tada možete učitati i pokrenuti aplikaciju Processing; odmah biste trebali vidjeti svoje ambijentalno svjetlo kako radi.
Evo video demonstracije kako mi je uspjelo s nekim nasumičnim trostrukim glazbenim videom.
Što misliš?! Iako nije baš impresivno kao nešto što analizira svaki dio zaslona i koristi pojedinačni LED pikseli, to je puno jeftinije i puno svjetlije. Jedina mana ovoga je da se sve mora izvoditi na računalu vašeg medijskog centra - na primjer, to neće raditi s redovitim emitiranjem televizije ili Xbox 360. Ako imate bilo kakvih problema, pitanja ili prijedloga, onda ih molimo pitajte; ili možda povezujete na videozapis dovršenog postava.
James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.