Le
projet Pictrain3 concerne un va-et-vient,
c´est-à-dire un système qui commande l´aller-retour
d´un train sur une voie unique, entre deux “extrémités” que
nous appellerons “gauche” et “droite”. Cette voie
unique ne peut croiser ou être reliée à d´autres
portions du réseau.
 |
FAQ N'y
a-t-il pas déjà un tel projet dans Ptitrain
? — Oui, c'est le va-et-vient nommé "J´en
viens et j´y retourne !", qui connaît
un grand succès... Néanmoins, il est
(volontairement) d'une simplicité telle qu'il
ne joue pas "dans la cour des grands" comme
notre page d'aujourd'hui... |
|
|
Car l´originalité,
c´est que le démarrage et l´arrêt
du train seront progressifs, sans qu´on se départisse
de nos habitudes : simple et pas cher.
Nous réutiliserons
le dispositif de puissance de Pictrain2, c´est-à-dire que
le courant de sortie sera du courant rectangulaire à 240 Hz.
Et comme d´habitude
sur Ptitrain, c´est du réel
et de l´éprouvé, c´est-à-dire que le système
a été réalisé et testé :
il fonctionne.
Techniquement (au sens
microP), nous utiliserons tout ce qui a déjà été présenté dans
les montages Ptitrain précédents,
il n´y a rien de neuf.
Je considère
donc que vous avez bien compris les pages précédentes et
je ne m´attarderai pas à des rappels.
 |
11.1.
Le principe du va-et-vient |
Un train (une navette,
souvent un autorail) part d´une extrémité, accélère jusqu´à la
vitesse de croisière, ralentit à l´approche de l´autre extrémité,
jusqu´à s´immobiliser au bout la voie. Après un certain temps,
il repart dans l´autre sens, accélération, vitesse de croisière,
puis de nouveau ralenti et arrêt avant de repartir pour une nouvelle boucle.
Le schéma ci-dessus
montre que la voie est divisée (par des coupures de rail) en cinq sections,
ce qui donne le fonctionnement suivant :
  Le
train part de la section “stop” de gauche,
  Accélère
jusqu´à la vitesse de croisière,
  Ralentit
jusqu´à la vitesse de ralenti à partir de l´entrée de la section
d´arrêt droite,
  Le
train continue à la vitesse de ralenti jusqu´à la section “stop” de
droite, où il s´arrête,
  Après
temporisation, il effectue le même processus de droite à gauche.
 |
11.2.
L´électronique |
 |
11.2.1. Schéma
général |
Dans le schéma général
ci-dessous, on retrouve :
  À droite,
la partie de commande du courant de 15 V pour la voie, avec les circuits
de détection de présence du train,
  À gauche,
le microP alimenté en 5 V,
  Entre
les deux, des optocoupleurs (OC) reliant les deux parties (e : partie émettrice,
diode de l´optocoupleur ; s : sortie, transistor de l´optocoupleur).
 |
microP |
12F675 (ou 12F629) |
R1, R2 |
220 ohms |
R3, R5 |
4,7 kilohms |
R4, R6 |
1000 ohms |
R7 |
6,8 kilohms |
Condensateur |
100 nF, soudé au plus près du microP |
Optocoupleurs |
3 ou 1 quadruple (le 4e OC sera utilisé dans
un autre montage) |
Diodes 1 à 5 |
5 diodes de la série des 1N4000 |
T1 |
genre BD139 |
T2 |
genre BC237 |
T3 |
genre BC307 |
2 x relais |
12 volts, 2 R.T. |
Alimentations |
5 volts pour l'électronique — 15
volts pour la traction |
Électroniquement,
il n´y a rien de nouveau.
Attention :
il n´y a pas de protection sur les alimentations ; donc
ne les branchez pas à l´envers et évitez les courts-circuits
prolongés.
Par ailleurs,
dans les fréquences et intensités que nous utilisons, les optocoupleurs
sont relativement interchangeables ; j´ai utilisé ici
un quadruple optocoupleur CNY74-4, dont un coupleur n´est pas
utilisé (mais il me sert dans d´autres montages). |
 |
FAQ Que
recommander comme type d'optocoupleur ? — Le "père" des
optocoupleurs s'appelle "TIL111",
il faut toujours en avoir dans son tiroir ! Ou ses "compatibles" qui
ont nom CNY17, 4N35, SFH601, IL74, SU25, 4N25, TIL112,
TIL118, TIL11...
Pour notre
montage Pictrain3, demander plutôt un OC quadruple
(moins de place occupée, moins de soudures) qui
soit de type TIL111, exemples :
chez
GOTRONIC : CNY74-4, à 1,60 euro
chez
SELECTRONIC : TLP 504 A2, à 1,40 euro
Bizarrement,
on ne nous indique JAMAIS (comme pour un transistor normal)
le courant maximal que supporte le transistor
de sortie d'un OC* ! Ne jamais donc espérer
en tirer plus que l'allumage d'une led ou d'un micro-relais
(soit 50 mA GRAND MAXI), sauf si c'est noté explicitement
dans ses caractéristiques (p. ex. 500 mA
sous 5 volts pour le ILD74 !).
* À la
place on parle de "TTC", taux de transfert
en courant, bien moins compréhensible. |
|
|
 |
FAQ Pourquoi
deux relais ? — Une remarque tout de suite :
il y a deux relais à deux contacts repos-travail,
tout simplement parce que :
— deux
relais 2 RT sont moins chers qu´un relais
4 RT ;
— je
n´ai pas trouvé de relais 4 RT à souder
sur un circuit imprimé... C´est tout, il
n´y a pas d´autres raisons. |
|
|
 |
11.2.2. Implantation |
Comme
d´habitude, je propose une implantation sur un Cimec : |
En
haut à gauche l´alimentation de 5 V, en bas à droite celle
de 15 V. Ne pas oublier les deux coupures
des pistes d´alimentation (rectangles rouges) en haut
et en bas à gauche. Ces coupures servent à isoler l´alimentation
5 V (à gauche) de l´alimentation 15 V
(à droite). Si vous les oubliez, vous risquez de gros ennuis.
Les sorties en
haut à droite correspondent au branchement de la voie, respectivement :
  à gauche,
moins et plus de la zone d´arrêt,
  à droite,
plus et moins de la pleine voie. |
 |
11.3.
Fonctionnement |
 |
11.3.1. Voie et
connexion |
La voie doit être découpée
selon le schéma ci-dessous :
 |
 |
Les
coupures délimitent ainsi cinq sections, alimentées par les deux
relais RL1 et RL2 (commandés en même temps), les sorties du relais
2 comportant le circuit de détection de présence.
Cela paraît
un peu simpliste, mais cela marche à tous les coups :
Marche
vers la droite (le train est dans la section “stop” gauche,
les relais sont au repos) :
  Le
moins est donné par RL1-B et RL2-A,
  Le
plus pour “pleine voie” et “arrêt gauche” est
donné par RL1-A,
  Le
plus de la section “stop gauche” est donné par la diode,
  Le
plus de “arrêt droite” vient de RL2-B, soumis à détection,
  Le
moins de “stop droite” est bloqué par la diode.
Ainsi le train
accélère jusqu´à la vitesse de croisière, est détecté lors
de l´entrée en section “arrêt droite”, ralentit
et s´arrête dans la section “stop droite´
En marche
vers la gauche, les deux relais sont collés et inversent toutes
les tensions, et la détection s´active lorsque le train entre
dans la section “arrêt gauche”.
Le résultat de
cette alimentation croisée est que, quel que soit le sens de marche
du train, la détection du train en zone d´arrêt est unique
et fonctionne ; dans tous les cas, le train n´est détecté que
lorsqu´il entre dans la zone d´arrêt concernée, et ce
avec un minimum de câblage.
Seul bémol, le
train s´arrête brusquement lorsqu´il pénètre dans la
zone “stop” (pas d´alimentation). Pour un arrêt
plus “doux”, on peut envisager un relais supplémentaire
et une détection supplémentaire pour cette zone, je vous laisse le
faire.
Autre solution,
peut-être plus simple, remplacer la détection par des I.L.S. de chaque
côté.
Attention, restriction
importante : le changement de sens ne s´opère que lorsqu´il
n´y a plus de train détecté sur les zones d´arrêt. Cela
veut dire que Pictrain3 ne marche pas s´il y a des wagons qui
captent du courant (lumière ou graphitage). Si c´est le cas,
il faut aussi rajouter la détection de fin par I.L.S. Cette variante
fera l´objet d´un Pictrain3 bis ultérieur. |
 |
Le
programme |
 |
11.4.
Initialisation |
 |
11.4.1. Constantes |
Dans
cette partie, on définit les différentes valeurs qui contrôlent la
circulation du train :
  CO_V_max :
vitesse maximum du train en pleine voie,
  CO_V_ralenti :
vitesse de ralenti en zone d´arrêt,
  CO_I_accel :
inertie en accélération,
  CO_I_frein :
inertie en freinage,
  CO_PauseG :
durée de la pause à gauche (aller),
  CO_PauseD :
durée de la pause à droite (retour).
Les valeurs sont
dans l´intervalle 0 à 255, et doivent être fixées en fonction
de votre matériel.
Plus les inerties
sont élevées, plus l´effet est lent : une inertie d´accélération
de 4 fait que le train met le double de temps à atteindre la
pleine vitesses qu´avec une inertie de 2.
La durée des pauses
est en secondes. |
 |
PTI+ Modifications
des valeurs ? — J´avais initialement
prévu de présenter un montage qui permette
la modification en cours de fonctionnement de tous
ces paramètres, sauvegardés en mémoire
du microP. On garde même en mémoire les
caractéristiques de 5 trains différents.
Après
réalisation, sur base de 16F628, j´ai trouvé que
c´est une vraie usine à gaz, et de toute
façon d´une utilité très relative,
peut-être pour un club qui fait rouler les matériels
de ses adhérents.
Cependant, si
vraiment des gens sont intéressés, me contacter
en privé, le circuit et le programme existent
et fonctionnent. |
|
|
 |
11.4.2. Définitions |
Trois
entrées sorties sont utilisées :
  sortie “fréquence” :
commande du courant,
  sortie “sens” :
commande du sens,
  entrée
détection occupation zone d´arrêt.
Les définitions IN_xxx sont
les différents états possibles du système, et seront expliquées plus
loin. |
 |
11.4.3. Variables |
La
définition des variables ne présente pas de difficultés.
La variable VA_ETAT contient
l´indication des différents états (voir plus loin).
Les variables VA_CPT_delaiX sont
nécessaires au fonctionnement des sous-programmes
de délais (voir Bricothèque
PtiTrain).
 |
11.4.4. Paramètres
spécifiques |
Les paramètres
spécifiques sont relativement simples ici : |
D´abord
toutes les E/S en sortie, sauf la détection de présence.
Ensuite l´activation
du Timer0, avec le prédiviseur
pour avoir la fréquence de 480 Hz.
Enfin, le démarrage
du train à la mise sous tension. |
 |
PTI+ Fréquence
de l'alimentation. — Si vous êtes partie
prenante dans le débat sur les fréquences
optimales de fonctionnement des alims P.W.M., et si
donc vous voulez modifier la fréquence de l’alimentation
de votre train, il suffit d’enlever les deux
lignes bsf OPTION_REG,0 et bsf
OPTION_REG,1 et votre moteur fonctionnera à 2000 Hz
au lieu de 240 Hz. |
|
|
 |
11.5.
Boucle principale |
 |
11.5.1. États |
La
boucle principale du programme doit gérer les différentes actions
en fonction de la situation du train, que nous appellerons “ETATS”.
Les états sont identifiés dans le programme par des bits de la variable VA_ETAT et
correspondent à un fonctionnement du train :
  Freinage :
passage de la vitesse maximum à la vitesse de ralenti,
  Ralenti :
progression du train à la vitesse de ralenti
  Pause :
train arrêté en attente de démarrage
  Accélération :
passage de zéro à la vitesse maximum.
Lorsque aucun état
n´est activé, le train avance à la vitesse maximum.
Le train passe
successivement d´un état à un autre selon des événements internes
ou externes :
  Freinage :
lorsque le train entre dans la zone d´arrêt,
  Ralenti :
lorsque le train atteint la vitesse de ralenti,
  Pause :
lorsque le train entre dans la zone stop,
  Accélération : à la
fin de la pause.
Les différentes
conditions et actions sont assez difficiles à décrire par des phrases,
et si vous ouvrez le programme vous verrez que c´est très indigeste.
Je propose donc
d´introduire dans Pictrain un
nouvel outil de programmation : l´organigramme.
 |
11.5.2. Organigramme |
Un organigramme
est une méthode de représentation graphique de la structure du programme.
Cette méthode permet de visualiser le fonctionnement, et facilite
grandement la compréhension.
Les éléments sont
principalement :
  Le
losange, qui représente un test, avec deux résultats (oui/non),
  Le
rectangle, qui représente une action (suite d´instructions),
  Les
flèches qui relient les deux éléments précédents, et qui représentent
les instructions après test ou les GOTO.
Vous avez ci-dessous
l´organigramme du programme Pictrain3 [cliquez sur l´image
pour la lire et l´imprimer en plus grande taille] : |
|