Outils pour utilisateurs

Outils du site


wiki:projets:sesicoptere:imu

La Centrale Inertielle

A présent, nous allons parler de la centrale inertielle, Inertial Mesurement Unit (in english of course).

Tout d'abord, qu'est ce qu'une centrale inertielle, Inertial Mesurement Unit (IMU) ?

C'est une petite carte sur laquelle sont soudé des capteurs. Usuellement, on peut trouver un accéléromètre, un gyroscope, un magnétomètre et un baromètre.

L'accéléromètre : Comme son nom l'indique permet de déterminer l'accélération. Il est très utile mais présent un défaut. Il ne permet pas d'indiquer une position (horizontale, verticale). Il est envisageable de déterminer une relation entre l'accélération et le degré de mouvement de la carte sur laquelle est implantée l'accéléromètre. Mais du bruit entre en jeu et c'est très peu précis.

Le gyroscope : Ce capteur va permettre de combler le manque de l'accéléromètre. En effet, ce capteur indique la position verticale, horizontale ou toutes composées des deux en degré. Le gyroscope tout seul ne permet pas de connaitre la vitesse de mouvement de la centrale inertielle c'est pourquoi au minimum on trouve Un accéléromètre et un gyroscope sur les centrale inertielle.

Le magnétomètre : Comme son nom l'indique aussi, permet de mesurer le champ magnétique. Sa y est je vous ai perdu. En fait, Les pôles de la terre sont magnétique. Vous voyez ou je veux en venir ? … Le magnétomètre permet de déterminer le nord et donc d'avoir un point fixe qui va nous permettre de connaitre l'orientation du drone.

Enfin le baromètre : Comme son nom l'indique permet de mesurer des Bar. Pas ceux ou il y a la bière, mais des Bars de pression. Ainsi, de cette manière on peut déterminer l'altitude du drone car la pression varie en fonction de l'altitude. Le baromètre est précis au mètre près, soit autant dire pas précis du tout pour du vol en rase-motte mais assez précis pour du survol de région. Nous ne nous en sommes pas servi, mais si vous en avez besoin sachez que sa existe.

Attention, Je veux attirer votre attention sur un point essentiel avant d'acheter votre centrale inertielle. Il n'y à pas toujours ces quatre capteurs dans les IMUs. Il peut y avoir que le magnétomètre et l'accéléromètre. Ou même un combo de 3 premiers capteurs au lieu des quatres.

Il y à une manière simple de savoir (avant d'acheter c'est mieux). Soit vous aller regarder les composants qui compose la centrale inertielle. Soit vous vous fiez à la référence dans laquelle, bien souvent, on trouvera l'information sous cette forme : 10 DOF, 9 DOF, 6 DOF. “DOF” signifie Degree Of Freedom. Lorsqu'il y en à 6, cela veut dire que nous avons Un accéléromètre 3 axes et un gyroscope 3 axes. 3+3 = Devinez. On peut faire de même pour les centrale inertielle estampillée 9 DOF : Un accéléromètre 3 axes, Un gyroscope 3 axes, Un magnétomètre 3 axes. 3+3+3 = ………. 9 évidement. Dans le cas des 10 DOF, vous avez compris, on à les même capteurs que la 9 DOF avec un magnétomètre qui n'a qu'un seul degré de liberté soit 3+3+3+1 = 10.

Le magnétomètre ne dispose que d'un seul degré de liberté car il ne permet que de connaitre l'altitude (sur un axe qui passe par le centre de la terre et tangent à la surface de la terre appelé plan vertical).

Nous avons donc chercher un centrale inertielle qui correspondait à nos besoin à savoir au minimum 9 DOF. Nous voulions également en trouver une simple d'utilisation. Dans le cadre de la réalisation d'un drone sur 2 mois. Passer 3 semaines à développer un contrôleur pour la centrale inertielle n'est pas viable. Nous avons donc chercher et nous avons découvert la FreeIMU 10DOF réalisée par Fabio Varesano. Cette centrale inertielle s'inscrit dans un projet Open Hardware. Ce qui veut dire qu'elle est documentée, que les sources de codes sont fournies et même les schéma électriques sont divulgués. Ainsi, pas de panique on risque pas de cramer l'IMU en ne connaissant pas la manière dont les connexions sont faites.

Cette Centrale inertielle dispose également d'un gros avantage, elle est fournie avec une librairie Arduino très bien faite. Sur le site web de l'IMU, on retrouve tout les documents nécessaire et des vidéos qui “vendent du rêves” : http://www.varesano.net/projects/hardware/FreeIMU

Voici la FreeIMU. Nous pouvons voir qu'il y à beaucoup de connexions. Ne vous inquiétez pas, à la fin de cette page, la freeIMU et la majorité des IMU en général n'auront plus aucun secret pour vous.

Nous allons tout d'abord parler de l'alimentation de cette carte. On peut voir qu'il y à Vin, GND et 3v3. La freeIMU s'alimente en 5v donc on met 5v sur Vin. On met GND à la masse et 3v3 est une patte de sortie qui founi une tension de 3v3. On peut voir les pins SDA, SCL. Elles sot spécifique d'une liaison I2C (Nous allons voir sa dans la suite).

INTA et INTM sont des pins que nous n'avons pas utilisés. Les pins INT passent à 1 pour générer des interruptions. INTA pour une interruption sur l'accéléromètre et INTM pour le magnétomètre. Par exemple, lors de la chute de l'IMU, INT passe à 1 et le microcontrôleur peut dévider d'agir en fonction.

Voyons un cas pratique. Les derniers MacBook dispose d'un accéléromètre à l'intérieur. Quand le MacBook tombe, la centrale inertielle le détecte et l'indique à un composant qui coupe l'alimentation du disque pour ne pas perdre ou détériorer les données.

FSYN est un signal de synchronisation permettant de synchroniser un module GPS, un appareil photo ou une camera.

Nous avons passer en revue toutes les Pins de la freeIMU. Nous allons à présent nous attarder sur les pin SDA, SCL. Sachez que pour vous servir de l'IMU, il n'est pas indispensable de connaitre le protocole I2C. Mais je désire en parler ici afin que les personnes qui ne le connaisse pas puisse connaitre les grandes lignes de ce protocole. Les Pins SDA, SCL sont spécifique au protocole I2C. Ce protocole a été crée dans le but de minimiser le nombre de fil nécessaire pour faire communiquer deux modules. Il y à une pin qui donne la cadence, la Clock ( l'horloge) c'est la pin SCL. La pin SDA quant à elle permet d'envoyer les adresses et les données. Ce protocole est très intéressant du fait que sur un Hôte I2C on peut connecter plusieurs modules I2C. Ainsi, si je vous dit que l'accéléromètre, le magnétomètre, le gyroscope et le baromètre communique tous en I2C sur l'Arduino, quand nous feront les connexions nous auront que deux fils qui viendront de la freeIMU et qui seront connectés à l'Arduino.

Je vous invite à lire le wikipedia de l'I2C : http://fr.wikipedia.org/wiki/I2C qui explique très bien le fonctionnement de ce protocole.

La librairie est disponible sur cette page : http://www.varesano.net/projects/hardware/FreeIMU. Il faut descendre plus bas dans la page pour avoir le lien du téléchargement. La librairie contient tout les fichiers nécessaire pour l'utilisation de l'IMU.

wiki/projets/sesicoptere/imu.txt · Dernière modification: 2016/09/11 13:15 (modification externe)