C’est de tous les petits projets décrit le plus inutile. Par contre, c’est de loin, à mon sens, le plus poétique. Nombreuses et nombreux sont celle et ceux qui rêvent de laisser derrière eux une trace de leur passage en ce bas monde. Partir en laissant quelque chose qui nous survive. Un moyen simple consiste à planter un arbre, mais tout un chacun n’a pas forcément un endroit pour le faire, ou ne sait pas forcément comment s’y prendre. Et bien dans cet ultime petit projet matériel, je vous propose un petit cœur électronique qui sera capable de battre pendant vraiment longtemps. Il est vrai que si vous avez à peine dans les vingt années, il n’y a aucune chance que ce petit dispositif puisse « vivre » plus longtemps que vous. Par contre, si comme moi les tranches de « vingt ans » se compte par plusieurs, le défi n’est pas forcément impossible à relever. N’en déduisez surtout pas que je suis pessimiste concernant mon avenir sur Terre. C’est l’inverse, il faut y voir un optimisme débordant concernant la longévité opérationnelle de ce petit projet sans envergure mais vraiment amusant.
Bon, trêve de publicité : De quoi s’agit t’il ?
Dans cette technologie qui semblera vraiment étrange pour les archéologues qui trouveront cet objet dans 1000 ans, bat manifestement un cœur à la cadence rigoureuse d’une impulsion par seconde. Quand l’énergie est présente, il compte ses pulsations et en fait la somme. Par un afficheur de type LCD, on peut connaitre le nombre de battements enregistrés. Le grand défi à relever va consister à satisfaire le mieux possible la liste des critères suivants :
Une source d’énergie illimitée.
Après avoir jeté une bouteille à la mer qui a coulé immédiatement, je suis arrivé à la conclusion que l’énergie marée-motrice n’était pas idéale ! La géothermie aussi est séduisante, mais mon petit bocal électronique balancé dans la lave du volcan Furitango n’a pas résisté bien longtemps. À oublier. Reste le solaire sous la forme de deux petites cellules Panneau Solaire en polysilicium pouvant fournir jusqu’à 0.3W sous 5V soit 60mA au maximum. Pour information j’ai approvisionné mes deux cellules solaires sur :
https://www.amazon.fr/dp/B0B59JL4K4?ref=ppx_yo2ov_dt_b_fed_asin_title
Autant dire qu’il ne faudra pas que notre électronique soit trop gourmande en énergie. C’est le premier critère à respecter. Naturellement notre circuit ne prendra vie que lorsque l’éclairement sera suffisant. Peu importe, le but est de gérer un compteur qui n’est pas pressé mais qui doit durer une éternité … en théorie naturellement. Pour satisfaire ce projet on se contentera de rechercher des solutions qui conduisent à une durée de vie la plus grande possible, sachant que c’est l’élément le plus faible qui engendrera la « mort cérébrale » de notre petit module.
Arduino peut fonctionner avec des tensions nettement inférieures au +5Vcc nominal. Le tableau de la Fig.327 résume les résultats des mesures effectuées. L’afficheur LCD est branché sans utiliser son rétroéclairage. L’intensité est indiquée lorsque la LED Arduino est allumée. À 4V l’afficheur est à peine lisible. À 3,5V seule la LED d’Arduino clignote. Le redémarrage se produit quand U remonte depuis 0v et dépasse 3,6Vcc.
Minimiser la consommation.
Compte tenu de la source d’énergie relativement modérée qui sera disponible, il faut absolument diminuer au maximum la consommation en courant de l’électronique. Ce critère exclus les systèmes d’affichage « lumineux ». Aussi, le choix s’est porté sur un afficheur LCD du type de celui utilisé dans Experience_141.ino mais vraiment de type LCD c’est à dire qu’il se présente sous la forme d’un écran gris sur lequel les affichages sont des pixels noirs. Il y a bien un rétro-éclairage, mais ce dernier n’est pas utilisé. Pour consulter l’état du compteur il faudra placer le bocal devant une lampe pour illuminer suffisamment les cellules solaires et éclairer derrière l’afficheur avec une lampe de poche pour consulter les informations présentes sur l’afficheur.
Pour minimiser la consommation de la carte Arduino, une petite opération chirurgicale a été effectuée. Elle consiste à l’aide d’un cutter à couper la liaison électrique entre la petite LED PW qui signale la présence du +5Vcc et sa résistance de limitation de courant. Cette LED est trop lumineuse, consomme pour rien et n’apporte aucune information pertinente. Sa présence est néfaste car elle masque le clignotement de la LED d’Arduino branchée sur D13. Comme montré sur la Fig.328 le bocal utilisé présente des dimensions parfaites. C’est le plus petit possible pratiquement entièrement occupé par l’électronique de ce petit projet. Sur cette photographie l’étanchéité n’a pas encore été complétée par du vernis à ongles ni par une peinture argentée.
Aucun composant qui s’use lors de son usage normal.
J’avais envisagé la présence d’un petit accumulateur rechargeable qui aurait emmagasiné de l’énergie lorsque les cellules sont fortement éclairées, et aurait ainsi prolongé le fonctionnement lors du passage d’un gros nuage ou lorsque le soleil serait trop décalé angulairement pour fournir une énergie suffisante. Ainsi le compteur aurait avancé plus rapidement. Ce n’est pas important du reste, le fait que la LED d’Arduino batte la seconde dès que l’éclairage est suffisant satisfait pleinement la finalité de ce projet ludique. Cette idée n’est pas applicable, car un accumulateur rechargeable présente une durée de vie limitée. C’est du reste le cas de pratiquement tous les dispositifs sans fil que l’on met à la réforme car leur autonomie devient dérisoire. Au final, les seuls composants utilisés se résument à la carte Arduino NANO sélectionnée pour son faible encombrement, l’afficheur LCD et les deux cellules solaires. Le fait d’en avoir deux permet de les disposer dans le bocal de confinement de façon à doubler la période d’orientation favorable pour capter l’énergie.
Un autre composant s’use lorsque l’on fait appel à lui. C’est l’EEPROM dont la durée de vie est limitée à 100000 écritures. Nous verrons plus loin comment on va contourner cette limitation. Encore que l’expérience tend à prouver qu’il faut vraiment plus de 100000 écritures sur une cellule EEPROM pour qu’elle devienne réticente.
Gérer la dégradation de l’EEPROM.
Tout système matériel présente une durée de vie que la technologie permet d’évaluer. Par exemple, ce qui limite la durée de vie d’un satellite de communication, se sont les réserves en ergols qui permettent régulièrement de le recaler sur son orbite. Un module électronique comme Arduino présente une durée de vie considérable. Ce qui va en limiter dans notre application la durée opérationnelle, c’est le nombre maximal d’écritures possibles dans l’EEPROM. Les fabricants d’ATmega328 garantissent 100.000 écritures possibles dans chaque cellule de l’EEPROM. Dans la pratique les industriels introduisent une marge de sécurité, et l’on peut être certain que cette valeur de 100.000 pourrait être largement dépassée. On va toutefois la considérer comme une limite à ne pas dépasser. Dans ce qui suit on suppose que la durée de vie d’Arduino ne sera pas diminuée par les conditions d’utilisation, sachant que naturellement la durée que l’on va évaluer ne sera pas atteinte dans la pratique, sauf si on ne place pas notre système à l’extérieur de la maison.
Suite à de nombreux calculs, je suis arrivé à la conclusion qu’il est possible de compter à chaque seconde. Dans ce but, on va utiliser un COMPTEUR de type unsigned long. Ce type de donnée occupera quatre OCTETs en EEPROM. Les quatre dernières adresses en haut de la mémoire non volatile ne sont pas disponibles, car la cellule d’adresse 1023 contient l’Index qui indique dans toute l’EPROM à quel endroit se trouve le COMPTEUR actuellement utilisé. L’idée consiste à changer d’emplacement dès que dans le quartet pointé par Index on a effectué 100.000 écritures. On dispose de (1024 – 4) / 4 = 255 zones quartet COMPTEURs possibles montré sur la Fig.329 présentant l’organisation des données dans l’EEPROM.
• On sauvegarde toutes les secondes.
• Pour 100.000 écritures on sauvegarde 100.000 secondes soit » 1,1574 jours.
• 1,1574 x 255 » 295.139 jours possibles soit 295.139 / 365 » 0.808 années.
CONCLUSION : Si l’on suppose que l’agressivité de l’environnement ne vient pas détériorer le « maillon faible » de l’électronique enfermée dans le petit bocal, théoriquement le compteur affiché ne saturera pas avant 295 journées. Mais ce calcul est erroné, car la durée d’ensoleillement suffisant sera au moins 30 à 40 fois plus courte. Du coup la durée de vie avant recyclage du compteur va avoisiner les 32 années. Il est peu probable que l’électronique résiste aussi longtemps. Supposons que si ! Alors l’affichage des secondes ne va faire que recommencer à zéro et le petit cœur continuer à cadencer la seconde.
Experience_156 : La structure du programme.
Particulièrement élémentaire, la Fig.330 résume entièrement le comportement du programme. (L’initialisation de l’afficheur LCD n’est pas indiquée.) La simplicité de cet organigramme s’explique par le fait que le programme ne fait qu’incrémenter un COMPTEUR. Le plus gros de son travail consiste à gérer l’EEPROM. Chaque fois que 100.000 comptages ont été effectués, on pointe le quartet suivant en EEPROM. Dans la pratique, en (1) la valeur d’Index est lue en cellule 1023. Elle est incrémentée et en (2) la valeur d’Index est sauvegardée dans l’OCTET d’adresse 1023 avant de reboucler en tête de void loop(). Si les 255 quartets ont été utilisés, on recommence sur celui d’adresse 0. Donc en (3) sa valeur 0 est inscrite en EEPROM. Surtout en (2) et en (3) la valeur de COMPTEUR est recopiée dans le nouveau quartet pour continuer l’incrémentation.
Experience_156 : L’initialisation.
Comme sur un RESET le logiciel Experience_156.ino charge la valeur du COMPTEUR à partir de l’Index, il faut bien en préalable à la mise en service pouvoir mettre ces deux variables à zéro dans l’EEPROM. Initialement j’avais réalisé deux programmes. Un P156A pour initialiser la mémoire non volatile, et un P156B pour l’exploitation. Au final, j’ai trouvé plus convivial de les fusionner et d’utiliser l’entrée analogique A0 pour effectuer cette opération. On porte cette entrée au potentiel de GND durant le RESET. Quand on relâche le bouton poussoir « temporaire » le logiciel remet à zéro les deux variables COMPTEUR et Index puis recommence à compter. Il faudra donc procéder à cette initialisation lors de la première mise en service de l’ensemble et juste avant d’intégrer l’ensemble définitivement dans son petit bocal de confinement.
Le câblage des quatre modules.
Comparé à celui de la Fig.90 pour P041 en Fig.331 il est plus simple car d’une part le rétro-éclairage n’est pas utilisé car il consommerait trop, et d’autres part on se contente pour VO de brancher directement sur GND pour favoriser le contraste maximal, l’ensemble étant souvent sous-alimenté. Les deux panneaux solaires sont montés en parallèle, c’est le plus éclairé qui « apportera son eau au moulin ». Le fait de placer les deux modules dans un bocal circulaire oblige à les orienter en dièdre. Il y aura ainsi deux périodes favorables au comptage dans la journée. Image 118.JPG montre le câblage des divers éléments. Sur Image 119.JPG les « gros fils » rouge et noir semblent être soudés sur l’afficheur. C’est une illusion d’optique. Ils passent dessous l’afficheur et vont vers +5Vcc et GND de la carte Arduino NANO ce que montre Image 120.JPG. On peut observer sur la photographie d’Image 121.JPG que la carte Arduino n’est reliée qu’à peu de lignes vers l’afficheur.
Résister à l’agressivité de l’environnement.
C’est de loin le critère de ce défi qui sera le plus difficile à satisfaire. La première source de détérioration est la chaleur à laquelle sera soumise l’électronique, car enfermée dans un petit bocal étanche, il n’y a strictement aucune ventilation. Par ailleurs, le bocal sera placé en plein soleil et orienté pour capter un maximum d’énergie. Malheureusement on ne peut absolument pas agir sur ce paramètre, il faut faire avec. Heureusement, les composants actuels résistent bien à la température. De plus, Arduino et l’afficheur LCD sont à l’ombre des deux cellules solaires. Ce sont ces panneaux en polysilicium qui reçoivent directement l’énergie solaire et ils sont conçues dans ce but.
Une expérience assez solide dans ce domaine m’a appris que de loin le plus difficile sera de mettre à l’abri l’ensemble de l’humidité de l’air ambiant. Autrement dit, il va falloir que le bocal dans lequel est enfermée notre électronique soit totalement étanche, et le reste durant de longues années. C’est la pierre d’achoppement et le défi à surmonter le plus délicat.
L’intégration dans un bocal étanche.
Toutes les vérifications ont été effectuées, et l’ensemble validé autant au point de vue logiciel que matériel. Dernière manipulation, les données en EEPROM ont été réinitialisées, COMPTEUR est à zéro ainsi qu’Index. C’est le moment de procéder à l’intégration de l’ensemble dans un « coffre » totalement étanche pour le protéger de l’environnement et tout particulièrement de l’humidité. La première étape va consister à trouver un bocal (De confiture, car ils ont globalement les bonnes dimensions.) dont le diamètre et la hauteur sont optimisés.
Pour ma par j’ai eu beaucoup de chance, car j’ai trouvé dans les petits bocaux de confiture un spécimen vraiment fait pour. On peut vérifier sur la Fig.332 que le taux de remplissage est optimal. Dans la pratique, entre les divers éléments et le couvercle, en hauteur la marge n’est que d’un centimètre. En diamètre on constate également sur Image 122.JPG qu’il est difficile de trouver mieux. (Le bocal est parfaitement translucide. Sur certaines photographies comme celle de la Fig.332 la coloration « fumée » résulte du fait que les saisies ont été faites lorsque le tout était posé sur le bureau en bois. C’est la teinte de ce dernier qui s’impose alors sur les images.)
ATTENTION : Dans la pratique, pour se protéger au maximum de la pénétration « de l’eau », l’ensemble sera positionné comme sur la Fig.332 c’est à dire fond du bocal vers le haut. La carte Arduino doit alors avoir sa mini-prise USB vers le couvercle de façon à ce que la LED de D13 soit vers le Haut.
RAPPEL : Pour minimiser le volume occupé par la carte Arduino NANO son connecteur à six broches pour l’ICSP n’a pas été soudé. Non seulement le module tient moins de place, mais aussi la LED de D13 est plus dégagée. De ce fait quand les cellules solaires apportent suffisamment d’énergie pour que l’ensemble prenne vie, on voit nettement le cadencement lumineux à chaque seconde qui sera incrémentée dans COMPTEUR.
Incarcération à vie !
Tous les pots « de confiture » tels que celui de la Fig.332 sont étanches pour satisfaire leur fonction. Le fond de leur couvercle est muni d’une couche souple qui assure l’étanchéité lorsque ce dernier est vissé sur le bocal en verre. Et bien on va considérer que c’est insuffisant et ajouter trois barrières de plus ! ATTENTION : Ces sécurités supplémentaires vont définitivement souder le couvercle sur le récipient en verre. S’il faut intervenir pour dépanner on sera obligé de briser le bocal avec tout ce que ça induit en danger pour l’électronique interne et la personne qui se charge de cette opération. C’est parti pour la fermeture « sans retour possible ». Arduino fonctionne à la perfection, l’afficheur s’anime correctement et les remises à zéro de COMPTEUR et d’Index viennent d’êtres effectuées. On commence par introduire l’ensemble comme sur Image 122.JPG. Quand on retourne l’ensemble, l’élasticité des fils de liaison repousse les divers modules vers la paroi latérale. Image 123.JPG présente l’ajout d’un petit morceau de mousse synthétique qui plaque l’afficheur LCD vers l’extérieur et augmente l’adhérence. Maintenant quand on retourne le bocal, les divers éléments restent bien en contact du fond de ce dernier.
1) On commence par coller de la mousse synthétique au centre du couvercle : Image 124.JPG.
2) On prépare « sur » Image 125.JPG de la colle Araldite en quantité suffisante.
3) On dépose la colle tout le tour du couvercle : Image 126.JPG.
4) On visse à refus le bocal retourné sur le couvercle posé à plat : Image 127.JPG.
5) Ensemble posé verticalement sur un radiateur on laisse bien sécher au moins 24H. (Sur un radiateur car l’opération a été effectuée en plein hiver et il ne fait pas très chaud.)
6) Ensuite on va « colmater » tout le tour entre le couvercle et le liston du bocal en verre avec du vernis à ongles. Cette technique génère une étanchéité supplémentaire : Image 128.JPG.
7) Attendre 24 heures de plus, puis peindre toute la zone inférieure avec de la peinture argentée. Le but est de rayonner la chaleur qui serait absorbée par la couleur noire du couvercle ou celle rose du vernis à ongles. Notre « prison douillette » est terminée : Image 129.JPG.
On peut maintenant disposer notre « cœur éternel » à son poste définitif en l’orientant au mieux. Les directions A et B sur Image 123.JPG sont celles à orienter vers le soleil, A pour le matin et B pour l’après-midi. Pour l’angle en hauteur favoriser l’Hiver. Pour ma part, j’ai le privilège de disposer d’une véranda. L’éclairage y est largement suffisant même en hiver pour activer Arduino. Aussi, le petit bocal restera à l’abri toute « sa vie » et devrait fonctionner longtemps …
La suite est ici.