33) 30/11/2017 : Une centrale gyroscopique sur JEKERT (MJD 58087)

C’est probablement le module électronique le plus fabuleux intégré à la petite machine, qui lui alloue une performance technique presque magique. Missiles balistiques, vaisseaux Apollo lors des missions lunaires, les avions de ligne actuels, les sous-marins nucléaires, tous sont équipés de centrales inertielles qui leur permettent une autonomie totale pour effectuer leur navigation. Alors pouvoir équiper le petit robot d’un tel dispositif relève presque de la science fiction … et pourtant !
Pour exactement 2,1€ port compris, on peut s’offrir le summum de la technologie actuelle dont les caractéristiques de base sont proposées dans la Fiche n°24 et la Fiche n°25. Cerise sur le gâteau, il ne sera pas obligatoire d’aller consacrer cinq à six années d’études pointues au MIT pour pouvoir mettre en service ce fabuleux module. Avec la bibliothèque fournie, c’est pratiquement élémentaire.

Chapitre sur la boussole, nous avons apporté la preuve que trois périphériques étaient capables de cohabiter sur le réseau I2C. Avec le module MPU-6050 nous allons conforter cette certitude en y rajoutant une couche. En effet, c’est à l’adresse 68HEX que réside le circuit intégré qui intègre un calculateur ultra rapide. Nous avons de la chance, car cette adresse n’interfère avec aucune des trois autres habitations de la rue I2C. Donc la compatibilité est assurée. Le démonstrateur P16_Plusieurs_modules_I2C_avec_MPU6050.ino est directement issu de P15 avec l’ajout on s’en doute de la petite centrale gyroscopique. C’est volontairement que je n’utilise pas dans ces lignes le vocable de centrale inertielle, car bien que le circuit comporte effectivement des accéléromètres et peut en fournir les valeurs, nous n’exploiterons dans cette application qu’une partie de toutes les informations disponibles. (Simplification du logiciel oblige.)

Expérimentation du capteur gravitationnel.

Simplifions au maximum de démonstrateur pour expérimenter les procédures d’utilisation du circuit MPU-6050, tant au point de vue matériel que logiciel. Nous adopterons pour les branchements électriques le schéma minimal indiqué en Fig.1 sur la Fiche n°24. Vous pouvez constater en observant l’agencement du petit module que l’on retrouve certains aspects déjà découverts pour la boussole HMC6352 comme par exemple son fonctionnement interne en 3,3Vcc. Les deux broches SDA et SCL ne vont pas directement sur le bus I2C, des résistances de 1kΩ sont intercalées pour sécurité. En standard Arduino ce sont les broches A4 et A5 de l’ATmega328 qui sont affectées au dialogue sur le réseau des périphériques. Lorsque le démonstrateur démarre, il vérifie la présence du périphérique. Si ce dernier ne répond pas à l’appel, le double message d’erreur de la Fig.145 est envoyé en ACR assorti d’un BIP d’alerte sonore. Si le module inertiel est détecté, l’affichage sur le moniteur série de l’IDE étale une ligne de données correspondant à une première série de mesures effectuées automatiquement suivi de l’invitation à envoyer des commandes « >>> ». (Voir la Fig.146) Lors de ce premier mesurage la référence en LACET est enregistrée, c’est à dire la valeur initiale qui est forcée à zéro dans l’unité de calcul intégrée. La donnée Calage Gyro contiendra la valeur mesurée du LACET chaque fois que l’on provoquera un ReCalage du Gyroscope virtuel. Toute commande « g* » impose de réaliser un mesurage de la gravitation et de renvoyer les composantes angulaire du vecteur poids. Interpréter cette donnée n’est pas immédiat. Sur la Fiche n°25 en Fig.2 sont montrés les axes classiques de repérage en référence au mobile qui emporte une telle centrale gyroscopique. En particulier le repère cartésien XYZ est normalisé et les sens de rotation autour de ces directions trirectangles respectent la convention d’un repère dit de sens direct. ATTENTION : Les angles d’inclinaison retournés par la centrale ne seront corrects que si le repère de référence est correctement orienté par rapport au mobile. Il faudra vérifier que sur le module électronique que vous avez approvisionné, la minuscule « puce électronique » soit soudée avec la même orientation que celle sur le circuit imprimé du prototype. Si ce n’est pas le cas ROULIS et LACET voir TANGAGE seront permutés et les sens de rotation ne seront pas conformes à la théorie. Il vous suffira dans ce cas d’immobiliser votre module avec l’orientation correcte par rapport au châssis.

Rien ne permet à un accéléromètre de faire la différence entre un changement de vitesse du vaisseau dans lequel il se trouve, et le poids éventuel subit par tout corps quel qu’il soit situé dans un champ gravitationnel généré par l’astre à proximité duquel il se trouve. La pesanteur terrestre (Ou martienne dans l’hypothèse de la petite sonde.) est interprétée comme une accélération par les capteurs du MPU-6050. Pour comprendre un peu mieux ce qu’affiche le moniteur vidéo, on va se placer derrière la sonde sur la Fig.147 et supposer qu’en tangage elle est parfaitement horizontale. Le sol sur lequel elle se trouve est donc un plan incliné sur lequel elle est penchée uniquement en roulis. L’axe de Roulis X’X est vu en « bout ». Le poids P est vertical et dirigé vers le bas. Les accéléromètres détectent une valeur nulle sur X’X, une valeur Py sur Y’Y et Pz sur Z’Z. À partir de ces composantes algébriques qui sont très faibles sur X’X et Y’Y si la sonde est presque horizontale, le calculateur intégré au MPU-6050 va déterminer la direction du vecteur P et déterminer l’angle a pour le Roulis, ainsi que les deux autres angles pour le Lacet et le Tangage. Ce sont ces angles qui sont affichés par le démonstrateur. Supposons maintenant que l’on prenne le petit robot en main et que l’on modifie son assiette un peu dans toutes les attitudes et tous les sens. Outre le changement de direction du vecteur poids P le calculateur interne au minuscule circuit intégré va prendre en compte les variations des accélérations angulaires et déterminer ainsi les angles balayés. C’est en brassant mathématiquement toutes ces informations que la petite merveille électronique nous retourne les valeurs déduites pour les trois angles qui caractérisent l’attitude actuelle de la sonde.

Utilisation du capteur gravitationnel.

Contrairement au « monstre de technologie » décrit sur la Fig.144 le MPU-6050 totalement statique ne comporte aucun élément mécanique. De ce fait tous les inconvénients issus du frottement sont radicalement éliminés. Ce n’est pas pour autant que cette technologie soit exempte de faiblesses. Observez à nouveau la Fig.146 qui représente une copie d’écran. Par la commande « g* » répétée assez rapidement au moment du démarrage de l’IMU, on constate, mis en évidence par la couleur jaune, que la valeur calculée pour le Lacet dérive de façon « notable » pendant les quelques premières secondes. Plusieurs facteurs engendrent ce comportement. En particulier le substrat électronique monte en température ce qui influence la sensibilité des capteurs. De plus, si la sonde est pratiquement horizontale, les composantes Px et Py sont vraiment très faibles. Hors ce sont ces deux projections qui permettent de déterminer le Lacet à partir du vecteur P. Il est donc assez logique de constater ce type de divergence. En revanche, quand l’équilibre thermique est atteint, les rotations sont détectées avec une précision étonnante. (On ne s’en rend pas trop compte car le logiciel arrondi l’affichage et ne donne aucune décimale.) Quand on désirera maintenir la sonde sur un CAP précis, après avoir Recalé le Gyroscope de Lacet nous aurons à notre disposition un conservateur de CAP absolument fabuleux. Reste que, même si cette technologie était parfaite, de toute façon les valeurs fournies changeraient au cours du temps, sonde au repos sur son bouclier. N’oublions pas que la Terre tourne par rapport à l’Univers, et la centrale enregistre cette rotation.

Pour faciliter les expérimentations, si vous allumez les phares avec la commande « a* » , vous armez une option de listage gyroscopique en continu. Dans ce cas, dès que vous allez frapper « g* », l’écran vidéo va lister en permanence les trois angles d’attitude de la sonde. Orientez à votre guise, cabrez, piquez, tournez en CAP etc. Bref, manipulez librement et observez les valeurs affichées pour bien cerner ce que retourne le petit insecte robotisé. Vous pouvez à tout moment Recaler le Gyroscope avec la commande « f* » qui active l’initialisation quand la LED moteurs OFF est allumée. Vous aurez rapidement compris qu’il faut réitérer « f* » et éteindre la LED pour ne pas avoir à l’écran un écart calculé nul en permanence.
Le petit module électronique MPU-6050 est immobilisé par deux minuscules boulons Ø M2 sur le circuit imprimé sur lequel est soudée la cellule photorésistante. Il est supporté par des petites entretoises isolantes. L’implantation mécanique sera abordée très en détails dans le prochain tome, enfin consacré à l’intégration de tous les éléments sur le petit vaisseau interplanétaire. On voit bien sur la Fig.148 qui anticipe les explications pratiques, que l’on n’utilise que quatre broches pour le connecter électriquement au reste de l’électronique embarquée. Sur cette photographie la fiche HE14 femelle qui permet le raccordement n’est pas insérée à sa place car elle masque trop le petit module. Juste derrière on peut voir les nombreuses fiches qui sur le multiplexeur vont aux divers servomoteurs. Tout ce petit monde est bien tassé, peu de place est perdue. En termes de densité, avec JEKERT on approche la limite de ce que l’on peut faire tout en évitant de trop galérer. Affaire à suivre …

Avec 9140 octets investis dans cette fonction, on note qu’elle se gloutonne à elle seule 30% de l’espace disponible pour le programme. Difficile d’imaginer moins, car les méthodes incluses dans la bibliothèque qui gère le petit module commercial sont très complexes et font appel à un outillage mathématique lourd. Au final, arriver à émuler une machine aussi complexe que celle de la Fig.144 relève assez d’un coup de baguette magique. Pour résumer, cette fonction n’aurait pas été possible sans l’optimisation permanente pour grappiller partout des « bouts de chandelle ». À l’arrivée, pouvoir l’inclure dans les performances de JEKERT est sans exagération une récompense.

Terminez de vous faire plaisir en téléversant le programme de synthèse presque définitif P30_Programme_COMPLET.ino qui rassemble la totalité des fonctionnalités expérimentées sur les divers démonstrateurs. (Presque définitif car une version visant à dialoguer avec une raquette de pilotage devra forcément le remplacer.) Dans cette version, des commandes sont ajoutées et listées en tête du programme. Par exemple c’est « =* » qui recale le gyroscope et « &* » qui active ou suspend le listage continu des valeurs gravitationnelles. Bien que pour le moment la machine n’est qu’une structure avec des moteurs, que le calculateur est perdu sur une plaque à essais, complètement immergé dans des paquets de fils aussi envahissant que des ronces sur un champ oublié depuis des décennies, testez toutes les fonctions, toutes les commandes. Pour ménager la mécanique, la campagne d’essais ultime avant intégration se fait JEKERT posée sur le berceau.

Nous allons nous quitter provisoirement, car ce tome est pratiquement achevé. Vous attendez avec impatience le suivant qui va dévoiler tous les circuits imprimés et vous aider point par point à concrétiser votre propre robot. Tous les pièges rencontrés pour la réalisation du prototype seront abordés, et surtout certaines pratiques pour faciliter des manipulations qui seraient très indigestes si elles sont mal engagées. Bref, dans pas longtemps JEKERT va prendre du poil de la bête et devenir une exploratrice gaillarde et enthousiaste. Pour clore de troisième volet de la saga, et bien que pour le moment ce n’est pas encore possible, le chapitre qui suit décrit pas à pas la technique qui vous permettra d’établir la fiche de correction du compas de route. C’était promis. Comme je crois que le TOME 4 sera très chargé, en vous proposant ce chapitre prématurément on allège d’autant le prochain livre. Je vous souhaite une très agréable lecture …

La suite est ici.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *