 |
Après
la fabrication du klaxon KLX, PatRuff
se trouvait à la tête d'un stock de... un
12F629 inutilisé.
Aussitôt, il réfléchit au montage ci-dessous,
se prit la tête pour des raisons aussi diverses que
passionnantes, puis — en bon ptitrainiste — nous
narra son aventure... |
|
|
 Enfin
le voilà monté, cet éclairage de voiture voyageurs... !
Ce qui me réjouit
avec le 12F629, c´est qu´il est tout petit, et donc relativement
facile à intégrer dans du matériel roulant.
[N.D.L.R.
12F629 et 12F675 sont quasi identiques et interchangeables pour ces
petites applications. Cf. l'encadré de la
page KLX.]
Au départ,
j´avais acheté deux 12F629, craignant d´en faire
fumer un au cours de mes premiers essais. Une fois le klaxon monté dans
la CC-72000, je me suis demandé ce que je pourrais bien faire
du deuxième. Comme j´avais prévu de mettre l´éclairage
dans des voitures voyageurs, pourquoi ne pas faire que les passagers
entrent et sortent des compartiments ou des toilettes au gré du
temps, avec un scénario “plausible” ? Ce sont des voyageurs écologistes
avant l´heure, ils éteignent la lumière en partant...  |
 |
 |
Comment faire un scénario “plausible” ?
Le 12F629 ayant 5 sorties au maximum, changer l´état d´une
sortie choisie aléatoirement, ensuite attendre un temps aléatoire
(entre 1 et 255 secondes par exemple) et recommencer cette opération ad
vitam eternam...
Finalement, c´est assez facile à coder. Le plus difficile était de trouver
un système qui génère des nombres aléatoires avec le 12F629... Les ennuis commencent.
Au début, dans ma grande naïveté, je pensais que lire un timer qui tourne librement
me donnerait une réponse à caractère aléatoire... Rien du tout ! Quelques essais
avec le simulateur de MPLab me montrent
que la séquence de nombres que j´obtiens
est désespérément pauvre. Exit le timer, retour sur la théorie des suites
de nombres pseudo-aléatoires. Après consultation de la littérature papier et Internet,
des collègues, des amis, je m´en sors avec le système qui me paraît le plus simple à coder :
la suite X(n+1) = (Xn² + Xn + 1) modulo 256 donne une suite de 128 nombres impairs
différents. C´est loin d´être le seul algorithme (au passage, Jidé en a d´autres
sous le coude...), mais c´est le premier qui m´a donné satisfaction sans trop de
difficultés de programmation.
 |
Quelques explications sur le programme |
 |
 |
 |
Tout
tourne dans l´interruption du Timer0.
Il est programmé pour se réveiller le moins fréquemment
possible : 1 MHz d´horloge, 256 de prédiviseur,
256 de compteur, ceci fait une interruption toutes les 62,5 millisecondes.
Il ne faut traiter l´interruption qu´une fois sur 15 pour avoir
une activité à (environ) la seconde. À partir
de là, le temps restant est décrémenté. S´il
tombe à 0, il faut agir : il faut générer un nombre
aléatoire à partir du précédent, et on s´en
sert pour mettre à jour le délai, et choisir la sortie à inverser.
Et le cycle repart. |
|
 |
Comment choisir une sortie
parmi 5 ? Pour faire démocratique,
et que toutes aient la même “chance” de sortir du tirage, on prend les bits 1 à 5
du fameux nombre pseudo-aléatoire (donc un nombre de de 0 à 31), on les multiplie
par 5
(donc 4 additions avec lui-même) et on les divise par 32 (facile avec un
décalage).
Tout est fait pour rendre le codage facile.
Comme il ne faut pas que
la séquence commence avec le même scénario à chaque mise sous tension, le programme
principal stocke périodiquement en EEProm la valeur du nombre pseudo-aléatoire, et
cette valeur est lue au démarrage pour initialiser la suite.
En gros le scénario complet dure 128 secondes (temps moyen entre deux
changements) fois 128 (la longueur de la suite de nombres pseudo aléatoires) soit
plus de 4 heures 30... ! Après mise au point, j´ai accéléré l´activité pour
qu´elle tourne deux fois plus vite, je la trouvais trop lente. On peut encore la
régler plus rapide.
Je me suis inspiré de l´article
de Yann Baude dans Loco-Revue n° 705
d´avril 2006 : la voiture mixte fourgon B4D est chargée de la prise de courant,
elle a un décodeur DCC qui gère :
— les
feux de fin de convoi,
— son
propre éclairage,
— l ´éclairage
du reste de la rame, qui transite par des attelages conducteurs,
— l ´éclairage
des toilettes (pour l´anecdote, j´ai eu beaucoup de mal à laisser la dernière sortie
inutilisée, et donc j´ai trouvé cette solution : on peut programmer son clignotement à une
période de 25,5 secondes maximum, ce qui permet de passer aux toilettes en temps
compressé à l'échelle HO... !).
Ce sont les autres voitures du
reste de la rame, qui ont donc un PIC, qui nous intéressent ici...
Les
schémas, faits avec un P.C. (c'est-à-dire... un petit crayon )
(schéma B4D, schéma
B9), le source (epatan01.asm),
l´exécutable (epatan01.hex)
sont téméchargeables.
Un
fichier (Open Office ou Excel)
donne les schémas d´implantation et
une simulation de la suite des nombres pseudo-aléatoires.
 |
|
 |
|
|
 |
Mes errances, mes déboires |
 |
 |
 |
 |
|
 La
prise de courant sur ces fich... voitures Jouef chinoises : l´essieu
n´étant pas conducteur, il faut prendre le courant sur une
zone plus excentrée, au niveau de la roue. Bref, le couple de frottement
est important, et donc la voiture ne roule plus sans effort. j´ai
fini par trouver la bonne référence d´essieu (une roue
reliée électriquement à l´axe conducteur, comme
sur les bonnes vielles Jouef) au Train magique.
  Les
diodes led CMS : il faut les coller côté cuivre avant
de les souder. Pour les souder, le résultat a été inégal :
ne pas trop les chauffer, ces petites bêtes sont fragiles, mais suffisamment
pour limiter le temps de contact du fer. En gros une sur dix n´a pas
résisté. Un petit coup de disque à tronçonner,
on en met une neuve, et ça finit par marcher... |
  Sur
la première voiture, j´ai commencé par la partie électrique avant le décor (peintures
intérieures et personnages). Une fois le tout monté, ça éclaire très bien un intérieur
en plastique brut : une horreur. J´ai peint et collé les personnages avec des
fils partout... Il fallait faire le décor intérieur avant de monter l´électronique.
  Le
plan de joint entre caisse et toit. Forcément, il n´est pas parfait, de plus les
leds sont dans ce plan : inévitablement, un rai de lumière passe très
agaçant ! J´ai finalement mis un profilé de plastique carré (1 mm x 1 mm) collé et
peint à l´extérieur des ergots de fixations, en le rognant un peu au niveau de ces
ergots (voir photo). Ensuite, il est peint en noir. C´est nettement mieux, mais pas
encore parfait : sur les voitures suivantes, je peins aussi la tranche supérieure
des vitres en noir côté intérieur...
  Les
fameux ergots de verrouillage du toit : Suite à de nombreux montages et démontages
( !), ils ont commencé à faiblir : ils ont été renforcés avec le même profilé.
 |
 |
 |
 |
 |
 |
  Maintenant
que les deux premières voitures sont terminées, je constate avec horreur que les
rideaux devraient être des guillotines au lieu d´être sur tringles. Il fallait mieux
regarder avant !
 |
Ce qui a bien marché |
(Comme
quoi il faut lire et relire avant d´agir) :
  La
préparation de la peinture avec la méthode Doc Toofoo (si, si !).
  La
colle liquide pour plastique (une première pour moi...).
  Le
papier calque pour représenter les vitres dépolies des toilettes : très réaliste.
  Le
papier Canson blanc ou clair pour cacher le cuivre au plafond. Les trous en face
des leds se font à l´emporte-pièce de cordonnier.
  Le
papier Canson beige pour les rideaux (la couleur et la texture, pas la découpe...).
 |
Les approvisionnements exotiques |
Parfois,
j´ai cherché un temps certain...
  Les
essieux à axe conducteur pour remplacer ceux d´origine : Référence “LU-LIMA-10,4-24,40S” chez “le
train magique” à Strasbourg : www.letrainmagique.com/
  Les
attelages conducteurs : ce sont des Viessmann, trouvé chez www.train-modelisme.com/
  Les
lamelles de prises de courant viennent de chez C.D.F. : www.cdfinformatique.com/
  Les
diodes leds CMS, en particulier blanches : www.leds.de/
  Les
feux de fin de convoi avec leurs diodes leds rouge diamètre 2 mm très pratiques
viennent de chez Apocopa, www.apocopa.fr/
  Du
Veroboard en grande longueur (58 cm !) : au Comptoir du Languedoc à Toulouse
(qui au passage, je crois, fait partie du groupe “Électronique diffusion”, mais n´est
pas cité dans la liste blanche de
Ptitrain).
Voilà, ça fonctionne, il me reste à faire
la voiture A4B4, avec le même
principe...
 |