Pour clore ce didacticiel sur le dialogue entre machines avec interposition de transmetteurs Bluetooth, je vous propose une application « bien charnue » ou chaque unité utilise un afficheur graphique de type OLED. Pour le logiciel P14_Maitre_G.ino on conserve l’organisation électronique de P12. On se contente de brancher deux boutons poussoirs entre D4, D5 et GND. Pour la deuxième unité P13_Esclave_G.ino, on va varier le plaisir et je vous propose d’expérimenter la petite carte Fig.41 qui incorpore directement sur le circuit imprimé un afficheur OLED de définition 128 x 32. Elle présente le même format qu’une carte Arduino NANO en étant juste plus large de 5mm. Ses caractéristiques sont strictement identiques à celles d’une NANO, mis à part le fait que A4 et A5 sont réservées et reliées à SDA et SCL de l’afficheur graphique.
Lorsque j’ai commencé à expérimenter ce produit facile à se procurer sur l’Internet, impossible d’arriver à faire fonctionner cette carte électronique. Bien qu’ayant utilisé l’outil préconisé CH34x_Install_Windows_v3_4.EXE, le dialogue entre le P.C. et la carte s’avérait impossible. J’ai tenté de remplacer le Boot Loader depuis une carte Arduino UNO et les téléversements ont immédiatement fonctionné. (Voir le document Boot loader une NANO.pdf.) Enfin, j’ai rencontré de réelle difficultés à me procurer une bibliothèque U8g2lib.h qui soit acceptée par le compilateur. Aussi, je vous la propose dans le dossier <Carte avec OLED\Bibliothèques>. À toutes fins utiles, j’y ajoute également dans le dossier <Carte avec OLED\Mes exemples> trois petits démonstrateurs qui m’ont permis de tester les instructions de base de cette bibliothèque dédiée à l’afficheur local de cette carte Arduino. C’est l’un d’eux qui sur la Fig.41 sert à tester l’afficheur. Compte tenu de la faible résolution verticale de l’afficheur, le concept qui préside la conception du programme consiste à adopter la police de caractère la plus grande possible, permettant de disposer de deux lignes de 16 à 20 caractères.
L’organisation matérielle des deux unités.
Bien que la mise au point des programmes a été effectuée avec une carte UNO pour l’unité Maître sur les essais précédents, pour cette dernière expérience c’est une NANO qui a servi de prototype. Outre les LEDs branchées sur les modules Bluetooth qui ne sont pas représentés sur le dessin, la Fig.42 résume assez bien l’architecture électronique utilisée. Sur les deux cartes les sorties binaires ont été choisie dans l’ordre en partant de D2 car D0 et D1 sont réservées au téléversement des démonstrateurs. Du reste les branchements à effectuer sur les deux unités sont semblables. Dans les deux cas on a A4 et A5 qui servent à piloter les afficheurs OLED, et D2 et D3 qui vont sur TX et RX des transmetteurs radio. Les seules différences sont le branchement d’un petit bruiteur actif sur D5 pour l’unité Esclave, et un bouton poussoir entre D4, D5 et GND qui servent à imposer le mode « boucle INFINIE » et dans ce mode pouvoir éteindre ou allumer les afficheurs simultanément sur les deux entités. Cette fois encore, les personnes qui ne disposent pas de l’afficheur OLED et de la carte particulière de la Fig.41 pourront effectuer l’expérience en n’utilisant que le Moniteur de l’IDE et deux cartes Arduino banales. Donc cette expérience s’adresse à tous.

Amorçage du dialogue entre les deux machines.
Bien que ce chapitre concerne principalement les lectrices et les lecteurs qui ne disposent que de deux cartes Arduino NANO ou UNO, (Les deux étant 100% compatibles.) ou qui ne disposent pas d’un ou deux afficheurs OLED, l’usage initial des affichages sur l’écran d’un ordinateur sera profitable pour tout le monde lors de l’évaluation manuelle des programmes P13 et P14 avant de passer à un fonctionnement totalement autonome n’exigeant plus l’utilisation d’un clavier. Le but dans cet ultime manipulation consiste à établir le dialogue entre deux unités qui chacune rend compte de son état présent sur un afficheur « embarqué ». On peut remarquer sur la Fig.42 que les deux programmes ont été validés à la même date. C’est simplement la dernière modification de détail effectuée sur les deux démonstrateurs qui a été réalisée le même jour. Simple coïncidence.
Comme c’était le cas de l’expérience de la Fig.14 on aura simultanément sur l’écran de l’ordinateur deux sessions de l’IDE associée chacune à un Moniteur avec sa fenêtre contextuelle. Il suffit de reprendre la procédure explicitée dans le chapitre 04) Application impliquant cinq machines pour mettre en place le contexte d’expérimentation. Résumé de la procédure :

Affichages sur le Moniteur de l’IDE.
Avant d’envoyer des consignes à l’Esclave à partir du clavier de l’ordinateur par l’entremise du Moniteur n°1, il me semble important de résumer au préalable les grandes lignes du comportement des deux croquis. Sur l’Esclave, la séquence est élémentaire et se produit systématiquement comme représenté sur la Fig.43 en commençant par le n° de l’échange dans la zone rose suivi « en vert » par le contenu de la consigne entre crochets. Sur la deuxième ligne en jaune un petit commentaire résumant l’action impliquée par la consigne. Comme dans cet exemple il y a plusieurs caractères, il ne s’agit que d’un texte à ignorer. Si la consigne ne comporte qu’un seul caractère, alors elle sera analysée comme étant une instruction à traiter. Ensuite il y a retour de l’accusé de réception qui ne peut être que OK ! ou ERREUR !

L’écran OLED s’il est branché (Fig.45) affiche sur la ligne du haut la commande reçue sous forme d’une lettre, et sur la ligne du bas un commentaire succinct traduisant le décodage de l’instruction.
Pour le Maître, on va distinguer deux types de commandes :
• Les commandes qui n’ont aucun effet local, c’est à dire les commandes banales.
• Les lettres qui sont des directives. En local dans la fenêtre contextuelle n°1 on aura un affichage spécifique qui sera fonction du caractère de commande. Par exemple le rappel des commandes.
Si l’afficheur OLED est présent sur l’unité Maître, il présentera l’aspect de la Fig.46 comportant quatre lignes d’informations. En 1 le nombre d’alternats effectués depuis la dernière remise à zéro du compteur. En 2 la commande frappée en fenêtre de saisie du moniteur. En 3 le contenu de l’accusé de réception avec entre >< le retour du caractère analysé comme commande suivi de la conclusion de l’analyseur syntaxique. Enfin, en ligne du bas 4 un
commentaire succinct local qui résume le contenu de la consigne. Considérons l’exemple de démarrage de la Fig.44 dont seule la ligne de saisie à gauche sera prise en compte. Frapper des caractères à droite « sur COM 3 » sera strictement sans aucun effet.
Immédiatement à leur mises sous tensions, en 1 et 2 les programmes se présentent et passent en attente de la synchronisation. Puis, le premier à détecter le caractère ‘S‘ est l’Esclave qui en 3 signale l’événement. Il accuse réception vers le Maître qui en 4 précise le retour de OK ! Il attend alors une saisie 6 qui est ici la directive ‘O‘ demandant d’afficher l’état actuel des options sur l’Esclave. Comme toutes les commandes frappées mettent à jour des booléens sur le Maître, il connait l’état de l’Esclave et peut en 7 lister les informations. Le problème, c’est que sur l’Esclave le ‘S‘ est resté en attente en 5, et lorsque le ‘O‘ arrive, l’unité affiche bien en local en 8 la bonne information mais retourne un ACR déphasé retourne en 9. Conclusion, il faut remettre les deux unités en phase.


Le mode « boucle INFINIE ».
C’est un mode de fonctionnement assez particulier dans lequel le programme Maître ne va plus tester si l’on impose une commande dans la ligne de saisie du Moniteur, mais va enchaîner presque toutes les commandes alphabétiques en recyclant automatiquement du ‘z‘ vers ‘b‘. Par programme, c’est facile à faire, il suffit d’incrémenter d’une unité les codes ASCII des lettres puisque ces dernières se suivent. Puis, lorsque l’on arrive au ‘[‘ qui suit le ‘z‘ on le recycle en ‘b‘. Pourquoi pas en ‘a‘ ? Tout simplement pour que l’on puisse effectuer de longs essais de fiabilité de la transmission sans pour autant perturber le voisinage. Sur un test relativement court de deux heures et dix huit minutes, le système a déroulé 23975 alternats soit en moyenne 2,9 échanges par secondes. Dans ce mode que l’on peut désirer prolonger sur plusieurs jours, le bouton poussoir branché sur D5 se comporte comme une bascule de type OUI/NON pour activer ou éteindre les deux afficheurs graphiques. Toutes les lettres ne sont pas générées :
• ‘I‘ on s’en doute perturberait le fonctionnement car le système repartirait à ‘B‘. Remplacée par ‘J‘.
• La commande ‘N‘ ne doit être que manuelle, elle est remplacée par la suivante ‘O‘.
• ‘R‘ est remplacée par ‘T‘ pour ne pas remettre le compteur à zéro. ‘S‘ est donc sautée pour ne pas armer le bruiteur alors que les commandes ‘G‘, ‘W‘ et ‘Y‘ sont générées sans problème.
• Enfin le ‘Z‘ est remplacé par le ‘B‘ pour ne pas remettre le compteur à zéro.
Activer en mode autonome une « boucle INFINIE ».
Pour être raisonnable, un test de fiabilité est par principe de très longue durée. Pour ma part ce type de manipulation doit s’étirer sur plusieurs jours. Un tel exercice ne doit absolument pas mobiliser un ordinateur, autant pour des raisons pratiques que pour le respect de la nature. (Inutile d’aggraver le réchauffement climatique !) La procédure est la suivante :

La suite est ICI.



