Contrôle de matrice leds, 2011/2012, TD1
Sommaire
Evaluation informatique
Gestion de projet / rédaction Wiki
Bonne répartition du travail ou plus exactement des membres du groupe polyvalents, capable de réaliser à la fois la partie électronique et la partie informatique. D'ailleurs le résultat final le montre.
Rédaction très limite : aucun formattage, de nombreuses fautes d'orthographe, des phrases incompréhensibles. Pas d'illustration; ni schémas ni photographies (note 40%).
Test fonctionnels
- Sous-système : Fonctionnel comme le montre la vidéo, un simple soucis de miroir entre le site web et la matrice (note 120%).
- Système : Pas abordé (0%).
Qualité de la réalisation
- Procédure de test : Une procédure minimale dans un readme sur la FoxBoard avec des erreurs sur les chemins (note 50%).
- Pages HTML et Javascript : Fonctions js correctes mais un HTML brutal pour la matrice avec une ligne par LED, de l'aide (note 80%).
- Scripts PHP ou programmes C : CGI-BIN en C correct avec de l'aide (note 80%).
- Installation sur FoxBoard : Installation très correcte (note 90%).
Bilan
Tous les points ont un poids équivalent (sauf "système" qui est un bonus).
Note finale : 80% (16/20).
Rapports des élèves
Mercredi 20 Mars 2012
- Choix du sujet
- Compréhension et analyse du sujet
- Répartition du travail dans le groupe entre la partie électronique et informatique
Partie électronique:
Lors de cette première séance, les 2 premières heures ont été consacrées à la compréhension du sujet et à l’élaboration d'un plan de réalisation. Ainsi, nous avons distingué l'envoie des données et la sélection par multiplexage des colonnes. Les 2 dernières heures ont été consacrées à la sélection par multiplexage des colonnes les bits de sélection du multiplexeur sont gérées par un compteur qui lui est dirigé par un générateur de fréquence qui sera adapté en fonction de la fréquence de la NanoBoard.
Partie informatique:
Nous avons commencé par la page web qui doit commander l'affichage des LEDs.
Nous avons testé les fonctions fournis et commencé à les modifier. Voici un exemple de ce que nous avons modifié:
- Avant modification
var couleurs=['vert','vert','vert','vert','vert','vert','vert','vert',]; function changeCouleur(id){ if(couleurs[id]=='vert'){couleurs[id]='rouge';} else{couleurs[id]='vert';} var image=document.getElementById('led'+id); image.src='/cercle.php?couleur='+couleurs[id]; }
- Après modification
var couleurs=[]; function changeCouleur(id){ if(couleurs[id]=='rouge'){couleurs[id]='vert';} else{couleurs[id]='rouge';} var image=document.getElementById('led'+id); image.src='/matrice/cercle.php?couleur='+couleurs[id]; }
Ici l'adresse de l'image pour des LEDs a été modifié, ainsi que leur couleur. De plus, nous avons dupliqué les lignes permettant d'afficher et de changer la couleur des LEDs pour qu'une matrice de LEDs 8*8 apparaissent à l'écran au lieu de 1*4.
Mercredi 28 Mars 2012
Partie électronique:
Lors de cette deuxième séance, nous avons géré le système mémoire qui stock les informations émises avant la sélection des colonnes. Ce système mémoire a été construit grâce à 8 bascules D, dont le CLK est relié à un GND,l'entrée D[7..0] est reliée à la sortie d'un multiplexeur qui sélectionne la mémoire dans laquelle nous voulons stoker les données. Chaque bascule D a pour rôle de stocker le bits de données correspondant à une ligne sur la matrice de LEDs.
Voici le schéma électrique:
Partie informatique:
Afin de pouvoir communiquer avec la liaison série on utilise un demon. Il faut donc adapter et fusionner les programmes CGI_BIN.c et test_du_demon.c fourni.
Nous avons configuré le PORT SERIE afin qu'il puisse communiquer avec le demon. Pour se faire, il nous a fallu modifier le programme port-série pour remplacer la donnée qui était présente par UBSO.
#define SERIAL_DEVICE "/dev/ttyUSBO"
Nous avons également modifié le programme CGI_BIN en supprimant toutes les fonctions non utilisées.
Mercredi 04 Avril 2012
Partie électronique:
Pour cette dernière séance, nous avons modifié le système mémoire qui avait initialement VCC branché l'entrée C. Nous avons relié les broches C des bascules D et du compteur permettant la sélection des bascules, a la sortie du composant simulant un bouton poussoir. En effet, nous utilisions un bouton poussoir de la nanoBoard qui était très sensible et rebondissait parfois, le compteur s'incrémentait alors de plus de 1. Ainsi, nous avions pas les bonnes bascules de sélectionnées.
Partie Informatique:
Pour cette séance nous avons terminé la fusion des deux programmes,celui de CGI-BIN et du port série; nous avons aussi modifié le programme html afin de pouvoir envoyer les bytes via le port série.
Dans le programme CGI-BIN nous avons ajouté 3 bibiothèques,et deux constantes qui étaient dans le programme port série; ensuite dans le Main() nous avons fait deux boucles for imbréquées afin de pouvoir afficher les 64 Leds et à cela il nous a fallu faire un décalage vers la gauche.
Jeudi 12 Avril 2012
A la fin de cette séance supplémentaire le système fonctionnait parfaitement.
Partie électronique:
Lors de cette séance, après avoir tester la partie informatique sur le système de la salle E303, nous sommes allés la tester sur la partie électronique.
Il a fallut, câbler la matrice de LEDs et la brancher au port série afin déffectuer les derniers tests. Nous avons ensuite du modifier le schéma électronique car il y avait quelques problèmes.
Partie informatique:
Lors de cette séance, nous avons:
- copié mis les programmes sur la foxBord: la page web, le demon, le programme C...
- les avons compilé
- tester le site web avec le système disponible dans la salle
- écrit le fichier readme.txt
Le fichier readme.txt contient l'adresse de la page web, le chemin d'accès à l'éxécutable et à la page web sur la foxBord.