51) 05/01/2018 : La carte des menus (MJD 58123)

Finir l’année 2017 a fortement éprouvé les personnels de la NDRMSE, un repos s’avérait impératif pour ne pas trop abuser de leur dévouement à la cause. Aussi, six jours de repos ont été octroyés pour toutes les personnes travaillant sur le site. Ça fait du bien, on retrouve avec plaisir la frénésie des lieux. Les lumières ont été allumées, les ordinateurs remis en service, et dans S4 les informaticiens soudent à nouveau leur regards sur les écrans saturés d’informations abscondes. Et dire qu’en ce moment, si loin dans le vide sidéral, la petite exploratrice hiberne d’un profond sommeil.

Changement de stratégie.

Caractérisant une nouvelle façon plus agréable d’utiliser le petit écran, le démonstrateur P21F_Démonstrateur_Raquette.ino associé à P22F_Démonstrateur_Sonde.ino marque une évolution qui va dans le sens d’une plus grande convivialité opérationnelle.
Si une erreur se produit, sa référence est maintenant indiquée dans le petit cadre jau
ne en haut à droite de l’écran. Par exemple sur la Fig.258 nous somme en train de diminuer la luminosité des phares.
Arrivé à la valeur
1 comme on peut le voir en A, si l’on persiste à tourner le codeur rotatif dans le sens négatif, un bip sonore nous avertit que le codeur est en butée logicielle. C’est en B que l’on peut alors avoir l’information sur la nature de l’erreur commise. Le texte d’erreur s’efface et sera remplacé par Rot ou CLV dès que le bouton rotatif change d’indexage. Notez au passage qu’avec cette version du démonstrateur, la LED ajoutée sur le dispositif de la Fig.237 s’allume pour indiquer que les moteurs sont en vitesse lente.

Le menu EXPLOITATION.

Logiquement, avec celui des déplacements ce sera en principe le plus utilisé. Dans cette version du démonstrateur on n’émule que huit fonctions, par la suite on va en ajouter encore plusieurs. L’ouverture du menu EXPLOITATION se fait sur l’item QUITTER. On pourrait penser que ce n’est pas très logique, et qu’au contraire, ce sont les fonctions de mise en service de JECKERT qui devraient se trouver en tête de liste. En fait, comme nous ne sommes qu’à la phase développement logiciel, pouvoir rapidement replacer la sonde dans une configuration propre est prioritaire.

Dans la version ultime du programme on commencera la liste par une fonction plus opérationnelle. Sur la Fig.259 nous avons les différents écrans qui se succèdent quand on tourne le codeur rotatif dans le sens horaire. Nous savons que QUITTER ? en A replace la sonde sur son bouclier puis coupe les énergies. L’item en B sauvegarde la posture actuelle en EEPROM. Cette fonction est utile lorsque l’on a passé pas mal de temps à créer une configuration originale et que l’on désire la retrouver par la suite à tout moment. Sur un RESET, les phares et le LASER sont initialisés au minimum d’énergie. Par l’option C du menu > EXPLOITER < on force les deux niveaux énergétique à 127, c’est à dire la moitié de la puissance maximale possible. La fonction suivante en D propose le gradateur pour les phares, suivi en E du gradateur pour le LASER. Que ce soit pour les phares ou pour ajuster la puissance du LASER, quand on valide la fonction avec le bouton poussoir OUI, immédiatement, comme dans le cercle rouge sur l’image F, est indiquée la valeur actuelle. On se trouve alors en Mode gradateur. Lorsque l’on tourne le codeur dans un sens ou dans l’autre, la valeur de la puissance change avec effet immédiat sur les périphériques matériels. Tenter des valeurs inférieures à 1 ou plus grandes que 254 génère un BIP sonore d’avertissement et affiche E1 ou E2 dans le cadre jaune. Si la sonde n’est pas en hibernation, les LED blanche ou jaune dédiées s’allument alors sur la sonde. Pour ne pas avoir à trop tourner le bouton du gradateur, les incrémentations et les diminutions de niveau d’énergie se font par pas de 18 unités. Une bonne pratique consiste à forcer les niveaux à 127 si l’on désire rapidement des éclairages notables. C’est la touche FIN qui fait sortir du Mode gradateur. Pour que sur le pupitre nous puissions en avoir confirmation, la valeur numérique de la puissance actuelle est alors effacée de l’écran sur la Raquette de commande.
La fonction Reveiller JEKERT en G fait sortir la sonde du mode hibernation qui lui  avait été imposé par la commande QUITTER.

La fonction Calage GYRO en H impose la Référence interne correspondant à l’orientation actuelle. L’item indique en complément le CAP magnétique actuel. Si on valide cette option avec le bouton poussoir OUI, l’IMU6050 est réinitialisée et éventuellement le CAP est affiché à la nouvelle valeur. (La version F du démonstrateur présente un petit « bug » : La valeur ancienne n’est pas effacée, les deux valeurs se superposent. Ce petit détail est corrigé dans les versions qui suivent.)
Quand la centrale gyroscopique a été recalée, l’écart de route qui est affiché dans les données de navigation sera calculé à partir de cette Référence interne. Tout changement d’orientation en Lacet sera alors détecté et indiqué avec une précision d’un degré angulaire. Nous verrons plus avant que l’information gyroscopique est plus précise que l’utilisation du compas de route, mais se trouve affectée par la rotation terrestre …
Enfin, la dernière fonction Test Gyroscope proposée en J provoque une vérification de la centrale IMU6050. Si on valide avec la touche OUI, après un court délai l’accusé de réception OK s’affiche à la suite du texte Test Gyroscope comme montré dans l’encadré rouge.

Le « menu » MOUVEMENTS.

Impératif pour pouvoir exploiter sur le terrain la petite machine, le menu pour télécommander des déplacements est assez particulier. À franchement parler, ce n’est pas un menu mais une fonction purement opérationnelle. Du reste, quand on tourne le codeur rotatif il n’y a pas de changement d’item sur l’écran de maîtrise de la lointaine exploratrice. C’est la seule option de pilotage pour laquelle dans le petit cadre jaune il y a affichage en 1 de CLV au lieu de Rot. Pour bien nous informer que dans ce mode c’est le clavier qu’il faut utiliser, la LED verte clignote. Considérons sur la Fig.260 la page écran relative à cette fonction. Le titre > MOUVEMENTS < en 2 précise sans ambiguïté que l’on va imposer à la sonde de se déplacer. Pour le cas où vous n’auriez pas totalement pressenti le danger, le logiciel insiste en 3 avec l’avertissement ATTENTION – DEPLACEMENTS –.
De plus, pour le cas où ce n’est pas encore assez clair, la LED rouge du « BIP » des alertes sonores clignote en permanence signalant donc un DANGER potentiel. Pourquoi une telle obstination ?
On ne pilote pas du tout une sonde comme une automobile. Entre le moment où l’on télécommande une consigne et celui où la sonde la réalise puis rend compte, il peut se produire un délai jusqu’à une heure pour recevoir l’ACR. C’est un peu comme si vous conduisiez votre automobile en ouvrant un court instant les yeux, en analysant la route, en corrigeant au volant puis en fermant les mirettes durant une heure sans savoir ce qui se passe ! Aussi, pour ne pas risquer de faire tomber la machine dans un ravin, on analyse avec finesse les images issues de la caméra de bord. Puis on décide soit de changer de CAP, soit de faire un déplacement élémentaire. Si le terrain est plat, on peut se risquer à enchaîner plusieurs étapes, mais on ne cherchera jamais à couvrir une longue distance d’un coup, c’est contraire aux protocoles astronautiques.
Pour des raisons de réalisme, on s’en tiendra à de telles procédures. Néanmoins, il vous sera facile de titiller frénétiquement les boutons de déplacement envisagés sur la Fig.243 pour déplacer de façon notable et à vue directe le petit insecte mécanique.
Quand on tourne le codeur rotatif, le nombre N indiqué par Repeter N fois change entre 1 et 9 dans un sens qui dépend de celui de la rotation. Lorsque vous déclenchez un déplacement élémentaire, en n’appuyant qu’une seule fois sur la touche désirée, la machine va automatiquement enchaîner N fois le déplacement demandé au robot. Aussi, vous allez rapidement constater que 9 fois c’est beaucoup et vous prendrez assez vite la bonne habitude de replacer à 1 le facteur de répétition, sauf cas particulier. Par exemple j’utilise la répétition de 9 pour effectuer les test d’autonomie sur un accumulateur, ce genre de chose … encore que dans ce cas il vaut mieux faire apprendre à la machine un long programme comportant tout une suite de mouvements qui se succèdent. La sonde étant alors sur un berceau on déclenche le programme qui anime les moteurs sans avoir à surveiller JEKERT. Notez au passage que sur un RESET le facteur de répétition est forcé à 1. En revanche, si vous modifiez cette valeur, elle sera conservée dans la mémoire du système quand vous quittez les déplacements. Lorsque vous revenez dans la fonction > MOUVEMENTS <, l’ancien facteur ajusté pour la répétition est retrouvé.
Quand on impose un déplacement, (Avec répétition ou non.) immédiatement les deux LEDs cessent de clignoter et le codeur rotatif devient inerte. On a l’impression que le système s’est bloqué. Ce n’est en rien un aléa de programmation. Le pupitre a envoyé à la sonde une directive. Après avoir parlé, n’oublions pas que nous sommes en alternat, le logiciel passe à l’écoute et attend un accusé de réception issu venant de Mars. Tant que la ligne RX reste muette, le programme espère avec patience. Lorsque JEKERT a entièrement effectué le ou les déplacements élémentaires, alors seulement elle transmet sur TX son accusé de réception. La raquette de commande redevient disponible ce qui visuellement se voit par le clignotement des LEDs qui reprend sa cadence de métronome. Aussi, il peut se montrer agassif de déclencher un déplacement alors que l’on a oublié de replacer à 1 le facteur de répétition. C’est la raison pour laquelle personnellement je ne l’utilise que très peu.
Dans ce mode on peut librement allumer ou éteindre les PHARES et le LASER, mais pas en changer la puissance avec le gradateur. (N’oubliez-pas non plus que piloter un allumage ne sera effectif que si le disjoncteur n’est pas déclenché.) La seule façon de sortir consiste à appuyer sur l’une des toutes de MENU … par exemple celle des POSTURES que l’on va aborder maintenant.

Le menu des POSTURES.

Bien qu’engendrant des mouvements sur la machine, changer de posture ne génère pas de risque de voir JEKERT tomber dans un ravin ou heurter un obstacle. Les changements de configuration ne provoquent pas de déplacement à proprement parler, ils se font « sur place ». Ces adoptions d’attitudes ne constituent pas des déplacements d’exploitation, ce sont des configurations particulières qui ne sont justifiées que dans des cas singuliers peu fréquents. C’est la raison pour laquelle ces commandes sont regroupées à part dans le menu >> POSTURES << pour ne pas trop encombrer la fonction déjà bien chargée des > MOUVEMENTS <. La Fig.261 présente l’écran d’accueil du menu qui propose en premier la configuration VEILLE. Dans la pratique c’est la consigne qui impose à JEKERT de poser son bouclier sur le sol pour libérer les efforts dans les jambes. Cette désignation est très mal choisie, car on peut confondre avec l’hibernation qui consiste à couper les énergies sur le bus des « lumières ». Dans la version finale on remplacera ce texte par un item plus évocateur.
L’écran suivant, quand on tourne le codeur rotatif dans le sens horaire, et visible sur la Fig.262, est plus « dynamique » en ce sens qu’il s’accompagne d’un BIP sonore. Cette alerte a pour but d’attirer l’attention de l’opérateur sur la ligne du bas en X qui nous instruit sur l’importance de faire suivre cette consigne, si on la valide par OUI, par un retour à la configuration standard en utilisant la touche FIN. En effet, certaines postures particulières imposent un retour à une configuration de base par un mouvement coordonné spécifique. Les écrans sont dans ce cas complétés par cette ligne X assortie d’un BIT d’alerte sonore. La posture Stable Raisonnable correspond à la plus grande surface de sustentation possible, attitude que l’on pourra adopter lorsque la sonde est sur un terrain en forte pente pour en assurer une meilleure stabilité. L’écran de la Fig.263 correspond à l’adoption de la Hauteur Maximale pour laquelle les Tibias et les Griffes sont en orientations verticales. Il s’agit également d’une posture qui doit être suivie d’une touche FIN pour revenir à la normale par un mouvement coordonné spécifique. Puis, tournant le bouton toujours dans le sens horaire, les écrans de la Fig.264 vont se succéder dans l’ordre des photographies. Les configurations 1 et 2 sont sans particularité. Faire attention toutefois à POSTURE Apprise en EEPROM qui suppose que dans la mémoire du microcontrôleur on a logé au moins une fois une configuration cohérente. Si l’EEPROM est vierge et n’a été chargées que par les postures de base et les textes, la zone réservée à tout ce qui concerne l’apprentissage ne contient que des $FF. Si vous déclenchez l’option 2 les servomoteurs vont diverger.
Quand on affiche l’écran 3 un BIP d’alerte se fait entendre pour attirer notre attention sur le fait que la sonde doit impérativement se trouver sur son (BERCEAU !). Si elle est au sol quand vous validez cette configuration … les moteurs ne vont pas apprécier. Le programme teste pour vérifier que le micro-contacteur de présence « du sol » est bien activé. Si ce n’est pas le cas un E7 va remplacer Rot, accompagné d’un autre BIP d’alerte. Même punition en 5 si Deposer JEKERT est validée et que le contact avec le sol n’est pas effectif. Les deux postures 4 et 6 n’appellent pas de commentaires particuliers. Il nous arrivera assez souvent de confirmer la POSTURE Stable Transversal, comme pour VEILLE du reste. Pour faciliter l’accès rapide à ces deux configurations fondamentales, VEILLE est directement en entrée dans l’écran d’accueil de >> POSTURES <<, et 6 s’obtient alors par un simple indexage en sens anti-horaire sur le codeur incrémental.

Compte rendu relatif à la version F des démonstrateurs.

Comme déjà expliqué très en amont de ce chapitre, les versions C, D et E des démonstrateurs ont été écartés car inutilisables avec la table des textes actuelle. À titre d’information, ce chapitre explicite les fonctionnalités qui ont été émulées par P21F_Démonstrateur_Raquette.ino et P22F_Démonstrateur_Sonde.ino qui ont servi à manipuler pour le dernier paragraphe :
* Installation de la centrale inertielle et nouvelle stratégie d’utilisation. Sur RESET il n’y a plus d’arrêt si l’initialisation est négative. À tout moment on peut tester la communication avec le code consigne 58. Si la centrale ne réagit pas à des changements d’orientation, on peut suspecter un problème. Dans ce cas on teste manuellement la communication. Le test engendre une erreur E8 si la centrale n’est pas opérationnelle. Toute tentative d’utiliser l’IMU devra être précédée d’un diagnostic de validation de la centrale. La calibration gyroscopique doit se faire au moins quinze à vingt secondes après avoir testé la liaison pour que la température IMU soit stabilisée.
* Des textes ont été passés de la Raquette à la Sonde pour gagner de la place sur le logiciel du pupitre. Cette stratégie est adoptée car pour l’heure elle semble favorable « à la répartition des encombrements ».
* L’écran des données de navigation est effectif dans cette nouvelle version. (Données gyroscopiques.)
* Certaines directives imposent automatiquement le mode « Moteurs Lents » :
Réveiller la sonde, RESET de la sonde, Configurer en Stable raisonnable, Poser au sol …
* QUITTER procèdes aux diverses action décrites dans le chapitre qui précède, ainsi que la fonction Reveiller JEKERT qui est codée dans ce démonstrateur.
Les menus sont globalement en place, il importe maintenant de compléter le logiciel du pupitre.

La suite est ici.

 

Laisser un commentaire

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