66) 26/03/2018 : Les versions ultimes des logiciels (MJD 58203)

C’est la fête en salle S12 qui pour la circonstance a été décorée. Les établis des électroniciens ont été recouverts par de grandes nappes en papier blanches. Boissons et comestibles encombrent joyeusement ces tables improvisées. Les conversations vont bon train. Globalement le projet est à son terme. Les consoles ont quitté les infrastructures pour être réparties tout le tour de la Terre dans les stations de poursuite. JEKERT a fait son petit bonhomme de chemin. Attirée dans la sphère d’influence de Mars elle a accéléré inexorablement. Quand elle est passée au périgée, tout était conforme. Le moteur orbital a été allumé pendant plus de huit minutes pour provoquer le freinage de capture. Elle orbite sagement autour de la planète rouge. Les radars terrestres confirment que son orbite actuelle est tout à fait conforme aux prévisions. Quand les caractéristiques orbitales auront été affinées, on provoquera le dernier freinage qui engagera sa descente vers le sol ocre et poussiéreux. Tout le monde est confient, il n’y a aucune raison pour que cette ultime manÅ“uvre ne se passe pas correctement. Tout va bien à bord, les signaux envoyés de si loin sont reçus 5/5 …

P40 et P50 les programmes d’exploitation.

Contrairement au domaine commercial où un programme est mis en vente dès que l’on estime qu’il fonctionne « presque bien », dans le cadre des loisirs nous savons tous qu’un logiciel n’est jamais terminé. Les idées foisonnent, la passion pousse au « toujours plus ». Il faut toutefois bien arriver à considérer à un moment ou à un autre qu’il est temps de passer à autre chose. La porte n’est pas fermée, on y reviendra quand nous seront titillé par le démon de la programmation. Avec 96% d’occupation de la zone programme pour P40 et 97% pour le logiciel de la sonde P50, nous pouvons considérer que les deux ATmega328 sont largement exploités avec leurs EEPROMs respectives bien saturées. Il reste juste de quoi corriger d’éventuelles « vermines » qui vont forcément venir assombrir ce tableau idyllique. Les deux logiciels P40_PGM_RAQUETTE_MAITRE.ino et P50_PGM_ESCLAVE_SONDE.ino sont les versions d’exploitation, deux complices intimement liés par un cordon ombilical très bavard. Dans leurs versions actuelles ils sont presque directement issus des démonstrateurs P21P et P22N. Différence de base pour leurs versions du 08/04/2018 : Le début du listage source comporte en remarque l’historique de leurs élaborations. À partir de maintenant, ce ne sont plus des démonstrateurs. Les seules modifications qui viendront apporter des changements auront pour but de corriger des problèmes qui n’ont pas été détectés durant le développement. Avant de considérer ces deux compères comme étant fiables, une campagne de validation sévère est indispensable … mais elle ne sera possible que lorsque le pupitre ne sera plus un gros paquet de fils électriques reliant des plaques à essais, mais sera un véritable petit boitier bien esthétique et fonctionnel. Il reste encore pas mal de pain sur la planche car nous devons réaliser un clavier, définir les alimentations autonomes et créer le coffret. La saga n’est donc pas terminée, car un TOME 7 viendra compléter les six premiers ouvrages. Il sera consacré à la réalisation pratique du pupitre. (Comme toujours, dans la mesure où l’on parle au futur, nous restons tributaires de la vie. Ceci étant précisé, il n’y a pour le moment strictement aucune raison de ne pas y croire.)

P60 le clone EEPROM.

Comme précisé en tête du source de P50_PGM_ESCLAVE_SONDE.ino avant de téléverser le programme il faut au préalable inscrire les postures en EEPROM. En version ultime c’est l’utilitaire de servitude P60_Clone_EEPROM_sonde.ino qu’il faut téléverser. Outre les tables de consignes indispensables au bon fonctionnement de la sonde, ce logiciel inscrit en EEPROM un spectre colorimétrique cohérent, un balayage ultrasons, efface les trois premiers programmes et en fournit six décrits dans le manuel d’utilisation de JEKERT. Enfin, pour éviter tout risque de divergence des servomoteurs, les huit postures enregistrées sont cohérentes. (Également décrites dans le manuel d’exploitation de la petite machine.) Pour résumer, avec ce logiciel de servitude, la petite sonde présentera un comportement cohérent quelles que soient les manipulations expérimentales engagées pour apprendre à s’en servir. (Affirmer aussi péremptoirement que tout va bien fonctionner est assez pédant … car ça suppose que les logiciels fournis sont totalement exempts de vermines !) Compte tenu du nombre considérable de fonctionnalités, un manuel qui fournit les protocoles optimisés accompagne ce TOME 6 et résume globalement les divers menus d’exploitation à partir du pupitre … supposé achevé. Avant de le décrire, ouvrons une parenthèse :

Changements significatifs apportés à P40.

Réputé dériver directement de P21P il comporte plusieurs modifications pas forcément dérisoires qui ont été apportée durant la rédaction du manuel. Cette dernière imposait de manipuler en détails, pour faire émerger des protocoles optimisés. Ces expérimentations ont fait remarquer des petites erreurs, des complications inutiles, et surtout incité à ajouter quelques options au programme d’exploitation du pupitre de pilotage. L’historique situé en tête du listage source précise les modifications effectuées et leurs impacts sur la taille du programme de la raquette ainsi que celle du logiciel de la sonde qui a aussi bénéficié de changements notables. Dans ce chapitre il ne me semble pas très utile d’énumérer les correctifs de « bugs », seules les nouvelles options sont étudiées.
 • Historique des touches utilisées sur le clavier.
Consultez le manuel d’utilisation de JEKERT en page 19 pour avoir les détails de cette petite fonction technique qui peut s’avérer utile en modifications logicielles. Si le comportement du programme n’est pas celui attendu, et que l’on a un doute sur la dernière touche cliquée sur le clavier, pour lever l’incertitude dans une telle situation, le programme comporte en permanence la chronologie des dix dernières touches utilisée, y compris le BPccr. Pour ouvrir la page de visualisation de « l’historique clavier », cliquez sur EXPLOITER puis sur la touche de mouvement élémentaire vers l’avant ⇑. Bien que prévu pour des actions de programmation, dans l’hypothèse de pilotage d’une sonde réelle, on se doute que les consoles de maîtrise permettent à tout moment d’afficher la liste des actions effectuées par les techniciens. Ainsi, si un incident se produit, l’historique facilite la recherche de la cause et l’analyse des actions correctrices à entreprendre. Cette option va donc dans le sens du réalisme et accompagne notre petit délire astronautique.
• Mode Directionnel en affichage des données de navigation. 
Quand on utilise l’affichage permanent des données de navigation en mode graphique, maintenant le BPccr permet d’alterner entre quatre modes de références pour afficher les données de navigation : Cap Magnétique, écart de route en gisement par l’option Directionnelle, référence interne Gyroscopique et dérive gyroscopique Compensée. La référence Directionnelle est en réalité la plus naturelle à utiliser. Dans ce mode l’avant de la sonde est située en haut de la rose des CAPs. La donnée D précise la valeur de la direction désirée. (CAP magnétique souhaité.) Il n’y a plus besoin d’afficher le « bug ». L’aiguille qui tourne indique la direction dans laquelle se trouve le CAP désiré par rapport à l’axe longitudinal du vaisseau. Pour corriger la route il suffit de faire tourner JEKERT du coté où se trouve l’aiguille. Aiguille à gauche on tourne vers bâbord, aiguille à droite on tourne vers tribord … c’est immédiat.
• Mode gyroscopique avec Compensation de la rotation terrestre. 
Pour conserver la direction d’un déplacement, c’est presque le mode d’affichage le plus fiable car nous ne sommes plus tributaires des déviations magnétiques et de la perturbation apportée par les moteurs. On commence par orienter la sonde en mode Directionnel. Puis, quand JEKERT est parfaitement orientée, on active le mode gyroscopique Compensé. Il suffit alors de tourner de façon à toujours annuler l’Ecart de route affiché en bas de la page écran de navigation. La compensation par calcul de la rotation terrestre exagère de +3° en dix heures trente minutes de temps, (Non compensé on serait à -157°) c’est à dire à environ 1/3° par heure, autant dire rien du tout, et ce d’autant plus qu’il est peu probable que vous laissiez immobile JEKERT sur une période aussi importante. Le plus fort, c’est que sur le pupitre cette nouvelle option ne consomme au total que 48 octets : Une aubaine.
• Variation d’amplitude sur les figures de LISSAJOUS. 
Pour une petite dépense de 38 octets tout compris, on peut s’offrir en promotion une simulation du « fading » sur l’onde porteuse qui arrive de JEKERT. En effet, les figures de LISSAJOUS sont supposées avoir en balayage horizontal un signal étalon local très précis, et en vertical l’onde radio qui arrive de Mars. Cette onde subit des phénomènes d’évanouissement comme le montre l’option TELEMESURES. En toute logique, l’amplitude verticale des figures de LISSAJOUS étant supposée issue de l’onde porteuse captée par les antennes de poursuite, elle doit forcément subir les diminutions temporaires de niveau de réception. C’est maintenant programmé, conduisant à une simulation plus réaliste. À ce stade il ne restait plus que 360 octets de disponibles pour pouvoir modifier P40. Heureusement que le logiciel a été bien simplifié …
• Simplifications des menus, allègement des protocoles, optimisations logicielles. 
Force est de constater à l’usage qu’un certain nombre d’items dans les menus étaient inutiles. Par exemple quand on désirait afficher les données de navigation en continu sous forme graphique et en référence gyroscopique, la procédure était bien trop lourde car mal pensée. Par exemple il fallait passer par le menu des DONNEES pour allumer une LED bleue qui signalait le mode graphique. Hors, à l’usage le mode graphique est tellement plus convivial que l’option purement numérique, que cette dernière n’était plus du tout justifiée. Et ce d’autant plus qu’avec le petit tableau de bord graphique on continue d’afficher les valeurs en numérique. L’affichage numérique des données a donc été purement et simplement éliminé faisant gagner une place substantielle pour les programmes. Du coup, étant forcément en affichage graphique, la LED bleue n’est plus utile, et le BPccr dans le menu des DONNEES devient disponible. Il permet maintenant d’afficher à notre convenance la température interne de la centrale inertielle. (Voir le manuel en bas de la page 28.) La broche A3 devient disponible. Afficher les données de navigation au format numérique dans le menu des DONNEES a été enlevé car ne présente aucun intérêt. Du coup on a récupéré pas mal de place en EEPROM, maintenant tous les textes du pupitre y sont logés. Enfin, actuellement le recalage du gyroscope quand on active les références Gyroscopique et Rotation terrestre Compensée est automatique au moment où l’on valide l’option. L’item Calage Gyro. n’est plus du tout justifié. Enlevé du menu EXPLOITER les protocoles de pilotage sont bien plus simples, on gagne du code programme et on enlève des textes en EEPROM. Le code consigne 60 a été récupéré pour pouvoir afficher à volonté la température interne de l’IMU-6050. Toutes ces modifications peuvent sembler secondaires, à l’usage elles améliorent notablement la qualité opérationnelle du pupitre. Le manuel d’utilisation de JEKERT décrit dans le chapitre suivant tient compte de tous ces changements.
• Chronométrage pour le rechargement des accumulateurs de puissance.
Dans le TOME 7 nous allons voir que finalement j’ai « craqué » pour une alimentation totalement autonome. Si vous effectuez un RESET sur le pupitre, la LED jaune clignote rapidement pour nous inciter à cliquer sur une touche du clavier. Toutes les touches font passer au menu EXPLOITER sauf une : La touche de translation vers l’avant. Si vous cliquez sur cette touche ñ alors s’affiche à l’écran une sorte de chronomètre. Le TOME 7 sera accompagné d’un petit livret nommé DOSSIER TECHNIQUE qui contiendra une foule d’informations qui ne sont pas directement liées à l’utilisation de la sonde en tant que machine supposée posée sur le sol martien, mais qui sont indispensables à assurer la maintenance électrique, informatique et électronique de la sonde et du pupitre. (Schémas électroniques, dessin des circuits imprimés, organigrammes et informations sur les logiciels …) Un chapitre particulier nommé Protocole pour recharger les accumulateurs est réservé au rechargement de la pile rechargeable 6Vcc et décrit l’usage de ce chronomètre. Quand on valide le chronomètre de recharge accumulateur, l’écran OLED présente deux informations : En A est affiché un décompteur qui précise la durée restante exprimée en minutes avant la fin du rechargement complet des accumulateurs de puissance 6Vcc. En B se trouve un chronomètre partiel qui décompte par minutes.
• Utilisation de la LED bleue sur la sonde pour témoigner de la stabilisation gyroscopique.
Lors des évolutions logicielles, la LED bleue qui sur la sonde indiquait un calage du gyroscope de la centrale MPU-6050 n’est plus utilisée. Elle est donc devenue disponible. Le programme d’exploitation P50_PGM_ESCLAVE_SONDE.ino a donc été modifié pour s’en servir et signaler que le mode Stabilisation Gyroscopique est en cours. Maintenant la LED verte qui témoigne du fonctionnement de la boucle de base clignote à une fréquence régulière de 5Hz.
• Utilisation de la LED rouge sur la sonde pour indiquer le mode pilotage manuel.
Lors des modifications logicielles, la LED rouge sur la sonde pilotée par S15 n’était plus utilisée. Le programme d’exploitation P50_PGM_ESCLAVE_SONDE.ino a donc été modifié pour s’en et signaler comme envisagé à l’origine que le mode pilotage manuel est en cours.

La suite est ici.

Laisser un commentaire

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