Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
24 février 2017 5 24 /02 /février /2017 11:58

Une fois encore l'inspiration m'est venue en lisant l'excellente revue Hackable. Et une fois encore je me suis dis que c'était sympa mais que je pouvais faire mieux ;)

J'ai donc décidé de restaurer deux lampes à pétrole données par un ami à qui j'avais eu la bonne idée de faire part de mon projet ;) avec les objectifs suivants:

  • Aucune consommation d'énergie quand la lampe est éteinte
  • Différents modes d'éclairages
  • Réutilisation de la commande de la mèche de la lampe pour régler l'intensité et/ou la couleur de la lampe.
  • Réutilisation (quand c'est possible) du bouchon du réservoir pour changer de mode d'éclairage.

J'ai une grande et une petite lampe. J'ai rapidement vu que je ne pourrai pas loger le contacteur rotatif à 2x6 contacts sous le bouchon du réservoir de la petite. La petite lampe utilisera donc le poussoir de l'encodeur rotatif pour changer de mode d'éclairage. L'encodeur rotatif étant accouplé à la commande de la mèche (plus de détails plus loin).

Côté éclairage, j'ai commandé des couronnes de LED WS2812B de différents diamètres qui feront très bien l'affaire.

Côté micro-contrôleur, l'ATMega328P est tout indiqué. Il me reste encore quelques unes des géniales cartes Evil-Mad Scientist qui sont tout à fait adaptées à ce besoin. C'est bien plus propre qu'une plaque à trous et bien plus simple que de devoir faire son propre circuit imprimé.

Les différents modes d'éclairage que j'ai envie de proposer sont:

  • Eclairage fixe et réglage de l'intensité via la molette
  • Eclairage fixe et réglage de la couleur via la molette
  • Eclairage "arc-en-ciel" fixe et réglage de l'intensité via la molette
  • Eclairage "arc-en-ciel" rotatif et réglage de l'intensité via la molette
  • Eclairage "simulateur de flamme"

 

Lanternes brutes avant restauration

Lanternes brutes avant restauration

Schéma électrique de la grande lanterne (avec contacteur rotatif):

Schéma électrique de la petite lanterne (sans contacteur rotatif):

Manette de commande

J'ai eu pas mal de boulot côté hardware: découpes au Dremmel, modélisation et impression 3D.

Il a tout d'abord fallu démonter le mécanisme d'alimentation de la mèche et trouver où placer l'encodeur rotatif en prolongement avec l'axe du mécanisme. Le disque de découpe du Dremmel fut un outil précieux dans cette tâche!

Pour coupler la manette avec l'encodeur j'ai essayé deux méthodes:

Pour la première lanterne où j'avais pas mal de place j'ai utilisé du plastique EasyPlast (qui fond à 60°) trempé dans de l'eau chaude puis modelé à la main et au pistolet à air chaud. Ce plastique est  quand même vachement pratique car ça permet modeler à la main des pièces très solides après refroidissement.

 

 

Pour la seconde j'ai usiné le bout de la manette pour qu'il entre à forcer dans l'encoche de l'axe de l'encodeur rotatif.

 

 

 

 


 

Support de LEDs et Diffuseur

J'ai modélisé un support paramétrable pour les anneaux de LED (avec OpenScad) afin de pouvoir poser l'anneau à plat tout en ménageant un espace pour les soudures et les câbles.

Le modèle est disponible dans le dépôt github donné à la fin de ce billet.

 

Il m'a fallu aussi modéliser un diffuseur. J'ai fait pour cela un modèle paramétrique dans OpenScad qui permet de modéliser une calotte sphérique avec un diamètre, une hauteur et une épaisseur paramétrable. J'ai ainsi imprimé des diffuseurs adaptés à chaque lampe, en PLA transparent.

 

Support de la carte électronique

J'ai aussi eu besoin d'un support pour fixer la carte électronique au fond du réservoir.

Là j'ai opté pour Fusion360 qui m'est bien plus simple à utiliser pour ce genre de pièce (le modèle est disponible dans le dépôt github).

J'ai imprimé un support adapté à chaque taille de lampe, fixé par deux vis dans une découpe du fond du réservoir.

Support de la petite lanterne:

 

Fixation du contacteur rotatif

Après avoir réfléchi à plusieurs solutions pour fixer le contacteur rotatif sous le bouchon de réservoir de la grande lanterne j'ai fini par modéliser une bride de fixation (avec Fusion360) sur laquelle le contacteur est vissé, et qui est collée à la colle époxy à l'intérieur du réservoir.

Modèle de la bride de fixation du contacteur

bride collée

 

J'ai aussi usiné un méplat sur l'axe du contacteur.

Enfin concernant le bouchon du réservoir, j'ai dû meuler son pas de vis, percer un trou en son centre et y faire un méplat en collant une barrette métallique à la colle époxy.

Il ne restait plus qu'à faire la partie logicielle :)

 

Logiciel

Côté logiciel j'ai commencé par utiliser la librairie WS2812FX, qui utilise la librairie Neopixel d'Adafruit. Elle n'est pas mal, elle dispose de plein d'effets, mais rien qui ne me convenait.

C'était une bonne occasion d'utiliser la librairie FastLED dont j'avais entendu parler par ailleurs. Elle est relativement bien documentée mais surtout bien plus compacte (et très portable).

J'ai pu sans problème faire ce dont j'avais besoin.

Pour la partie simulateur de flamme, j'ai fait plusieurs essais pas vraiment convaincants et je suis revenu à celui que je préfère pour ce genre d'usage: Celui-ci. Je l'ai simplement adapté pour utiliser FastLED pour piloter mes LED et pour permettre de sortir facilement d'une boucle de simulation quand on change de mode d'éclairage.

C'était la première fois que j'utilisais un encodeur rotatif. J'ai essayé diverses librairies pour finalement retenir celle de PJRC. Elle a l'avantage de pouvoir fonctionner avec ou sans interruptions, d'être simple à mettre en oeuvre et de permettre d'initialiser la valeur que manipule l'encodeur.

Les valeurs de luminosité, de couleur, et de mode (pour la petite lanterne uniquement) sont stockées dans l'EEPROM afin que la lampe se rallume dans le même état qu'elle s'est éteinte (les valeur ne sont écrites qu'en cas de modification).

Le code est commenté, il ne devrait pas poser de problème à ceux qui souhaiteraient le réutiliser.

Le code, le schéma électrique et les modèles 3D sont disponibles sur ce dépôt github.

 

Le résultat final:

 

Partager cet article

Repost 0
Published by breizhmakers
commenter cet article

commentaires

Angelilie 09/04/2017 18:27

beau blog. un plaisir de venir flâner sur vos pages. une découverte et un enchantement.N'hésitez pas à venir visiter mon blog. au plaisir