Annuncio pubblicitario
Se guardi molti film sul tuo PC o media center, sono sicuro che hai affrontato il dilemma dell'illuminazione; spegni completamente tutte le luci? Li tieni al massimo? O usi un dimmer per mantenere un bagliore giallo opaco da qualche parte? Bene, non soffrire più.
Per meno di $ 100, puoi creare un fantastico sistema di illuminazione che rifletterà ciò che è sullo schermo; se il video è una scena notturna blu, le luci saranno blu; quando una fiammata di fuoco arancione lampeggia, così faranno le tue luci. Benvenuti nel mondo dell'illuminazione RGB ambientale.
componenti
- Striscia di luce RGB - questa è una striscia di 5 metri di LED RGB che può essere acquistata su eBay e spedita da Hong Kong per meno di £ 20 ciascuno. Se acquisti nei negozi di elettronica pagherai al metro e una bobina di 5m costerà tre o quattro volte, quindi acquista online. Questo tipo di strisce a LED può essere modificato in qualsiasi colore, ma solo in una volta - non possono essere regolate individualmente.
- Alimentazione 12v: la potenza (ampage) richiesta dipende da quante strisce di LED si collegheranno. Ogni metro assorbe circa 0,6 amp, ma questo dipende dalla densità dei LED, quindi assicurati di controllare la tua particolare striscia LED. 3A sarebbe sufficiente per la striscia di 5m che ho collegato sopra, e gli alimentatori separati possono essere acquistati per circa £ 10 se non è possibile reperirne uno altrove.
- 3 x Transistor MOSFET N. - Probabilmente trovi più economico, ma ho comprato un pacchetto di 6 (tipo STP16NF06FP) per circa £ 10. Questi sono usati per isolare la corrente dall'Arduino - collegare le strisce direttamente all'Arduino la friggerebbe con la quantità di corrente che assorbono. È necessario 1 transistor MOSFET per canale di colore LED, per rosso, verde e blu.
- Arduino Che cos'è Arduino e cosa puoi farci?L'Arduino è un piccolo dispositivo elettronico straordinario, ma se non ne hai mai usato uno prima, esattamente cosa sono e cosa puoi fare con uno? Leggi di più - Non ho incluso il costo di questo articolo poiché si presume che tu ne abbia già uno e ci sono una varietà di cloni che puoi acquistare se non puoi permetterne uno ufficiale.
Il costo totale era quindi intorno £40 escluso l'Arduino.
introduzione
Il progetto si compone di due parti. Per prima cosa creeremo un circuito Arduino di base che ascolta i comandi dal computer e imposta i LED RGB su un colore appropriato. Il secondo prevede l'utilizzo di una nuova applicazione chiamata in lavorazione e Java sul lato computer - per capire a quali colori sono attualmente sullo schermo, fare una media e inviarli alla porta di comunicazione seriale per far reagire Arduino.
Parte 1: Circuit e Arduino
Il circuito che stiamo utilizzando è molto semplice, come puoi vedere dallo schema seguente. La striscia LED deve essere fornita con una spina maschio su un'estremità che è possibile posizionare direttamente nella breadboard.
La tua striscia LED può variare, ma se guardi da vicino vedrai 12v, R, G, B scritto sulle rotaie da qualche parte. Queste strisce possono effettivamente essere tagliate in questi punti di rame (ogni 3 LED su quelli che ho), quindi se vuoi tagliare le strisce a negli angoli della tua TV puoi farlo tranquillamente: non devi nemmeno usare tutti i 5m, quindi potresti averne un po 'per un futuro progetto. Collegare il positivo 12v direttamente all'alimentazione esterna.
I MOSFET hanno tre pin; cancello, drain, e fonte. Il cancello è come l'interruttore elettronico che Arduino controllerà. Ciò determina quindi il flusso di corrente tra sorgente e drain. Lo scarico di ciascun MOSFET deve essere collegato alla terra dell'Arduino e alla terra dell'alimentatore, mentre la sorgente si collega ai canali della striscia LED.
Quando hai completato il circuito, scarica ed esegui questo codice di prova (originario di LadyAda, spille modificate). Dovresti vedere la tua striscia LED roteare attraverso una varietà di colori.
Parte 2: Elaborazione
Scarica in lavorazione e corri. Potresti essere sorpreso di trovare l'aspetto quasi esattamente come l'ambiente di sviluppo di Arduino; questo perché l'ambiente Arduino era basato su di esso, sebbene entrambi svolgano funzioni diverse. Prendi questo codice – originariamente di Repubblica siliconica ma fortemente modificato da me per rendere le impostazioni della dimensione dello schermo automatiche e con una migliore rappresentazione dei colori - e prenditi un momento per guardarci sopra. Fondamentalmente usa una classe Java chiamata Robot fare una cattura dello schermo ogni 10ms; quindi seleziona ogni pixel dispari e fa una media del colore totale. Se le prestazioni sono un problema per te, aumenta il valore_salto variabile a 3 o 4 per saltare più pixel: l'effetto complessivo dovrebbe essere lo stesso ma verrà eseguito più velocemente poiché esamina meno pixel. Infine, ho aggiunto un filtro che aiuta a saturare il colore aumentando il massimo e diminuendo i valori RGB minimi trovati (senza questo, ho trovato i colori troppo bianchi).
Esegui l'app; la prima volta, probabilmente si verificherà un errore nel tentativo di accedere alla porta seriale errata.
Controlla la finestra di debug per un elenco delle attuali porte seriali e nota il numero accanto a quello in cui è collegato Arduino. Nel mio caso su un Mac, la connessione USB è la porta 4. Cambia il numero in questa riga nella porta corretta:
port = new Serial (this, Serial.list () [4], 9600); // imposta la velocità di trasmissione
Salva e riesegui; dovresti vedere una piccola finestra pop-up - questo rappresenta il colore medio di tutto sullo schermo. Avvia un'app di pittura o qualcosa con colori forti per provarla, altrimenti probabilmente mostrerà solo una sfumatura di grigio oscuro. Interrompi l'applicazione quando hai terminato i test poiché abbiamo bisogno dell'accesso alla porta seriale per programmare Arduino.
Infine, carica questo codice sul tuo Arduino. Invece di inviare colori casuali alla striscia LED, questo codice legge i valori dalla porta seriale (a cui sta elaborando Elaborazione). È abbastanza facile da capire, l'unica parte difficile potrebbe essere l'uso di un marcatore nei dati seriali:
if (Serial.available ()> = 4) { if (Serial.read () == 0xff) { rosso = Serial.read (); green = Serial.read (); blue = Serial.read (); } }
Questo assicura che leggiamo i valori di byte corretti: l'app di elaborazione genera un marcatore come "punto di interruzione" tra ogni set di valori in modo che Arduino non si discosti e pensi che il valore verde sia per blu ecc.
Una volta caricato il codice Arduino (inizialmente non dovrebbe esserci alcun output sulla striscia LED), è possibile caricare ed eseguire l'app Processing; immediatamente dovresti vedere la tua luce ambientale in funzione.
Ecco una demo video di come ha funzionato per me con alcuni video musicali trippy casuali.
Cosa ne pensi?! Sebbene non sia così impressionante come qualcosa che analizza ogni parte dello schermo e li utilizza singoli pixel LED, è molto più economico e molto più luminoso. L'unico aspetto negativo di questo è che tutto deve essere eseguito sul tuo computer media center, ad esempio non funzionerà con le normali trasmissioni TV o la tua Xbox 360. In caso di problemi, domande o suggerimenti, si prega di chiedere via; o forse link a un video della tua configurazione completata.
James ha una laurea in Intelligenza Artificiale ed è certificato CompTIA A + e Network +. È lo sviluppatore principale di MakeUseOf e trascorre il suo tempo libero giocando a paintball e giochi da tavolo VR. Costruisce PC da quando era un bambino.