Progetto 9 Pannello LED con Espressione Facciale

1. Descrizione

Quanto è divertente aggiungere un pannello di espressioni al robot. E il pannello LED 8*16 di Keyestudio può fare al caso vostro. Con il suo aiuto, potrete progettare espressioni facciali, immagini, motivi e altre visualizzazioni da soli.

Il pannello LED 8*16 è composto da 128 LED. I dati del microprocessore (Arduino) comunicano con l’AiP1640 tramite un’interfaccia bus a due fili. Pertanto, può controllare l’accensione e lo spegnimento dei 128 LED sul modulo, in modo da far visualizzare al display a matrice di punti sul modulo il motivo desiderato. È fornito un cavo HX-2.54 4Pin per facilitare il cablaggio.

2. Specifiche

  • Tensione di lavoro: DC 3.3-5V

  • Perdita di potenza: 400mW

  • Frequenza di oscillazione: 450KHz

  • Corrente di pilotaggio: 200mA

  • Temperatura di lavoro: -40~80℃

  • Modalità di comunicazione: I2C

3. Schema Elettrico

4. Principio di Funzionamento

Come controllare ogni LED della matrice a punti 8*16? Si sa che ogni byte ha 8 bit e ogni bit è 0 o 1. Quando è 0, il LED è spento mentre quando è 1 il LED è acceso. Un byte può controllare una colonna di LED, e naturalmente 16 byte possono controllare 16 colonne di LED, questa è la matrice a punti 8*16.

5. Descrizione dei Pin e Protocollo di Comunicazione

I dati del microprocessore (Arduino) comunicano con l’AiP1640 tramite un cavo bus a due fili.

Il diagramma del protocollo di comunicazione è il seguente (SCLK) è SCL, (DIN) è SDA.

① Condizione di inizio per l’input dei dati: SCL è ad alto livello e SDA cambia da alto a basso.

② Per l’impostazione del comando dati, ci sono i metodi mostrati nella figura sottostante.

Nel nostro programma di esempio, selezioniamo il modo per aggiungere 1 all’indirizzo automaticamente, il valore binario è 0100 0000 e il valore esadecimale corrispondente è 0x40.

Img

③ Per l’impostazione del comando indirizzo, l’indirizzo può essere selezionato come mostrato di seguito.

Nel nostro programma di esempio è selezionato il primo 00H, e il numero binario 1100 0000 corrisponde all’esadecimale 0xc0.

Img

④ Il requisito per l’input dei dati è che quando SCL è ad alto livello durante l’input dei dati, il segnale su SDA deve rimanere invariato. Solo quando il segnale di clock su SCL è a basso livello, il segnale su SDA può essere cambiato. L’input dei dati avviene prima con il bit basso, e poi con il bit alto.

⑤ La condizione per la fine della trasmissione dati è che quando SCL è a basso livello, SDA a basso livello e SCL ad alto livello, il livello di SDA diventa alto.

⑥ Controllo del display, impostare diverse larghezze di impulso, la larghezza di impulso può essere selezionata come mostrato nella figura sottostante.

Nell’esempio, la larghezza di impulso è 4/16, e l’esadecimale corrispondente a 1000 1010 è 0x8A.

Img

Istruzioni per l’uso dello strumento modulo

Lo strumento matrice a punti utilizza la versione online, e il link è: http://dotmatrixtool.com/#

① Inserire il link e la pagina appare come mostrato di seguito

② La matrice a punti è 8*16, quindi regolare l’altezza a 8 e la larghezza a 16, come mostrato nella figura sottostante.

③ Generare dati esadecimali dal motivo

Come mostrato nella figura sottostante, premere il tasto sinistro del mouse per selezionare, cliccare con il tasto destro per annullare; disegnare il motivo desiderato, cliccare su Generate, e verranno generati i dati esadecimali necessari.

6. Componenti

Scheda di Sviluppo *1

Driver Motore 8833 *1

Pannello LED 8x16*1

img

img

img

Cavo USB*1

Cavo Dupont HX-2.54 4P 200mm *1

img

img

7. Schema di Collegamento

Il GND, VCC, SDA e SCL della scheda LED 8x16 sono rispettivamente collegati alla scheda di espansione sensori keyestudio - (GND), + (VCC), A4, A5 per la comunicazione seriale a due fili.

(Nota: Sebbene sia collegato al pin IIC di Arduino, questo modulo non è per la comunicazione IIC. E la porta IO qui serve a simulare la comunicazione I2C e può essere collegata a qualsiasi due pin).

8. Codice di Test

Prima di scrivere il codice, è necessario importare il file della libreria della scheda LED 8x16. I passaggi specifici sono i seguenti:

Clicca su per entrare nell’interfaccia della libreria di estensione di sensori/moduli/componenti, quindi cerca il modulo “Matrix 8*16 Aip1640 e cliccaci sopra. In questo modo, “Not loaded” cambia in “loaded”, indicando che il modulo “Matrix 8*16 Aip1640” è stato aggiunto con successo.

Img

Clicca su per tornare all’interfaccia dell’editor di codice, si può vedere il blocco di istruzioni del modulo “Matrix 8*16 Aip1640” aggiunto nell’area moduli.

Puoi trascinare i blocchi per modificare. I blocchi elencati di seguito sono per riferimento.

(1).

(2).

Codice di Test Completo

9. Risultato del Test

Dopo aver caricato con successo il codice sulla scheda V4.0, collega i cablaggi secondo lo schema elettrico, quindi porta l’interruttore DIP su ON, verrà visualizzato un motivo a forma di sorriso sulla scheda LED.

10. Spiegazione del Codice

Usiamo lo strumento modulus che abbiamo appena imparato, http://dotmatrixtool.com/#, per far visualizzare alla matrice di punti il motivo di start, andare avanti, fermarsi e poi cancellare il motivo. L’intervallo di tempo è di 2000 ms.

image-20250513092102687image-20250513092107293image-20250513092113035image-20250513092116952

Blocco di istruzioni per faccina sorridente

Blocco di istruzioni per espressione:

Blocco di istruzioni per cuore

Blocco di istruzioni per andare avanti

Blocco di istruzioni per fare un passo indietro

Blocco di istruzioni per girare a sinistra

Blocco di istruzioni per girare a destra

Blocco di istruzioni per fermare

Blocco di istruzioni per pulire lo schermo

Puoi trascinare i blocchi per modificare. I blocchi elencati di seguito sono per riferimento.

(1).

(2).

(3).

Codice di Test Completo

Dopo aver caricato il codice di test, la scheda delle espressioni facciali mostra questi motivi in ordine e ripete questa sequenza.

image-20250513092222972image-20250513092233711image-20250513092238552