Commande par trajets programmés du RAIL-LAND
Le but de cette électronique est de réaliser le pilotage et la commande des 2 trains pouvant circuler sur la maquette.
Le pilotage permet de stopper un train, de bloquer un canton, de figer la maquette.
En automatique la commande de la maquette actionne les aiguillages, gère les accélérations et les ralentissements des trains, ainsi que les arrêts programmés en gare.
Pour réaliser tout cela :
- Un micro-controleur PIC16F84 comme cœur du système
- Un clavier 16 touches comme interface de pilotage
- 8 voyants pour indiquer l'état de la maquette
- De l'électronique pour commander les aiguillages et les sens et vitesses des cantons
- Du temps pour assembler le tout
Description des différents modules électroniques |
|
![]() Voir le schéma de la carte UC |
Unité centrale : Il s'agit de la carte principale comportant 32 sorties et 24 entrées logiques, gérées par un micro-contrôleur PIC16F84. C'est cette carte qui pilote toute la maquette. |
![]() Voir le schéma de la carte des cantons |
Alimentation des cantons : Le réseau est découpé en 4 cantons (voir partie maquette). Chaque canton est commandé indépendamment en sens et vitesses ce qui permet le fonctionnement simultané des 2 trains. Les cantons sont alimentés en modulation de largeur d'impulsion. C'est à dire que, en une fréquence constante, le pulse d'alimentation dure plus ou moins longtemps selon la vitesse désirée. Ces alimentations sont générées par la carte UC en passant par une carte à relais et transistors de puissance. Détecteurs de présence des trains : La détection de présence des locomotives se fait aux extrémités des cantons par des montages à transistors. Mis à part des coupures dans la voie, il n'y a aucun ajout de capteur (forcément plus difficiles à dissimuler à cette échelle) |
Voir le schéma de la carte de commande des aiguillages |
Commande des aiguillages : Les aiguillages sont commandés par des impulsions électriques en 12 volts continu. La largeur de l'impulsion est gérée par la carte UC via des transistors de puissance. |
![]() |
Pupitre de commande : Les différentes commandes permettant de piloter la maquette sont saisies sur un petit clavier de 16 touches. L'état des cantons et les positions des trains sont donnés par une série de voyants lumineux (8 LEDs) |
Présentation du programme du micro-contrôleur |
||||||||||||||||
Objectifs du programme : - Faire circuler les 2 trains selon les trajets définis. - Gérer les alimentations en vitesses variables des différents cantons. - Commander les aiguillages. - Donner un état de la maquette (position des trains, état des cantons,...) par voyants lumineux. - Lire et traiter les commandes tapées au clavier. Le programme se décompose en 2 parties principales : |
||||||||||||||||
Le corps du programme |
La routine d'interruption |
|||||||||||||||
Routine d'initialisation : Permet de mettre la maquette dans un état de démarrage (maquette figée et aucun train) "GestionClavier" Gestion des commandes saisies au clavier Mode "manuel" Tous les cantons sont commandés ensemble * = Passer en mode automatique 0 = Arrêt en douceur 7 = Vitesse lente 8 = Vitesse normale 9 = Vitesse rapide C = Augmenter la vitesse D = Diminuer la vitesse # = Arêt brusque et changement de sens 1 = Aiguillage A1 à droite 4 = Aiguillage A1 à gauche 2 = Aiguillage A2 à droite 5 = Aiguillage A2 à gauche 3 = Aiguillage A3 à droite 6 = Aiguillage A3 à gauche A = Aiguillage A4 à droite B = Aiguillage A4 à gauche Mode "automatique" AB = Bloquer la maquette AD = Débloquer la maquette BBn = Bloquer le train n BDn = Débloquer le train n BAn = Annuler (supprimer) le train n BCncs = Créer le train n sur le canton c dans le sens s CBc(n) = Bloquer le canton c (pour le train n) CDc(n) = Débloquer le canton c (pour le train n) * = Annuler la saisie en cours # = Valider la commande saisie "SetVoyants" Allumage des voyants d 'état de la maquette : 2 lignes de 4 voyants (2 trains, 4 cantons) 3 états possibles : ![]() ![]() ![]() Le voyant d'un canton et d'un train allumé = Train utilisant ce canton Le voyant d'un canton et d'un train clignotant = Train bloqué sur ce canton Les voyants des trains d'un canton clignotants = Canton bloqué Voici un exemple :
Train 2 stoppé sur canton 1 Canton 3 bloqué pour les 2 trains "Trajets" Gestion des trajets. Cette routine décode les trajets programmés en EEPROM Le codage des trajets se fait en utilisant les instructions suiantes : "Canton" : Donne la vitesse du train, son accélération, son sens et le numéro du canton destination "Detecteur" : Attente de la présence d'un détecteur "Aiguillage" : Commande un aiguillage donné "Saut" : Saute à un pas de programme de trajet donné "Branchement aléatoire" : Saut relatif à une valeur aléatoire "Temporisation" : Enclenche une temporisation pour un train. Le prochain pas de programme trajet ne sera traité qu'à la fin de cette temporisation Le train passe d'un canton à un autre après contrôle de non occupation du canton de destination. |