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.

③ 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.

④ 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.

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 |
|---|---|---|
|
|
|
Cavo USB*1 |
Cavo Dupont HX-2.54 4P 200mm *1 |
|
|
|
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.


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.




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.







