Boucle de retournement

De VoWiki
Aller à : Navigation, rechercher

AccueilNos ProjetsLe_petit_train_du_VoLAB

VOLABTrainBr cablage 06 01.png
Document de conception boucle de retournement d'un réseau ferroviaire


VoLAB

Projet principal : Le petit train du VoLAB

Association VoRoBoTics

Date : 20/08/2018

Auteur : J.SORANZO

Relecteur : Gilbert, Daniel, Stéphane

Thème: Réseau ferroviaire modèle réduit H0

Projet : boucle de retournement du Petit Train du VoLAB

Problématique

Le_petit_train_du_VoLAB réseau ferroviaire en modèle réduit comporte une boucle. Or dans ce genre de boucle, se produit un phénomène bien connu des modélistes ferroviaires une inversion de polarité des voies.

Ce phénomène est très bien illustré et décrit sur internet en particulier sur le site : Ho Ptit Train dont je reproduit ici l’illustration.

Illustration 1: Principe de la boucle de retournement

Celle du Petit Train du VoLAB :

Illustration 2: La boucle du Petit Train du VoLAB

Sans intervention, cette construction débouche sur un court-circuit entre les 2 voies

Il n’y a pas d’autres possibilité que de couper physiquement les rails à un endroit ou à un autre de cette boucle.

Nous avons choisi de couper le réseau après l’aiguillage 4184 du centre.

Illustration 3: Coupure du réseau Petit Train du VoLAB

Cette coupure n’est portant pas suffisante.

En effet lorsqu’une locomotive arrive à cet emplacement, lorsque son bogie avant passe la coupure, elle crée à nouveau le court-circuit.

Il faut donc concevoir une boucle de retournement.

Architecture

Illustration 4: position des capteurs et des coupures

Afin de résoudre ce problème, plusieurs solutions sont envisageables.

Le site Ho Petit Train fournit un certain nombre de solutions.

Compte-tenue du prix faible de ces derniers, nous avons décider de créer une solution à base de micro-controleur.

Nous nous sommes orientés vers un clone d'ARDUINO Nano que nous avons déjà utilisé dans notre commande d'aiguillage.

Cela nous à permis de conserver le même principe de carte mère et de conserver le support imprimé en 3D.

L'alimentation se fait par la voie principale grâce à un pont redresseur et un condensateur de filtrage.


Dans le principe, nous avons décidé de faire une boucle de retournement sans court ciruit. Nous avons utilisé 3 capteurs de présence: 1 à l'entrée de la boucle, 1 dans la boucle et 1 à la sortie. 3 capteurs sont nécessaires parceque cette boucle est bi-directionnelle. Les capteurs d'entrée et de sortie changent de rôle selon le sens de la loco. Nous détectons la loco à l'entrée de la boucle, nous "alignons" les polarités des voies (si besoin) à l'aide d'un relais électro-mécanique à 2 contacts repos/travail. Lorsque la loco est détectée à l'intérieur de la boucle, nous pouvons permuter les polarités des voies. Et enfin, nous détectons la sortie de la loco de la boucle mais cela n'est pas vraiment nécessaire sauf pour remettre le sytème en état d'attente. Ce schéma de fonctionnement implique que le convoit ne fasse pas marche arrière lorsqu'il a franchi le deiuxième capteur, celui à l'intérieur de la boucle.


Choix du capteur

Nous avons exploré plusieurs types de capteurs de détection de présence de la loco. Cela peut être un simple contact placé sous la voies, un ILS, une barrière infra-rouge et nous avons même envisagé un capteur à ultra-son type SRF04 (un poil trop volumineux) ou encore une barrière constitué d’une diode laser et d’une LDR. Bref tout type de capteur fonctionnant en mode tout ou rien qui change d’état au passage d’une locomotive. Notre choix final s’est porté sur un capteur à effet hall suffisamment petit pour être logé sous la voie.


Illustration 5: Capteur 1
Illustration 6: Capteur 2 et Electronique
Illustration 7: Capteur 3
S’est alors posé la question du choix du capteur à effet hall en lui-même. Nous avons découvert à nos dépends ce que signifiaient les termes unipolaire/bipolaire/linéaire figurant dans les datasheets de ces derniers.
Illustration 8: tableau de conversion Tesla en Gauss

Unipolaire  : le capteur ne détecte un champ magnétique que dans un seul sens. C’est à dire que si on met l’aimant à l’envers : plus de détection…

Bipolaire  : le capteur détecte les champs dans les 2 sens

Linaire  : le capteur ne fonctionne pas en mode tout ou rien mais mesure réellement la valeur du champ magnétique, il faut alors souvent faire une mesure en analogique et faire un comparateur logiciel dans le code de l’ARDUINO.


Ah oui détail important ce choix impose de fixer un aimant sous la loco. Aimant qu’il faut choisir avec soin en fonction du capteur. En effet, on trouve dans la datasheet de ces derniers la valeur du champ à partir de laquelle ils réagissent. Le problème est que cette information est plus difficile à trouver côté aimants surtout ceux vendus sur le marché chinois. Heureusement, il est des sites plus sérieux qui fournissent cette information mais au prix d’un coût plus élevé naturellement comme par exemple https://www.supermagnete.fr.

Après bien des essais, nous avons choisi un A1104 du fabricant Allegro. De part les faibles dimensions du boîtier, il nous semble facilement dissimulable entre les voies.

Machine d’état

Illustration 9: machine d'état

Nous avons basé le fonctionnement de notre boucle de retournement sur la machine d'état ci-contre que nous avons codé dans un ARDUINO Nano comme dit plus haut dans cet article.

Les états 0 à 5 correspondent au parcours du train dans le sens capteur 1 (C1) capteur 3 (C3) en passant par le capteur 2 (C2) naturellement.

Les étapes 0, 6 à 10 correspondent au parcours de la boucle dans l'autre sens.

L'état de repos est, vous l'aurez sans doute compris, l'état 0.

La transition de l'état 1 vers l'état 0 n'a pas été implémentée.

Elle était destinée à prendre en compte le train qui après avoir franchis le capteur 1 ferait marche arrière.

Pour faire simple, nous nous interdisons les marches arrières dans la boucle de retournement.

Le code ARDUINO

//
// retour loop
// VoLAB
// mai 2018
// CC-0
//
#define C1PIN 5
#define C2PIN 4
#define C3PIN 3

#define RELAISPIN 2
#define LEDRELAIS 13

int state;

void setup(){
    pinMode( C1PIN, INPUT_PULLUP );
    pinMode( C2PIN, INPUT_PULLUP );
    pinMode( C3PIN, INPUT_PULLUP );
    pinMode( RELAISPIN, OUTPUT);
    pinMode( LEDRELAIS, OUTPUT);
    Serial.begin(9600);
    Serial.println("pret");
    
}

void loop(){
    // inversées à cause du INPUT_PULLUP
    int C1 = !digitalRead(C1PIN);
    int C2 = !digitalRead(C2PIN);
    int C3 = !digitalRead(C3PIN);
    char chaine[256];
//    sprintf( chaine, "C1 : %d, C2 : %d, C3 : %d", C1, C2, C3);
    sprintf( chaine , "etat : %d", state);
    Serial.println( chaine );
    
    //Machine d'état
    switch (state){
        case 0:
            if (C1) state = 1;
            if (C3) state = 6;
        break;
        case 1: if (!C1) state = 2; break;
        case 2: if (C2) state = 3 ; break;
        case 3: if (!C2) state = 4 ; break;
        case 4: if (C3) state = 5 ; break;
        case 5: if (!C3) state = 0 ; break; //le train est sorti en C3
        case 6: if (!C3) state = 7 ; break;
        case 7: if (C2) state = 8 ; break;
        case 8: if (!C2) state = 9 ; break;
        case 9: if (C1) state = 10 ; break;
        case 10: if (!C1) state = 0 ; break;
        default:
            state = 0;
        break; 
    }
    
    //Décodage des états
    if ( state == 4 | state == 6 ){
      digitalWrite( RELAISPIN, HIGH);
      digitalWrite( LEDRELAIS, HIGH);
    }
    if (state == 5 | state == 9){
      digitalWrite( RELAISPIN, LOW);
      digitalWrite( LEDRELAIS, LOW);
    }
    
}

Ce sketch est très simple. Il débute par l'assignation des broches de connections des 3 capteurs, de la sortie relais et d'une sortie d'affichage de l'état du relais.

Dans la déclaration de la fonction setup, on réalise la configuration des dites broches.

Seule petite subtilité, les broches d'entrées des capteurs sont configurées en INPUT_PULLUP ce qui permet de se passer de résistances de tirage extérieures.

La contre-partie est que le niveau actif de l'enrée est 0 au lieu de 1.

Ensuite vient la déclaration de la fonction loop qui commence par lire l'état des 3 capteurs en les inversant ( rôle du ! devant les digitalRead() ).

Ensuite vient la machine d'état qui gère les transitions entre les états conformément à l'illustration 9 machine d'état.

Et enfin la partie décodage des états pour piloter le relais (et la LED).

Schémas

Carte mère et ARDUINO Nano

Brochage du Relais et du transistor 2N7000 :


Illustration 10: Brochage du relais (vue de dessous)
Illustration 11: Pinout du relais
Illustration 12: 2N2700 pinout

Ci-dessous le schéma de la petite carte mère que nous avons réalisé pour accueillir les quelques composants nécessaires... Nous avons commis ça grâce à Kicad.

Illustration 13: Schéma de la carte mère
Illustration 14: Le PCB de la carte mère

Nous avons réalisé un routage même si nous n'avons pas fait de pcb et l'avons fait avec une carte VEROBOARD:

Comme le VEROBOARD utilisé est simple face, les autres couches du PCB sont des straps réalisés en fils de cuivre.


Illustration 15: Carte mère en vue de dessus
Illustration 16: Carte mère en vue de dessous

Raccordement aux voies

J1 est le connecteur principal et doit être raccordé à la voie principale.

J5 doit être raccordé aux rails de la boucle.

Il y a une petite subtilité : la vis de droite de J1 doit être raccordée au rail du même côté que la vis de droite de J5.

Exemple au rail de droite – même si il n'y a pas vraiment ni de rail de droite, ni de rail de gauche étant donnée que les trains peuvent circulés dans les 2 sens.

Il faut bien se fixer une convention à un moment ou un autre...

Nomenclature

Désignation Ref fab Fabricant/fournisseur Repère
Clone ARDUINO nano NANO V3 Banggood U1
Relais 114D Teledyn R1
Diode 1N4004  ? D1 à D4
Transistor 2N7000 On semi Q1
Condensateur 100uF/16V  ? C1
Connecteurs 2cts Pas 5.08 à vis Banggood J1, J5
Connecteur 3cts Pas 2.54 barette Banggood J2, J3 et J4
PCB Plaque à pastille carrée Radiospares part. -
2 vis M2,5x6 Bricovis -

Support de carte imprimé en 3D

Illustration 17: Support

Il s'agit d'un support très simple qui permet par la suite de fixer la carte au réseau grâce à 2 vis.

Nous l'avons réutilisé du projet de commande d'aiguillage (d'où l'insription DCC Turnout).

Sa conception bénéficie d'un de nos autres projets : Bobies.

On y fixe la carte mère grâce à 2 vis de 2.5 x 6 ( PLATCBZ02.5/006ZN disponibles chez BRICOVIS )

Fichiers sources

Source ARDUINO

Source du présent article au format open document

Version pdf

Schéma de câblage en pdf

Source Inkscape de la machine d’état

Source du support mécanique Fusion360

Les source kicad de la carte mère

datasheet du relais

Licence

Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

88px-CC-Zero-badge.svg.png

webographie

http://fr.wikipedia.org/wiki/Licence_Creative_Commons

Ho Ptit Train

http://www.ho-ptit-train.be/Html/cablage_06.html


Kicad

http://kicad-pcb.org/


http://banggood.com (dealer de goodies!)

NANO V3 à 2.23€ (au 18/9/18) à condition de choisir « Ships from CN Warehouse »


On-semi (datasheet transistor)

http://www.onsemi.com/


Teledyn (relais)

http://www.teledyne.com/


Bricovis

https://www.bricovis.fr/std/accueil.php

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare

et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information,

nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise.

Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com


AccueilNos Projets