La Fiamma che non brucia con Neopixel e Arduino: l’Innovazione di questo Inverno

Basato su Neopixel e una speciale Arduino ultra-sottile, simula la luce prodotta dalla fiamma dei camini.

Come ogni anno, l’avvicinarsi della stagione invernale stimola la nostra fantasia e ci ricorda che l’elettronica può fare molto, non solo nel concreto (realizzando automatismi per la climatizzazione degli ambienti interni) ma anche nel diletto e nel tempo libero; ecco quindi nascere progetti in tema con la giovane ma affermata festività di Halloween, ereditata dalla tradizione anglosassone (ed ancor prima Celtica…) basati su giochi di luci e suoni per animare zucche, lanterne e quant’altro, ma anche cose per le festività di fine d’anno, come gli addobbi tecnologici per albero, case, vetrine.

Magari, vista la dilagante presenza delle attività commerciali e della comunità cinese, verrà anche il giorno in cui l’elettronica s’inventerà qualche gadget per l’orientale “Festa delle lanterne” ormai riproposta anche in Italia.

Ecco quindi che anche quest’anno abbiamo creato un gadget luminoso, sfruttando gli immancabili LED Neopixel e rispolverando, per il loro controllo, un nostro “cavallo di battaglia” che è il biglietto da visita Arduino-powered, vale a dire la Business Card FT1120 della Futura Elettronica, la quale sostanzialmente è una Arduino Leonardo in formato biglietto da visita, sottile e interattiva, ma molto versatile, tanto da poter montare, se non si vuole utilizzarla per l’applicazione d’elezione, anche gli header Arduino cui applicare eventuali shield.

Ne è nato un gadget molto suggestivo, che montato su un’opportuna cornice in plastica nera riportante internamente la sagoma di una fiamma, con dietro applicato uno strato di plexiglass bianco opaco, simula perfettamente il fuoco e può quindi diventare un effetto per un pub o un bar stile gotico o un po’ dark e, perché no, il cuore di un finto camino. La versatilità del progetto consente anche di creare forme differenti dalla fiamma (vedremo più avanti come), e inserendo i led in una zucca si può ottenere un un gadget luminoso per la festa di Halloween, dove dai fori, si diffonderanno le fiamme, illuminando tutto intorno con effetti spettacolari.

Certo, quello che otterremo in tal caso non sarà una vera fiamma fatta per scaldare, ma creerà un’atmosfera di calore virtuale con il fascino della fiamma e del suo ondeggiare che nelle giornate uggiose sicuramente apprezzeremo.

In fondo, come cantavano i “Nomadi” 50 anni fa, “…il fuoco di un camino non è caldo come il sole del mattino….” quindi anche il camino vero potrebbe non soddisfarvi….

Il progetto della fiamma che non brucia

Utilizzi a parte, in cui siamo certi di aver poco da insegnarvi, vediamo bene di cosa si tratta: il sistema è composto da una Arduino Business Card FT1120 che abbiamo programmato con uno sketch in grado, importando un’opportuna libreria, di pilotare degli spezzoni di strip a LED Neopixel contenenti un differente numero di diodi RGB e disposti opportunamente a formare la classica sagoma della fiamma.

Essendo la Bi-Card FT1120 un controller Arduino-compatibile, strutturalmente simile alla Leonardo, per la gestione dei LED Neopixel ci siamo affidati all’ampia disponibilità di librerie sfornate allo scopo dalla community di sviluppatori Arduino.

Tra quelle presenti in Rete, per gestire le strip Neopixel abbiamo scelto la popolare libreria Fastled, che abbiamo modificato personalizzandola in funzione delle esigenze di progetto; la scelta di tale libreria è stata dettata dal fatto che ha semplificato notevolmente la gestione dei LED Neopixel e perché tra le varie demo che integra offre l’effetto fiamma: quindi con essa abbiamo risolto buona parte della progettazione software.

Siccome la libreria non supporta il controllo del numero di strip che ci occorreva per disegnare la sagoma della fiamma (o meglio, per illuminarla) l’abbiamo però modificata per gestire più canali (strip) quindi non in serie; per l’esattezza, abbiamo 5 strip per dare la forma della fiamma e scorrere diversamente l’una dall’altra e la Fastled è stata adattata in modo da gestire 5 linee di I/O della scheda Arduino, che sono le digital I/O D8, D9, D10, D11 e D12.

Fin qui la gestione dei Neopixel; il firmware, però, si occupa anche di espletare altri compiti e nello specifico della lettura di due dei pulsanti presenti sulla scheda, che nel progetto originale della Business Card servivano ad attivare via USB le funzioni di apertura browser web per il puntamento alla pagina web del titolare, l’apertura del client di posta elettronica, nonché dei Social Network associati. Nello specifico utilizziamo il pulsante della posta elettronica (lo chiameremo pulsante 1) e quello per accedere al profilo Twitter (si chiamerà pulsante 2).

Per quanto riguarda le funzioni assegnate ad essi dal firmware, sono le seguenti:

  • P2 diventa il Pulsante 1 e serve sia per accendere il sistema, sia a circuito in funzione, per il cambio di effetto; il tasto è quello che nella scheda Bi-Card attiva l’apertura del cliente per l’e-mail;
  • P4 diventa il Pulsante 2, che se premuto spegne il gioco di luci, portando il microcontrollore in standby; il tasto è quello per aprire il Social Twitter.

L’insieme si può alimentare tranquillamente dal connettore microUSB (che in questo circuito è in grado di veicolare ben oltre 1 ampere) sfruttando il fatto chela Arduino Business Card ha le piazzole per gli header standard Arduino, tra le quali troviamo quelle corrispondenti al +5V e a massa.

I LED Neopixel che complessivamente la scheda deve pilotare sono 144 e questo numero non è casuale, bensì risulta da un compromesso tra le dimensioni desiderate per il sistema, quindi per la fiamma, e le caratteristiche dei prodotti disponibili in commercio; nel caso specifico abbiamo deciso di ricavare le strip da un rotolo di LED Neopixel commercializzato dalla futura Elettronica (codice 2846-1MNEO144) che conta, appunto, 144 diodi neopixel.

Si tratta di una striscia in rotolo indirizzabile contenente LED RGB ad alta luminosità, flessibile e resistente alle intemperie perché caratterizzata da grado di protezione IP67, caratteristica, questa, che potrebbe essere interessante nel caso voleste realizzare un gadget da far funzionare all’esterno.

Ogni singolo LED (SMD5050) integra il chip di controllo. Ciascun chip comunica con il successivo tramite una linea trasferendo le informazioni ricevute. La distanza tra i LED è 7 mm e la strip può essere tagliata ad ogni LED, vale a dire che ciascun LED può essere gestito individualmente, ma anche che dalla striscia possiamo ricavare strip del numero di Neopixel desiderato.

L’alimentazione della striscia è standard a 5 Vcc e l’assorbimento massimo con tutti i LED accesi di bianco alla massima potenza è 8,5A, ma questa condizione nel nostro circuito non si avvererà mai, perché al massimo avremo un assorbimento inferiore a 1,5 ampere.

Dal rotolo bisogna ritagliare 5 strisce e collegarle non casualmente, bensì con un certo ordine che è quello che il firmware si aspetta; per l’esattezza abbiamo la seguente corrispondenza fra pin di Arduino e numero di LED:

  • D8 pilota la strip da 27 Neopixel;
  • D9 pilota la strip da 31 Neopixel;
  • D10 pilota la strip da 41 Neopixel;
  • D11 pilota la strip da 28 Neopixel;
  • D12 pilota la strip da 17 Neopixel.

Si può personalizzare la disposizione dei LED RGB ed anche il numero di quelli componenti ciascuna porzione, ad esempio per disegnare la zucca tipica di Halloween con gli occhi luminosi, ma occorre mettere mano al firmware e alla rispettiva librera.

In tema di firmware, sebbene la libreria Fastled sbrighi buona parte dei compiti, lo sketch risulta comunque lungo per poterlo pubblicare interamente in questo articolo, quindi ne riportiamo solamente un estratto nel Listato 1 dove potete vedere le “define” del codice.

In esso potete notare le istruzioni che definiscono il numero di LED componenti i singoli spezzoni di strip, che sono quelle da andare a modificare nel caso intendiate cambiare forma e lunghezza delle porzioni di striscia a LED; i valori attuali corrispondono alle lunghezze predefinite delle strip riportate nel disegno in cima alla pagina.

Inoltre se volete (potete farlo tranquillamente) aggiungere canali e quindi strip Neopixel rispetto alle cinque previste, dovete aggiungere le relative define e adeguare lo sketch, che potrete scaricare dala sezione download in fondo a questo post.

Schema di cablaggio della fiamma

Realizzazione pratica

Ciò detto, passiamo ora alle note costruttive, premettendo che la scheda Arduino Business Card si acquista già pronta dalla Futura Elettronica presso la quale è possibile reperire tutto il materiale occorrente, compreso il rotolo strip Neopixel da 144 LED e i pannelli tagliati a laser con cui preparare il telaio che abbiamo pensato per dare alla fiamma un aspetto più accattivante e nel complesso elegante abbastanza da fare del sistema proposto anche un gradevole elemento d’arredo da tenere su un tavolino da salotto o su uno scaffale per creare una certa atmosfera.

Ricordiamo che dal rotolo bisogna ritagliare cinque spezzoni, da 17, 27, 28, 31 e 41 LED RGB.

La parte elettronica si collega basandosi sullo schema di cablaggio visibile in questo post, molto semplice ed essenziale: in pratica si tratta di collegare con un filo elettrico in guaina (meglio di diverso colore per non confondersi) uno spezzone di strip a LED con il rispettivo pin di Arduino, quindi di portare, con della piattina rosso-nera da 2×0,5 mm di sezione, i 5 volt dalle piazzole GND e 5V laterali della scheda (quelle destinate ad accogliere gli header Arduino) ai contatti omonimi della prima strip Neopixel e da questi ponticellare e ripetere l’alimentazione verso le altre quattro, sempre impiegando dei fili rosso e nero, rispettivamente per +5V e GND.

Ricordiamo che la strip di minore lunghezza va collegata con il contatto dati in ingresso DIN al D12 della Arduino Bi-Card, quella da 27 LED va al D8, lo spezzone da 28 LED va connesso con DIN a D11, quello da 31 elementi va al D9 e, infine, lo spezzone da 41 LED va collegato con DIN al D10 della scheda.

L’alimentazione per l’insieme passa dalla scheda e può essere prelevata da un alimentatore lineare o switching, ad uscita stabilizzata a 5V – 1,5A dotato di cavetto terminante con connettore microUSB.

Telaio e assemblaggio

Il resto è tutto nella parte meccanica, ossia nel telaio, che noi abbiamo pensato come vedete dalle foto proposte in queste pagine (in particolare dalla Fig. 1): si tratta di una struttura in plexiglass spesso 3 mm formata da:

una lastra scavata internamente secondo la sagoma della fiamma che è la parte più avanzata (misura 155×360 mm con base allargata a 189,4 mm);

una lastra rettangolare in plexiglass bianco delle stesse dimensioni, applicata dietro ad essa a diretto contatto o spaziata tramite distanziali da 5 o 6 mm (misura 1 mm in meno di quella frontale su ciascun lato);

una lastra di fondo in plexiglass nero delle stesse dimensioni di quella frontale, cui si applicano, incollandole mediante nastro biadesivo morbido o silicone sigillante, le strip di LED come mostrato nella Fig. 2.

Fig. 1 Le parti in plexiglass componenti il telaio.

Fig. 2 Come montare le strip di LED Neopixel in modo che una volta accesi riproducano correttamente l’aspetto della fiamma.

Le tre lastre sono unite mediante quattro set di colonnine distanziali cilindriche e altrettanti bulloni 4MA con dado, che nel nostro caso specifico abbiamo scelto a brugola con testa cilindrica, come vedete dalle foto del prototipo.

Sempre nella nostra versione, abbiamo previsto un contenitore stampato in 3D fatto di PLA nero; anch’esso, come le lastre in plexiglass, si acquista presso la Futura Elettronica.

Questo involucro è stato avvitato dietro alla lastra posteriore che fa da supporto alle strip Neopixel ed ha il coperchio posteriore con due copri-pulsante flessibili ritagliati in modo da premere sui tasti P1 e P2 della scheda Business Card (Fig. 3).

Fig. 3 Il contenitore pensato per la scheda, avvitato sul retro della piastra di fondo.

 

Quanto ai collegamenti, potete prendere spunto dalla Fig. 4, dove vedete i fili utilizzati per il cablaggio alle strip di LED, che sono parte di una piattina multicolore; notate come i fili siano fermati mediante del nastro adesivo ed escano posteriormente da una feritoia ricavata nella lastra su cui sono montate le strip, così da rendere agevole il cablaggio con la scheda, che a prescindere dalla scelta o meno di dotarla del contenitore stampato in 3D, sarà da collocare posteriormente per non interferire con il resto della struttura, né con la propagazione della luce prodotta dai LED Neopixel.

Naturalmente il tipo di involucro da noi pensato e proposto in queste pagine dalle foto è un’idea ed una delle tante possibilità; nulla vi vieta di ripensare la struttura ed anche la forma, ad esempio semplificando l’insieme e componendolo di due sole lastre rettangolari o quadrate, una di fondo e una frontale in plexiglass bianco, cui poi applicherete della pellicola adesiva nera ritagliata con la sagoma della fiamma scavata.

Insomma, potete lanciare a briglie sciolte la vostra fantasia, perché quello che conta è il cablaggio elettrico; il resto si adatta alle vostre esigenze.

Fig. 4 Collegamenti alle strip a LED.

Programmazione della scheda e collaudo

Per quanto riguarda la programmazione del sistema (il firmware) lo sketch si carica come in qualunque scheda Arduino, nel senso che si programma utilizzando l’IDE Arduino come fosse una scheda di terze parti; allo scopo bisogna aprire l’IDE (dev’essere almeno una versione 1.6.x) e impartire il comando di menu Strumenti>Scheda>Boards Manager con il quale accedete al menu che riepiloga le schede disponibili, nel quale farete clic su Arduino Leonardo.

A questo punto si deve connettere la Arduino Bi-Card al Personal Computer tramite un cavetto terminante con il connettore microUSB, aprire la COM assegnata ad essa, fermo restando che durante la programmazione non bisogna alimentare la scheda con altre fonti di tensione, altrimenti si verificherebbe un conflitto fra l’alimentazione USB e quella esterna, con conseguente danneggiamento della scheda e o del computer.

Ora andate ad aprire (File/Apri) lo sketch scaricabile dal nostro sito www.elettronicain.it insieme agli altri file del progetto e cliccate sul pulsante di invio per caricarlo nella memoria della scheda Arduino Business Card.

Terminato il caricamento, sconnettete il cavetto dalla presa microUSB e il circuito è pronto per l’uso; collegate quindi il connettore dell’alimentatore alla microUSB e premete il Pulsante 1 per far accendere la fiamma: vedrete subito in funzione la stupenda animazione di cui è capace, che verrà enfatizzata se il dispositivo verrà acceso in un locale poco illuminato.

Conclusioni

La nostra fiamma a LED Neopixel è un ottimo gadget da utilizzare in molteplici situazioni, facilmente realizzabile e pienamente personalizzabile sia sotto l’aspetto meccanico (si può cambiare a piacimento la sagoma e di conseguenza la disposizione delle strip a LED), sia per quel che riguada l’elettronica; sotto questo aspetto, come accennato, potete modificare il numero e la quantità di strip Neopixel e rispettivi LED adeguando lo sketch.
Buon lavoro!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu