jeudi 7 janvier 2016

Thermostat d'ambiance : progression et évolution...

Mise en situation : il y a un an je découvrais les nouvelles versions des 'petits' processeurs Atmel, et plus particulièrement l'ATmega168pb grâce à un kit de développement à très bas coût, le kit ATmega168 X PLAINED. Ces petits processeurs me semblaient assez puissants pour tenter de développer un thermostat d'ambiance un peu plus convivial que ceux que l'on rencontre partout de façon standard. Je ne parlerai pas ici des objets de ce type dont l'objectif n'est certainement pas de répondre de façon simple à un besoin simple :


J'ai déjà eu l'occasion de 'disserter' sur le sujet dans un billet précédent. Or donc, après avoir décidé la mise en chantier d'un thermostat personnel, vint la réalisation et les premiers tests en juillet 2015 :

En compagnie d'une précédente réalisation pour comparaison.
J'ai continué quelque peu à développer ce prototype, mais au fur et à mesure de son développement, je me rendais compte que mes choix technologiques n'étaient pas les bons, et ce, sur deux points.

- D'un point de vue ergonomique tout d'abord, l'utilisation de boutons physiques, même si elle peut présenter certains avantages, ne permet pas une ergonomie 'soignée' en cas d'utilisation de plusieurs affichages différents.

- D'un point de vue technique, même si le processeur utilisé est assez puissant pour gérer l'affichage graphique, la taille de cet afficheur s'est avérée bien trop petite pour y afficher les informations de façon claire. La multiplicité des objets graphiques à gérer complexifient très fortement le code processeur, générant une application complexe et lourde.

J'ai donc cherché une autre solution d'affichage susceptible de servir aussi de surface de contrôle. J'ai déjà eu l'occasion de tester un tel afficheur lors de la mise en pratique d'une solution d'automatisme :


Ce système fonctionne très bien mais l'afficheur ne peut être utilisé vraiment correctement que dans l'environnement technique de cet automate, aidé du logiciel de développement fourni avec la solution.

Je me suis donc mis en quête de quelque chose qui ressemblerait physiquement à ce petit afficheur, mais un peu plus grand quand même, disposant aussi d'une interface tactile et d'un logiciel de développement.

Il y a pléthore de solutions de ce type, mais il me fût assez difficile de trouver une offre fiable, bien intégrée et fonctionnelle, pas 'trop' propriétaire et pas trop complexe à mettre en œuvre.

Et j'ai fini par trouver un système qui me semble assez pertinent. En une petit image, voici ce qu'il est possible de réaliser assez facilement avec l'outil de développement proposé avec l'afficheur :

Et en plus, le rendu est plus agréable que sur le prototype d'origine.
Les affichages ne sont pas pertinents puisque configurés par défaut dans l'outil de création graphique. Tous les objets présents ont néanmoins diverses caractéristiques modifiables directement par des instructions envoyées sur le port série de l'afficheur, comme les valeurs chiffrées, les textes etc etc...

Les premiers tests de modification dynamique de l'afficheur à l'aide d'un émulateur de terminal sur PC ont montré l'efficacité du système. Pour avancer sur le sujet, je compte me servir de mon premier prototype de thermostat pour envoyer les informations des capteurs sur ce nouvel afficheur.

13 janvier 2016. J'ai connecté cet afficheur à ma carte de développement à base de processeur Z8F Zilog. J'apprécie bien ce type de processeur assez rapide, fourni en périphériques et faciles à programmer et à 'debugger' avec le logiciel de développement fourni gratuitement. Voici le montage de base :

Avec un circuit d'interface 3,3V vers 5V.
J'ai donc écrit quelques lignes de 'C' pour envoyer par l'intermédiaire de ce processeur, les données sur la liaison série nécessaires à la configuration des indicateurs et de certains textes, ainsi qu'à l'apparition de certaines icônes à l'écran. Notez bien qu'il s'agit d'une démo. me permettant de valider le principe. Il n'y a aucune pertinence des informations affichées...


11 février 2016 : J'ai aussi connecté cet afficheur à un nouveau type d'automate que je me suis procuré. La particularité de ce PLC est d'être Open-Source de type Arduino, donc de programmation très aisée en C standard grâce à l'IDE Arduino. En un rien de temps, j'ai pu retranscrire le programme 'C' écrit pour le micro-contrôleur Z8F sur ce petit automate et constater le fonctionnement parfait de cet afficheur ainsi piloté :

L'afficheur est relié directement en 'TTL' sur les broches adéquates de l'automate.
15 janvier 2016 : Petite digression... A l'origine, j'avais développé mon premier prototype de thermostat sur une base de processeur 8 bits d'Atmel. Comme c'était mon premier 'vrai' emploi de ce type de processeur, je n'avais pas remarqué que la fréquence maximale de ces circuit était limitée à 8Mhz en cas d'utilisation de l'oscillateur interne.

Force fût alors de constater que la gestion de l'afficheur était lente, empêchant tout affichage dynamique de grande envergure. Même en doublant la fréquence de fonctionnement du processeur, il n'était pas certain que cela aurait grandement arrangé la situation. A considérer donc avec la complexité du code devant gérer totalement l'affichage. Raison pour laquelle je me suis engagé sur une autre voie.

Je viens de tester la nouvelle version de l'interpréteur basic du MAXIMITE, la V5. L'intérêt de cette nouvelle version est de proposer nativement l'utilisation et la gestion du même type d'afficheur que celui utilisé sur mon prototype de thermostat.

Un processeur 32 bits à 40Mhz, même s'il tourne sous Basic offre quand même d'autres performances :

Carte de développement personnelle.
Je pense poster un petit billet sur ce sujet prochainement.

 
A suivre...

Aucun commentaire:

Enregistrer un commentaire