Projet

Général

Profil

Actions

Capteur de mouvement

Définition

Figure 4 : Représentation d'une centrale inertielle avec ses axes
Le capteur de mouvement est dans notre cas, une centrale inertielle, autrement appelée IMU (Inertial Movement Unit). Celle-ci se compose de trois gyromètres, trois accéléromètres, un DMP (Digital Motion Processor) et une FIFO.
Afin d'appréhender un mouvement dans sa globalité, nous devions nous servir des trois gyromètres et des trois accéléromètres. En effet, un mouvement n'est jamais linéaire, surtout en présence de patient atteint de pathologie perturbant le système du mouvement. Dans notre cas, l'AVC, la personne éprouve de très grandes difficultés à bouger son bras de façon cohérente, c'est à dire de manière directe. Le bras dévie toujours de la trajectoire idéale. C'est pour cela que nous avons besoin de plusieurs capteurs différents.
Les trois accéléromètres permettent de déterminer le déplacement linéaire du bras. Ce qui nous permet d'en déduire la vitesse et nous la trajectoire.
Les trois gyromètres, eux, nous permettent de déterminer la rotation angulaire du bras, autrement dit, sa manière de dévier. Ceci est rendu possible par la mesure des trois axes x, y et z par ses gyromètres.
Ainsi, en couplant ses deux informations, nous sommes capables de retracer le mouvement du bras ainsi que sa vitesse.

Figure 5 : Schéma des composants de l'IMU

Les deux autres composants de notre centrale inertielle nous permettent une aide au calcul non négligeable. En effet, le DMP est un processeur spécialisé dans le calcul des mouvements. Afin de ne pas donner des données brutes à l'ordinateur et de les traiter ensuite, ce processeur nous permet d'avoir une précision suffisante grâce à son caractère flottant. En effet, les signaux envoyés par les capteurs de l'IMU sont assez faibles et la précision est de rigueur afin d'obtenir des résultats cohérents. La FIFO quant à elle est une pile de donnée qui permet la réalisation de l'initialisation de la centrale inertielle ainsi que la conservation des résultats des différents calculs afin de les envoyer au microcontrôleur.
Mise en place
Afin de mettre en place cet examen de mouvement, il suffit de placer la centrale inertielle sur la main du patient, de la fixer afin qu'elle suive les mouvements de la main et faire en sorte qu'elle épouse au mieux la forme de la main. Il suffit ensuite de placer un objet sur une table, de placer le patient au bord de cette dernière et de lui demander de saisir cet objet.
Afin de récupérer les données traitées, il suffit ensuite de relier la centrale inertielle au microcontrôleur grâce au port I²C. Les informations déjà traitées sont ainsi envoyées à l'IHM qui se charge d'afficher les résultats.
Protocole I²C
Le bus I²C est un bus sur lequel plusieurs équipements, soit maître soit esclave, sont connectés. Les échanges ont toujours lieu entre un seul maître et un ou plusieurs esclaves toujours à l'initiative du maître. Les diverses informations passant à travers ce bus sont préalablement découpées en paquet. L'envoi d'un paquet à plusieurs esclaves se fait simultanément cependant, l'émission et la réception ne peuvent avoir lieu en même temps. Toutes ces caractéristiques font que le bus I²C est un bus série synchrone bidirectionnel half-duplex.
La communication est réalisée par l'intermédiaire de deux lignes ayant chacune deux états, haut (1) et bas (0). C'est deux lignes sont :
- SDA (Serial Data Line) étant la ligne par laquelle les données seront échangées.
- SCL (Serial Clock Line) étant la ligne d'horloge de synchronisation.
Cette communication répond à un protocole bien précis afin de coordonner les différents équipements connectés. Le bus étant bidirectionnel, nous distinguons deux cas de communication suivant chacun un schéma de donnée bien précis. Les deux cas sont maîtres émetteurs, esclaves récepteurs et inversement. Que ce soit en lecture ou en écriture, la demande est toujours faite par le maître ainsi, avant de tenter de prendre le contrôle du bus, un maître doit vérifié que les lignes SDA et SCL sont au repos, c'est à dire à l'état haut. Si cette condition est remplie, le maître indique donc qu'il doit prendre le contrôle du bus en mettant la ligne SDA à 0, cette étape est considérée par tous les équipements comme la condition de départ d'une transmission. A partir de ce moment-là, le maître génère le signal d'horloge sur la ligne SCL. La condition d’arrêt quant à elle est générée par un changement d'état de la ligne SDA quand la ligne SCL est à 1. Afin de transmettre des données, la ligne SDA doit donc changer de valeur uniquement quand la ligne SCL est au niveau bas. Ainsi, chaque état haut de la ligne SCL indique que le bit est présent sur la ligne SDA. La même opération va se répéter autant de fois que nécessaire pour transmettre les 8 bits de données. Une fois les 8 bits transmis, le circuit qui vient de recevoir les données doit imposer un bit d'acquittement ACK sur la ligne SDA. Pour cela, le maître place sa sortie liée à la ligne SDA au niveau bas pendant que l'esclave place la sienne au niveau haut. Le maître relit ensuit la ligne SDA une fois qu'il a passé la ligne SCL au niveau haut. Si la valeur lue pour le bit ACK est 0, c'est que l'esclave s'est bien acquitté de l'octet reçu, sinon c'est qu'il y a une erreur et le maître doit générer la condition arrêt.

Figure 6 : Chronogramme de transmission d'un paquet via le port I²C source : http://www.aurel32.net
Maintenant que nous avons vu la génération de la condition de départ (START), de la condition d’arrêt (STOP) et de l'acquittement (ACK), nous allons observer le fonctionnement d'écriture et de lecture de donnée.
Protocole d'écriture
Le protocole d'écriture est relativement simple car l'esclave ne fait que recevoir des données et doit simplement répondre par des acquittements. Le maître commence par générer un START afin de prendre la main sur le bus puis il envoie un octet contenant l'adresse de l'esclave sur 7 bits. Le dernier bit du paquet d'adressage renseigne le mode de fonctionnement de l'esclave : R/W signifiant Read/Write pour les principes de lecture écriture. Lors du premier paquet d'adressage envoyé, ce bit et toujours à 0 (mode écriture). L'esclave se trouvant à l'adresse du paquet envoie un signal d'acquittement à la fin de cette trame. Une fois l’acquittement observé, le maître doit envoyer un paquet d'information pour la suite de l'écriture. Ce paquet contient par exemple le nombre d'octet que doit lire l'esclave ainsi que d'autres informations utiles à la communication. Encore une fois, la réaction de l'esclave est lue par le maître grâce à l'acquittement. Enfin, le maître envoie un certain nombre d'octet, renseigné dans la seconde trame, que l'esclave doit lire et confirmer la réception. Une fois le nombre d'octet voulu transmit, ou à la réception d'un signal de non acquittement le maître génère un STOP et libère le bus pour la prochaine utilisation.

Protocole de lecture
Le protocole de lecture est un peu plus complexe, en effet la demande de lecture se fait par le maître et il doit d'abord fournir un paquet de commande avant de donner la main à l'esclave pour lire les diverses informations contenues dans ses registres. Tout comme vu précédemment le protocole de lecture commence par la génération d'un START suivie d'un paquet d'adressage dont le bit R/W est mis à 0 pour indiquer à l'esclave que nous allons lui envoyer un second paquet de commande. Une fois l'acquittement du paquet de la commande reçu le maître génère un RESTART. La condition de RESTART est une transgression de la règle de codage des bits qui est utilisée par le maître pour signifier le début d'une nouvelle trame dès la fin de la trame précédente sans passer par une condition de STOP. La condition de RESTART est similaire à la condition de START, à cela près que la ligne SCL doit d'abord passer du niveau bas au niveau haut. Après le RESTART, le maître envoie un paquet d'adressage avec cette fois ci le bit R/W à 1 afin de donner la main à l'esclave. A partir de cet instant, l'esclave peut envoyer ses paquets via la ligne SDA et c'est le maître qui doit répondre par une condition d'acquittement. Une fois le nombre de paquet définit dans la commande reçut le maître génère une condition de non acquittement puis un STOP.

<- Capteurs biologiques -> Première approche physique

Mis à jour par Anonyme il y a environ 12 ans · 2 révisions