15) Une valse à quatre temps.

Développer des démonstrateurs aussi « fouillés » que ceux pour réaliser un réseau à trois unités engendre forcément des difficultés et des écueils parfois difficiles à surmonter. Par moment, la difficulté est tellement sournoise, que l’on finit par douter du matériel. Par exemple, au cours des
innombrables manipulations, j’ai pas mégarde, et à plusieurs reprises, branché des modules Bluetooths à l’envers. Ils ont parfaitement résisté. Mais face à un comportement « inexplicable » du logiciel, on finit dans ces conditions par douter du matériel. Pour pouvoir lever le doute, j’ai donc approvisionné deux modules de plus et je les ais appairés.
– Et alors ?
– Ben j’en dispose alors assez pour envisager un réseau en anneau avec trois postes de Travail !

Disposant du matériel nécessaire, je me trouve un peu dans l’obligation morale de le prouver :

Réseau en anneau avec trois postes de Travail.

Constituer un tel réseau est en principe relativement facile à ce stade de nos études et de nos expérimentations. Il suffit de câbler sur un quelconque « breadboard » un Arduino UNO où NANO avec (Ou pas) un afficheur OLED, et l’intercaler dans la chaîne actuelle. On peut le placer n’importe où, par exemple comme présenté sur la Fig.96 où j’ai décidé de le placer entre le n°1 et le n°2. Naturellement on va devoir définir les Actions valides sur cette unité et … réaliser un « trifouillis » tel que celui montré en Fig.4 de la page 2 du document Types de réseaux et aspects logiciels.pdf ce qui ne m’enchante guerre je dois l’avouer ! Ensuite, vient la phase plus agréable qui consiste à créer le démonstrateur. On se contente de copier P19_Bis_Poste_de_Travail_1.ino par exemple et dans le croquis on va modifier les actions locales conformément à nos choix spécifique à ce poste de Travail n°3. Du coup il faudra aussi adapter le poste de Pilotage pour en tenir compte.

La Fig.98 reprend l’architecture de la structure B en y faisant figurer les lignes hertziennes. Dans un tel réseau, chaque Couple représente une liaison filaire virtuelle. On peut donc naturellement les permuter à loisir sans apporter la moindre perturbation. Il sera par exemple tout à fait facile de permuter le Couple 3 avec le couple 4 pour les avoir dans l’ordre. (C’est du reste sans importance, toutes ces désignations ne sont que des identifications et l’on pourrait utiliser n’importe quel vocable.) Par ailleurs, il est également possible de placer dans n’importe quel ordre les postes de Travail dans le réseau. On peut donc permuter sans inconvénient l’ordre des unités dans une chaîne flexible, puisque l’adresse est locale à chaque Arduino. Naturellement il est aussi aisé de déplacer géographiquement les unités d’usinage.

Le postes de Travail numéro 3.

Théoriquement, il est relativement facile de créer son croquis. Il suffit de dupliquer le démonstrateur P19-Bis_Poste_de_Travail_1.ino et d’adapter son adresse et surtout les actions qui lui sont spécifique. Les subtilités de modification d’adressage sont précisées dans l’encadré situé en tête de listage. Le plus indigeste, c’est encore, comme montré sur la Fig.99, de câbler les circuits sur le banc de teste 2. En 1 on peut voir que c’est une carte NANO qui est utilisée, prenant infiniment moins de place qu’une UNO. (Du reste pour mes applications je n’utilise plus que des NANO approvisionnées par lot de quatre.) Les deux plaquettes « breadboard » sont complétées sur le banc de test par le circuit imprimé 3 disposant d’un galvanomètre pour mesurer le courant consommé. Caché derrière les fils, en 4 on trouve la rangée de huit témoins logiques composés de huit LEDs de diamètre 3mm avec leurs résistances de limitation de courant. Quatre sont vertes, quatre sont bleues. Enfin en 6 est positionné le module Bluetooth en entrée, et en 7 celui utilisé en sortie. Les fils de liaison avec l’écran OLED en 5 ne sont pas soudés directement sur le composant mais branchés au moyen d’un petit connecteur HE14 à quatre broches.

Les actions spécifiques au poste de Travail n°3.

Puisque l’on dispose de huit témoins logiques sur le banc de test, il serait facile de prolonger le tableau de la Fig.72 jusqu’à la lettre ‘N’. Toutefois, pour vous simplifier le câblage provisoire on va se contenter que de cinq, les deux démonstrateurs étant écrits dans cette optique. Ajouter trois LEDs dans le croquis n’apporterait rien de nouveau. Les actions de ‘A’ à ‘F’ sont conformes à celles du tableau et identiques à celles des deux autres postes de Travail. Les autres sont les suivantes :

Le poste de Pilotage P22.

Indispensable à développer pour prendre en compte, en mode automatique, la présence d’un nouveau maillon dans notre chaîne d’unités de fabrications flexible. En tête de listage du démonstrateur P22_Poste_de_pilotage.ino sont indiquées les modifications apportées par rapport à P18B. Il n’est pas bien compliqué, dans la génération des adresses, de modifier les fonctions de calcul des valeurs aléatoires pour aller jusqu’à quatre au lieu de trois. Initialement, je n’ai pas pensé à la durée de « voyage » des JETONs. Il se produisait régulièrement des ruptures de dialogue. J’ai donc modifié la procédure  Tester_le_dialogue() qui procède maintenant en deux phases. Mais lors de tests en mode manuel, je me suis rendu compte que certains JETONs orphelins n’étaient pas reçus par le poste de Pilotage. Suite à une analyse et des tests, la raison à été trouvée. C’est un problème de vitesse de propagation d’une onde. Par définition, une onde est un phénomène qui se propage généralement très rapidement sans pour autant provoquer un mouvement de matière. Par exemple, considérons en Fig.101 un petit train. Pour simplifier, on va supposer qu’entre

chaque crochet qui tire et l’anneau relié au wagon existe un petit jeu J de 1mm pour fixer les idées. Quand la locomotive commence à avancer, elle doit parcourir 1mm avant que le premier wagon ne s’ébranle. Puis les deux avancent encore de 1mm avant que le deuxième wagon commence à bouger à son tour. Le phénomène se propage rapidement de proche en proche. Si la locomotive tracte trente wagons, quand le dernier commence à bouger la motrice à avancé de 3cm, ce qui est négligeable par rapport au volume du train, et nous avons l’impression que c’est l’ensemble total qui se met en mouvement. Il n’en est pas moins vrai, que l’onde « de démarrage » se propage à très grande vitesse sur l’étendue de la rame, sans pour autant que celle-ci n’ait significativement bougé. Le phénomène de démarrage est donc une onde, un peu comme une vague. On a l’impression que l’eau avance à la vitesse de cette dernière, mais on observe bien qu’un corps flottant reste globalement à la même place au cours du temps.
– Et alors ?
– Dans notre réseau en anneau c’est pareil.
Pour s’en rendre compte, il suffit de faire un RESET bouton poussoir sur A3 activé. Le programme démarre et commence à envoyer les JETONs aléatoire à la cadence approximative moyenne d’un par seconde. Au démarrage, les trois écrans sont allumés sur les trois postes de Travail. Puis, on clique sur le B.P. branché sur A1 et on observe les trois unités qui pour l’expérience doivent toutes être à notre vue. Cette fois, un premier écran devient noir, puis c’est le suivant et enfin le dernier. Dans cette manipulation, « l’onde d’extinction des écrans » se propage relativement lentement. On observe le même phénomène lorsque l’on décide de rallumer les diverses unités. Nous avons bien à faire à une onde, avec la particularité ici de n’avoir strictement aucun mouvement de matière.
CONCLUSION : Plus on ajoute des unités dans la chaîne flexible, plus il faudra du temps pour qu’un orphelin transite dans l’anneau. Je n’y avais pas pensé. Du coup, pour que l’ensemble puisse fonctionner avec fiabilité, il a suffi dans la procédure Regarde_si_JETON_orphelin_sur_USB() d’augmenter la durée du TIME_OUT en le faisant passer de 700mS à 800mS.
Suite à ce correctif, il ne serait plus nécessaire de procéder en deux étapes dans la routine Tester_le_dialogue(). Mais, comme au final ça diminue encore le risque de voir le système se bloquer sur un test négatif, je n’ai pas repris le programme.

Pour ma part, je vais en rester là, c’est à dire à un réseau en anneau avec trois postes de Travail. À l’instar de la petite salamandre, rien ne vous interdit de rajouter à profusion de nouvelles unités, mais ça ne prouvera plus rien de vraiment nouveau. Tel qu’il est, ce réseau fonctionne avec une remarquable fiabilité. Un test d’endurance a été effectué durant trois jours, huit heures et
vingt-deux minutes soit 289320 secondes. Le système a compté pas moins de 298268 comptages sans la moindre interruption démontrant la fiabilité de l’ensemble. La cadence moyenne de dialogue est d’environ 1,03s par JETON.

YA pouce ! ! !

Durant de nombreuses années, j’affectionnais particulièrement des écrans bicolores OLED SSD1306 de 0,96 pouce de diagonale comme celui montré en Fig.102 avec l’avantage de pouvoir placer dans le cadre jaune le titre d’une fonction, et dans la zone bleue les données la concernant. Compte tenu de sa versatilité, je les approvisionnais par quatre pour les intégrer dans mes applications car ils sont vraiment très petits. Mais avec l’âge, il me faudrait maintenant une loupe pour les lire, raison pour laquelle je suis passé aux modèles de 1,3 pouce. Comme il m’en reste un de disponible pour expérimenter, je me suis dit que ça pourrait rendre service à celles et ceux qui disposent d’un tel afficheur au demeurant très populaire. Aussi, je vais vous proposer un démonstrateur pour le poste de travail n°1 qui arbore un tel composant, vous aurez ainsi un exemple de programmation de ces petites merveilles. Pour comprendre le listage du croquis, il est indispensable d’aller dans le dossier <Les programmes\BIBLIOTHEQUE\OLED 0,96 pouce > consulter le document L’afficheur OLED SSD1306.pdf qui précise les particularités du modèle bicolore et fournit les méthodes de la bibliothèque fournie pour vous éviter des recherches. Logiquement, si vous ne disposez que de deux postes de Travail, vous pourrez sans problème passer en automatique sans aucune pénalité en utilisant P18B_Poste_de_Pilotage.ino avec le démonstrateur dédié P23_Poste_de_Travail_1.ino. Le croquis démarre avec la page affichée sur la Fig.103 dans laquelle on se contente d’afficher dans le cadre jaune l’ordre du poste de Travail. Comme il y a relativement peu d’informations à présenter, contrairement à la Fig.102 on ne liste que trois lignes d’informations. Il en est de même pour l’écran courant de la Fig.104 qui sera utilisé dès que l’unité aura été sollicitée par un premier JETON, qu’il soit pour elle ou qu’il soit remis en ligne comme élément orphelin. Rien de bien nouveau dans les chaumières. Sur la ligne bleue du haut on précise le contenu du JETON reçu, alors que sur la ligne du bas on indique soit la consigne si elle concerne un poste de Travail situé en aval, soit /// ou un message d’erreur si c’est ce module qui est concerné. Seules les procédures relatives aux affichages sur OLED ont été modifiées. L’unité présente strictement le même comportement qu’avec le croquis précédent, seul l’écran est plus petit et sépare « chromatiquement » la référence du poste et la nature des données qui transitent.

 

La suite est ICI.