Pilotare NeoPixel via I2C con Adafruit NeoDriver

LED Neopixel

I LED NeoPixel (nella famiglia WS2812) rappresentano un modo semplice per aggiungere illuminazione RGB indirizzabile con un solo GPIO.

Sono onnipresenti sui microcontrollori, ma alcuni chip o computer a scheda singola (SBC) non supportano i NeoPixel a causa della tempistica di precisione richiesta per l’invio dei dati.

Spesso ci si chiede come far funzionare i NeoPixel su alcune schede di tipo Pi di OrangeBananaOnionRockchipAllWinner, dato che disponiamo della nostra libreria Blinka che supporta le librerie CircuitPython, inclusa la libreria NeoPixel. Ma se non esiste un’implementazione neopixel_write scritta per quella piattaforma, semplicemente non funzionerà. E scrivere la funzione neopixel-writer non è banale su molti chip: servono davvero GPIO veloci e tempi perfetti al nanosecondo.

LED Neopixel

Una soluzione rapida è questa scheda NeoDriver basata su seesaw: invia i dati NeoPixel che vuoi scrivere tramite I2C e lui eseguirà la sincronizzazione perfetta dei pixel dall’altra parte. Stiamo usando un ATtiny1616, quindi abbiamo abbastanza RAM per bufferizzare una striscia lunga 512 pixel. Ora, per essere onesti, non è super veloce perché dobbiamo scrivere ogni pixel tramite I2C, ma con un clock I2C di 800 KHz o 1 MHz e finché non si scrive l’intera striscia in una volta, non è poi così male!

Aggiungiamo una alimentazione pompata a 5 V, quindi anche su schede a 3 V, si ottiene un segnale a 5 V pulito. I morsetti pre-saldati e i connettori Stemma QT consentono una soluzione senza saldature per aggiungere facilmente NeoPixel a qualsiasi dispositivo con I2C. L’indirizzo I2C predefinito è 0x60, ma è possibile tagliare le tracce di saldatura inferiori per modificarlo in 0x60-0x67 inclusi.

Nota: per alimentare i NeoPixel sono necessari circa 10-30 mA per pixel di alimentazione pulita a 5 V CC, fornita sui morsetti oppure è possibile collegare direttamente i 5 V ai pixel se sono presenti cavi di alimentazione separati, rosso e nero. La porta Stemma QT non può fornire così tanta corrente, quindi non è possibile collegare i pixel senza un alimentatore esterno!

Considerazioni finali

Adafruit NeoDriver – Scheda driver da I2C a NeoPixel ADA5766 costa circa 10 euro. Un prezzo tutto sommato interessante per un giochino di Natale…

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.