Utilizzo della Matrice LED di Arduino UNO R4 WiFi | Una guida completa

Approfondiamo il mondo di Arduino UNO R4 WiFi e la sua matrice LED integrata. Scopriamo le varie tecniche per il suo controllo, come creare animazioni, grafiche o persino giochi. L'Arduino UNO R4 WiFi presenta una matrice LED integrata di 12x8, che può essere programmata per visualizzare grafiche, animazioni, funzionare come interfaccia o persino giocare.

Configurazione della matrice LED dell'Arduino UNO R4 WiFi

La matrice e la sua API sono progettate per essere programmate in diversi modi, ciascuno adatto per differenti applicazioni.

Hardware e Software Necessari

  • Arduino UNO R4 WiFi
  • UNO R4 Core (ultima versione)
  • Arduino IDE

Inizializzazione della Matrice

#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

void setup() {
Serial.begin(115200);
matrix.begin();
}

Creazione di un Frame

Un frame è ciò che chiamiamo l'"immagine" che viene visualizzata in un dato momento sulla matrice. Se un'animazione è una serie di immagini, un frame è una di queste immagini nella serie. Un frame può essere creato in diversi modi, e puoi scegliere il metodo più semplice per la tua applicazione.

Frame tramite Array di Integers

La maggior parte delle volte, creerai un array che contiene il frame in tre interi a 32 bit. Un frame di questo tipo è difficile da interpretare per una persona, ma è efficiente e quindi la scelta migliore se stai creando animazioni o grafiche per visualizzare gli stati di un programma o interfacce.
const uint32_t heart[] = {
0x3184a444,
0x44042081,
0x100a00405
};
Se hai diversi frame differenti, puoi caricarli e visualizzarli in questo modo:
const uint32_t happy[] = {
0x19819,
0x80000001,
0x81f80005
};

const uint32_t heart[] = {
0x3184a444,
0x44042081,
0x100a004011
};

matrix.loadFrame(happy);
delay(500);

matrix.loadFrame(heart);
delay(500);
Frame tramite Array di Bit Individuali Potresti anche rappresentare il tuo frame con un array di bit individuali, dove ogni pixel è rappresentato da un bit e può essere accessibile attraverso la sua riga e colonna. Questo metodo è una buona scelta se devi generare frame direttamente all'interno di uno sketch, ad esempio se stai realizzando un gioco.
uint8_t frame[8][12] = {
{ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 },
{ 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
In questo caso, il frame rappresenta un cuore. I "1" rappresentano i LED che saranno accesi, mentre gli "0" rappresentano i LED che saranno spenti. Per caricare e visualizzare questo frame, faremo:
matrix.loadFrame(frame);
delay(500);

Creazione di Animazioni

Le animazioni sono create semplicemente avendo una serie di frame e passandoli alla matrice in successione. Ricorda che più rapidamente cambi frame, più fluida sarà l'animazione.
const uint32_t heart[] = {
0x3184a444,
0x44042081,
0x100a00405
};

const uint32_t happy[] = {
0x19819,
0x80000001,
0x81f80005
};

void loop() {
matrix.loadFrame(happy);
delay(200);

matrix.loadFrame(heart);
delay(200);
}

Altre Funzionalità

La matrice può essere usata per molto di più che visualizzare semplici immagini o animazioni. Puoi usarla per visualizzare i dati del sensore in tempo reale, creare una piccola interfaccia utente per un progetto o perfino fare un semplice gioco.

Conclusioni

Come abbiamo visto, la matrice LED integrata nell'Arduino UNO R4 WiFi offre molte opportunità per la creatività e la progettazione. Non importa se vuoi fare un semplice display visivo, un'interfaccia utente per un progetto più complesso o qualcosa di completamente unico, la matrice LED è un ottimo strumento per realizzare la tua visione. Buon coding!