lundi 12 septembre 2011

Programmateur de machine à  laver

Le besoin

Notre machine à  laver, un peu ancienne, ne dispose pas de fonction retardateur. Il est donc impossible de la programmer pour qu'elle démarre en heures creuses. De plus le bouton de démarrage n'est pas "à  état". C'est à  dire que chaque pression démarre ou arrête la machine mais qu'il revient dans son état initial après. Impossible de mettre l'alimentation sur programmateur et d'enclencher le démarrage en avance.
L'idée qui germe alors dans mon cerveau geek est de construire un doigt robotisé qui appui sur le bouton au moment opportun ! Bien sur, il est possible de caler le bouton enfoncé avec un bout de carton et d'utiliser le programmateur sus-cité, mais alors ou est le fun[1] ? De même d'aucun objecterons qu'un relais soudé sur les contacts internes du bouton peuvent mieux simuler une pression qu'une action mécanique moins fiable. J'objecterai alors, à  mon tour, que souder des trucs dans un appareil qui fonctionne très bien est à  mon goà»t plus risqué que d'appuyer sur un bouton[2]. Je n'ai pas l'intention de changer une machine qui marche très bien.
Ceci étant posé, je me suis lancé dans la construction d'un "doigt" qui appuiera sur le bouton après un temps choisit.

La réalisation

Posons les bases :
  • pour le "doigt" un simple servo fait l'affaire, un angle au repos et un angle pour l'appui sur le bouton. Il ne doit pas empêcher d'appuyer manuellement.
  • il faut aussi un écran pour régler le temps d'attente avant le déclenchement du lave-linge
  • pour le servo cerveau, un arduino, simple et facile même si sur-dimensionné

Écran LCD : Nokia

Pour l'écran, je me suis vite orienté vers les quelques Nokia 5110 qui traà®nent dans un tiroir depuis quelques années. Je les ai gardés justement pour ce genre d'utilisation car leur écran LCD est très facilement réutilisable à  partir d'un µC. Il existe foultitude sites et de bibliothèques pour les utiliser. Il suffit donc de suivre les instructions et de souder une petite nappe. à€ ce moment, la force de l'arduino entre en jeu, les bibliothèques ! J'ai utilisé celle de NuElectronics légèrement modifiée par mes soins. Et hop :
photo

Commande

Pour l'affichage, c'est bon. Pour la commande, il n'est pas besoin de grand chose, il nous faut juste régler la temporisation et la lancer. Soit 3 boutons : up, down et ok.
Les fonctions offertes sont, elles aussi, simples :
  • réglage du minuteur
  • réglage des angles repos/travail du servo (avec enregistrement en eeprom)
  • test
On se reportera au schéma suivant pour les menus et les interactions de l'interface.
photo photo photo
Le concept est validé et fonctionnel.

Finalisation

Il ne reste plus qu'à  améliorer le WAF[3] de l'ensemble si l'on veut que l'objet soit utilisé.
on commence donc par rendre tout cela un peu plus transportable en en faisant un shield[4] facile à  enficher sur notre arduino.
photo photo photo
Ensuite on agence tout ceci dans un belle boà®te de vis qui avait le malheur de traà®ner dans mes pattes. Quelques coups de dremel, de perceuse et le tour est joué.
photo photo photo
Pour finir, il ne reste qu'à  fixer notre doigt au-dessus du bouton. Pour une fois, j'ai choisit de rester simple: un morceau de scotch double-face[5].
photo photo
Voila, cela fait quelques mois que ce montage est en fonction et il donne entièrement satisfaction. Nous gagnons des € tous les soir grà¢ce aux heures creuses et dans 10 ans je pense que nous aurons économisé suffisamment pour rembourser le temps que j'y ai passé ;)
Ah oui, si quelqu'un a envie de se lancer dans la même chose, le code est bien sur disponible en GPL dans mon dépot : programmation de machine à  laver

Notes

[1] bande de rabat-joie
[2] puisque je vous dis que je veux un robot!!
[3] pas le plus amusant, mais le plus important
[4] si on peut appeler ça un shield !
[5] trop simple :(


Commentaires du post original