lunedì 17 febbraio 2014

RGB Heart




Dopo tanto tempo rieccomi con un nuovo articolo.
Questa volta vi farò vedere la realizzazione di una scatoline portagioie in legno, di quelle che si usano per il decoupage, a forma di cuore, tutta tempestata di Led RGB.
Sono stregato dai Led RGB, sono una vera passione.
Per questo progetto ho usato una striscia di Led basati sull'integrato WS2812.
Il grande vantaggio di una Led Strip basata su questo integrato sta nel fatto che è possibile pilotare una enorme quantità di Led utilizzando un solo pin di un Microcontrollore.

In sintesi il WS2812 è uno shift register. Per accendere un Led è sufficiente inviare alla strip una sequenza di 24 bit(8 bit per ogni colore secondo l'ordine GRB) per farlo accendere del colore che si desidera, con una risoluzione di 24 bit.
Se si inviano multipli di 24 bit il primo WS2812 prenderà i primi 24 bit per illuminare il suo led. Il resto lo invia tramite il piedino Data Out al Data In dell'integrato successivo, che userà le coordinate GRB per illuminare il suo Led e così via, per tutta la Strip.

Un Led RGB basato sul WS2812


Di seguito alcune foto e spiegazioni sulla realizzazione della parte hardware. Geppetto at work!

Preparazione fori
Ho cominciato con lo smontare la scatolina e mettere da parte la parte inferiore, per occuparmi della parte superiore.
Dopo aver realizzato una dima con Photoshop, ho fatto i 12 fori necessari all'alloggiamento dei Led. Purtroppo il compensato di cui è fatta la scatolina è piuttosto delicata ed alcuni fori sono rimasti scheggiati(il bianco che si vede è un tentativo di sistemarli con lo stucco).

Led Strip pronta per essere montata nei fori



I Led della strip sono stati tagliati e adeguatamente ricollegati per essere fissati nei fori. In origine la Strip che ho acquistato aveva 60 Led/metro. I tre fili che escono alla fine sono +5V, GND e Data In.























Poco da dire qui. I Led vengono fissati da sotto con del biadesivo. La mia intenzione è quella di renderli invisibili finchè sono spenti, in modo da accentuare l'effetto sorpresa una volta acceso l'interruttore.



















Per rimpire i fori ho usato della resina epossidica 5 minuti, di quelle che si trovano nei negozi di modellismo. E' facile da usare, pratica e una volta asciutta è carteggiabile e verniciabile. Una volta seccata la resina provvedo a carteggiarne l'eccesso con della carta vetrata piuttosto fine (240 o più), per cercare di preservare il legno. Alla fine del processo la superficie dovrà essere completamente liscia.




Non ho fotografato tutti i passaggi, ma solo il risultato finale.
Il legno è stato prima trattato con due mani di Vinavil come turapori. Dopo ho usato due mani di bianco acrilico Mamieri e infine un paio di mani di flatting trasparente. Il risultato è perfettibile lo so, ma è la mia prima opera del genere. Sono molto soddisfatto! 
Tutti i prodotti usati sono a base d'acqua. La resa è peggiore dei prodotti a base di diluenti sintetici, ma mi piaceva così...

Qualche altra foto della scatolina completa...




Ed ora passiamo alla parte elettronica.
Lo sviluppo del codice necessario alle sequenze che si vedono nel filmato finale sono state effettuate utilizzando un Microcontrollare MSP430 della serie LaunchPad di Texas Instruments. Dopo il successo di Arduino diverse compagnie hanno deciso di creare dei sistemi di sviluppo semplici da usare, economici e con caratteristiche spesso superiori ad Arduino stesso.
Per il mio progetto mi sono basato su un MSP430g2553 che avevo in giro, usando come ambiente di programmazione Energia, un porting dell'ambiente Arduino per una serie di processori della serie MSP430 di Texas. Economicamente non ci sono rivali con Arduino: Un Launchpad con 2 Microcontrollori, il MSP430g2231 e MSP430g2452 costa 9.90$ inclusa la spedizione. Io li ho pagati 4.30$ in un deal che ogni tanto Texas Instruments fa. Mettetevi in bookmark la pagina tideals.com, per il vostro prossimo affare!
Per mia fortuna è stato fatto il proting anche della libreria WS2812, facilitandomi non poco la scrittura del codice.

 
Launchpad durante la fase di sviluppo.

Dal punto di vista delle connessioni il lavoro è stato piuttosto semplice: ho usato P1.3 per il pulsante che cambia la sequenza, il pin P1.4 invece è l'input A/D del potenziometro che gestirà la velocità/luminosità della sequenza. P1.7 è invece il pin che invia lo stream di dati al WS2812.

Ops, fuori fuoco!

Ecco l'MSP430 trasferito dal Launchpad ad una basetta custom made. In alto è presente un regolatore di tensione TLV1117 a 3.3V, ncessario per alimentare il Microcontrollore. L'alimentazione proverrà da una porta USB. L'unica attenzione da fare è relativa ai consumi: ogni led RGB consuma fino a 60mA, quindi è necessario prevedere un'alimentatore in grado di erogare fino a 700mA. Nel mio caso in realtà non ci saranno mai più di due colori accesi per ogni led, per un massimo di 480mA

Collegamenti effettuati, ultimo test e poi copertura.



Ed ecco il risultato finale!


Il codice utilizzato è disponibile per chiunque ne farà richiesta. Grazie per l'attenzione!

Nessun commento: