Sciences pour tous vous propose des
réalisations en électronique, optique, astronomie...
Réaliser une horloge digitale mécanique
(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 :
Vue
arrière en 3D :
Fonctionnement
:
- A la mise sous tension, la carte Arduino se met à compter les
minutes et les heures (En démarrant à 12h00).
- 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.
- 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.
- 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 :
On s'aperçoit que l'on peut afficher
tous les chiffres avec seulement 3 faces à condition que :
- Le 1 ne soit pas centré mais à droite
- La barre de droite du 4 ne monte pas jusqu'en haut
Ce qui nous parait acceptable...
Matériel
:
- 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é
- 1 plaque du haut en plexiglas 290 x 61 x 4 percée, découpée
- 1 plaque du bas en plexiglas 290 x 61 x 4 percée
- 1 planche bois 310 x 75 x 15 percée, vernie
- 8 courroies crantées 135 x 10
- 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.
- 4 tiges filetée M4 L143
- 2 tiges filetées M4 L100
- 4 tubes laiton D6 L88
- 24 rondelles 6
- Écrous rondelles M4
- Vis écrous M3x10
- 4
moteurs pas à pas 42x42x37.5axe D5x15 200 pas/t
- 1 carte
Arduino
Nano
- 4
circuits intégrés 6612 commande moteur
Recette :
- 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
- Fabriquer la plaque en plexiglas du bas 290 x 61 x 4, percée
- Fabriquer la plaque en plexiglas du haut 290 x 61 x 4, percée,
découpée
- Fabriquer un support en bois 310 x 75 x 15 percé, verni
- Poser les 4 moteurs sous la plaque plexiglas du bas
- Visser les 4x4 vis M3X10 pour fixer chaque moteur sur la plaque
plexiglas du bas
- Installer 4 les tiges filetées M4 avec 4 écrous M4 et 4 rondelles
d4 sur la plaque plexiglas du bas
- Monter 4 écrous M4, 4 rondelles d4 sur les tiges filetées
- Monter 4 écrous M4, 4 rondelles d4 sur les tiges filetées
- Insérer les tiges filetées dans le support en bois
- Monter 4 rondelles d4 et 4 écrous M4 sur les tiges filetées
- Poser 4 entretoises sur les axes du moteur pour que les blocs ne
touchent pas les vis de fixation moteur
- Découper 4 tubes laiton D6 L 85
- 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
- Coller (Araldite) chaque bloc inférieur à l'extrémité du tube
laiton
- Poser chaque bloc inférieur avec son tube laiton monté à force
sur l'axe du moteur jusqu'à l'entretoise
- Poser une rondelle M6 sur chaque tube laiton
- Poser les 4 blocs suivants, les 4 rondelles d6
- Et ainsi de suite
- Monter les ressorts sur la tige centrale avec une rondelle M4
entre chaque ressort
- Sur chaque tige filetée extérieure monter 2 écrous M4 montés en
contre écrou et une rondelle 4
- Idem sur la tige filetée de droite
- 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
- Visser 4 écrous M4 sur les tiges filetées puis poser 4 rondelles
d4
- Poser la plaque plexiglas 4 du haut
- Poser 4 rondelles puis visser 4 écrous M4
- Régler les 8 écrous supérieurs pour que les blocs supérieurs
tournent avec un jeu de 1 mm
- Connecter chaque moteur à un 6612
- Connecter toutes les entrées 6612 AIN1 ensemble (Fil vert) et à
l'Arduino, idem AIN2 (Fil bleu), BIN1 (Fil violet), BIN2 (Fil gris)
- Connecter chaque STBY des 6612 à 4 pins Arduino (Fils marron,
rouge, orange et jaune)
- 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
- Nota : il est plus simple
de déterminer les codes de rotation une fois un premier chiffre de 5
blocs assemblé
- 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
- 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
- Positionner manuellement (On peut le faire coffret assemblé) les
chiffres à 12 : 00 si le programme le permet
- À
midi, brancher l'horloge : la Led clignote
- Un bouton poussoir permet d'avancer de 1 mn
- 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.
Les 5 blocs provisoirement montés avec un axe et (Gros) moteur à
courant continu provisoire :
Réalisation des blocs définitifs :
- Nous avons acheté 200 cubes de
15 en bois clair
- Certains cubes sont vernis
clairs d'autre vernis foncés
- Nous avons collé (colle à bois)
les cubes en 3x3 pour former un bloc
- 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)
- 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) :
.
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) :
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...
.Vue avant de l'horloge
complète avec le boîtier :
.
Vue arrière de l'horloge
complète avec le boîtier : les
deux boutons de mise à l'heure et le connecteur mini USB :
.
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 !
http://spt06.perso.libertysurf.fr
Commencé le 04/03/2021
A jour au 17/04/2022