The Dot

Capsule lumino-temporelle. Lumière en lévitation, temps en suspension. Voici une horloge originale sous Arduino.


Voici une première réalisation personnelle utilisant le microcontrôleur Arduino et quelques matériaux de récupération.
Il s’agit d’une horloge lumineuse et décorative. La teinte change en fonction de l’heure, et un petit afficheur lumineux old-school notifie l’heure en cours.
Projet assez simple en apparence, mais qui m’a donné du fil à retordre vu les différents composants impliqués, mes modestes compétences en soudure, et les notions de programmation nécessaires.
C’est donc sûrement optimisable, mais tout fonctionne à merveille, et quelle satisfaction de finaliser un projet ! 🙂

The Dot : origine, concept & design

L’objectif final est d’obtenir une oeuvre décorative et utile. Voici le cheminement créatif.

thedot-gotaLe patient zéro est cette belle et banale bouteille d’eau en verre opaque, achetée sur un coup de coeur pour l’objet.
Une fois bue, hips, je l’ai entreposée parmi mon bric-à-brac de matières à recycler.

Quelques temps plus tard, cherchant une idée de projet sous Arduino, je tombe sur cette bouteille, et tilt !
Une LED RGB placée en son centre va donner un rendu sympathique de type halo lumineux avec l’opacité du verre.

Cool, mais une couleur statique c’est un peu monotone. Alors faisons varier la teinte de la LED… mais selon quelle logique ?

thedot-colourclockEt là je me suis souvenu de différents sites (The Colour Clock) qui affichent une couleur différente chaque seconde en fonction de l’heure. Voilà un concept parfait pour animer la LED.

thedot-hsvAprès divers tâtonnements et recherches sur internet pour trouver la méthode à utiliser pour faire varier la teinte en douceur, j’ai opté pour l’utilisation du modèle coloriel HSV (Hue Saturation Value, ou HSB : Hue Saturation Brightness, ou en français TSV : Teinte Saturation Valeur) .
La teinte est codée suivant l’angle qui lui correspond sur le cercle chromatique. La saturation est « l’intensité » de la couleur (apparence plus ou moins fade/pure). Et la valeur correspond à la « brillance » de la couleur (du plus sombre au plus clair).

thedot-hue
J’ai défini qu’en 1 heure je balaye toutes les teintes du cercle chromatique.
A l’usage cela me permet d’un coup d’oeil de savoir dans quel quart horaire je suis !
L’ajustement de teinte est effectué chaque seconde, les transitions sont donc douces et imperceptibles.

Au niveau de l’algorithme c’est assez simple :

  • on compte le nombre de secondes écoulées dans l’heure actuelle : (minutes*60)+secondes
  • on mappe ce nombre sur une plage entre 0 et 359°
  • Et voilà nous avons notre teinte (H). La saturation (S) et la valeur (V) restent invariables à leur valeur max
  • A l’aide de savantes fonctions récupérées online, je convertis la couleur du modèle HSV vers le modèle RGB pour configurer la LED

Chaque minute j’effectue une rapide baisse de luminosité, pour humaniser l’objet. Son cœur bat et nous rappelle que le temps passe 🙂

thedot-bubbleJ’ai ajouté un afficheur lumineux pour une utilité supplémentaire : indiquer l’heure exacte.
Mon choix s’est porté sur un afficheur 4 segment de type ‘Bubble Display’ qui était utilisé sur nos anciennes calculatrices. On peut encore en trouver sur internet. Le côté rétro et la finesse de l’affichage me plaisent bien.
Autre petit détail : chaque seconde le point entre les heures et les minutes clignotte.

Pour le design physique du projet voici quelques détails :

  • Le montage vient se loger dans une potence en bois récupérée dans une brocante.
  • La bouteille y est suspendu en son centre, la lumière lévite, le temps est en suspension.
  • La carte Arduino et son shield sont vissés sur le socle de la potence et restent apparents. J’aime le mélange des genres et des matériaux. L’alliance entre nature et technologie.
  • Les fils électriques sont en partie camouflés, le long du dos de la potence.

The Dot : la partie technique

Hardware : Composants & Schéma Fritzing
  Une carte Arduino Uno
  Un module DS1307 pour l’horloge
  Un shield vierge pour y souder le montage final
  Un afficheur 4 segment de type ‘Bubble’ (modèle choisi à cathode commune)
  Une Led RGB (modèle choisi à cathode commune, cablée en RBG)
  Un Shift Register 74HC595 pour piloter le Bubble Display qui demande 6 entrées
  C1 100nF (104) – Condensateur de découplage
  R1 180Ω – LED composante Rouge
  R2 200Ω – LED composante Vert
  R3 51Ω – LED composante Bleu
  R4 à R11 1kΩ – Anodes du Bubble Display

Voilà le montage réalisé sous Fritzing, j’ai fait au mieux, pas évident avec toutes ces connexions !
The Dot : Schéma électronique

Software : The Code
Le code source est librement réutilisable et modifiable. Il est bien commenté pour vous aider à le comprendre.
Deux librairies sont utilisées pour contrôler le module d’horloge DS1307 : Wire et RTClib.
Le reste des composants est contrôlé via des fonctions en partie récupérées sur d’autres sources et adaptées pour mes besoins.

Notes techniques supplémentaires
Précalibrage de la luminosité de la led
Ne connaissant pas les caractéristiques de cette led RGB de source inconnue, j’ai effectué un calibrage à l’oeil des 3 composantes RGB en ajustant les résistances afin que les 3 teintes aient visuellement la même luminosité.
Le résultat est le suivant :
Résistance sur composante Rouge : 180Ω
Résistance sur composante Verte : 200Ω
Résistance sur composante Bleu : 51Ω

Une simple petite boucle de rotation des 3 teintes m’a permis de faire le test visuel :

Sur le blog de World of GZ vous trouverez un article intéressant au sujet des LEDs RGB

 

Afficheur Bubble Display
Pour gérer cet afficheur à l’aide du registre à décalage 74HC595, on allume successivement un à un les 4 digits, mais ils ne sont jamais allumés tous en même temps.
Vu que ce changement est très rapide (7ms environ), la persistence rétinienne humaine (POV) fait que l’on perçoit les 4 digits allumés en même temps.
Pour le câblage des résistances, j’ai opté pour 8 résistances sur les anodes, plutôt que 4 sur les cathodes. Cela me permet d’avoir une brillance identique sur les 4 digits, quelque soit le caractère affiché (sinon on se retrouve avec des caractères plus lumineux que d’autres selon le nombre de segments activés).

Voici quelques liens vers d’autres blogs traitant du sujet, dont je me suis inspiré :
Sparkfun  |  Open tech and DIY hacking  |  MultiWingSpan

 

Module temporel DS1307
Pour régler l’horloge, il faut décommenter la ligne suivante, puis transférer le code dans l’Arduino pour que le DS1307 se synchronise avec l’heure de l’ordinateur.

Une fois l’horloge à jour, recommenter la ligne et retransférer le code.

J’ai constaté que l’horloge à tendance à avancer un peu au fil des jours, de quelques minutes. Apparemment c’est un problème fréquent avec ce type de module. Voici quelques pistes sur les causes possibles :
– Proximité d’un circuit « bruyant », comme le quartz de l’Arduino
– Bruit généré par les alimentations
– Circuit ou Quartz de mauvaise qualité, mal implanté, copie chinoise…

Pour limiter le bruit j’ai placé un condensateur de découplage (100nF) au niveau de l’alimentation du DS1307. Finalement cela n’a pas réglé mon problème 🙁

 

Alimentation
J’ai prévu de laisser l’objet allumé en permanence, il sera donc alimenté via un chargeur USB et le port USB de l’Arduino.

Pour optimiser le tout on pourrai utiliser un autre modèle de carte Arduino moins gourmand en énergie, utiliser les Timers de l’Arduino, ajouter une fonction thermomètre, passer le projet sur batteries, ajouter un module de rechargement solaire…
Pas de limite à l’imagination, à vous de jouer !

J’espère que ce projet et son histoire vous ont plu, n’hésitez pas à partager et commenter, cela fait toujours plaisir et c’est encourageant 😉


 Licence Creative Commons
The Dot de bicouni est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International.
Fondé(e) sur une œuvre à https://studio.loiseaucreatif.com/the-dot/.

Sharing is sexy
Tweet about this on TwitterShare on FacebookShare on Google+Pin on PinterestShare on TumblrEmail this to someone

2 Comments

Submit a Comment
  • Répondre

    Denis

    Bonjour,je vais m’y mettre tout de suite , je trouve votre réalisation très originale.

    • Répondre

      bicouni

      Merci !
      Je suis maintenant curieux de découvrir votre réalisation suite à cette source d’inspiration 🙂

Submit a CommentPlease be polite. We appreciate that.

Your Comment