Un RGB LED Matrix Driver con un RP2350 – Un esempio

Pimoroni Interstate I75 LED matrix display

Nello scorso articolo abbiamo visto un LED Matrix Driver pilotato da RP2350 e presentato da Pimoroni. Oggi proveremo un codice di esempio.

Un video vale più di 1000 parole: per tale ragione inizieremo l’articolo presentando la rappresentazione dell’esempio che ci proponiamo di spiegare.

Si tratta del classico esempio con le bolle colorate, con raggio e colore variabili, che rimbalzano sui bordi dello schermo. Solo che in questo caso, anziche di uno schermo, avremo bisogno di LED Matrix Driver. Dovremo predisporre una funzione per la creazione delle bolle, un ciclo infinito per il loro movimento e una serie di controlli per gestire il rimbalzo sui bordi e, naturalmente, la chiusura del programma.

Vediamo l’effetto che produrremo:

Codice sorgente

Il codice sorgente è abbastanza semplice da leggere, ed è riportato di seguito:

Per prima cosa importeremo i moduli necessari per gestire il driver (si trovano sul sito Pimoroni).

Definiamo quindi l’oggetto i75, target del nostro lavoro, ed inizializziamo la sezione grafica del Matrix Driver.

Creiamo una classe Ball, che riceverà le dimensioni, la posizione ed il colore come parametri. Il codice succeessivo inizializzerà una lista di oggetti Ball con valori casuali compresi nell’ambito della risoluzione della matrice grafica. Ciascun oggetto verrà inserito (metodo append) in una apposita lista balls[].

Quindi, terminato il setup, entriamo nel loop infinito vero e proprio.

  • Definiamo un colore nero per la penna
  • Ripuliamo lo schermo
  • Per ciascuna bolla nella lista balls:
    • Spostiamo le coordinate del centro della bolla
    • Controlliamo che le coordinate della bolla siano interne alla matrice di punti
    • In caso negativo, cambiamo verso (segno) allo spostamento richiesto
    • Applichiamo il colore definito durante la inizializzazione alla bolla specifica
    • Disegnamo la bolla nel buffer interno del driver
  • Aggiorniamo la matrice di punti con le nuove coordinate che avevamo calcolato e inserito nel buffer.

Finito! Buon divertimento…

 

 

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.