06) Quelques éléments participant à l’ergonomie logicielle.

Particulièrement délicate à formuler, l’ergonomie logicielle étant relative à l’interaction entre l’opérateur et la machine est directement fonction du fonctionnement mental de ce dernier. Chaque individu aura une logique intime qui lui est personnelle. Elle peut s’avérer directement opposée à la vôtre et pourtant ne pas êtr du tout dénuée de bon sens. Aussi, dans ce qui suit il faut s’attendre à des étonnements de votre part, d’où l’immense avantage de pouvoir éventuellement modifier le programme d’exploitation pour accorder son comportement conformément à vos attentes.

Considérons la Fig.13 qui présente le Menu de base, tel qu’il se présente suite à un RESET. Vous remarquerez qu’au sommet de la hiérarchie on trouve PYROGRAVURE, ce sera le sous-menu qui sera pointé à la mise sous tension de l’ensemble, car « logiquement » ce sera l’action la plus fréquente sur cette machine. Si l’on désire faciliter le travail de l’opérateur, l’écran doit être dépouillé au maximum. Du reste, conformément aux règles d’écriture en imprimerie, la police de caractère choisie dans la bibliothèque <U8glib> est une police sans sérif. Des écrans plus fouillés avec huit menus ont été testés et rapidement écartés pour « éclaircir » et simplifier. Nous avons vu que pour attirer l’attention de l’opérateur quand le programme attend la frappe d’une touche au CLAVIER, une LED verte clignote sur le TABLEAU des LEDs. (Fig.14)

À l’usage, on se rend compte que ces témoins lumineux deviennent presque secondaires surtout si l’on grave souvent. Aussi, pour ne pas trop attirer l’attention ils sont regroupés sur une zone à part et un peu « à l’écart » du PUPITRE. Toujours dans cette optique, en A les LEDs du répétiteur des calibres de l’ampèremètre sont de diamètre 3mm pour se montrer plus discrètes que les trois autres de diamètre 5mm plus orientées utilisation. Dans le même ordre d’idée, pour épurer le tableau des LEDs, trois d’entre elles relatives à la saisie des Origines Machine sont regroupées en une seule triple de type RVB. Le bouton de RESET en B est un peu caché sous le PUPITRE pour des raisons de sécurité. Suffisamment accessible pour l’opérateur, il reste discret, évitant ainsi qu’un visiteur curieux ne clique dessus alors que depuis déjà vingt minutes une pyrogravure est en cours sur une belle plaque en bois de rosier. La LED en C, comme le précise l’étiquette qui sur cette photographie n’a pas été encore changée, concernait le « Répétiteur du LASER« . À l’usage, machine terminée, il s’avère que l’information qu’elle délivre est relativement pertinente et n’était pas assez visible. L’emplacement de cette LED devenue disponible a été réaffecté à une LED triple RVB pour visualiser les « éléments moteur » : Consulter la parenthèse nommée 7) Modification ultime, la der des der ! en page 18. Une autre LED pour le Répétiteur du LASER a donc été tardivement ajoutée bien visible en F de la Fig.15 et insérée dans un fourreau idoine sur le coté gauche du PUPITRE que l’on retrouve en G, avec en D le commutateur des calibres de l’ampèremètre. Cette LED fait partie intégrante du PUPITRE, raison pour laquelle elle est indépendante du plateau A. Son fourreau support traverse une petite plaque immobilisée en B sur le PUPITRE au moyen d’un petit boulon à Ø M2. Noter au passage que les écrous Ø M4 qui immobilisent le plateau A et le PUPITRE G sur les colonnes du statif sont enveloppés en C par des cabochons moulés avec une imprimante 3D. D’autres détails sont visibles en gros plan sur Image26.JPG.

Tourner dans le bon sens … pas si simple à formuler.

Établissant instinctivement un lien virtuel direct entre le sens de rotation du codeur incrémental et le déplacement vertical du curseur sur l’écran OLED, il importe par ergonomie mentale de respecter la façon dont fonctionne notre intellect. Considérons la Fig.16 qui suppose un « menu » à une seule colonne, comme le Menu de base par exemple. Assimiler un sens de rotation positif et un curseur qui « monte » tombe sous le sens. (Jeu de mot débile !) La réciproque coule également de source, encore que ce comportement nous semble naturel parce-que le bouton qui tourne est situé à droite de la colonne de texte. On associe une sorte de frottement entre le bouton et le curseur. Si l’écran présente deux colonnes de texte, comme c’est le cas pour afficher la liste des fichiers présents sur la carte SD, il en va tout autrement. Autant pour la colonne de gauche, faire monter et descendre le curseur sera psychologiquement analogue au ressenti de la Fig.16, autant quand l’index va arriver en haut ou en bas il se produit un chamboulement, car notre pensée peut alors privilégier deux logiques contradictoires tout aussi pertinente l’une que l’autre. Supposons que sur la Fig.17 le curseur est arrivé en bas. On fait un pas négatif de plus sur le codeur rotatif. On peut alors imaginer deux cas « naturels ». Pour le premier représenté en jaune le curseur effectue une sorte de permutation circulaire et continue de l’autre coté en remontant. Dans la continuité du mouvement du curseur ce déplacement ne choquera pas « visuellement notre cerveau, et on continuera à tourner dans le sens négatif pour l’amener vers le haut. Sauf que sous l’hypothèse de cette solution, maintenant il y a inversion par rapport à la logique de la Fig.16 si bien que si le curseur est laissé à mi-hauteur, puis qu’en différé on désire à nouveau le déplacer, cette fois notre mental voudra respecter « les sens rose et vert ». Deuxième possibilité, on se campe sur nos positions. Puisque le bouton tourne dans le sens négatif, le curseur continuera à descendre. Logique ! Pour ce faire, il suffit de faire « recycler » l’index en haut de la colonne de droite comme le suggère la flèche tracée en bleu clair.
– Et alors, où est le problème Totoche ?
Lorsque le menu FICHIERS s’ouvre, il présente la liste des images présentes sur la carte SD avec la présentation de la Fig.17 sauf que l’index pointe alors Img0 oui qui se trouve en tête d’affiche ce qui semble vraiment banal. Supposons que dans ce contexte, l’opérateur désire pointer Img6 oui et y déplacer le curseur par le plus court chemin.
– Et alors ?
Il suffit d’utiliser la machine pour se rendre compte que régulièrement on va se tromper dans le sens de rotation, car dans ce cas particulier, notre mental va imaginer une recirculation « par le plus court chemin », c’est à dire le déplacement symbolisé par la flèche rose.
– Et oui Dudule, en ce bas monde deux et deux ne font pas toujours quatre !
– Misère lacrymale, mais alors on n’est fichu pour la conoravivialité truc alors ?
– Ben non Dudule, il suffit de raisonner autrement.
Facile à affirmer péremptoirement après coup, sauf qu’il faut avouer confusément que je n’y ai pensé personnellement qu’en rédigeant ce tutoriel, idée qui a provoqué la dernière modification du programme le 6 Juin 2020 alors que la machine fonctionne déjà parfaitement depuis des semaines. Lorsque l’on affiche la liste des fichiers, c’est le seul écran à présenter deux colonnes avec le curseur qui circule sur « deux voies ». Le sens dans lequel on doit tourner le codeur rotatif ® pour indexer un fichier devient « naturel » si l’on imagine, comme montré sur la Fig.18, que la colonne de texte de gauche n’existe pas, et que celle de droite constitue un « rond point » autour duquel circule de curseur. Il devient alors évident mentalement de tourner dans le bon sens quand on désire faire « déplacer » le curseur « par le plus court chemin ». Modifier P20_Programme_exploitation.ino pour obtenir ce comportement attendu n’a coûté que 44 OCTETs dans l’ATmega328, c’est vraiment une broutille au regard de la commodité gagnée, et ce d’autant plus que PYROGRAVER et FICHIER sont les deux menus de loin les plus sollicités.
Si certaines ou certains d’entre vous préfèrent le comportement présenté en Fig.17, la solution est très simple : Il suffit de remplacer par la procédure listée ci-dessous celle de P20.

– Fastoche non ?

Le rouge et le noir.

À l’instar de Stendhal, comme pour son roman, ces deux couleurs vont symboliser le repos pour le NOIR et le RISQUE pour le rouge. Ces deux teintes étant adoptées pour les boutons poussoir du CLAVIER ne sont absolument pas le fruit du hasard, pas plus du reste que leur nombre et leur disposition. Toujours dans la recherche d’une simplicité maximale pour manipuler la machine, la géométrie du clavier résulte d’un compromis entre « sobriété » du nombre de touches et besoins générés par les divers menus d’exploitation. C’est principalement le Mode MANUEL qui incite à utiliser un clavier de type « quatre directions ». Par ailleurs, allumer et éteindre l’écran se retrouve dans plusieurs menus, aussi, ajouter une touche entre les quatre « de déplacement » s’est rapidement imposé. Ainsi organisé géométriquement le clavier se montre agréable à utiliser en toutes circonstances. Comme les quatre touches « de déplacement » peuvent déclencher des actions potentiellement risquées, comme vouloir déplacer alors qu’un obstacle bloque l’un des chariots, ou déclencher intempestivement une gravure, ces boutons poussoir ont été sélectionnés avec une couleur rouge. Quand à la touche centrale, affectée principalement pour éteindre l’écran durant les longues opérations de gravure ou de vérification de fichier, le noir s’est invité tout naturellement.

Philosophie globale du « dialogue Homme / machine.

Respecteur une homogénéité de comportement du programme d’exploitation lorsque l’on passe d’un menu à un autre est strictement impératif pour aboutir à une machine agréable à utiliser. C’est un critère à forte priorité lors de la conception du PUPITRE de maîtrise de la machine. De nombreuses approches ont été testées, très différentes les unes des autres, pour arriver à faire émerger un compromis acceptable pour concilier tous les protagonistes, c’est à dire satisfaire l’utilisateur, simplifier au maximum le matériel et le logiciel, n’adopter que des composants ordinaires et peu onéreux. (Un écran multicolore par exemple offrirait plus de possibilités, son prix toutefois ne serait pas le même, sans compter la gourmandise en OCTETs de sa bibliothèque.) Le prototype tel qu’il est décrit dans ces lignes est issu de très nombreuses heures à construire de la convivialité. Les grandes lignes de comportement retenues sont les suivantes :
Le codeur rotatif ® servira à indexer les items dans les divers MENUS affichés à l’écran,
Le bouton central du C.I. servira à valider un item ou à en sortir,
• Le CLAVIER servira dans un MENU à effectuer des actions contextuelles.
• Des items induisant des actions équivalentes, comme allumer ou éteindre l’écran par exemple, utiliseront les mêmes touches du clavier pour les déclencher.
• Si le programme d’exploitation est en attente d’une réponse de l’opérateur de type OUI / NON, seule la touche Y+ ↑ correspond à OUI. Toutes les autres touches seront interprétées comme une négation. La touche Y+ ↑ est choisie car le rouge correspond à l’avertissement pour l’opérateur que l’action peut être potentiellement « risquée », et fait penser à la notion de MAXIMUM.
• Quand on sort d’un item activé, le programme ramène l’utilisateur au menu qui a servi à l’appel de ce dernier et continue à indexer l’option que l’on vient de quitter.
On se doute que la rigueur absolue strictement sans cas particulier dans ce domaine n’est pas réaliste. Nous verrons dans le chapitre qui suit quelques exceptions à ces comportements homogènes qui sont globalement respectés par le logiciel P20_Programme_exploitation.ino.

S’écarter un peu de la philosophie générale.

Dérogation fortement suggérée par la pratique, l’écart de conduite résulte d’un comportement induit par le contexte dont on sera victime avec le Menu de base et en menu SYSTEME. Quand on n’utilise pas la machine depuis un certain temps et que l’on a perdu le réflexe conditionnés qui consiste à cliquer sur le B.P. central du C.I. pour déclencher une action, le curseur orienté vers la droite ressemble tellement à la flèche de X+ → qu’instinctivement on clique sur cette dernière et on déclenche le BIP sonore d’avertissement qui signale que l’on s’est fourvoyé. Cet incident reste fréquent de devient rapidement agassif. Aussi, pour ne plus risquer de perdre notre calme, le logiciel a été modifié. Pour les deux menus cités, le B.P. central du C.I. et la touche X+ → seront équivalents pour déclencher une action. Participant largement à la convivialité logicielle, le petit BUZZER rendra compte de l’état système dans deux cas, attirant l’attention de l’opérateur. Quand on cliquera sur une touche du clavier qui dans certains menus n’a aucun effet, l’avertissement sonore sera déclenché signalant : « Inutile d’insister lourdement Totoche ! ». Il sera également provoqué à la fin de l’analyse d’un fichier image ou lorsqu’une pyrogravure s’achève. Dans les deux cas, si la machine ne se trouve pas à proximité de l’opérateur mais dans la pièce voisine, le fonctionnement est discret. Prévenir l’utilisateur qu’il peut engager une autre manipulation est indispensable. C’est d’autant plus vrai que lors de l’analyse d’un fichier image qui peut prendre un temps important, la machine est totalement silencieuse. Prévenir de la fin est indispensable.

Le cas particulier du menu OPTIONS.

Contrairement à la philosophie générale explicitée en page 16, pour le menu OPTION ce sont les deux touches Y+ ↑ et Y- ↓ qui vont servir à déplacer verticalement le curseur et non le codeur rotatif ®. En observant la Fig.20 de la page écran du menu OPTION on comprend immédiatement que le paramètre du pourcentage LASER peut prendre 100 valeurs différentes. Pour le Délai la valeur sera comprise entre 0,01S et 9.99S et peut changer par incréments de 0,01S. Dans ces conditions traiter chaque paramètre avec le clavier serait vraiment laborieux. Il est infiniment plus agréable de tourner un bouton. Le comportement de programme est dans ce cas assez « naturel ». Quand le codeur rotatif ® tourne dans le sens 2 le ruban augmente vers droite dans le sens 3 ou le sens 4. Le paramètre qui se modifie est celui indexé par le curseur en 1. Lorsqu’il pivote vers 5 alors les rubans évoluent dans les directions 6 ou 7. Pour déplacer le curseur vers le haut ou vers le bas, c’est instinctivement que l’on cliquera respectivement sur Y+ ↑ ou Y- ↓. Si l’on désire modifier l’une des valeurs faiblement, des incréments de 1% ou de 0,01S sont parfaits. Par contre passer de 0.01S à 9.99S va prendre des lustres et complètement user le codeur rotatif et surtout la sérénité de l’opérateur. Aussi, les touches X- ← et X+ → dont les flèches instinctivement signifient « moins » ou « plus » sont les bienvenues pour changer la valeur des incréments. Chaque pas sur le codeur rotatif ® changera la valeur de 1 si on a cliqué sur X- ← et de 10 dans le cas de la touche X+ →. Avec le LASER et des incréments de 10 on couvre rapidement la plage complète. Pour le Délai, à coups de 0,1S c’est bien plus laborieux. Deux artifices logiciels sont mis à contribution pour faciliter la manipulation. Quand on arrive en extrémité d’échelle, il n’y a pas effet de butée virtuelle. Si on continue de tourner sans changer de sens le ruban « saute à l’autre extrémité ». On passe ainsi instantanément de « rien » à « tout » ou réciproquement. Dans cette option, éteindre l’écran n’est pas très utile, vu qu’en principe après avoir choisi les deux paramètres on va enchaîner sur Mode MANUEL ou sur PYROGRAVURE. Aussi, cliquer sur la touche noire fait passer à 50% et à 0.50S. Comme pour beaucoup de matériaux on va privilégier des pyrogravures rapides avec des valeurs de Délai courtes. L’échelle du bas passe à une plage de variation de 1s si le paramètre devient inférieur ou égal à la seconde.

Le cas particulier de l’item Test capteurs ORG.

Simple servitude d’exploitation, cette option ne sera utilisée que rarement, notamment quand sur RESET la LED triple éclaire en violet pour attirer l’attention de l’opérateur sur le fait que la vérification des capteurs d’Origine Machine a échoué. Ce sera le cas chaque fois qu’une mise sous tension sera effectuée, alors que pour une quelconque raison l’un des deux capteurs est occulté par le couteau de détection. Dans ce contexte, la machine étant en VEILLE, on dégage manuellement les deux origines. Puis dans le menu SYSTEME on valide l’item Test capteurs ORG avec X+ → ou avec le B.P. central du C.I. . L’écran OLED repasse au Menu de base sans afficher le résultat du test. En réalité on a ouvert et refermé l’option en un seul clic. La réponse est alors sur la LED triple qui reste en violet s’il y a réellement un problème de capteur, ou allume en « Bleu vert » cyan si tout va bien. Ce comportement du programme minimise la taille du code objet car il n’y a pas de texte différencié à présenter sur l’écran OLED. De plus, la manipulation est plus simple pour l’opérateur car il n’a pas à cliquer sur un bouton poussoir de CLAVIER pour passer à la suite et revenir au menu SYSTEME, puis encore une fois sur  pour retrouver le Menu de base.


Convivialité par les messages textuels d’information.

Pour terminer ce chapitre sur l’ergonomie logicielle, citons au passage les nombreux affichages temporaires qui précisent ce qu’est en train de faire la machine comme en D de la Fig.21 par exemple. En E l’analyseur syntaxique prévient qu’il a détecté une anomalie dans le fichier image. (Valeur sur X ou sur Y hors limites machine.) En C il s’agit d’une consigne. Le programme attend alors que l’opérateur donne l’ordre de passer à la suite en cliquant sur une touche quelconque du CLAVIER dont la LED verte clignote pour informer l’utilisateur de cette nécessité. L’écran A est celui du Mode MANUEL qui affiche en permanence les paramètres pertinent durant cette phase. Ici, le texte LASER : NON précise que les déplacements se font sans gravure, le B.P. noir inversant ce paramètre. L’écran B est celui du début d’une PYROGRAVURE précisant dans la ligne du bas une estimation très approximative de la durée que prendra l’opération complète. Le signe ± qui précède la valeur informe qu’il s’agit d’une évaluation grossière.

La suite est ici.