Sciences pour tous vous propose des réalisations en électronique, optique, astronomie...

Réaliser une horloge digitale mécanique


English version

(Difficulté : *** assez difficile)


Principe :

Nous souhaitons réaliser une horloge originale qui affiche les heures et les minutes en digital. Mais plutôt qu'un simple système à afficheur Leds, nous utilisons quatre colonnes de 5 blocs (en bois) que nous faisons pivoter (Comme dans un Rubik's cube) pour réaliser les chiffres en sept segments mais de façon mécanique.

L'horloge est alimentée en 5V par une prise mini ou micro USB. Cette prise alimente une carte Arduino Nano. La carte est reliée à 4circuits intégrés 6612 de gestion de moteurs via 3 pins pour les 4 pôles moteur  + 4 pins sélection du moteur. Chaque 6612 est relié à un moteur pas à pas 42x42x37.5, D22, axe D5x15 200pas/t.

L'axe de chaque moteur est enfoncé à force dans un tube laiton monté à force dans le bloc inférieur et l'entraîne par friction.

Tous les blocs sont munis d'une vis excentrée, sur le dessus, qui entraîne le bloc du dessus de 3/4 tour max.

Les 4 blocs supérieurs sont munis d'une encoche, sur le dessous, circulaire 1/2 t l 4 qui reçoit la vis précédente.

Tous les blocs peuvent pivoter de plusieurs tours sauf celui du haut qui est limité par sa vis et la plaque plexiglas du haut à 3/4 de tour max.

Il y a 5 blocs pour former un chiffre.

Chaque bloc peut donc exposer ses 4 face latérales (Sauf celui du haut qui n'en montre que 3).

Chaque bloc en bois est verni en clair sauf certaines parties des faces latérales vernies foncées pour former les segments de l'afficheur.

La plaque supérieure en plexiglas maintient les axes des blocs (Tige laiton D6). Elle limite aussi le déplacement de chaque bloc supérieur.

La plaque inférieure en plexiglas maintient les axes des blocs. Elle maintient aussi les 4 moteurs.

Chaque bloc est séparé de celui du dessus par une rondelle D6 qui évitent que les blocs ne frottent entre eux (Et s'entraine mutuellement en rotation).

À l'arrière, 8 courroies blanches (Les noires, en caoutchouc ne glissent pas assez) crantées (Utilisées du côté non cranté) (Ou un ruban résistant) chacune reliée à un ressort, frottent sur la face arrière des blocs (Sauf les blocs inférieurs) et ont tendance à maintenir l'alignement des faces et à éviter des rotations accidentelles.

Nota : à chaque minute, l'horloge et ses moteurs vont faire un peu de bruit : ce genre d'horloge ne convient pas dans une chambre à coucher.

Découpe des plaques en plexiglas :

hor01.jpg
Vue arrière en 3D :
hor01a.jpg

Fonctionnement :
  1. A la mise sous tension, la carte Arduino se met à compter les minutes et les heures (En démarrant à 12h00).
  2. Chaque minute, elle actionne dans un sens ou dans l'autre le moteur des minutes en comptant les quarts de tour : 50 pas pour 1 quart de tour. Une fois que le bloc du bas des minutes a fait ses 3/4 de tour, il entraine le bloc au-dessus et ainsi de suite.
  3. Ainsi avec une série de rotation dans un sens et dans l'autre (un peu comme un Rubik's cube) on peut positionner la face adéquate du bloc du haut, puis du suivant et ainsi de suite en descendant jusqu'à afficher 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
  4. De même avec les dizaines de minutes, avec les heures et les dizaines d'heures
Voici les 10 chiffres et, à droite dans le rectangle, les faces à colorier :
hor02.jpg
On s'aperçoit que l'on peut afficher tous les chiffres avec seulement 3 faces à condition que :
Ce qui nous parait acceptable...

 
Matériel :
  1. 20 blocs 45 x 45 x 15 taillés dans une planche de bois de 310x75x15 (ou imprimés en 3D), ou 180 cubes de 15 en bois clair pour jouer, collés entre eux, numérotés et vernis en partie en foncé
  2. 1 plaque du haut en plexiglas 290 x 61 x 4 percée, découpée
  3. 1 plaque du bas en plexiglas 290 x 61 x 4 percée
  4. 1 planche bois 310 x 75 x 15 percée, vernie
  5. 8 courroies crantées 135 x 10
  6. 4 ressorts : des ressorts de traction en partie déroulés. des ressorts peu puissants pour que le moteur pas à pas arrive à entraîner dans les deux sens les 4 blocs supérieurs d'un coup.
  7. 4 tiges filetée M4 L143
  8. 2 tiges filetées M4 L100
  9. 4 tubes laiton D6 L88
  10. 24 rondelles 6
  11. Écrous rondelles M4
  12. Vis écrous M3x10
  13. 4 moteurs pas à pas 42x42x37.5axe D5x15 200 pas/t hor04.jpg
  14. 1 carte Arduino Nano hor05.jpg
  15. 4 circuits intégrés 6612 commande moteur

Recette :
  1. Vernir en clair ou foncé, les 180 cubes bois 15 puis les coller, percer D 6 pour les blocs inférieurs, D 6.5 pour les autres. Rainurer (Sauf les blocs du bas) sur le dessous en 1/2 cercle profondeur 4, ajouter une vis M3x10 qui dépasse de 3 et un écrou par bloc pour fabriquer 20 blocs de 45 x 45 x 15
  2. Fabriquer la plaque en plexiglas du bas 290 x 61 x 4, percée
  3. Fabriquer la plaque en plexiglas du haut 290 x 61 x 4, percée, découpée
  4. Fabriquer un support en bois 310 x 75 x 15 percé, verni
  5. Poser les 4 moteurs sous la plaque plexiglas du bas
  6. Visser les 4x4 vis M3X10 pour fixer chaque moteur sur la plaque plexiglas du bas
  7. Installer 4 les tiges filetées M4 avec 4 écrous M4 et 4 rondelles d4 sur la plaque plexiglas du bas
  8. Monter 4 écrous M4, 4 rondelles d4 sur les tiges filetées
  9. Monter 4 écrous M4, 4 rondelles d4 sur les tiges filetées
  10. Insérer les tiges filetées dans le support en bois
  11. Monter 4 rondelles d4 et 4 écrous M4 sur les tiges filetées
  12. Poser 4 entretoises sur les axes du moteur pour que les blocs ne touchent pas les vis de fixation moteur
  13. Découper 4 tubes laiton D6 L 85
  14. Poser une petite quantité de soudure, à l'extrémité, à l'intérieur de chaque tube laiton pour créer l'entraînement avec le plat du moteur pas à pas
  15. Coller (Araldite) chaque bloc inférieur à l'extrémité du tube laiton
  16. Poser chaque bloc inférieur avec son tube laiton monté à force sur l'axe du moteur jusqu'à l'entretoise
  17. Poser une rondelle M6 sur chaque tube laiton
  18. Poser les 4 blocs suivants, les 4 rondelles d6
  19. Et ainsi de suite
  20. Monter les ressorts sur la tige centrale avec une rondelle M4 entre chaque ressort
  21. Sur chaque tige filetée extérieure monter 2 écrous M4 montés en contre écrou et une rondelle 4
  22. Idem sur la tige filetée de droite
  23. Poser les 6 courroies crantées percées à chaque extrémité, d'un côté dans le ressort, de l'autre relié à la tige filetée L100
  24. Visser 4 écrous M4 sur les tiges filetées puis poser 4 rondelles d4
  25. Poser la plaque plexiglas 4 du haut
  26. Poser 4 rondelles puis visser 4 écrous M4
  27. Régler les 8 écrous supérieurs pour que les blocs supérieurs tournent avec un jeu de 1 mm
  28. Connecter chaque moteur à un 6612
  29. Connecter toutes les entrées 6612 AIN1 ensemble (Fil vert) et à l'Arduino, idem AIN2 (Fil bleu), BIN1 (Fil violet), BIN2 (Fil gris)
  30. Connecter chaque STBY des 6612 à 4 pins Arduino (Fils marron, rouge, orange et jaune)
  31. Il faut écrire le programme : à la mise sous tension 12 : 00, chaque minute, on lance la séquence de rotation dans un sens et dans l'autre pour passer de 0 à 1, de 1 à 2, de 2 à 3, de 3 à 4, de 4 à 5, de 5 à 6, de 6 à 7, de 7 à 8, de 8 à 9, de 9 à 0
  32. Nota : il est plus simple de déterminer les codes de rotation une fois un premier chiffre de 5 blocs assemblé
  33. Nota : il faut s'assurer que au moins un code envoie le bloc supérieur en butée gauche et un autre en butée droite. Ainsi, en cas d'erreur, le moteur va se bloquer en butée et l'erreur sera rattrapée (Mais ça peut prendre 24h). En théorie, on peut même positionner les blocs n'importe comment, ils finiront par se synchroniser
  34. Construire un coffret en bois avec 4 trous rectangulaires pour les chiffres, un trou pour l'USB Nano et deux trous pour les boutons poussoir qui permettent d'avancer d'une minute ou d'une heure
  35. Positionner manuellement (On peut le faire coffret assemblé) les chiffres à 12 : 00 si le programme le permet
  36. À midi, brancher l'horloge : la Led clignote
  37. Un bouton poussoir permet d'avancer de 1 mn
  38. Un bouton poussoir permet d'avancer de 1 h
Nota : Les minutes et les dizaines de minutes ne tournent pas en même temps. Le programme fait d'abord tourner les minutes, puis les dizaines de minutes, puis les heures, puis les dizaines d'heures. Le reste du temps, les moteurs ne sont pas alimentés pour économiser l'énergie (L'horloge ne consomme alors que quelques mA sur le 5V et si l'adaptateur secteur est de bonne qualité, sa consommation est négligeable)
Programmation :
Avec les motifs que nous avons choisis pour chaque bloc, voici les séquences :
45 : séquence à envoyer pour passer de l'affichage du chiffre 4 au chiffre 5
D3, G2 veut dire : 3 quarts de tour à droite (En vissant vue de dessus) puis 2 quarts de tour à gauche (en dévissant vue de dessus).

01 : G7 (BG) D7 G5 D2 BG : Butée Gauche
12 : D5 G8
23 : D3 G2
34 : D8 (BD) G7 D5
45 : G7 D8 G3
56 : D3
67 : G8 D5 G4 D2
78 : D4 G4 D1
89 : D3 G3
90 : G3 D2

50 : G2 D2
20 : D6 G5 D2

Nota : il faut qu'une combinaison aille en butée droite, une autre en butée gauche... pour les 4 axes...

Exercice pour les matheux: trouver les motifs pour faire le moins de rotations possible -:)
Nota : le maximum : D8, G8, D6 fait 22 quarts de tour soit 1100 pas.
Les pas devraient faire entre 5 et 10 ms.
Si les pas font 10 ms la séquence dure 11 s. (Ce qui est un peu long mais acceptable)


Réalisation :
Une première version de test des 5 blocs provisoires (En bois), peints, avec la rainure semi-circulaire et la vis M3x10 et son écrou pour faire la butée.

hor06.jpg


Les 5 blocs provisoirement montés avec un axe et (Gros) moteur à courant continu provisoire :
hor07.jpg

Réalisation des blocs définitifs :
  1. Nous avons acheté 200 cubes de 15 en bois clair hor08.jpg
  2. Certains cubes sont vernis clairs d'autre vernis foncés
  3. Nous avons collé (colle à bois) les cubes en 3x3 pour former un bloc
  4. Les blocs ainsi obtenus ont été percés D 6.5 au centre et pour la vis M3 et rainurés (Sauf les blocs inférieurs : D 6)
  5. Les blocs ont été vernis
Les blocs obtenus sont en bois clair et foncés:
Les plaques sont découpées et percées
Et le tout est assemblé

Vue avant de l'horloge complète sans le boîtier (Il manque les circuits buffer des moteurs) :

hor09.jpg
.
Nous avons ensuite fait des essais et mesuré la vitesse maxi à laquelle les moteurs peuvent tourner en gardant un couple suffisant (Le couple des moteurs pas à pas diminuent avec la vitesse). Si la vitesse est trop élevée, lorsque le moteur s'arrête, un bloc peut aller, avec son inertie, au-delà du point prévu...

Visiblement un pas doit durer entre 5 et 10 ms.

Vue arrière de l'horloge complète sans le boîtier (Il manque les circuits buffer des moteurs). On voit les boutons poussoir de remise à l'heure et l'Arduino Nano avec une vis M5 pour le maintenir en place, il y a aussi une butée arrière) :
hor11.jpg

Le système de friction fonctionne bien : les 4 moteurs entraînent les blocs, même les 5 simultanément, dans les deux sens.
Il reste à installer les 4 6612, les relier à l'Arduino et tester tout ça et faire une vidéo...

La boîte (En contre-plaqué plaqué noyer) poncée et vernie...
hor12.jpg

.
Vue avant de l'horloge complète avec le boîtier :
hor13.jpg
.
Vue arrière de l'horloge complète avec le boîtier : les deux boutons de mise à l'heure et le connecteur mini USB :
hor14.jpg
.
Câblage :
Noir : masse
Marron : D3 AIN1 moteur 1er fil
Rouge : D4 AIN2 moteur 2e fil
Orange : D5 BIN1 moteur 3e fil
Jaune : D6 BIN2 moteur 4e fil
Vert :
D7 STBYA moteur minutes actif haut
Bleu : D8 STBYB moteur dizaine minutes actif haut
Violet : D9 STBYC moteur heures actif haut
Gris : D10 STBY D moteur dizaines heures actif haut
Blanc : +5V

11 PUSHMN poussoir avance 1 minute
12 PUSHHR  poussoir avance 1 heure

Pour que le 6612 fonctionne, il faut mettre les deux entrées STBY à Vcc ET les 2 entrées PWM à Vcc..
Les moteurs fonctionnent bien, pour améliorer le couple, nous les avons découplé avec 2 condensateurs en // de 4700 uF 10V...

Tout marche, l'horloge fait un peu de bruit chaque minute et le coffret en bois fait caisse de résonance...

.

Vidéo de l'horloge

That's All, folks !

email.gif

http://spt06.perso.libertysurf.fr

Commencé le 04/03/2021


A jour au 17/04/2022