“TramPic” : un petit réseau de tramway
géré par des 12F675
par Raymond Charlet
Les articles de Psi (série PicTrain) concernant les PIC sont tellement intéressants que je me suis mis à l´étude de la programmation de ces bestioles. Cela m´a amené à réaliser un petit réseau de tramways, certes pas bien grand mais comportant toutefois 5 cantons (euh, pardon : 5 “zones” !) avec, à l´une des extrémités, une boucle de retournement et, à l´autre extrémité, un triangle de retournement (les Belges et plus particulièrement les Bruxellois disent un “chapeau de curé”, j´adore ce terme). Au centre, deux voies parallèles permettent le croisement de deux rames de tramway. 
Le but recherché est de faire fonctionner deux tramways en permanence avec pour chacun d´eux un arrêt dans la boucle de retournement, un arrêt sur chaque branche du triangle de l´autre côté et un arrêt sur une des deux voies parallèles au centre pour permettre le croisement.
J´ai donc divisé le réseau en 5 zones, chacune de ces zones étant pilotée par un PIC 12F675. Pour commander les PIC, j´utilise deux méthodes, des ILS (interrupteurs à lames souples), actifs au niveau , et des détections électroniques, actives au niveau . Il me faut bien sûr des petits aimants collés sur le châssis des tramways.
La zone 1 est pilotée par deux ILS. Cette zone est composée de trois parties, soit l´entrée et la sortie — qui doivent pouvoir être inversées — et la partie centrale — qui est toujours dans le même sens. C´est dans cette partie centrale que l´arrêt se fait.
Le premier ILS (ILS 1) commande une séquence qui est la suivante : ralenti, arrêt de plus ou moins 5 secondes, inversion de polarité pour les sections aval et amont (entrée et sortie), redémarrage en accélération progressive. Comme nous sommes dans une boucle, le tramway peut sortir de la zone 1 et entrer dans la zone 2 sur une des deux voies parallèles. C´est à l´entrée de cette zone 2 que se trouve le deuxième ILS (ILS 2) qui commande une remise à zéro de la zone 1...
Les 4 autres organigrammes sont disponibles dans le dossier joint, ou dans un zip, à votre choix, avec les programmes assembleur.

La zone 2 est pilotée par les détections. Chaque zone a sa propre détection. Le principe est que lorsqu´il y a présence dans la zone 4 ou dans la zone 5, le tramway s´arrête et attend que la voie soit libre.
La zone 3 fonctionne de la même façon : quand un tramway y pénètre, il s´arrête si la zone 1 est occupée.
La zone 4 est pilotée par 2 ILS, qui contrôlent l´inversion de polarité dans cette zone. Le premier ILS (ILS 3) se trouve en sortie de la zone 2, le second (ILS4) en sortie de la zone 5.
La zone 5 est un système de va-et-vient dont la logique comprend le test de deux ILS (ILS 5 et ILS 5bis), chacun commandant une séquence de ralenti, d´arrêt, d´inversion de polarité et de redémarrage.
Tous les aiguillages sont talonnables, donc il n´est pas nécessaire de prévoir leur commande.
Pour ce qui est de la détection électronique, je vous renvoie à l´article de Psi consacré au va-et-vient Pictrain3. J´ai seulement ajouté (sur les conseils de Psi) un petit condensateur de 47 µF intercalé entre l´entrée de l´optocoupleur et la masse, afin d´éviter les rebonds dus aux mauvais contacts.
Comme il s´agit de tramways et non de longues rames de train, il n´est pas nécessaire de prévoir des zones d´arrêt. Dans les zones 2 et 3, les tramways s´arrêtent au milieu de la zone ; dans la zone 5, les tramways s´arrêtent à l´extrémité de chaque tiroir.
Les PIC gèrent également une signalisation simplifiée 2 feux, ce qui correspond pratiquement à la signalisation des tramways vicinaux belges.
En ce qui concerne la programmation des PIC, j´utilise les routines de Psi (Pictrain3, de nouveau) pour générer le PWM en mode interruption et, en général, j´essaye de respecter sa philosophie pour les noms de variables.
Le schéma ci-dessous est celui de la zone 1. Les schémas des autres zones peuvent facilement être déduits de celui-ci, puisqu´il contient tous les éléments possibles, une sortie voie via inverseur, une sortie voie directe sans inverseur, des sorties PIC vers le transistor de sortie, vers le relais inverseur et vers les leds, les entrée PIC venant des ILS dont une (GPIO3) disposant d´une résistance de pull-up extérieure. Pour les entrées PIC venant des détections, voir encore le schéma Pictrain3 de Psi.
Mes galères...
La puissance sur le transistor de sortie, les interférences entre les PIC, les parasites…
Pour ce qui est de la puissance, il faut absolument passer soit par le montage Darlington soit par un Mosfet [voir dans notre rubrique Meccano électronique, la page théorique ad hoc]. Sur le schéma donné ci-dessus, c´est le montage Darlington classique avec simplement un BC547 intercalé entre l´optocoupleur et le BD139. J´ai également essayé de remplacer le BD139 par un Mosfet, et ça marche bien également, il faut juste intercaler une résistance de polarisation (vers la masse) de 10 kΩ.
Pour ce qui est des interférences, il faut absolument relier toutes les masses des différents circuits imprimés entre elles.
En ce qui concerne les parasites, ils viennent surtout des liaisons entre les ILS et les PIC, j´ai utilisé du câble blindé pour faire ces liaisons.
Je remercie tout particulièrement
Pierre (dit “Psi”)pour ses précieux conseils, merci aussi à Jean-Pierre Maniquaire ainsi qu´à Jean-Claude Grimaldi qui, par leurs conseils sur le forum Ptrainmatique, m´ont permis d´utiliser les outils de programmation et de gravure des PIC avec Windows Vista.

Raymond
Charlet
16-06-2008

N.B. — Textes, schémas, programmes © Charlet 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