Contrôle de matrice leds, 2013/2014, TD1

De Wiki de Projets IMA
Révision datée du 3 juin 2014 à 12:20 par Tdanel (discussion | contributions) (Contrôle de matrice de LEDs)

Contrôle de matrice de LEDs

Présentation du projet

Principe

Le projet consiste à allumer et éteindre des leds sur une matrice 8x8 de leds à partir d'un site web hébergé sur une Foxboard. Ainsi l'utilisateur peut créer l'image qu'il souhaite à travers son navigateur et ensuite l'envoyer sur la maquette d'essai, ici la Nanoboard, qui contrôlera la matrice de LEDS. Il a été réalisé par Colautti Kevin, Danel Thomas et Lefort Benjamin.

Eléments

Les éléments mis en oeuvre pour la réalisation du projets sont :

    • navigateur pour visualiser le site web
    • Foxboard hébergeant le serveur Web
    • module de communication série
    • Nanoboard contrôlant la matrice 8x8 de leds câblée en rouge
    • banc d'essai Arduino avec une matrice 16x16 de leds RGB

Modes

L'interface web permet de choisir la taille de la matrice et le type de LED (monocouleur ou RGB).

Première séance

Partie info:

création site web page d'accueil permettant de choisir la taille de la matrice (n lignes et m colonnes) le type de LEDs (couleurs ou non) le formulaire envoie vers un php (matrice.php "a vérifier") qui affiche cette matrice de LEDs qui pour l'instant sont vertes par défaut et deviennent rouge en cliquant dessus

Partie élec:

Pendant cette première séance, nous nous sommes définis un cahier des charges restreint compte tenu de la difficulté du sujet. A savoir, nous ne traiterons dans la partie électronique que la matrice 8*8 en monocouleur. Nous avons alors étudié la documentation technique de la matrice de Leds pour savoir comment la commander. Nos TP de microprocesseurs nous ont alors servis à trouver l'astuce pour afficher toute la matrice. Notre idée est de stocker des mots de 8 bits dans un registre, pour chaque ligne. Ensuite, on envoie les bits un à un puis on affiche les colonnes une à une, en synchronisation avec l'envoi des bits (même clock).

Il nous faut donc en tout 16 sorties : 8 pour les colonnes et 8 autres pour les lignes. La prochaine étape serait de mettre ça au propre sous Altium, ce qu'on a commencé à faire en fin de séance.

Deuxième séance=

Partie info:

essaie de la liaison série

USB : pifou@zabeth15:/media/usb0/projet_SC$ stty -F /dev/ttyUSB0 9600 cs8 -hupcl -icrnl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke ignbrk pifou@zabeth15:/media/usb0/projet_SC$ sleep 9999d 3</dev/ttyUSB0 &[1] 8179

Programme : pifou@zabeth15:/media/usb0/projet_SC$ stty -F /dev/ttyUSB0 9600 cs8 -hupcl -icrnl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke ignbrk pifou@zabeth15:/media/usb0/projet_SC$ sleep 9999d 3</dev/ttyUSB0 &[1] 8179

c=0 ou 256 led éteinte c=1 bleu c=255 rouge

création matrice de 256 caractères reçu par matrice.php ces caractères correspondent aux couleurs B=bleu, R=rouge ... (recherche couleur finie ou pas selon les besoins juste une traduction de binaire à hexa) switch case pour traiter les infos de la matrice

début du cgi-bin et en galère =D

Partie élec

On utilise des registres 8 bits pour stocker les mots de 8 bits envoyés par la partie info.

On sélectionne en simultanée les bascules qui doivent recevoir les bons mots au bon moment. Au moment de l'envoie des mots, la liaison série envoie un bit de validation qui sert à incrémenter un compteur pour sélectionner les registres.

On utilise pour cela un démultiplexeur 1 vers 8 et en sortie un multiplexeur de même type.

Les compteurs utilisés sont des compteurs 3 bits pouvant compter de 0 à 7 (8 registres).


Pour le multiplexeur d'entrée, la réflexion fut plus difficile et des problèmes apparurent lors des tout premiers tests. En effet à l'origine, nous avions relié le compteur d'entrée à la même horloge que celui de sortie. Mais notre groupe s'est rapidement aperçu que cela ne fonctionnait pas. Il fallait que le compteur soit coordonné avec la réception du mot. Il était clair alors qu'il fallait relier le bit de présence du mot avec l'horloge de notre compteur d'entrée, afin d'obtenir le résultat voulu.

tests

Après avoir fini et compilé le montage sur Altium, nous avons effectué des tests afin de savoir si il était correct. Nous avons donc branché les ports de sortie de la Nanoboard sur un oscilloscope :

image à mettre

Nous avons envoyé 8 messages l'un après l'autre, puis observé les résultats. Sur les images ci-dessus, on voit bien que chaque message est rangé dans une colonne. Il nous restait maintenant à câbler notre matrice, et à faire de nouveau des tests sur celle-ci.

Troisième séance

Partie info

Partie élec

Le circuit Altium étant terminé, nous avons donc câblés la matrice 8*8 en rouge. Ci dessous le schéma Altium :

schéma Altium

Détermination du choix des résistances

Voici le schéma complet du câblage de notre matrice :

schéma

Et la photo du câblage

photo