Ateliers du 27 octobre – Arduino Nano & Matrice de Led 8×8
Récapitulatif de l'atelier :
Pendant cet atelier, nous avons assemblé une carte Matrice Led 8×8 avec un arduino Nano. Nous avons également fabriqué un support à l'aide d'une plaque transparente.
L'objectif était d'apprendre, de découvrir, d'entrevoir :
- à couper , dénuder et souder des fils sur une carte électronique
- à percer avec une (petite) perçeuse colonne
- à repérer une découpe et se servir d'un pied à coulisse
- ce qu'était un composant programmable
- ce qu'était un programme
- comment piloter une matrice de led
Une fois les montages réalisés, les jeunes ont pu s'approprier l'ensemble en créant leurs propres affichages.
Ils sont repartis avec leurs montages en fonctionnement et un cable mini-usb permettant d'alimenter et de programmer la carte.
Pour aller plus loin :
Voici le code que nous avons entré ensemble dans la carte :
#include <LedControl.h> // définition des "pin" c'est à dire , endroit où sont soudés les fils // sur la carte const int DIN_PIN = 10; // fil qui sert à envoyer l'état des leds const int CS_PIN = 11; // fil qui dit au composant "ça y est allume les leds" const int CLK_PIN = 12; // fil qui dit envoie un signal pour dire "led suivante" parce qu'on envoie une par une // mon tableau d'image à afficher const uint64_t IMAGES[] = { 0x1824428181996600, 0x0c122140404c3300, 0x0609102020261900, 0x0304081010130c00, 0x0102040808090600, 0x0001020404040300, 0x0000010202020100, 0x0000000101010000, 0x0000000000000000 }; const int IMAGES_LEN = sizeof(IMAGES)/8; // on crée le contrôleur d'écran LedControl display = LedControl(DIN_PIN, CLK_PIN, CS_PIN); // quand la carte s'allume , ça commence ici void setup() { // on efface l'écran display.clearDisplay(0); // on allume l'écran display.shutdown(0,false); // on régle la luminosité display.setIntensity(0,1); } // cette Fonction affiche l'image sur l'écran void displayImage(uint64_t image) { for (int i=0; i<8; i++){ byte row = (image >> i * 8 ) & 0xFF; for (int j=0; j<8; j++) { display.setLed(0,i,j,bitRead(row,j)); } } } // on commence par la première image // les informaticiens commencent par zero quand ils comptent ! int i=0; // ici on tourne en ronds // et on affiche les images une par une void loop() { displayImage(IMAGES[i]); if (++i >= IMAGES_LEN) { // si on est là alors i=0; // on re-commence a afficher la premiere image ( on boucle ). } delay(100); // on attends un peu avant d'afficher l'image suivante }
Pour personnaliser les images, nous avons utilisé un outil dédié que vous pouvez trouver ici :
https://gullivigne.org/led-matrix-editor/docs/
Pour programmer nous utilisons le logiciel fourni par Arduino :
https://www.arduino.cc/en/Main/Software#
avec la bibliothèque : LedControl : https://playground.arduino.cc/Main/LedControl
Enfin, les cartes électroniques utilisées sont des déclinaisons de :
https://store.arduino.cc/arduino-nano
et des matrice de led 8×8 avec un MAX7219.
N'hésitez pas à nous poser des questions si besoin !
Amusez vous bien.