PTITRAIN PRÉSENTE
UNE COPRODUCTION PSI DE PICTRAIN ET DOC TOOFOO :
S P I D O U R — POUR LA PREMIERE FOIS AU MONDE
DANS TOUTE L´HISTOIRE DE L´HORLOGERIE !

Dévoilons aujourd'hui un projet secret : à la suite de discussions tenues en 2005 et 2007, on sait que beaucoup de nos lecteurs (voir les pages “sondages” de la liste Ptitrain) voudraient une horloge rapide, qui fasse défiler le temps plus vite qu'en réalité... pour en quelque sorte “agrandir” leurs réseaux en réduisant le temps.
Une page toute théorique (écrite dans le style “ya ka”) existe depuis longtemps : toofoo33-spidour1 — mais assez dégoûtante au niveau des soudures innombrables et de la “technologie” CMOS...
Mais entre-temps le PIC apparut sur cette Terre et son prophète, PSi , a
écrit pour de vrai la solution.
Le moteur logique sera commun à tous, mais vous pourrez jouer sur l'affichage, depuis une petite pendule pour votre petit T.C.O. jusqu'à un pavé d'un demi-mètre carré pour le mur du fond de votre club...
(La contrainte donné par Doc Toofoo était de ne pas avoir d'afficheurs modernes dits “à sept segments” sinon pour du texte ! Ces horribles bestioles sont abandonnées aujourd'hui par tous les horlogers décents, et elles dépareraient tous nos réseaux “d'époque”... Si votre environnement est ultra-moderne, utilisez alors de tels afficheurs qui seront pilotés avec beaucoup moins de soucis que nos “vraies aiguilles” décrites aujoud'hui...)


photo1Spidour :
une horloge
rapide à PIC...
Une courte animation montrant notre pendule telle qu´elle se comporte entre 13 h 20 et 13 h 30 (l´heure réelle apparaît en haut à gauche) ...
1.Le cahier des charges de l´horloge
Le programme (conçu pour un 16F628A à cause de son plus grand nombre de pattes) pilote une horloge conforme à l´animation de Doc Toofoo visible ci-dessus, avec la variante des 4 leds pour les minutes intermédiaires.
On a donc des “aiguilles” pour les heures et pour chaque “5 minutes” (5, 10, 15...), plus 4 leds pour les minutes intermédiaires (1 à 4).
Les réglages possibles sont la mise à l´heure (heure et minutes) et le réglage de la vitesse, de 0 (=heure normale, 60 secondes par minute) à 11 (= 5 secondes par minute, soit une vitesse multipliée par 12).
Cerise sur le gâteau, la vitesse zéro est la vitesse réelle (d´une vraie pendule), grâce à l´utilisation d´un quartz adéquat.
On a donc trois parties dans d´affichage :
Les heures, douze aiguilles pilotées par un 4067 [NDLR — le circuit qui “transforme” un nombre binaire à quatre bits en seize commandes de leds — voir la page citée ci-dessus, dont le schéma électronique reste valable au niveau des 4067],
Les “5 minutes”, également douze aiguilles pilotées par un 4067,
Les minutes “intermédiaires”, 4 leds.
Chaque affichage nécessite 4 lignes de commande, ce qui nous fait douze sorties sur le PIC.
Il y a également 2 boutons poussoirs pour les réglages, plus deux pattes pour le quartz, toutes les E/S (entrées-sorties) du PIC sont donc utilisées.
Je ne donnerai pas ici le programme détaillé du PIC, il est assez complexe, et ne présente pas d´intérêt pour un prototype.
À titre d´illustration, voici une partie des organigrammes :
icono31-40/spidour2_organigramme_large.png
2. L´électronique
Le schéma ne présente pas de particularités.
spidour2_schema_electronique.png
Les heures (pattes RB4 à RB7) et les “minutes par 5” (pattes RB0à RB3) sont commandées par deux 4067 qui décodent le signal (4 lignes) donné par le PIC . Les 4 leds des minutes intermédiaires sont alimentées en direct par le PIC (RA1 à RA4).
L´oscillateur est un quartz de 3,2768 MHz, qui permet d´obtenir, par les prédiviseurs, un fonctionnement possible en heure réelle. [NDLR — Quoique le nombre 32768 paraisse étrange, ce quartz est ultra-courant dans le commerce, justement pour faire tourner des horloges !]
FRÉQUENCE D´OSCILLATION. — Rappel : la fréquence interne du PIC est le quart de la fréquence de l´oscillateur ; le Timer0 compte de zéro à 255, et le prédiviseur permet de ne compter que toutes les n impulsions (de 1/128 à 1/2).
Appliqué à un quartz de 3,2768 MHz, cela nous donne :
Fréquence horloge interne = 819 200 Hz (quartz divisé par 4),
Prédiviseur à 32 : impulsions Timer0 à 25 600 Hz,
Interruption Timer0 (256 impulsions) = 100 Hz.
L´interruption se présente donc toutes les 1/100 de seconde ; si on compte jusqu´à 100, on aura un intervalle exact d´une seconde.
Essayez de faire le calcul avec par exemple un quartz de 4 MHz, vous verrez qu´il est impossible de tomber sur un compte rond...
2.1.Réglages
Différentes possibilités de réglage sont proposées :
Mise à l´heure (heures et “minutes par 5” ),
Vitesse (entre 0 et 11)
Sauvegarde du réglage : onze mémoires sont disponibles, permettent de stocker une heure et une vitesse,
Rappel d´un réglage, qui permet de “récupérer” un réglage enregistré.
J´ai ajouté cette fonction d´enregistrement, que vous ne trouverez pas sur votre radioréveil : je suppose que dans certains clubs ont aime jouer des “scénarios”, comme par exemple “trafic de la gare de Trifouillis entre 7 heures et 11 heures du matin, vitesse double”.
Dans ce cas, plutôt que de devoir répéter la séquence de mise à jour (voir ci-dessous), on peut rappeler sans erreur les réglages de l´horloge au début du scénario.
Je ne sais pas si ce sera très utile ou utilisé, mais je me suis fait plaisir, et qui peut le plus peut le moins.
Par ailleurs, la vitesse et l´heure courante sont en permanence sauvegardées (toutes les 5 minutes), et après une interruption (coupure ou réglage), l´horloge continue où elle s´est arrêtée.
ATTENTION : je ne sauvegarde pas, et il n´est pas possible de régler, les “minutes par 5” ; après une interruption, l´horloge reprend donc toujours avec un multiple de 5 minutes.
2.2.Commandes
Deux boutons sont utilisés pour les réglages, en mode réglage les leds des minutes intermédiaires indiquent la commande en cours.
Comme il n´y a que deux boutons, les manipulations sont un peu contraignantes, mais guère plus que votre radioréveil.
Si on appelle les deux boutons BoutonA et BoutonB, les manipulations et les états de l´horloge sont les suivantes :
1. Fonctionnement normal : dans cet état, l´horloge compte et affiche l´heure en cours, selon la vitesse choisie ; à partir de cet état, deux actions sont possibles, appui sur le BoutonA ou appui sur le BoutonB ; pour éviter de fausses manœuvres, cet appui doit être prolongé (presque une seconde).
2. Appui sur BoutonA : l´horloge passe en état “réglage”, le comptage du temps s´arrête, la première led des minutes intermédiaires clignote.
Un autre appui sur BoutonA permet de passer les différentes étapes de réglage, les 4 leds clignotent successivement pour indiquer le réglage en cours :
Led 1 : réglage des heures : chaque appui sur BoutonB fait avancer l´horloge d´une heure.
Led 2 : réglage des minutes : chaque appui sur BoutonB fait avancer l´horloge de 5 minutes.
Led 3 : réglage de la vitesse : les aiguilles indiquent la vitesse, sur 12 h, la vitesse est la vitesse réelle, ensuite chaque appui sur BoutonB fait défiler les vitesses, depuis 1 heure = 5 secondes réelles par minute (réduction du temps au 1/12e) jusqu´à 11 heures = 55 secondes par minute (réduction du temps au 55/60e). Sur 6 heures, la vitesse est réduite de moitié.
Led 4 : sauvegarde des réglages ; chaque appui sur BoutonB fait défiler les mémoires de 1 à 11, les aiguilles indiquant la mémoire sélectionnée. Sur la position 12 heures, le réglage n´est pas sauvegardé (mais il reste le réglage en cours).
Le dernier appui sur le BoutonA entraîne la sauvegarde des réglages si une mémoire a été sélectionnée, et la reprise du comptage du temps (fonctionnement normal) avec les réglages en cours (heure, minute, vitesse).
3. Appui sur BoutonB : l´appui sur le BoutonB pendant le fonctionnement normal fait entrer dans la fonction de rappel de réglage. Les aiguilles sont positionnées sur 12 heures, et chaque appui sur BoutonA fait défiler les mémoires de 1 à 11. Un nouvel appui sur BoutonB fait revenir au fonctionnement normal, avec les nouveaux réglages si une mémoire a été sélectionnée, sans changement si la position 12 ou si la mémoire sélectionnée est “vide”, c´est-à-dire n´a pas été chargée par une étape 4 de la fonction réglages ci-dessus.
3. Fabrication
C´est en fait la partie la plus difficile de ce projet. Il y a 89 leds dans l'animation du haut de la page ! Ça en fait des choses à souder, et dans un ordre bien déterminé (car les leds seront branchées en série et dans le sens passant).
3.1.Prototype
J´ai fabriqué un prototype fonctionnel, avec seulement deux leds par aiguille, pour vérifier la faisabilité de la chose. Le prototype est monté sur du carton :
icono31-40/spidour2_schema1.png
À droite le PIC , avec dessous les deux boutons. En haut à droite un 4067 (heures), au milieu le 4067 pour les minutes.
Il y a deux “couronnes” de LEDs, rouges pour les heures, orange pour les “minutes par 5”, et au milieu les 4 leds des minutes intermédiaires.
3.2.Câblage
Le câblage est fait en “wrapping light”, une méthode permettant de “poser” des connections électriques entre les composants avec un stylo, les différentes couches étant séparées par du ruban adhésif. [NDLRUne page entière, ici, est dédiée à cette technique du wrapping léger.]
Sur un schéma complet (imprimé) en fond de page, je “tire” les fils avec un stylo, je fixe les changements de direction avec de l´adhésif. Pour faire des couches successives, je sépare aussi par de l´adhésif.
Ce système me permet de construire rapidement des prototypes fonctionnels, sans me casser la tête sur la conception du typon. Bien entendu, c´est plus fragile que du “dur”, mais j´ai des circuits qui tiennent en provisoire maintenant depuis dix ans.
icono31-40/spidour2_schema2.png
Le câblage complet est donné ici ( vue côté composants) :
icono31-40/spidour2_schema3.png
Même ainsi, ce ne fut pas facile, et la construction “en dur” avec circuit imprimé nécessite probablement 3 ou 4 couches, ou un paquet de “straps”.
3.3.Construction réelle
Comme je n´ai aucun intérêt personnel à une telle horloge, je ne vais pas me lancer dans une construction réelle, avec 3 ou 4 leds par aiguille (soit de 70 à 100 leds à câbler). Par ailleurs, je pense que les gens vraiment intéressés ont peut-être encore d´autres idées.
On peut en effet imaginer plusieurs configurations :
L´horloge est principalement composée de deux parties, la commande (PIC et poussoirs de réglage) et l´affichage. On peut donc imaginer une horloge en deux parties, le réglage sur un T.C.O., et l´affichage au-dessus du réseau. Dans cette configuration, la connexion entre les deux ensembles fait un toron de 16 fils ! [NDLR — Pour un club, l'affichage pourrait être de très grande taille, car on peut piloter autant de leds que l'on veut, via des circuits “amplis” très simples.]
Mais on peut aussi créer quelque chose de plus sophistiqué, avec une centrale de commande et plusieurs dispositifs d´affichage à différents endroits du réseau (pourquoi pas au fronton de la gare ?). Dans ce cas, j´imagine plutôt une connexion par bus I2C (il ne resterait plus que 4 fils de liaison).
On pourrait aussi y ajouter un système de diffusion de messages d´annonce de gare, qui resterait ainsi synchronisé quelle que soit la vitesse de l´horloge.
Et en parlant d´I2C, on peut ajouter le circuit PCF8583, horloge-calendrier, qui pourrait encore augmenter les fonctions.
Bref, beaucoup de choses sont possibles...
Je m´engage donc à conseiller (participer) à une construction réelle, pour un club par exemple1, si quelqu´un veut vraiment se lancer dans cette fabrication (2).

(1) Le 16F628A est “un gros 12F675” : utilisé déjà dans Ptitrain par le montage chenillard “Cheniyou” de Christian Gauthier, il est le successeur désigné du fameux et vieux 16F84 omniprésent sur le web... [retour au texte]
(2) Si ce n´est pas trop loin de la région parisienne, Jidé et moi pourrons peut-être même nous rendre sur place...
Psi
sur un scénario de Doc Toofoo.
N.-B. — Toutes les photos et schémas sont © Psi et Doc Toofoo pour Ptitrain.
Spidour
est un néologisme certainement tiré de l´anglais speed hour et déposé par et réservé pour Ptitrain.
Rien à voir donc avec un Psi-dour peut-être à venir...!
Ptitrain, l´e-magazine du train éclectique... — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet. — Rév. 17-11-2008 14:08