ESP8266 e Led Matrix 16×16, eseguire GIF animate

Dopo aver recensito il pannello di led RGB, ecco il primo ‘tutorial’ per poter visualizzare semplici animazioni attraverso ESP8266 e Led Matrix 16×16. Con l’implementazione di GIF animate e loghi personalizzabili.

Materiali e strumenti necessari:

Il pannello lo abbiamo recensito qui. Abbiamo utilizzato un pannello compatibile WS8212b, con i led 5050 da 5V e in teoria 20mA per ‘canale’ (ogni led ha 3 ‘canali’ R,G e B). Calcolando quindi 60mA per Led 60mA x 256, ci serviranno minimo 15,36 Ampere per il bianco totale e tutti i led e canali accesi.

Un’alimentatore da 5v e 20A sarà quindi più che sufficiente per l’illuminazione completa del pannello. Anche il modulo NodeMCU con il processore ESP8266 lo abbiamo già recensito su info4blog.it e lo apprezziamo per la sua economicità e ‘duttilità’. Ricordiamo che il modulo è completo anche di Wi-Fi, qui informazioni più specifiche.

Ultimo ma non meno importante, cavetteria varia necessaria. I cavi pin femmina-femmina sono comodi e necessari per essere inseriti e staccati quante volte si vuole.

ESP8266 e Led Matrix 16×16: il collegamento

Il collegamento è molto semplice: come abbiamo già visto il modulo NodeMCU può essere collegato direttamente al PC o Mac tramite la sua USB in fase di programmazione.

I 3 fili che includono il D-IN andranno collegati al Modulo, GND e VCC. Il pin DIN andrà collegato al GPIO del NodeMCU. Io per esempio scelgo sempre il GPIO 2, che corrisponde al PIN D4.

Attenzione: se si vuole collegare direttamente il pannello al modulo, e lo vogliamo alimentare solo tramite USB del PC per le varie prove, bisogna impostare la sua luminosità, tramite codice di programmazione, al minimo. La variabile ‘Brightness’ di solito è già impostata di default al minimo, di solito intorno ai 30, ma naturalmente varia di caso in caso.

Una volta scelto il progetto definitivo, bisogna scollegare il modulo dall’USB del PC, e collegare i due fili di alimentazione del pannello all’alimentatore. Quest’ultimo dovrà alimentare, giustamente, anche il modulo NodMCU.

Di seguito i due schemi di collegamento. Il primo quello per le prove, collegato al PC. Il secondo (STACCATO dal PC) connesso direttamente con l’alimentatore per la versione definitiva del progetto.

ESP8266 e Led Matrix 16x16
Collegamento per prove ed esperimenti (ricordarsi di attenuare la luminosità nel codice: Brightness=30)
ESP8266 e Led Matrix 16x16
Collegamento definitivo del progetto finale (STACCATO dalla usb del pc)

Ricordiamo ancora: NON collegate il modulo al PC, se il modulo stesso è COLLEGATO all’alimentatore. Rischiate il PC stesso.

Software, ESP8266 e Led Matrix 16×16:

Come ampiamente spiegato nella recensione dal pannello Led Matrix 16×16, attraverso Arduino IDE sono presenti le librerie specifiche.

In questo caso proverò la libreria FastLed NeoPixel. In particolare il primo esempio espgifread.

ESP8266 e Led Matrix 16x16

I valori principali da modificare sono nella parte finale del codice del ‘tab’ principale, “WS2811_PORTA” che nel nostro caso modificheremo in “NEOPIXEL” e il numero successivo che rappresenta il PIN. In questo caso : 2, visto che il D-IN del pannello l’ho collegato al pin D4 del NodeMCU con ESP8266 (GPIO2).

La riga che inizia con “FastLED.addLeds” sarà modificata in questo modo:

FastLED.addLeds<NEOPIXEL,2>(matrixleds, NUMMATRIX).setCorrection(TypicalLEDStrip);

Gli altri valori da modificare sono nella scheda ‘config.h‘. Precisamente sono il numero di Led orizzontali e verticali, e il numero del pannelli utilizzati:

#define MATRIX_TILE_WIDTH 16 // Numero Led in Larghezza per pannello
#define MATRIX_TILE_HEIGHT 16 // Numero Led in Altezza per pannello
#define MATRIX_TILE_H 1 // Numero di pannelli messi in orizzontale
#define MATRIX_TILE_V 1 // Numero di pannelli messi in verticale

In basso sempre nel tab “config.h” lasciare il valore di matrix_brightness a 32 o più basso. Questo per poter usare l’alimentazione dell’USB del PC/Mac.

Come caricare i file GIF nella memoria flash del modulo (in questo caso NodeMCU/ESP8266).

Nella cartella del progetto è presente a sua volta una cartella chiamata ‘data‘. Il contenuto di questa cartella sarà trasferito nella memoria flash attraverso il comando “ESP8266 Sketch Data Upload” sotto il menù “Strumenti” del programma Arduino IDE. Questo vale per ogni progetto.

In questo esempio nella cartella ‘data‘ saranno presenti le GIF da visualizzare. Se aprite la cartella, tramite menu “Sketch‘ e poi ‘Apri Cartella della Sketch‘ potete visualizzare le GIF di esempio a 32x32pixel, nella cartella ‘gifs’.

Qui di seguito, per comodità, ho convertito le GIF a 16X16 per poter essere tranquillamente utilizzate con il pannello 16X16 in questione. Basta sostituirle e inserirle tramite “ESP8266 Sketch Data Upload“. Trascinatele prima sul desktop e poi all’interno della cartella ‘gifs’, eliminando quelle esistenti.

In teoria potete aggiungere tutte le GIF che volete, basta che rispettino le misure di 16X16 : andranno eseguite in ordine tutte le GIF all’interno della memoria flash del modulo in questione.

Come si può capire dalle righe di codice la pausa fra un ‘frame‘ e l’altro è impostato di default a 50 millisecondi, potete naturalmente modificare questo valore anche in base alla tipologia della GIF.

Osservate, per esempio, le righe di codice seguenti, che andrebbero inserite al posto di delay(50) sotto la riga ‘matrix->show();‘.

if (fileName=="/gifs/prova.gif") {
delay(200);
} else delay(50);

In questo caso soltanto la GIF chiamata “prova.gif” nella cartella ‘gifs’ avrà una pausa di 200 millisecondi fra un frame e l’altro. Naturalmente questa è solo l’esempio di una GIF chiamata ‘prova.gif’ che necessita pause più lunghe del necessario.

Una volta caricati sia il programma che le GIF, si vedranno le varie animazioni, che sul pannello risulteranno anche più suggestive.

Esempio Pannello 16X16

Con lo stesso schema di collegamento, naturalmente potrete eseguire tutti gli esempi di questa e altre librerie attinenti elencate nell’articolo della recensione del pannello Led Matrix 16×16.

Seguiranno sicuramente altri tutorial interessanti che riguarderanno ESP8266 e Led Matrix 16×16, continuate a seguirci.

1 thought on “ESP8266 e Led Matrix 16×16, eseguire GIF animate

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.