l'horloge à disque dur n°2 :

HDD Still Clock

logo

écrivez-moi 

Le concept de la HDD Still clock

Un disque dur est intrinsèquement beau, c'est une mécanique de précision et le disque métallisé est un miroir parfait.

J'ai donc voulu conserver le disque quasiment intact pour en faire cette horloge originale et qui fonctionne.

Mon cahier des charges était le suivant :

  • un minimum de modifications visibles sur le disque
  • la tête de lecture doit indiquer les minutes
  • le disque en tournant doit indiquer les heures
  • le système doit être automatique
  • le disque doit pouvoir être alimenté par une simple prise USB ou un chargeur USB
  • une interface USB doit permettre de faire les réglages dont la mise à l'heure
  • l'heure doit être conservée en cas de coupure d'alimentation
  • l'horloge doit être silencieuse

et... cerise sur le gâteau :

  • l'horloge peut servir de petit haut parleur
  • l'horloge peut parler

Comme vous voyez le résultat est plutôt sympathique, la suite va vous montrer comment on peut réaliser cette "HDD Still Clock".

HDD_Still_Clock

Cette vidéo vous montre le résultat final.

Le principe est simple:

  • Un capteur phototransistor et sa photodiode infra rouge sont positionnés sous le plateau inférieur pour repérer le passage à midi du disque
  • Le moteur du disque est controlé par un microcontroleur qui le pilote soit en mode "pas à pas" soit en mode "brushless" via une électronique de puissance. Il affiche les heures
  • Le bobinage de postionnement de la tête de lecture est controlé en tension via un PWM, la tête de lecture affiche les minutes
  • Un logiciel PC Windows sert d'interface USB

 

La mécanique

Ouvrez votre disque dur et retirez le bras qui porte les têtes de lecture :

  1. retirez l'aimant supérieur.
  2. dévissez les vis qui tiennent les plateaux
  3. dévissez la vis du connecteur
  4. dévissez la vis centrale de l'axe du bras porte tétes

l'aimant est très puissant, il est délicat à retirer. Aidez vous d'un tournevis pour faire levier. Mais si vous "dérapez" vous pouvez facilement abimer le bobinage du bras... qu'il faut absolument protéger car il va nous servir.

La tête de lecture doit être équipée d'un petit ressort de rappel pour la convertir en galvanomètre à cadre mobile.

Wikipedia nous dit qu'un galvanomètre à cadre mobile, est constitué d'une bobine montée sur pivot, baignant dans le champ magnétique d'un aimant fixe, sur cette bobine est fixée l'aiguille de visualisation et un ressort chargé de rappeler l'équipage mobile dans la position indiquant le zéro.

Le courant, en traversant la bobine, induit dans celle-ci un champ électromagnétique, ce qui provoque un pivotement par répulsion des champs magnétiques. Plus le courant est intense plus la bobine bascule.

Le ressort de rappel est dissimulé sous la tête de lecture, il est donc parfaitement invisible.

  1. Le bras des têtes de lecture est percé et un bout de corde à piano est collée à l'epoxy
  2. les têtes de lecture sont enlevées (opération délicate) et leurs supports écartés afin qu'il n'y ait aucun contact avec le disque.
  3. On repère les deux plus gros fils sur la nappe reliée au connecteur. Il s'agit des fils d'alimentation de la bobine. C'est donc sur ces fils qu'on se connectera toujours de façon invisble !

 

Le ressort est réalisée avec un autre morceau de corde à piano le plus fin possible. Il est fixé sous le disque et raccordé à la tige qui dépasse une fois le bras remis en place

Cliquez sur les images pour zoomer

Le phototransistor RPR220 est soudé sur le circuit imprimé et éclaire avec sa photodiode infra rouge le disque inférieur. Un trou est percé dans le boitier afin que la "lumière" passe sos le disque. Une marque noire est peinte sur le disque pour que le capteur pisse la repérer.

Il est recommandé de faire un montage à blanc du circuit imprimé avant de souder le capteur. On peut alors utiliser les 4 trous dans lesquels il s'enfiche comme guides pour repérer de 4 petits trous de mèche la position du capteur sur le boitier. Il est alors facile de percer le boitier juste là où il faut.

Zoomez sur les photos pour voir les détails. Sur celle de gauche on distingue le disque et la tâche noire qui apparaît.

Idéalement le phototransistor doit passer à 6 mm de distance par rapport à sa cible. Allongez ses pattes si nécessaire.

 

L'électronique de commande

L'électronique est basée sur un microcontroleur PIC 24FJ256GB106. Ce processeur 16 bits possède un port USB intégré ce qui rend son interfaçage avec le PC simple (quand on a compris comment l'USB fonctionne !).

Il a aussi 9 PWM hardware ce qui le rend parfaitement adapté pour piloter des moteurs.

Associé au PIC on trouve :

  • un triple pont en H L6234 servant d'étage de puissance pour le moteur
  • un capteur photosensible (Reflective photosensor (photoreflector)) RPR220
  • une horloge temps réel DS1337C servant à mémoriser l'heure quand le système est hors tension
  • un ampli audio MAX9716 pour faire parler l'horloge (à faire)
  • un régulateur 3,3V
  • et quelques composants SMD pour lier le tout

Cliquez sur l'image pour zoomer le schéma

Tout ceci est tiré sur un circuit imprimé qu'on fixe au dos du disque dur.

Les fichiers eagle du circuit ainsi que les typons pdf sont téléchargeables.

Je vous ai dit que je voulais faire parler mon horloge... Le principe est amusant, on utilise la bobine de positionnement de la tête comme un haut parleur. Regardez la vidéo, ça se passe de commentaires .

Bien sûr la même bobine reçoit aussi le signal PWM des minutes. Il faut "additionner" ce signal à celui de l'audio. Ceci se fait en sortie de l'amplificateur audio. Quand il y aura de l'audio les minutes ne seront plus à l'heure... On ne peut pas tout avoir ...

J'ai également prévu de faire parler le microcontroleur via un signal PWM de modulation d'un message vocal à restituer.

je résume :

  • OUT7 = sortie PWM "voice" du microcontroleur
  • OUT8 = sortie PWM des "minutes" du microcontroleur
  • IN+ = entrée audio externe

 

Le logiciel

Le principal problème est de faire tourner le moteur. Ces engins sont des moteurs sans balais à courant continu ce qui en bon anglais s'appelle un moteur "brushless DC" ou encore "BLDC".

La littérature regorge de théories sur comment piloter un BLDC. A titre d'exemple :

Un BLDC a toujours deux bobinages sous tension et le troisième "en l'air". Selon le sens de passage du courant dans les bobines on arrive à 6 positions stables. Cette deuxième image, à droite, montre un moteur énergisé sur la séquence 1. Le courant entre au point A et ressort en B. Le rotor s'oriente alors selon ce point d'équilibre.

Un moteur de disque dur a beaucoup plus de bobinages que ce simple moteur triphasé. En pratique on dénombre 24 positions stables pour faire un tour complet. La séquence élementaire de 6 positions se répète donc 4 fois. Et 24 sera parfait pour indiquer des heures

Le dessin à droite montre les positions du rotor pour chacun des 6 états stables d'un moteur triphasé à 3 paires de pôles.

Pour faire fonctionner la HDD Clock j'aurais pu me contenter d'alimenter le moteur en mode "pas à pas" en passant les 24 états stables successivement. C'est d'ailleurs ce que je fais quand je bascule en mode "horloge" ou quand je démarre le moteur.

Il est par contre plus interessant d'essayer de faire tourner le moteur en mode "brushless".

La méthode simple est d'avoir un moteur équipé de capteurs à effet hall. Ces capteurs au nombre de trois sont placés sur les entrefers du stator et permettent de repèrer trois positions stables consécutives. (sur la photo il s'agit d'un moteur BLDC d'un vieux lecteur de disquettes). Notez la position des capteurs et regardez juste au dessus les positions stables du rotor elles aussi juste entre les entrefers !

Le moteur d'un disque dur n'a pas de capteur à effet hall. Il utilise la technique de pilotage par mesure de la force contre électromotrice de la bobine non alimentée. Cette méthode est efficace mais complexe à mettre en oeuvre.

J'ai donc remplacé les capteurs à effet hall par un seul capteur : le phototransistor.

 

Ce capteur me sert donc de repère de passage à midi de l'horloge et de repère de la position stable n°6 du moteur. Il faut donc caler le repère (la marque noire sur le disque du bas) pour synchroniser les deux évènements. Je vous montrerai comment plus tard. Ceci étant fait et sachant qu'il y a 24 positions stables (4 fois la séquence de base), il suffit de connaître la durée d'un tour, de diviser cette durée par 24 pour avoir la période de déclenchement des commutations et de déclencher la première commutation (n°1) lors du passage du capteur puis les 23 autres en suivant. C'est aussi simple que ça... sauf qu'il faut démarrer le moteur en mode "pas à pas" l'accélérer progressivement puis basculer en pilotage "brushless". Sachant que j'alimente le moteur en 5V au lieu de 12, ça devient assez délicat. Bien sûr les tensions dans les bobines sont hachées par un signal PWM afin de limiter le courant et aussi de pouvoir régler la vitesse de rotation.

Voici donc à quoi ressemble la séquence de commutation des bobinages du stator

Pour faire fonctionner la HDD Clock il faut flasher le firmware du PIC. Voici le fichier .hex à télécharger

Il existe aussi un logiciel PC permettant de régler les diffférents paramètres tels que :

  1. la mise à l'heure à partir de l'horloge PC (puis sauvegarde dans le chip RTCC)
  2. la bascule en mode "horloge" ou la mise en rotation du disque
  3. le monitoring de la vitesse du disque
  4. la sauvegarde en fichier ascii tabulé des courbes
  5. la calibration de l'aiguille des minutes
  6. la calibration du disque et du capteur RPR220
  7. des réglages avancés pour avancer la synchro du moteur (d'un nombre entier de pas "Adv" et d'une fraction de pas)
  8. le réglage de la vitesse du disque (rapport cyclique du PWM de hachage des courants stator)
  9. le bouton de bootload permettant de flasher un nouveau firmware lors du prochain reset de la carte (appui sur le bouton)
  10. enfin la carte est automatiquemet reconnue lors de son branchement (pas de driver et plug&play)

Ce logiciel est téléchargeable : download PC software

 

Les finitions et les réglages

Pour terminer votre HDD Clock il va falloir faire un plateau avec les graduations "horaires". La géométrie du disque et de sa tête de lecture est primordiale pour faire quelque chose de précis.

Il faut donc relever le plan des différents axes, les positions des butées de la tête et reporter ça sur votre logiciel de CAO préféré. Voici donc ce plan au format dxf.

Partant de ce fichier j'ai testé plusieurs solutions pour réaliser le cadran :

  • l'impression avec une imprimante laser (méthode toner transfer). Le résultat est propre mais fragile et délicat à bien centrer (voir photo du haut de la page).
  • la gravure avec une fraise en V. Là le résultat est quasi parfait même si les traits sont un peu plus larges. Voici le fichier GCode de gravure

 

Sur la vidéo la gravure en mode "UGV"

A l'arrivée le rendu est plutôt sympathique. Il ne reste plus qu'à monter ce plateau sur le disque et effectuer les derniers réglages.

Calibrer le capteur phototransistor :

  • sur l'IHM cochez la case . Le disque se verrouille en position de calibration.
  • dévissez les vis de serrage
  • faites tourner le plateau inférieur jusqu'à ce que la led s'allume
  • faites tourner le plateau supérieur sur le repère "12 heures "
  • revissez les vis de serrage.

Calibrer le bras porte tête :

  • sur l'IHM cochez la case L'ascenseur de réglage du bras devient actif (onglet )
  • positonnez le bras sur 0h, 1/4h, 1/2h, 3/4h, 1h et chaque fois reportez la valeur lue dans la case adhoc
  • puis sauvegardez les valeurs

exemple pour 1/2h :

Une petite vidéo (en HD) pour montrer comment l'horloge gère les changements d'heure et de minutes !

vous pouvez zoomer pour voir l'horloge finie de très près (en zoomant deux fois cette image) !;