Contrôle de matrice leds, 2014/2015, TD2
1. Présentation du projet
Le projet matrice de leds de taille 8x8 consiste à gérer l'allumage des leds. De plus, l'interface web permettra de dessiner sur cette matrice 8x8.
Pour cela nous utilisons:
- une nanoboard;
- une foxboard;
- un banc d'essai;
- une matrice de leds.
2. Première séance
2.1 Partie informatique
Lors de cette première séance, nous avons commencé par nous intéresser à l'interface web, avec javascript et canvas. L'utilisateur utilise cette page pour voir l'état de la matrice de LEDs (lesquelles sont allumées ou non), et pour interagir avec. Il peut, en cliquant sur la représentation de cette matrice, allumer celle(s) qu'il veut, voir en changer la couleur. Par défaut, la matrice utilisée est de taille 8x8, mais l'utilisateur doit pouvoir être en mesure de choisir une autre taille. Cependant, on suppose que la matrice voulue est carrée. Pour changer la taille, nous avons mit en place un bouton qui fait appel à la fonction changeTaille lorsque l'on clique dessus. Cette fonction demande à l'utilisateur le nombre total de LED de la matrice, puis relance la fonction d'ajoutDisque, qui dessine les disques. Pour arriver à dessiner le nombre voulu de LEDs, la fonction ajoutDiqsues a été modifiée de la sorte qu'elle créée un tableau de la taille de la matrice et dans chaque case, elle créée un canvas, qui sera ensuite dessinée. Il reste à réussir à changer la couleur des LEDs.
2.2 Partie Electronique
Lors de cette première séance, nous avons commencé par comprendre le fonctionnement de le matrice de LEDS. Comme la matrice de LEDs se compose que de 16 entrées, on peut afficher qu'une seule colonne ou ligne à la fois. Nous avons choisi l'affichage colonne par colonne. Pour cela, on divise les entrées en deux catégories, 8 entrées serviront à choisir la colonne à allumer et les 8 autres restantes serviront à envoyer le message voulu sur la colonne. Pour permettre une observation de la matrice dans son intégralité, on allume les colonnes une par une à une fréquence élevée. Cela permet entre autre une économie d'énergie.
Nous avons donc commencé à réfléchir sur le circuit électrique à réaliser sur ALtium, et ses éléments.
Nous avons choisis les éléments suivants:
- un simulateur de bus;
- un multiplexeur 1 vers 8;
- un compteur qui permet de gérer la colonne à allumer;
- un simulateur d'horloge;
- un registre à décallage.
3.Deuxiéme séance
3.1 Partie Informatique
3.2 Partie Electronique
Lors de cette deuxième séance nous avons principalement créé le circuit sur Altium et effectué des tests. Dans un premier temps, nous nous sommes rendu compte qu'il fallait que l'on stocke le mot de 8 bits envoyé par le simulateur de bus, pour cela on a utilisé un multiplexeur 1 vers 8 avec un compteur. Le multiplexeur envoie alors le mot généré dans une bascule D qui permet le stockage, une bascule par colonne. Le compteur permet à chaque tour de changer de bascule D. On a donc utilisé un compteur qui compte jusque 7, il suffit donc d'utiliser 3 bits pour compter jusque 7.
JPEG
Maintenant que le message voulu sur la colonne a été enregistré puis envoyé, il a fallut trouver un moyen d'envoyer le mot sur la bonne colonne, puis d'éteindre la colonne pour passer au message suivant de la colonne suivante. Pour cela on utilise un registre à décalage. Il permet d'allumer tour à tour les colonnes. JPEG schéma final En effet, on lui envoie un message d'initialisation 01H qui allume la première colonne. Ensuite grâce au registre on décale le bit 1 d'un rang. Comme le rang 1 n'a pas de bit avant lui, il faut lui envoyer une valeur, on utilise donc la colonne SLI qui envoie donc le zéro voulu ( ce qui explique la masse à l'entrée de SLI).
A l'état initial: 0000 0001 -> la colonne 1 est allumée.
A l'état suivant: 0000 0010 -> la colonne 1 est alors éteint et la colonne 2 s'allume.
Et ainsi de suite, ce qui nous permet d'obtenir le fonctionnement de l'affichage voulu.
JPEG :
NB:Nous aurions pu utiliser un multiplexeurs comme pour l'enregistrement des mots. Mais le registre à décalage nous permet d'éviter le compteur.