Contrôle d'accéléromètre, 2011/2012, TD2

De Wiki d'activités IMA
Révision datée du 15 juin 2012 à 12:04 par Zliu1213 (discussion | contributions) (Séance 3)

Rukata Maroy Josué, Li Qiaomu, Liu Zhen

Titre du projet : Sous-système contrôle d'accéléromètre

Le projet consiste à réaliser un sous-système d'acquisition pour un accéléromètre. Un accéléromètre est un capteur analogique qui permet de mesurer les accélérations linéaires suivant les trois axes X, Y et Z d'un corps en mouvement. Dans le cadre de ce projet, il est demandé de convertir les valeurs analogiques d'un accéléromètre,qui nous sera donné, en valeurs numériques pour permettre à un utilisateur de suivre les accélérations des trois axes de l'accéléromètre via une interface Web.

Pour se faire, le projet est divisé en deux parties : - La partie électronique: elle convertie les valeurs analogies du capteur de l'accéléromètre en valeurs numériques. Il rend alors disponible ces derniers sur un port série. - La partie informatique: elle récupère les valeurs numériques de l'accéléromètre qui sont ensuite traitées par un programme C. A partir de la technologie CGI-BIN, une page HTML récupère constamment les valeurs du programme C et les affiche.

I. PARTIE INFORMATIQUE

Le projet est réalisé dans 3 séances de 4h:


Séance 1

L'objectif principal au cours de cette séance était de se familiariser avec le système et les outils à utiliser pour mener à bien le projet. Etant donné que la partie électronique n'était pas encore faite, nous avions reçu une table avec un accéléromètre fixé à une télécommande en balsa et géré par un micro-contrôleur LilyPad. Les données acquises pouvaient alors être lues via une liaison série sans fil (protocole ZigBee).



II.PARTIE ELECTRIQUE


Séance 1

Le but de notre sujet est de réaliser un convertisseur analogique numérique. On a utilisé un modulateur de largeur d’impulsion PWM. L’objectif est de créer un signal logique 0 ou 1 avec un fréquence constante mais un rapport cyclique variable.

L’accélération d’un axe est codé sur 5 bits, donc on a choisi un compteur de 1 à 32 ( 2^5=32) pour réaliser la PWM. ( Par exemple, 16 représente un rapport cyclique 0.5 ) L'horloge de PWM est 32 fois que celle de compteur, parce que pour chaque chiffre donné par compteur(1/32 de la période de compteur ), le composant de PWM doit le régler dans une période de l'horloge ( l'horloge de PWM).

Après la PWM, il faut ajouter un filtrage passe bas ( circuit RC ) qui nous permet d’obtenir la valeur moyenne du signal logique avec un rapport cyclique variable. Cette valeur correspondent à la valeur moyenne du rapport cyclique. Globalement, en sortie du filtrage, on va obtenir un signal triangulaire.

Ensuite, il faut ajouter un comparateur qui compare ce signal avec la valeur d’accélération d’un axe. Si la valeur moyenne da la PWM est supérieur à la valeur mesurée, le comparateur envoi 1 ( 5V ), sinon, il envoi 0 ( 0V ). Donc, en sortie du comparateur, on obtient un signal carré qui passe entre 0 et 1. Comme le principe de conversion de chaque axe est le même, on va travailler sur un axe.


Séance 2

Pendant cette sérance, on a câblé le câblage de la PWM. On teste la sortie du schéma de la PWM sur la nanobord et vérifie son fonctionnement avec un oscilloscope. On voit que la sortie est un signal triangulaire. Ensuite, on réalise un filtrage passe bas ( RC ). On a choisi une fréquence 1k. Par la formule R*C=1/(2*f*3.14), on trouve les valeurs de R et C, avec R=16k, C=10nf.

Puis, on a utilisé un amplificateur qui réalise la fonction d’un comparateur. Et on renvoi la sortie à un bascule D qui réalise la fonction comme une mémoire, quand la sortie monte à 1, la mémoire va stocker la donné du compteur, et puis elle attend la prochaine front montant.

Pour capter l’accélération des axes, on a utilisé un capteur ADXL3xx. Et on a choisi le bascule TL072C pour l’amplificateur.

Pour alimenter ADXL3xx, et câbler TL072C, on a cherché des information sur internet.


Séance 3

Le objectif de cette séance est d'assembler la partie électronique et la partie informatique. Avant de faire ça, on a testé par mettre un Digital IO dans Altium pour voir les valeurs de la mémoire. En fait, si la valeur du comparateur est égal à 1, la mémoire va stocker les valeurs de 5 bits. Ensuite, elle va passer les bits en liaison série.