J’ai finalement expérimenté les différentes pistes qui m’ont été suggérées. Voici les résultats :
La bibliothèque u8g2 est tout à fait similaire à celle d’Adafruit. Mêmes fonctionnalités, voire plus, et implantations en mémoire similaires. Sur une carte UNO, l’installation d’un écran 128x64 n’a pas plus été possible que sous Adafruit. En se limitant à 128x32, la déclaration de ce que le site u8g2 appelle le construteur, en tête de programme, ajoute 6 à 800 octets RAM portant à 1600 mon espace réservé par le compilateur qui commençait à proférer des menaces. Notons que réduire à 32 l’ordonné Y affecte très peu l’aspect visuel. J’ai pu poursuivre l’écriture des 10 écrans de mon projet. Ce qui m’a pris 2 jours. J’ai également mis en pratique le conseille de Thierry et dans l’espace des librairie j’ai été modifier : sur Config.h MAX_MAIN_REGISTER à 5 et MAX_PROG_REGISTER à 2 (je n’utilise pas de voie de programmation) . dans DCCpp. j’ai mis en commentaire les lignes concernant TextCommand. Ces deux dernières actions n’ont pas montré un résultat immédiatement probant, la vérification sous IDE indiquant rigoureusement les mêmes valeurs en occupation RAM et Programme. C’est au lancement du programme qu’apparaît la différence. Avant la modification, le programme ne se lançait plus. Après, il est reparti. Au terme de mon développement j’étais à 1800 en espace RAM. Le compilateur ne cessait de me menacer mais continuait toujours à faire son job. Au final, j’ai pu lancer le programme, mais son comportement a été incohérent dés l’envoi de la première commande Digitale. J’avais perdu 2 jours mais j’étais satisfait. D’une part avoir un produit à la limite de ses possibilités n’est technique pas un bon choix . D’autre part le fait d’intervenir sur les librairies me dérangeait d’un point de vu de la maintenance du programme . Je préfère garder ces librairies comme des boites noires sur lesquelles je peux compter sans m’en soucier davantage. Je suis à un âge où ma curiosité se doit d’être pragmatique. Je n’en remercie pas moins Thierry sur l’éclairage qu’il m’a apporté sur ces points techniques. Il me restait la piste Greiman. Je n’ai pas trouvé de documentation claire concernant l’usage de cette bibliothèque . Le site probablement peut fournir des informations , mais sa lecture est désagréable. Je n’ai par exemple pas trouvé la liste des commandes , l’équivalent d’un dossier Référence. Et puis, quelle confusion ! entre les suffixes oled. figurant dans les exemples donnés sur le site et le suffixe display de l’exemple désigné par Antoine :
http://riton-duino.blogspot.com/2019/11/afficheur-oled-ssd1306-comparons.html C’est malgré tout ce dernier exemple qui m’a incité à aller plus avant. Les objets et la qualité de l’affichage, 128x64 sans scintillement , démontraient la faisabilité de l’usage de cette bibliothèque pour mon projet. Il y deux choses à savoir en utilisant cette librairie. La première, ne pas chercher à rafraichir l’écran , Les commandes clear font apparaître un scintillement rédhibitoire. Il faut écrire des espaces blancs sur les zones à effacer , print(" ..... " ). Dans cet ordre d’idée, afficher une variable, par exemple de type entier, . print(entier ) fait apparaître une rémanence des caractères. Par contre la succession des deux instructions . print(" ..... " ) ; . print(entier ) donne un résultat correct. La deuxième chose à savoir concerne l’adressage de l’écran, setCursor(x,y). x est l’abscisse exprimé en pixel (128) .y est le numéro de la ligne sur laquelle on veut écrire. Les polices que j’ai utilisé me permettaient de disposer de 6 lignes sur les 64 pixels de la hauteur d’écran. Le travail de création de mes 10 écrans m’a pris là encore 2 jours.
Mon projet sur sa partie informatique touche à sa fin. Je dispose d’un logiciel portable indifféremment sur MEGA ou sur UNO . L‘espace requis pour le programme frise les 30K pour la partie mémoire flash programme et 1K pour les RAM. Il me reste à réaliser la carte électronique d’interface, Elle sera bien sûre compatible MEGA et UNO, j’utilise pour cela. Kicad un logiciel que je recommande, freeware également Mais,... c’est un autre sujet. Merci pour votre aide- Daniel