“KLX” : un klaxon bi-ton embarqué
en DCC
par “PatRuff”
À partir du Youbitonmatic à PIC , lui-même descendant du célèbre Youbiton à 555, et après le Doiditon en N, PatRuff a planché sur une adaptation à l´alimentation digitale (DCC) et résolu plusieurs problèmes de déclenchements intempestifs... Il sort ravi de son expérience !
Bonjour Jidé et Psi,
D´abord merci pour vos excellentes explications qui m´ont mis le pied à l´étrier, même si mes débuts ont été lents. L´initiation n´est pas immédiate, il y a un ticket d´entrée !
Ma motivation de départ a été de faire dans un volume réduit, pour que ça rentre dans du H0.
Je suis parti de vos schéma et programme, et j´ai rajouté un régulateur pour le faire fonctionner dans une loco alimentée en DCC. C´est une vieille Jouef des années 75, sur laquelle j´avais remplacé le moteur, mis un décodeur, et plus récemment remplacé les roues à bandage par des roues métalliques de façon à améliorer la prise de courant.
Sur le schéma , les codes de couleurs sont au standard DCC :
— Bleu = commun (+ 16 V environ) des accessoires, il faut reconstituer un zéro  volt (masse) avec le rouge et le noir :
— Rouge = rail droit dans le sens de la marche,
— Noir = rail gauche,
— Vert = accessoire (piloté par F1 par défaut) ;
— Violet = accessoire (piloté par F2 par défaut).
Le haut-parleur a été acheté chez train-modelisme.com, il fait 100 ohms, et a la bonne dimension pour du H0. Mon 12F629 est rigoureusement identique à votre 12F675, sauf qu'il lui manque un convertisseur analogique-numérique (pas grave, voir encadré plus bas)...
Les problèmes que j´ai rencontrés, ou mes errances
Il eut été préférable de ne rien placer juste au-dessus du PIC. L´air de rien, je ne compte plus le nombre de fois où j´ai fait des modifications dans le programme, il faut donc pouvoir glisser un tournevis entre le support et le PIC...
Au départ, je n´avais pas mis de condensateur sur les entrées (vert et violet), et je me suis rendu compte à mes dépens que si le est un bon  (collecteur ouvert en l´air), le  n´est pas un bon , je m´attendais à un niveau actif bas à 0 volt.
En fait, on peut régler la luminosité des lampes optionnelles dans le décodeur DCC en jouant sur le rapport cyclique entre 0 et 255. Je suppose que la valeur maximum ne doit pas être 100 % du temps à 0 V, mais 255/256... D´où les condensateurs rajoutés sur les entrées qui apparaissent entre la plaquette originale et le montage final (de manière douteuse, vu le peu de place). Le PIC devait être trop rapide et “voir” ces petits “trous”, et les coups de klaxon s´enchaînaient sans délai. Mieux avec.
Ces deux points me feraient faire l´implantation différemment aujourd´hui...
Suite des déclenchements intempestifs : Si le montage marchait bien à l´arrêt, en roulant, je me retrouve avec des coups de klaxon intempestifs si une des commandes est dans l´état actif. J´ai attribué ça aux imperfections de contact avec la voie, et même si le moteur ne semble pas faire de hoquet, ni l´éclairage vaciller, il doit y avoir un passage bref à l´état  qui est détecté. Comme j´avais déjà mis un condensateur en entrée, chaque fois que je dois détecter un passage de  à , je confirme cet état une centaine de millisecondes après par une boucle logicielle. Tout va bien depuis... Le klaxon obéit correctement, même en roulant.
Le succès (!)
Une fois que ça veut bien marcher, que les problèmes d´interfaces sont réglés, c´est le plaisir du logiciel. On peut se lâcher, tout est possible. Du coup, avec 2 entrées, je fais 8 coups de klaxon différents : Pour chaque entrée, il y a deux transitions à détecter ( vers et de vers , vu que de la centrale on commande un état stable  ou ), et on double en fonction de l´état de l´autre entrée...
Les fichiers de PatRuff sont rangés ici : KLX1-5-1.asm - Param_Std_V2.0.inc - KLX1-5-1.HEX — Attention, Pat utilise un microP du type 12F629 (moins cher)  : pour les utilisateurs du 12F675 habituel, toutes les fonctions sont identiques (du moins pour ce qui nous concerne aujourd'hui) mais trois lignes sont à changer (lignes 9, 10 et 23) :

qui deviennent :
La suite : un son plus chaud, moins électronique ?
J´ai essayé de rajouter un délai aléatoire au timer1, histoire que le son ne soit pas aussi pur. Résultat peu probant.
J´ai essayé de reconstituer le sinus en jouant sur la largeur d´impulsion d´un signal à 10 kHz/100 µs. Je suis arrivé à le faire marcher, mais le résultat n´est pas plus satisfaisant.
J´aurais pu essayer de filtrer les aigus en sortie du PIC avec un réseau RC ou LC, mais la place est comptée, et le résultat non garanti...
Finalement, en montant la caisse de la loco, les aigus sont moins présents, le son est un poil plus sourd, je crois que je vais en rester là, faute de meilleures idées...

Prochain montage : Je pense qu´une voiture à compartiments ne doit pas être entièrement éclairée ou éteinte. Allumer et éteindre la lumière dans un compartiment aléatoire, avec des délais aléatoires, qui le ferait mieux qu´un PIC...?
Merci encore... Pat 
Les balades de “PatRuff” sur Internet ...
Pour le moment, mes errances sur Internet ne sont pas très fructueuses, la crème est bien sûr Ptitrain.com et sur ses liens. Surtout quand PSi nous met le pied à l'étrier... parce que finalement le plus dur, c'est bien de démarrer sans se prendre les pieds dans le tapis. C'est ça qui me fait dire que ce n'est pas gagné, et que les débuts seront d'autant plus difficiles pour ceux qui n'ont pas cette culture. Comme quand je lis une présentation sur la peinture en modélisme : j'ai un mal fou à m'y mettre. Ce que j'ai quand même trouvé :
http://www.htsoft.com/ Des compilateurs C pour plein de micros, dont un pour les PIC :   PICC-Lite. Après m'être enregistré, j'ai réussi à le télécharger ainsi que sa documentation (!), il fait bien allusion au 12F629. Pour le moment, je ne l'ai pas installé, vu que la programmation en assembleur me semble plus pertinente : on est souvent au ras du matériel, et l'avantage d'un langage de plus haut niveau (déjà connu) ne compense pas les inconvénients (accès aux entrées-sorties) sans compter qu'il faudra encore bûcher pas mal : je crains une usine à gaz, et pas de Psi pour guide. Assez professionnel...
http://piklab.sourceforge.net/index.php Le compilateur CC5X : Idem, toujours pas essayé. Le langage C pourrait devenir intéressant si la part de calcul augmente par rapport à la part d'entrées-sorties. Peu d'espoir pour Pictrain. Reste le charme du gratuit sur la toile. — Bref, je reste dans les sentiers battus.
Sinon, vu le peu de temps et de place dont je dispose, ma principale activité consiste à remettre à niveau du Jouef des années 80 qui a dormi 20 ans dans une caisse : passage au DCC, améliorer la prise de courant, mettre des leds à la place des lampes, et faire des essais sur un bout d'étagère sous les toits. — Les adresses où j'ai déjà commandé, si ça vous intéresse :
http://www.cdfinformatique.com/ pour des lames de contact pour les bogies, des lamelles de bronze phosphoreux pour faire des contacts supplémentaires (c'est souple et ça conduit bien, voir photos ci-dessous), et des fils fins et souples, très souples type décodeur.

http://www.fbsystems.com/ pour les micro-connecteurs à mettre entre matériels roulants, et plein d'autrse choses. Le catalogue papier est en train de passer sur le web.
http://www.train-modelisme.com/ Très bien structuré et assez compétitif.
http://mecanictrains.free.fr/ : Les moteurs de remplacement des vieux Jouef, avec un petit volant d'inertie.
http://www.apocopa.fr/ les kits de lanternes.
http://www.kleinmb.at/ KleinModelBahn : Des Autrichiens qui font entre autres des jolis wagons SNCF. On ne paie pas directement sur le site, alors c'est un peu sport.
http://www.leds.de/ Les champions de la led. J'ai acheté des CMS pas très cher (il faut grouper et prendre une quantité minimum), il va falloir du cran pour les souder...
Une adresse sympa pour les annonces de manifestations ferroviaires:
http://users.skynet.be/sky34004/renvoi.html
Merci et à bientôt...

PatRuff
17-01-2008

N.B. — Textes, schémas, programmes © PatRuff pour Ptitrain. — Toutes vos remarques et commentaires sont bienvenus, et les pages de Ptitrain ne sont pas statiques : les erreurs sont corrigées sitôt connues, les améliorations, éclaircissements, etc. feront l´objet de mises à jour fréquentes.
Ptitrain, l´e-magazine du train éclectique. — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet