Projet 9 Panneau LED d’Expression Faciale

1.Description

Quel plaisir ce serait d’ajouter un panneau d’expression à un robot. Et le panneau LED 8*16 de Keyestudio peut faire l’affaire. Avec son aide, vous pouvez concevoir vous-mêmes des expressions faciales, images, motifs et autres affichages.

Le panneau LED 8*16 est équipé de 128 LEDs. Les données du microprocesseur (Arduino) communiquent avec l’AiP1640 via une interface bus à deux fils. Ainsi, il peut contrôler l’allumage et l’extinction des 128 LEDs sur le module, afin de faire afficher sur la matrice de points du module le motif souhaité. Un câble HX-2.54 4 broches est fourni pour faciliter le câblage.

2.Spécifications

  • Tension de fonctionnement : DC 3.3-5V

  • Perte de puissance : 400mW

  • Fréquence d’oscillation : 450KHz

  • Courant de pilotage : 200mA

  • Température de fonctionnement : -40~80℃

  • Mode de communication : I2C

3.Schéma de circuit

4.Principe de fonctionnement

Comment contrôler chaque LED de la matrice 8*16 ? On sait que chaque octet contient 8 bits et que chaque bit vaut 0 ou 1. Quand il est à 0, la LED est éteinte, quand il est à 1, la LED est allumée. Un octet peut contrôler une colonne de LEDs, et naturellement 16 octets peuvent contrôler 16 colonnes de LEDs, ce qui correspond à la matrice 8*16.

5.Description des broches et protocole de communication

Les données du microprocesseur (Arduino) communiquent avec l’AiP1640 via un câble bus à deux fils.

Le diagramme du protocole de communication est le suivant (SCLK) est SCL, (DIN) est SDA.

①Condition de départ pour l’entrée des données : SCL est au niveau haut et SDA passe de haut à bas.

②Pour le réglage de la commande de données, il existe les méthodes illustrées dans la figure ci-dessous.

Dans notre programme exemple, on choisit la méthode pour ajouter 1 automatiquement à l’adresse, la valeur binaire est 0100 0000 et la valeur hexadécimale correspondante est 0x40.

Img

③Pour le réglage de la commande d’adresse, l’adresse peut être sélectionnée comme indiqué ci-dessous.

Le premier 00H est sélectionné dans notre programme exemple, et le nombre binaire 1100 0000 correspond à l’hexadécimal 0xc0.

Img

④La condition pour l’entrée des données est que lorsque SCL est au niveau haut lors de l’entrée des données, le signal sur SDA doit rester inchangé. Ce n’est que lorsque le signal d’horloge sur SCL est au niveau bas que le signal sur SDA peut être modifié. L’entrée des données se fait d’abord par le bit faible, puis par le bit fort.

⑤La condition de fin de transmission des données est que lorsque SCL est au niveau bas, SDA au niveau bas et SCL au niveau haut, le niveau de SDA devient haut.

⑥Contrôle de l’affichage, réglage de différentes largeurs d’impulsion, la largeur d’impulsion peut être sélectionnée comme indiqué dans la figure ci-dessous.

Dans l’exemple, la largeur d’impulsion est 4/16, et l’hexadécimal correspondant à 1000 1010 est 0x8A.

Img

Instructions pour l’utilisation de l’outil de matrice

L’outil de matrice de points utilise la version en ligne, et le lien est :http://dotmatrixtool.com/#

①Entrez le lien et la page apparaît comme ci-dessous

②La matrice de points est 8*16, donc ajustez la hauteur à 8 et la largeur à 16, comme montré dans la figure ci-dessous.

③Générez les données hexadécimales à partir du motif

Comme montré dans la figure ci-dessous, appuyez sur le bouton gauche de la souris pour sélectionner, clic droit pour annuler ; dessinez le motif souhaité, cliquez sur Générer, et les données hexadécimales nécessaires seront générées.

6.Composants

Carte de développement *1

Driver moteur 8833 *1

Panneau LED 8x16*1

img

img

img

Câble USB*1

Fil Dupont HX-2.54 4P 200mm *1

img

img

7.Schéma de câblage

Le GND, VCC, SDA et SCL de la carte lumineuse LED 8x16 sont respectivement connectés à la carte d’extension de capteur keyestudio - (GND), + (VCC), A4, A5 pour la communication série à deux fils.

(Remarque : Bien qu’il soit connecté avec la broche IIC de l’Arduino, ce module n’est pas destiné à la communication IIC. Et le port IO ici sert à simuler la communication I2C et peut être connecté à n’importe quelles deux broches).

8. Code de test

Avant d’écrire le code, il est nécessaire d’importer le fichier de bibliothèque de la carte LED 8x16. Les étapes spécifiques sont les suivantes :

Cliquez sur pour entrer dans l’interface de la bibliothèque d’extensions des capteurs/modules/composants, puis recherchez le module “Matrix 8*16 Aip1640 et cliquez dessus. Ainsi, “Not loaded” change en “loaded”, indiquant que le module “Matrix 8*16 Aip1640” a été ajouté avec succès.

Img

Cliquez sur pour revenir à l’interface de l’éditeur de code, le bloc d’instruction du module ajouté “Matrix 8*16 Aip1640” peut être vu dans la zone des modules.

Vous pouvez faire glisser les blocs pour éditer. Les blocs listés ci-dessous sont pour votre référence.

(1).

(2).

Code de test complet

9. Résultat du test

Après avoir téléchargé avec succès le code sur la carte V4.0, connectez les câblages selon le schéma de câblage, puis mettez l’interrupteur DIP sur ON, un motif en forme de sourire s’affichera sur la carte LED.

10. Explication du code

Nous utilisons l’outil modulus que nous venons d’apprendre, http://dotmatrixtool.com/#, pour faire afficher sur la matrice de points le motif de démarrage, avancer, s’arrêter puis effacer le motif. L’intervalle de temps est de 2000 ms.

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

Bloc d’instruction pour visage souriant

Bloc d’instruction pour expression :

Bloc d’instruction pour cœur

Bloc d’instruction pour avancer

Bloc d’instruction pour reculer

Bloc d’instruction pour tourner à gauche

Bloc d’instruction pour tourner à droite

Bloc d’instruction pour arrêter

Bloc d’instruction pour effacer l’écran

Vous pouvez faire glisser les blocs pour éditer. Les blocs listés ci-dessous sont pour votre référence.

(1).

(2).

(3).

Code de test complet

Après avoir téléchargé le code de test, la carte d’expression faciale affiche ces motifs dans l’ordre et répète cette séquence.

image-20250513092222972image-20250513092233711image-20250513092238552