Contrôle d'accéléromètre, 2011/2012, TD3 : Différence entre versions

De Wiki d'activités IMA
(Partie informatique)
(Evaluation informatique et électronique)
 
(35 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Nicolas Alexandre, Gérôme Monier, Nicolas Leuliet
+
== Evaluation informatique et électronique ==
 +
 
 +
=== Gestion de projet / rédaction Wiki ===
 +
 
 +
Rédaction avec trop de coquilles pour un niveau école d'ingénieurs (enfin tout niveau au delà du collège).
 +
Vous avez ajouté un court descriptif sur la répartition des tâches.
 +
 
 +
* Informatique : Des bêtises (voir le passage sur la commande <tt>scp</tt>, sur la ROM sur la carte MSD (sic)). Note 66%.
 +
* Electronique : Les explications sont sommaires. Trop d'imprécisions et de coquilles qui trahissent un certain laisser-aller. Note 50%.
 +
Note 58%.
 +
 
 +
=== Test fonctionnels ===
 +
 
 +
* Sous-système. Note 63%.
 +
** Sous-système informatique : Sous-système testé du coté informatique. Pas de test FoxBoard / NanoBoard à ma connaissance. Interface primitive qui n'ajoute rien au groupe précédent. Note 66%.
 +
** Sous-système électronique : Le sous-système peut fonctionner, il aurait utile de montrer quelques résultats. Note 60%.
 +
 
 +
=== Qualité de la réalisation ===
 +
 
 +
* Informatique : Note 58%.
 +
** procédure de test : Pas de <tt>README</tt> sur la FoxBoard. Pas de source du script CGI-BIN C. Un bouton "mise en route" inutile. Pas de fonctionnalité nouvelle par rapport au groupe précédent. Note 50%.
 +
** pages HTML et Javascript : Une page HTML minimale, du code JS minimal avec une fonction <tt>timer</tt> inutile. Note 50%.
 +
** scripts PHP ou programmes C : Pas de trace du source C. Source installé très en retard, FoxBoard reformatté entre temps. Envoyé par courriel. Même programme que le groupe précédent. Note 66%.
 +
** installation sur FoxBoard : Démon lancé au démarrage. On se demande d'où sort le CGI-BIN et le démon (pas de source). Note 66%.
 +
* Electronique : Note 45%.
 +
** qualité de la réalisation : La réalisation coté FPGA ne compile pas, c'est dire que le travail n'est pas à la hauteur. Note 50%.
 +
** tests : Les tests ne sont pas renseignés (exceptés ceux réalisés avec les outils Altium) et les termes vagues ; la non compilation évoquée en fin de rapport laisse planer un gros doute. Note 40%.
 +
 
 +
=== Bilan ===
 +
 
 +
Tous les points principaux ont un poids équivalent (sauf "système" qui est un bonus).
 +
 
 +
Note finale : 58% => 11,5/20.
  
 
== '''Projet accéléromètre''' ==
 
== '''Projet accéléromètre''' ==
Ligne 6 : Ligne 38 :
  
 
'''Objectif du projet''' : Réaliser un sous-système d'acquisition pour accéléromètre. Ainsi, ce sous-système doit être capable de mesurer la vitesse suivant trois axes et de les afficher à l'aide d'une interface Web. La partie informatique de ce projet consistera à traiter les données et les afficher. Celle électronique cherchera à faire la conversion analogique-numérique des signaux des 3 axes.
 
'''Objectif du projet''' : Réaliser un sous-système d'acquisition pour accéléromètre. Ainsi, ce sous-système doit être capable de mesurer la vitesse suivant trois axes et de les afficher à l'aide d'une interface Web. La partie informatique de ce projet consistera à traiter les données et les afficher. Celle électronique cherchera à faire la conversion analogique-numérique des signaux des 3 axes.
 +
Le travail sera réparti au sein du trinôme de la facon suivant
 +
* Partie électronique : Gérôme Monier, Leuliet Nicolas
 +
* Partie informatique : Nicolas Alexandre
  
  
== '''Séance 1''' ==
+
=== '''Séance 1''' ===
  
  
== Partie électronique ==
+
==== Partie électronique ====
  
 
Objectif: Analyse du projet, première approche d'Altium 05.
 
Objectif: Analyse du projet, première approche d'Altium 05.
Ligne 18 : Ligne 53 :
  
  
== Partie informatique ==
+
==== Partie informatique ====
  
Pour la partie informatique une page de base en html a été créé. Elle affiche un champ qui se rafraichira automatique grâce notamment à la fonction javascript qui permet de faire appelle à un ensemble de fonction (écrites en C) qui obtiendra des données directement de l’accéléromètre.
+
* Objectifs de la séance :
 +
** Compréhension du sujet
 +
** Prise de connaissance des nouveaux langages (Ajax et javascript).
 +
** Création de l'interface HTML
  
Apprentissage d'Ajax et étude des exemples de programme C de liaison par le port série.
 
  
Les fichiers utilisés sont rajouté dans les répertoire suivant:
+
Le but de la partie informatique est donc de créé une interface html qui récupère les données d'un axe de l’accéléromètre pour ensuite l'afficher sur la page du navigateur.
/var/www/ : index_html, prototypes.js
+
La page html en question est composé d'un champ de texte dans lequel les données de l'accéléromètre seront affichées, pour l'instant la fonction de récupération des données n'a pas encore été réalisée mais nous avons pu tester la fonction javascript "setTimeout" qui appellera l’exécution du programme C. Cette fonction se déclenche lorsque l'on appuie sur le bouton "Mise en route" présent sur la page, elle nécessite aussi la bibliothèque javascript prototype.js qui a été téléchargée et inclue dans le fichier htlm.
  
/usr/lib/CGI-BIN/ : fct (fichier executable permettant de récupérer les données de l'accéléromètre
 
  
== '''Séance 2''' ==
+
Nous prévoyons donc d'utiliser fichiers 3 pour la partie informatique :
 +
* un fichier index.php pour l'interface.
 +
* un fichier fct.c, le programme permettant de récupérer les données de l'accéléromètre (puis compilé).
 +
* un fichier demon.c, le programme qui initialise le port série nécessaire pour la liaison avec l'accéléromètre (puis compilé).
  
 +
Pour cette séance les objectifs ont été remplis même si je n'ai pas pu tester les fonction Ajax (pas de programme de test pour l'instant).
  
== Partie électronique ==
+
=== '''Séance 2''' ===
 +
 
 +
 
 +
==== Partie électronique ====
  
 
Objectif: Terminer la partie FPGA. Simuler sur la nanoboard avec un analyseur logique.  
 
Objectif: Terminer la partie FPGA. Simuler sur la nanoboard avec un analyseur logique.  
Ligne 38 : Ligne 81 :
 
A la séance précédente, nous avions commencé la partie sur Althium 5. Cette partie terminée, nous avons effectué les simulations afin de vérifier le bon fonctionnement du schéma (voir ci dessous). Avec l'analyseur numérique, nous avons vérifié les signaux de sorties (la valeur du PWM et du compteur). Il nous reste maintenant la partie analogique, à savoir, le PWM suivi d'un filtre RC et d'un comparateur (servant à comparer les valeurs des tensions des trois axes de l'accéléromètre). Le filtre passe bas nous servira à donner une moyenne de la tension.
 
A la séance précédente, nous avions commencé la partie sur Althium 5. Cette partie terminée, nous avons effectué les simulations afin de vérifier le bon fonctionnement du schéma (voir ci dessous). Avec l'analyseur numérique, nous avons vérifié les signaux de sorties (la valeur du PWM et du compteur). Il nous reste maintenant la partie analogique, à savoir, le PWM suivi d'un filtre RC et d'un comparateur (servant à comparer les valeurs des tensions des trois axes de l'accéléromètre). Le filtre passe bas nous servira à donner une moyenne de la tension.
 
               [[Fichier:PWM.png]]
 
               [[Fichier:PWM.png]]
== Partie Informatique ==
 
  
Au cours de cette seconde séance nous avons réalisé le programme C permettant d'obtenir les informations envoyées par l'accéléromètre, celui-ci récupère une valeur puis l'affiche (par un "printf"), l'utilisation de Ajax et de la bibliothèque prototypes.js (bibliothèque javascript) permet de récupérer ce résultat et de l'afficher directement sur la page web. Un "timer" javascript exécute cette opération toutes les deux secondes à partir du moment où on clique pour la première fois sur "Mise en route".
+
==== Partie Informatique ====
  
La partie informatique fonctionne bien avec la maquette, il ne reste plus qu'à l'envoyer sur la foxboard pour pouvoir la connecter avec la partie éléctronique.
+
* Objectifs de la séances :
 +
** Finir l'interface
 +
** Réalisé le programme de récupération de donnée
  
== Partie informatique ==
 
  
 +
Nous avons donc commencé la séance par la création du programme permettant de récupérer les données de l'accéléromètre avant de les afficher dans le navigateur.
 +
Pour cela nous avons pris exemple sur les programmes mis à disposition sur le site. Comme notre projet ne nécessite pas d'envoyer les des données avec les port série nous avons juste à programmé la partie "réception".
 +
Le programme fonctionne donc en récupérant les données de initialisant la connexion avec le port série (socket lecture, il faut aussi que le programme demon soit lancé en parallèlement pour que ça fonctionne), il lit ensuite les donnée reçu en intervalles réguliers et si la donnée reçu est différente de la précédent alors le programme l'affiche.
 +
Ce programme est compilé puis rangé dans le dossier /usr/lib/CGI-BIN/
  
== '''Séance 3''' ==
 
  
 +
Ensuite grâce à la commande Ajax : "new Ajax.Request('fct',{method: 'get',parameters, onSuccess: afficher}", nous récuperons la valeur afficher par le programme puis nous l'envoyons à la fonction javascript afficher qui s'occupe simplement de changer la value du champ de texte par la donnée récupérer pour que celle-ci s'affiche à l'écran.
  
== Partie électronique ==
+
 
 +
Les objectifs de cette séance ont été réalisés, nous avons même pu teste l'interface sur l'ordinateur, en lançant le démon d'un coté puis en apuyant sur le bouton Mise en route les valeurs de l'accéléromètre s'afficher bien à l'écran le programme fonctionne donc (après que l'ont ai justement ajouté un intervalle dans fct.c, avant cela le programme ne renvoyé pas de valeur). Pour la prochaine séance il restera donc à installé tout cela sur le FoxBoard.
 +
 
 +
=== '''Séance 3''' ===
 +
 
 +
 
 +
=== Partie électronique ===
  
 
Lors de cette séance, nous avons perfectionné notre FPGA. En effet, l'horloge du compteur et du PWM ne doit pas être la même, contrairement au schéma de la séance précédente (fréquence du PWM doit être 2^5 fois supérieur au compteur). Nous avons choisi 1kHz pour l'horloge du compteur, et 50kHz pour celle du PWM.  
 
Lors de cette séance, nous avons perfectionné notre FPGA. En effet, l'horloge du compteur et du PWM ne doit pas être la même, contrairement au schéma de la séance précédente (fréquence du PWM doit être 2^5 fois supérieur au compteur). Nous avons choisi 1kHz pour l'horloge du compteur, et 50kHz pour celle du PWM.  
Ligne 59 : Ligne 112 :
  
 
[[Fichier:Analogique3.png]]
 
[[Fichier:Analogique3.png]]
 +
 +
 +
===Partie Informatique===
 +
 +
* Objectifs de cette dernière séance :
 +
** Paramétrer la Foxboard
 +
** Envoies des fichiers requis sur la foxboard
 +
** Relier la FoxBoard et la Nanoboard
 +
 +
 +
En nous appuyant sur la page de configuration des foxboard, nous avons pu, avec un eepc, configurer notre Foxboard en modifiant le fichier rootfs/etc/network/interfaces contenu sur la ROM de la Foxboard, celle-ci obtient l'ip 172.26.79.1 qui nous servira pour l'identifier et s'y connecter.
 +
Une fois la carte MSD configurée et replacée dans la Foxboard nous avons pu copier les fichier requis de l'ordinateur vers la Foxboard via la commande "scp -m root@172.26.79.1:", les fichiers copiés se trouve dans les répertoires suivant :
 +
* /var/www : pour index.php ainsi que la bibliothèque prototypes.js (en plus des sources).
 +
* /usr/lib/CGI-BIN : pour le fichier fct (compilé a partir de la Foxboard en SSH).
 +
* /root/ : le demon permettant de communiquer par le port série(compilé a partir de la Foxboard en SSH).
 +
 +
Après avoir placé les fichiers on se connecte à la Foxboard par la commande "ssh", puis après avoir compilé les deux programme C il a fallut modifier le fichier rc.local afin de lancer le démon directement à chaque fois que la board se lance. Enfin pour tester il suffit de se connecter à l'adresse IP 172.26.79.1 sur le navigateur, en branchant la maquette à la Foxboard on voit que l'interface réagit comme avant et donc qu'elle reçoit bien les donnée de l'accéléromètre (assez sensible tout de même il ne faut pas trop le bouger).
 +
 +
Deux des objectifs de la séance ont été remplis mais la liaison Nanoboard/Foxboard n'a pas pu être réalisé en raison d'une erreur Altium lors de la compilation.

Version actuelle datée du 22 juin 2012 à 15:26

Evaluation informatique et électronique

Gestion de projet / rédaction Wiki

Rédaction avec trop de coquilles pour un niveau école d'ingénieurs (enfin tout niveau au delà du collège). Vous avez ajouté un court descriptif sur la répartition des tâches.

  • Informatique : Des bêtises (voir le passage sur la commande scp, sur la ROM sur la carte MSD (sic)). Note 66%.
  • Electronique : Les explications sont sommaires. Trop d'imprécisions et de coquilles qui trahissent un certain laisser-aller. Note 50%.

Note 58%.

Test fonctionnels

  • Sous-système. Note 63%.
    • Sous-système informatique : Sous-système testé du coté informatique. Pas de test FoxBoard / NanoBoard à ma connaissance. Interface primitive qui n'ajoute rien au groupe précédent. Note 66%.
    • Sous-système électronique : Le sous-système peut fonctionner, il aurait utile de montrer quelques résultats. Note 60%.

Qualité de la réalisation

  • Informatique : Note 58%.
    • procédure de test : Pas de README sur la FoxBoard. Pas de source du script CGI-BIN C. Un bouton "mise en route" inutile. Pas de fonctionnalité nouvelle par rapport au groupe précédent. Note 50%.
    • pages HTML et Javascript : Une page HTML minimale, du code JS minimal avec une fonction timer inutile. Note 50%.
    • scripts PHP ou programmes C : Pas de trace du source C. Source installé très en retard, FoxBoard reformatté entre temps. Envoyé par courriel. Même programme que le groupe précédent. Note 66%.
    • installation sur FoxBoard : Démon lancé au démarrage. On se demande d'où sort le CGI-BIN et le démon (pas de source). Note 66%.
  • Electronique : Note 45%.
    • qualité de la réalisation : La réalisation coté FPGA ne compile pas, c'est dire que le travail n'est pas à la hauteur. Note 50%.
    • tests : Les tests ne sont pas renseignés (exceptés ceux réalisés avec les outils Altium) et les termes vagues ; la non compilation évoquée en fin de rapport laisse planer un gros doute. Note 40%.

Bilan

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

Note finale : 58% => 11,5/20.

Projet accéléromètre

Objectif du projet : Réaliser un sous-système d'acquisition pour accéléromètre. Ainsi, ce sous-système doit être capable de mesurer la vitesse suivant trois axes et de les afficher à l'aide d'une interface Web. La partie informatique de ce projet consistera à traiter les données et les afficher. Celle électronique cherchera à faire la conversion analogique-numérique des signaux des 3 axes. Le travail sera réparti au sein du trinôme de la facon suivant

  • Partie électronique : Gérôme Monier, Leuliet Nicolas
  • Partie informatique : Nicolas Alexandre


Séance 1

Partie électronique

Objectif: Analyse du projet, première approche d'Altium 05.

Après une brève prise en main du logiciel, nous avons commencé à placer les premiers composants qui permettront de réaliser la partie électronique. Pour réaliser un CAN, nous choisissons d'utiliser une MLI (ou PWM), avec 5 bits de commande. Ainsi, nous pourrons obtenir un signal logique à rapport cyclique variable grâce à un compteur. Cette valeur sera ensuite comparée à l'un des trois axes. La partie MLI se fait à l'aide d'Althium 5.


Partie informatique

  • Objectifs de la séance :
    • Compréhension du sujet
    • Prise de connaissance des nouveaux langages (Ajax et javascript).
    • Création de l'interface HTML


Le but de la partie informatique est donc de créé une interface html qui récupère les données d'un axe de l’accéléromètre pour ensuite l'afficher sur la page du navigateur. La page html en question est composé d'un champ de texte dans lequel les données de l'accéléromètre seront affichées, pour l'instant la fonction de récupération des données n'a pas encore été réalisée mais nous avons pu tester la fonction javascript "setTimeout" qui appellera l’exécution du programme C. Cette fonction se déclenche lorsque l'on appuie sur le bouton "Mise en route" présent sur la page, elle nécessite aussi la bibliothèque javascript prototype.js qui a été téléchargée et inclue dans le fichier htlm.


Nous prévoyons donc d'utiliser fichiers 3 pour la partie informatique :

  • un fichier index.php pour l'interface.
  • un fichier fct.c, le programme permettant de récupérer les données de l'accéléromètre (puis compilé).
  • un fichier demon.c, le programme qui initialise le port série nécessaire pour la liaison avec l'accéléromètre (puis compilé).

Pour cette séance les objectifs ont été remplis même si je n'ai pas pu tester les fonction Ajax (pas de programme de test pour l'instant).

Séance 2

Partie électronique

Objectif: Terminer la partie FPGA. Simuler sur la nanoboard avec un analyseur logique.

A la séance précédente, nous avions commencé la partie sur Althium 5. Cette partie terminée, nous avons effectué les simulations afin de vérifier le bon fonctionnement du schéma (voir ci dessous). Avec l'analyseur numérique, nous avons vérifié les signaux de sorties (la valeur du PWM et du compteur). Il nous reste maintenant la partie analogique, à savoir, le PWM suivi d'un filtre RC et d'un comparateur (servant à comparer les valeurs des tensions des trois axes de l'accéléromètre). Le filtre passe bas nous servira à donner une moyenne de la tension.

              PWM.png

Partie Informatique

  • Objectifs de la séances :
    • Finir l'interface
    • Réalisé le programme de récupération de donnée


Nous avons donc commencé la séance par la création du programme permettant de récupérer les données de l'accéléromètre avant de les afficher dans le navigateur. Pour cela nous avons pris exemple sur les programmes mis à disposition sur le site. Comme notre projet ne nécessite pas d'envoyer les des données avec les port série nous avons juste à programmé la partie "réception". Le programme fonctionne donc en récupérant les données de initialisant la connexion avec le port série (socket lecture, il faut aussi que le programme demon soit lancé en parallèlement pour que ça fonctionne), il lit ensuite les donnée reçu en intervalles réguliers et si la donnée reçu est différente de la précédent alors le programme l'affiche. Ce programme est compilé puis rangé dans le dossier /usr/lib/CGI-BIN/


Ensuite grâce à la commande Ajax : "new Ajax.Request('fct',{method: 'get',parameters, onSuccess: afficher}", nous récuperons la valeur afficher par le programme puis nous l'envoyons à la fonction javascript afficher qui s'occupe simplement de changer la value du champ de texte par la donnée récupérer pour que celle-ci s'affiche à l'écran.


Les objectifs de cette séance ont été réalisés, nous avons même pu teste l'interface sur l'ordinateur, en lançant le démon d'un coté puis en apuyant sur le bouton Mise en route les valeurs de l'accéléromètre s'afficher bien à l'écran le programme fonctionne donc (après que l'ont ai justement ajouté un intervalle dans fct.c, avant cela le programme ne renvoyé pas de valeur). Pour la prochaine séance il restera donc à installé tout cela sur le FoxBoard.

Séance 3

Partie électronique

Lors de cette séance, nous avons perfectionné notre FPGA. En effet, l'horloge du compteur et du PWM ne doit pas être la même, contrairement au schéma de la séance précédente (fréquence du PWM doit être 2^5 fois supérieur au compteur). Nous avons choisi 1kHz pour l'horloge du compteur, et 50kHz pour celle du PWM. Nous observons bien un rapport cyclique de plus en plus faible. Après cette légère modification, nous avons commencé la partie analogique, c'est à dire le filtre passe-bas qui donne la moyenne du signal. Pour ce faire, nous avons choisi un simple circuit RC (avec des valeurs des composants encore perfectibles) afin d'optimiser le filtre. Pour le comparateur, il s'agit d'un AOP TL 062 qui délivre 0/5V si le signal filtré est supérieur à la tension d'un axe de l'accéléromètre. Ce signal est renvoyé au FPGA qui active la bascule D et ainsi envoie la valeur du compteur.

FPGA.png

Analogique3.png


Partie Informatique

  • Objectifs de cette dernière séance :
    • Paramétrer la Foxboard
    • Envoies des fichiers requis sur la foxboard
    • Relier la FoxBoard et la Nanoboard


En nous appuyant sur la page de configuration des foxboard, nous avons pu, avec un eepc, configurer notre Foxboard en modifiant le fichier rootfs/etc/network/interfaces contenu sur la ROM de la Foxboard, celle-ci obtient l'ip 172.26.79.1 qui nous servira pour l'identifier et s'y connecter. Une fois la carte MSD configurée et replacée dans la Foxboard nous avons pu copier les fichier requis de l'ordinateur vers la Foxboard via la commande "scp -m root@172.26.79.1:", les fichiers copiés se trouve dans les répertoires suivant :

  • /var/www : pour index.php ainsi que la bibliothèque prototypes.js (en plus des sources).
  • /usr/lib/CGI-BIN : pour le fichier fct (compilé a partir de la Foxboard en SSH).
  • /root/ : le demon permettant de communiquer par le port série(compilé a partir de la Foxboard en SSH).

Après avoir placé les fichiers on se connecte à la Foxboard par la commande "ssh", puis après avoir compilé les deux programme C il a fallut modifier le fichier rc.local afin de lancer le démon directement à chaque fois que la board se lance. Enfin pour tester il suffit de se connecter à l'adresse IP 172.26.79.1 sur le navigateur, en branchant la maquette à la Foxboard on voit que l'interface réagit comme avant et donc qu'elle reçoit bien les donnée de l'accéléromètre (assez sensible tout de même il ne faut pas trop le bouger).

Deux des objectifs de la séance ont été remplis mais la liaison Nanoboard/Foxboard n'a pas pu être réalisé en raison d'une erreur Altium lors de la compilation.