Gestion afficheurs, groupe A : Différence entre versions

De Wiki d'activités IMA
(Partie programmation :)
 
(27 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
== Evaluation informatique ==
 +
 +
=== Gestion de projet / rédaction Wiki ===
 +
 +
Description correcte des objectifs et des réalisations (note 75%).
 +
 +
=== Test fonctionnels ===
 +
 +
* Sous-système : Fonctionnel avec le banc d'essai Phidgets. Interfaçage réalisé avec la nanoboard, les afficheurs réagissent mais les caractères ne sont pas corrects (note 110%).
 +
* Système : Pas abordé (note 0%).
 +
 +
=== Qualité de la réalisation ===
 +
 +
* Procédure rédigée sur le Wiki : Sommaire (note 25%).
 +
* Pages HTML et Javascript : Non applicable.
 +
* Scripts PHP ou programmes C : Autonome, programme très correct (note 90%).
 +
* Installation sur FoxBoard : Très bien (note 90%).
 +
 +
=== Bilan ===
 +
 +
Tous les points ont un poids équivalent (sauf "système" qui est un bonus).
 +
 +
Note finale : 80%
 +
 
== [[Partie programmation :]] ==
 
== [[Partie programmation :]] ==
  
Ligne 11 : Ligne 35 :
 
  <TABLE border="5" width="70%" align="center">
 
  <TABLE border="5" width="70%" align="center">
 
  <TR>  
 
  <TR>  
Carac Code hexa <br>
+
<TD>Carac <TD>space <TD>0 <TD>1 <TD>2 <TD>3 <TD>4 <TD>5 <TD>6 <TD>7 <TD>8 <TD>9 <TD>A ou a <TD>B ou b <TD>C ou c
<TD>space $00 <br>
+
<TD>D ou d <TD>E ou e <TD>F ou f <TD>G ou g <TD>H ou h <TD>I ou i <TD>J ou j <TD>K ou k <TD>L ou l <TD>M ou m
<TD>0 $ FC <br>
+
<TD>N ou n <TD>O ou o <TD>P ou p <TD>Q ou q <TD>R ou r <TD>S ou s <TD>T ou t <TD>U ou u <TD>V ou v <TD>W ou w
<TD>1 $ 60 <br>
+
<TD>X ou x <TD>Y ou y <TD>Z ou z
2 $ DA <br>
+
 
3 $ F2 <br>
+
<TR>
4 $ 66 <br>
+
<TD>Code hexa <TD>$00 <TD>$FC <TD>$60 <TD>$DA <TD>$F2 <TD>$66 <TD>$B6 <TD>$BE <TD>$E0 <TD>$FE <TD>$F6 <TD>$EE <TD>$3E <TD>$9C <TD>$7A <TD>$9E <TD>$8E <TD>$BC <TD>$6E <TD>$0C <TD>$F0 <TD>$AE <TD>$1C <TD>$EC <TD>$2A <TD>$3A <TD>$CE <TD>$E6
5 $ B6 <br>
+
<TD>$CC <TD>$B6 <TD>$0E <TD>$38 <TD>$7C <TD>$54 <TD>$6E <TD>$76 <TD>$60
6 $ BE <br>
+
 
7 $ E0 <br>
+
</TABLE>
8 $ FE <br>
+
 
9 $ F6 <br>
+
Dans la table précédente, nous avons considéré que le segment 'a' de l'afficheur correspond au poids fort alors que sur l'afficheur le segment 'a' est le poids faible. Afin de ne pas recréer la table de caractère, il suffit de précédé le caractère ascii par un ~ pour inverser le poids fort et le poids faible.
A ou a $ EE <br>
 
B ou b $ 3E <br>
 
C ou c $ 9C <br>
 
D ou d $ 7A <br>
 
E ou e $ 9E <br>
 
F ou f $ 8E <br>
 
G ou g $ BC <br>
 
H ou h $ 6E <br>
 
I ou i $ 0C <br>
 
J ou j $ F0 <br>
 
K ou k $ AE <br>
 
L ou l $ 1C <br>
 
M ou m $ EC <br>
 
N ou n $ 2A <br>
 
O ou o $ 3A <br>
 
P ou p $ CE <br>
 
Q ou q $ E6 <br>
 
R ou r $ CC <br>
 
S ou s $ 66 <br>
 
T ou t $ 0E <br>
 
U ou u $ 38 <br>
 
V ou v $ 7C <br>
 
W ou w $ 54 <br>
 
X ou x $ 6E <br>
 
Y ou y $ 76 <br>
 
Z ou z $ 60 <br>
 
  
 
De plus, nous avons converti chaque caractère ascii en hexadécimal pour qu'ils correspondent aux éléments du tableau précédent. Enfin, nous avons fait en sorte d'afficher un mot de quatre lettres sur les afficheurs 7 segments en créant les différents fichiers send-... nécessaires.
 
De plus, nous avons converti chaque caractère ascii en hexadécimal pour qu'ils correspondent aux éléments du tableau précédent. Enfin, nous avons fait en sorte d'afficher un mot de quatre lettres sur les afficheurs 7 segments en créant les différents fichiers send-... nécessaires.
Ligne 61 : Ligne 59 :
 
Cette séance nous a permise d'afficher sur les 8 afficheurs de la maquette une phrase de plus de 4 caractères. Nous pouvons constater que la phrase se décale de 1 caractère à la fois vers la droite à une vitesse que nous pouvons fixer.
 
Cette séance nous a permise d'afficher sur les 8 afficheurs de la maquette une phrase de plus de 4 caractères. Nous pouvons constater que la phrase se décale de 1 caractère à la fois vers la droite à une vitesse que nous pouvons fixer.
  
Pour fixer cette vitesse il suffit de rentrer la commande kill -SIGUSR2 'pidof afficheurs' pour accélérer l'affichage et kill -SIGUSR1 'pidof afficheurs' pour le ralentir. La vitesse initiale est de un décalage toutes les 500ms.
+
Pour fixer cette vitesse il suffit de rentrer la commande kill -SIGUSR2 'pidof afficheurs' pour accélérer l'affichage et kill -SIGUSR1 'pidof afficheurs' pour le ralentir. La vitesse initiale est de un décalage toutes les 500ms.
 +
 
 +
Maintenant que nous avons réussi à dialoguer avec les 8 afficheurs de la maquette, nous pouvons transférer ,notre programme sur la foxboard d'adresse  '''172.26.79.101'''. Nous pouvons remarquer que la liaison pc foxboard fonctionne puisque lorsque nous lançons le programme sur un ordinateur, que nous saisissons une phrase, nous pouvons constater que la phrase s'affiche toujours sur les afficheurs via la connection de la foxboard.
 +
 
 +
''Séance 3''
 +
 +
Vu que la partie informatique était fini, nous nous sommes concentré durant cette séance sur la partie électro,ique pour ensuite connecter les deux parties ensemble.
  
 
==[[Partie Electronique :]]==
 
==[[Partie Electronique :]]==
  
  
Pour la partie électronique gestion de l'affichage nous comptons :
 
  
-utiliser un décodeur 1 parmi 4 qui nous permettra de choisir l'afficheur sur lequel on voudrait que nos données soient envoyées.
+
''Objectifs de la séance 1'' : Comprendre le sujet et définir tous les composants à utiliser pour réaliser l'affichage.
 +
 
 +
''Travail effectué'' : schéma global sur papier de notre système électronique
  
 +
un décodeur 1 parmi 4 qui nous permettra de choisir l'afficheur sur lequel on voudrait que nos données soient envoyées.
 
pour ce faire nous mettrons à l'amont du décodeur une horloge au top de laquelle notre compteur s'incrémente et c'est cette valeur du compteur qui sera  envoyée au décodeur.
 
pour ce faire nous mettrons à l'amont du décodeur une horloge au top de laquelle notre compteur s'incrémente et c'est cette valeur du compteur qui sera  envoyée au décodeur.
 +
1 DEMUX (multiplexeur 32->8) qui permettra de transmettre le message de 1 octet sur les 7 segments de l'afficheur.
 +
 +
 +
 +
''Objectifs de la séance 2 '' : Réaliser le montage électronique sous Altium et le valider
 +
 +
''Travail effectué'' : recherche et câblage des différents composants
 +
 +
en plus des différents éléments définis lors de la séance 1 la réalisation du système électronique nous a amené à mettre :
 +
 +
des ports d'entrée et sortie qu'on a définis
 +
1 diviseur de fréquence à la sortie de l'horloge pour que les données à afficher soient visibles soit f=60hz
 +
1 bus JS pour passer les données du compteur au décodeur
 +
test et validation du montage
 +
 +
''Objectifs de la séance 3'' : test du montage sur l'analyseur, mise en commun de la partie informatique et électronique
 +
 +
 +
''Travail effectué'' : liaison série
 +
 +
Au cours de cette séance nous avons pu testé avec succès notre montage sur l'analyseur. Ensuite nous avons réalisé le câblage de nos quatre afficheurs sur une plaquette électronique en reliant les segments qui sont au même potentiel ensemble. Nous avons mis une résistance de 1.5kohm en série avec la led pour limiter le courant dans la FFGA (le courant admissible est de  16mA).
 +
Enfin nous avons branché les sortie de notre montage de la manière suivante les 8 soties de données sur le Header A et les 4 autres sorties représentant la masse au Header B. Ce câblage a été fait en tenant compte de la configuration de nos afficheurs pour qu'on puisse afficher des messages non erronés. Nous avons ensuite affiché les données (GOOD) que nous avons envoyé via l'interface de configuration de données.
  
-4 MUX (multiplexeur) qui permettront de transmettre le message de 1 octet sur les 7 segements de l'afficheur.
+
Pour ce qui est de la liaison série nous avons juste remplacé notre DEMUX par la réception qui nous a été fournie. La liaison série marche de manière impeccable mais le seul hic c'est que la partie informatique a été terminée après que nous ayons identifié la configuration de nos afficheurs. Et donc par manque de temps nous n'avons pas pu modifié notre table de code. Néanmoins nous sommes très satisfaites du travail réalisé car durant ce projet nous avons pu mettre en application les connaissances  de logique , électronique et informatique.

Version actuelle datée du 7 juin 2011 à 09:17

Evaluation informatique

Gestion de projet / rédaction Wiki

Description correcte des objectifs et des réalisations (note 75%).

Test fonctionnels

  • Sous-système : Fonctionnel avec le banc d'essai Phidgets. Interfaçage réalisé avec la nanoboard, les afficheurs réagissent mais les caractères ne sont pas corrects (note 110%).
  • Système : Pas abordé (note 0%).

Qualité de la réalisation

  • Procédure rédigée sur le Wiki : Sommaire (note 25%).
  • Pages HTML et Javascript : Non applicable.
  • Scripts PHP ou programmes C : Autonome, programme très correct (note 90%).
  • Installation sur FoxBoard : Très bien (note 90%).

Bilan

Tous les points ont un poids équivalent (sauf "système" qui est un bonus).

Note finale : 80%

Partie programmation :

Objectifs de la séance 1

Les objectifs de la séance sont de découvrir le projet et de commencer à programmer le programme pour communiquer avec les afficheurs 7 segments.

Travail effectué

Pendant cette séance, nous avons réaliser les différents codages des lettres que nous allons afficher sur le panneau.

Carac space 0 1 2 3 4 5 6 7 8 9 A ou a B ou b C ou c D ou d E ou e F ou f G ou g H ou h I ou i J ou j K ou k L ou l M ou m N ou n O ou o P ou p Q ou q R ou r S ou s T ou t U ou u V ou v W ou w X ou x Y ou y Z ou z
Code hexa $00 $FC $60 $DA $F2 $66 $B6 $BE $E0 $FE $F6 $EE $3E $9C $7A $9E $8E $BC $6E $0C $F0 $AE $1C $EC $2A $3A $CE $E6 $CC $B6 $0E $38 $7C $54 $6E $76 $60

Dans la table précédente, nous avons considéré que le segment 'a' de l'afficheur correspond au poids fort alors que sur l'afficheur le segment 'a' est le poids faible. Afin de ne pas recréer la table de caractère, il suffit de précédé le caractère ascii par un ~ pour inverser le poids fort et le poids faible.

De plus, nous avons converti chaque caractère ascii en hexadécimal pour qu'ils correspondent aux éléments du tableau précédent. Enfin, nous avons fait en sorte d'afficher un mot de quatre lettres sur les afficheurs 7 segments en créant les différents fichiers send-... nécessaires.


Objectifs de la séance 2

Les objectifs de cette séance en programmation sont de réussir à afficher une phrase supérieure à 4 caractères sur les afficheurs 7 segments. La phrase s'affichera par décalage successif.

Travail effectué

Cette séance nous a permise d'afficher sur les 8 afficheurs de la maquette une phrase de plus de 4 caractères. Nous pouvons constater que la phrase se décale de 1 caractère à la fois vers la droite à une vitesse que nous pouvons fixer.

Pour fixer cette vitesse il suffit de rentrer la commande kill -SIGUSR2 'pidof afficheurs' pour accélérer l'affichage et kill -SIGUSR1 'pidof afficheurs' pour le ralentir. La vitesse initiale est de un décalage toutes les 500ms.

Maintenant que nous avons réussi à dialoguer avec les 8 afficheurs de la maquette, nous pouvons transférer ,notre programme sur la foxboard d'adresse 172.26.79.101. Nous pouvons remarquer que la liaison pc foxboard fonctionne puisque lorsque nous lançons le programme sur un ordinateur, que nous saisissons une phrase, nous pouvons constater que la phrase s'affiche toujours sur les afficheurs via la connection de la foxboard.

Séance 3

Vu que la partie informatique était fini, nous nous sommes concentré durant cette séance sur la partie électro,ique pour ensuite connecter les deux parties ensemble.

Partie Electronique :

Objectifs de la séance 1 : Comprendre le sujet et définir tous les composants à utiliser pour réaliser l'affichage.

Travail effectué : schéma global sur papier de notre système électronique

un décodeur 1 parmi 4 qui nous permettra de choisir l'afficheur sur lequel on voudrait que nos données soient envoyées. pour ce faire nous mettrons à l'amont du décodeur une horloge au top de laquelle notre compteur s'incrémente et c'est cette valeur du compteur qui sera envoyée au décodeur. 1 DEMUX (multiplexeur 32->8) qui permettra de transmettre le message de 1 octet sur les 7 segments de l'afficheur.


Objectifs de la séance 2  : Réaliser le montage électronique sous Altium et le valider

Travail effectué : recherche et câblage des différents composants

en plus des différents éléments définis lors de la séance 1 la réalisation du système électronique nous a amené à mettre :

des ports d'entrée et sortie qu'on a définis 1 diviseur de fréquence à la sortie de l'horloge pour que les données à afficher soient visibles soit f=60hz 1 bus JS pour passer les données du compteur au décodeur test et validation du montage

Objectifs de la séance 3 : test du montage sur l'analyseur, mise en commun de la partie informatique et électronique


Travail effectué : liaison série

Au cours de cette séance nous avons pu testé avec succès notre montage sur l'analyseur. Ensuite nous avons réalisé le câblage de nos quatre afficheurs sur une plaquette électronique en reliant les segments qui sont au même potentiel ensemble. Nous avons mis une résistance de 1.5kohm en série avec la led pour limiter le courant dans la FFGA (le courant admissible est de 16mA). Enfin nous avons branché les sortie de notre montage de la manière suivante les 8 soties de données sur le Header A et les 4 autres sorties représentant la masse au Header B. Ce câblage a été fait en tenant compte de la configuration de nos afficheurs pour qu'on puisse afficher des messages non erronés. Nous avons ensuite affiché les données (GOOD) que nous avons envoyé via l'interface de configuration de données.

Pour ce qui est de la liaison série nous avons juste remplacé notre DEMUX par la réception qui nous a été fournie. La liaison série marche de manière impeccable mais le seul hic c'est que la partie informatique a été terminée après que nous ayons identifié la configuration de nos afficheurs. Et donc par manque de temps nous n'avons pas pu modifié notre table de code. Néanmoins nous sommes très satisfaites du travail réalisé car durant ce projet nous avons pu mettre en application les connaissances de logique , électronique et informatique.