Pouvoir envoyer la totalité d’un enregistrement vers un ordinateur ou une tablette est une fonction que tout oscilloscope actuel doit mettre à la disposition de l’utilisateur. Cette possibilité n’a rien à voir avec un stockage provisoire pour comparer des signaux électriques lors de la mise au point d’ensembles électroniques. Pour satisfaire cette facette de l’utilisation de l’appareil, la sauvegarde en EEPROM est généralement suffisante. En revanche, pour documenter un historique, rédiger un article quelconque, l’illustrer avec des graphes adaptés devient un impératif. Par exemple observez la Fig.41 page 24 ou la Fig.89 en page 41. Ces dessins ont étés obtenus en photographiant l’écran d’un petit appareil du commerce avec tous les problèmes engendrés par des poussières, les reflets parasites, la distorsion trapézoïdale etc. S’il m’avait permis de récupérer les courbes sur l’ordinateur, le résultat serait bien plus probant. Pour le plaisir de la programmation on va doter notre prototype de la possibilité de déverser les valeurs des échantillons vers le Moniteur de l’IDE, et voir comment les récupérer sur l’ordinateur pour s’en servir dans un tableur par exemple. Pour mémoire, c’est dans le MENU de BASE de la Fig.92 redonnée ici pour ne pas avoir à la rechercher dans le didacticiel, qu’avec la touche de DROITE on invoque cette fonction.
« Téléverser » les valeurs des échantillons dans la fenêtre du Moniteur de l’IDE.
Théoriquement il suffit d’ajouter à P16 dans un autre démonstrateur nommé P17_Avec_televersement_de_la_TRACE.ino les routines qui vont émuler cette nouvelle fonction. C’est d’autant plus faisable que l’on dispose encore de la place à revendre. Le plus difficile est déjà réalisé : On a trouvé un nom pour le prochain démonstrateur. À nous le codage en C++ ! Lorsque ce démonstrateur est téléversé et que l’on clique sur la touche de DROITE, durant une seconde environ la LED triple devient rouge et l’écran OLED affiche « Exporte sur USB :« . Puis il y a retour au MENU de BASE la LED tricolore étant à nouveau bleu azur. En première aparence il ne s’est pas passé grand chose et on n’a rien vu. Il fallait, avant, activer le Moniteur de l’IDE configuré pour une vitesse de transfert de 57600 baud. Trop tard, il n’y a plus rien à voir … circulez !
On recommence mais cette fois on anticipe avec . Du coup on obtient un listage qui ressemble à celui de la Fig.128 à condition toutefois que nous ayons au préalable généré dans la mémoire dynamique des échantillons un échantillonnage fictif de 4 TRACES individuelles objet du chapitre qui suit. Dans l’exemple de la Fig.127 on a imposé la trace d’un signal BINAIRE. Cette simulation est relative à une Longue TRACE ce qu’indique la fonction de téléversement au début du listage en 1. Dans ce cas, l’indication des conditions
d’enregistrement 2 se retrouvent pour les quatre « blocs » 3 listant chacun les 109 échantillons enregistrés d’une fenêtre. Au contraire, l’exemple de la Fig 128 est relatif à la numérisation de quatre fenêtres indépendantes. Du coup les informations de saisie des échantillons en 2 sont différentes pour chaque bloc de 119 valeurs 3.
Dilapider sa richesse, un vrai calvaire !
Compte tenu des ressources d’un microcontrôleur ATmega328 et du manque d’idées pour arriver à « rentabiliser » notre programme, nous nous trouvons dans la situation de ces ultra-riches qui n’arrivent plus à dépenser leur fortune tellement elle les étouffent. Même en achetant un JET privé et une ROLEX chaque jour, pas moyen de désengorger les placements optimisés effectués dans les paradis fiscaux ! Placer les revenus boursiers ne fait qu’empirer leur calvaire, car la fortune augmente encore plus vite. Heureusement pour nous, quand on dépense nos OCTETS à profusion, la zone verte du thermomètre diminue … mais avec une lenteur désespérante. Dans ce démonstrateur a été ajouté une dépense aussi importante que celle pour transférer les enregistrements vers la ligne USB, cette consommation démesurée étant consentie pour une fonction totalement dérisoire. En effet, l’ajout consiste en un sous-menu pour pouvoir générer plusieurs sortes de simulations d’échantillonnages. Ce groupe de quatre fenêtres indépendantes s’avère bien utile pour tester le listage sur USB ou la Sauvegarde / Rechargement en mémoire EEPROM.
L’écran de la Fig.129 montre le sous-menu qui a été mis en place pour cette dépense scandaleuse et inconsidérée pour générer six sortes de signaux que l’on rencontre de façon courante lorsque l’on s’amuse en électronique dans des domaines variés. Ces formes d’ondes sont représentées sur les Fig.130, Fig.131 et Fig.132 qui sont des photomontages où les quatre secteurs A, B, C et D sont présentés en continuité pour reconstituer la totalité de l’échantillonnage que ce soit en Longue TRACE pour les exemples des deux représentations Fig.130 et Fig.131 ou une
trace multiple en Fig.132 incluant quatre formes d’ondes différentes. Sur tous ces arrangements les secteurs sont séparés par un trait vertical de couleur verte et les curseurs correspondants aux fenêtres concernées sont coloriés en jaune. Considérons le cas de la Fig.130 qui affiche une trace longue. On retrouve la Sinusoïde amortie linéairement déjà rencontrée lorsque les textes ont été sauvegardés en EEPROM. Le signal de la Fig.131 a été surchargé par un contour rouge. C’est
celui de la Fig.127 qui présente donc un Calibre de 5 volts et une base de temps de 10mS par graduation. Cette trame est relative à une donnée sérielle de 28 impulsions avec de surcroit un BIT de START à l’état « 1 » en tête, de quatre caractères codés en ASCII sur 7 BITs, de six BITs Correcteurs par Redondance, d’un BIT de Parité et d’un BIT de STOP à l’état « 0 ». (Oubliez tout ça, c’est pour frimer !)
On peut facilement déterminer sur cette trame que la vitesse de transmission est de 10mS par BIT soit un taux de transfert de 1 / 0.01 = 100baud ce qui est peu fréquent. (110baud serait plus courant)
Le groupe de quatre signaux indépendants en Fig.132 est très représentatif de formes d’ondes très classiques en électronique. En A une sinusoïde d’environ 17mS de période soit 60Hz, signal assez caractéristique du réseau électrique des USA par exemple. (Attention, ici le signal n’est pas alternatif et présente une composante continue et positive de 0,5v environ.) En B un signal triangulaire sans composante continue qui sert généralement à vérifier la linéarité d’un amplificateur. En C un autre signal de type triangulaire avec composante continue qui permet de vérifier la linéarité d’un amplificateur et de voir comment il élimine cette composante continue. Cas B on analyse le comportement sur un front descendant brusque, alors qu’en C c’est la transition montante qui sera étudiée. Le signal triangulaire D quand à lui est une variante des deux précédents, toujours avec présence d’une composante continue mais sans les fronts brusques de transition. Ces simulations sont appréciables pour manipuler et expérimenter le transfert sur USB ou la Sauvegarde/Restitution en EEPROM alors qu’un générateur BF n’est pas disponible dans notre modeste laboratoire d’amateur.
Saturation de la mémoire EEPROM.
Avec le démonstrateur P17_Avec_televersement_de_la_TRACE.ino mission accomplie. En effet, lorsque l’on exporte le contenu de l’EEPROM sur le Moniteur de l’IDE on constate sur l’extrait de la Fig.133 que sur les 1023 OCTETS de la mémoire non volatile on en a utilisé 1022, autant dire que pour la rentabilité on est au sommet. Il ne reste plus que l’emplacement d’adresse 537 repéré en jaune. C’est une sécurité, car par la suite si l’on trouve une idée géniale qui impose de sauvegarder une donnée de type byte ce sera possible. Si c’est un entier ou deux OCTETs dont on aura besoin, on pourra libérer l’emplacement 536 et utiliser la procédure Point() pour compléter l’affichage. Attention, car à partir de maintenant tous les textes devront résider dans le programme et chaque nouveau « bavardage » empiètera l’espace réservé au croquis, mais surtout diminuera d’autant la place disponible entre la PILE et le TAS. Il faudra donc tempérer notre ardeur si l’on ajoute des fonctions avec texte.
Encore une réunion du conseil d’administration.
Présenter le bilan EEPROM se solde par des applaudissements. En revanche l’inventaire des consommations pour la fonction d’exportation USB et celui de génération des signaux fictifs est lamentable comme le montre le thermomètre de la Fig.135 qui met en évidence la diminution pour le moins timide de la zone verte. Bien que nous
ayons ajouté deux fonctions grosses consommatrices d’OCTETs, force est de constater qu’il reste encore 29% d’emplacements non rentabilisés ! C’est purement dramatique, car il faudrait encore une flopée de fonctions « Octivores » pour combler ce vide dramatique. Il faut absolument trouver des idées … sauf que notre appareil
bénéficie de tous les perfectionnements imaginés. Nous sommes dramatiquement riches, le moral est au plus bas. Et encore, le démonstrateur est compilé avec la version 1.7.9 de l’IDE. Si l’on utilise la version 1.8 la taille programme dégringole à 19614 octets car elle plus optimisée. La réduction de taille du code objet est de 2288 octets soit -8% ce qui est considérable. (Personnellement je ne passe à cette dernière que lorsque l’espace programme commenc
e à manquer. En effet, je préfère les couleurs de la version 1.7.9 dans l’éditeur de texte de l’IDE, c’est purement personnel … car je déteste le changement.)
Pour consommer des octets, je pourrai vous refaire le coup de la post synchronisation par satellite et géo-localisation par déphasage différé, mais vous n’allez plus me croire pour cette blague idiote. Il faut ab
solument trouver une idée …
– YOUouououPyyyyyyyyyy, j’ai une idée !
En relisant ce didacticiel j’ai retrouvé Fig.121 en bas de la page 50 une remarque que … je n’avais pas vraiment oubliée : Agrémenter la page de garde d’un LOGO.
Réaliser simplement un graphe pour archivage.
Avant d’ajouter un LOGO à la « page de garde », comme c’était promis et écrit en vert juste sous la Fig.92, on va voir comment récupérer facilement les données fournies numériquement par la voie de dialogue série USB. On va examiner un protocole possible visant à transformer la TRACE multiple exportée en un graphe analogue à celui de la Fig.136 par exemple. Avouez que ce graphe est autrement plus propre que le montage de la Fig.130 pourtant bien plus compliqué à créer.
La première étape consiste à copier les valeurs dans la fenêtre du Moniteur. Passer ces valeurs en utilisant une présentation telle que celle de la Fig.128 s’est avéré particulièrement indigeste, car pour créer un graphe comme celui de la Fig.136 il faut recopier les 476 valeurs sur une seule colonne du tableur. Aussi, « au pied levé » le programme P17_Avec_televersement_de_la_TRACE.ino à été modifié. Il totalise actuellement 21948 octets pour le code objet et 1019 octets de mémoire dynamique. Les valeurs énoncées dans les chapitres précédents ne sont plus tout à fait exactes, mais pour quelques octets de plus je ne vais pas reprendre les textes et les images.
Suite à cette petite modification en apparence le programme se comporte exactement comme avant. Donc, étant dans le MENU de BASE on effectue un clic court sur la touche de DROITE et l’on obtient comme avant la présentation des données sous forme d’un tableau. Par contre, si DROITE est assortie d’un clic long, l’affichage des 476 valeurs se fait sur une seule colonne. C’est « presque illisible » mais c’est exactement ce qu’il nous faut.
Protocole pour réaliser le graphe :
La première action à conduire consiste à ouvrir un tableur quelconque comme Exel.com par exemple ou tout clone disponible actuellement. Puis, action un peu indigeste, on sélectionne dans la colonne de gauche, comme montré sur la Fig.137 en B les cellules sur 476 lignes. C’est un peu long, mais je vous assure que ce serait infiniment plus agassif d’avoir à recopier les 476 valeurs numériques. C’est lorsque toutes ces cellules sont indexées en gris clair que l’on va copier dans la fenêtre du Moniteur de l’IDE les valeurs des 476 échantillons. La technique est très simple.
Dans la pratique, pour observer les 476 échantillons listés sur une seule colonne verticale, il faut utiliser « l’ascenseur latéral » pour en explorer toute la hauteur. L’une des caractéristiques vraiment très utile de la fenêtre du Moniteur de l’IDE réside dans la possibilité de copier sous forme de textes n’importe quelle zone que l’on sélectionne par balayage avec le bouton gauche de la souris. Quand la zone sélectionnée montrée en bleu sur la Fig.137 A convient, [CTRL c] pour la copier. Puis revenir vers le tableur qui conserve la sélection des 476 cellules dans la colonne de gauche. Utiliser [CTRL v] pour y coller toutes ces données ce qui donne le résultat B. C’était un tantinet laborieux, tout en restant facile et surtout fiable. Imaginez ce que serait ce travail « à la main » ! Maintenant, présenter ces données sous forme graphique n’est plus qu’une question de connaissance pratique du tableur.
Comme je ne sais pas dans Excel traiter des tableaux à deux dimensions, j’ai modifié P17 et adopté le protocole décrit ici. Cliquer avec le bouton gauche de la souris sur le A en haut de la colonne. Puis cliquer sur Insertion > Colonne ou toute autre présentation possible, et avec les techniques du logiciel Excel ou d’un équivalent on réalise le graphe. Le but de ce chapitre était surtout de vous proposer une piste relativement aisée pour extraire les données de notre appareil et de les formater de façon simple pour les fournir à un tableur. La récupération du cadre contenant la représentation graphique est effectuée avec utilisation de la touche [Impr Écran] puis d’un [CTRL v] dans un outil de dessin aussi simple que Paint.com largement suffisant pour ajouter les caractéristiques de saisie des échantillons et séparer les fenêtres par les tracés verticaux vert. Bref, pour la présentation on persévère avec les outils que l’on utilise de façon ordinaire. On peut passer au prochain démonstrateur et aller gloutonner des octets en ajoutant un LOGO « de présentation de l’entreprise ».
La suite est ici.