Différences entre les versions de « Boucle de retournement »

De VoWiki
Aller à la navigation Aller à la recherche
 
(54 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Image:VOLABTrainBr_cablage_06_01.png|thumb|]]<center>Document de conception boucle de retournement d'un réseau ferroviaire</center>
{{Projet}} ← [[Le_petit_train_du_VoLAB]]
 
[[Image:VOLABTrainBr_cablage_06_01.png|600px|right|]]
 
<center>Document de conception boucle de retournement d'un réseau ferroviaire</center>


[[Category:modélisme ferroviaire]]
[[Category:modélisme ferroviaire]]
Ligne 7 : Ligne 11 :
[[Category:Arduino]]
[[Category:Arduino]]


[[Image:VoLABbyVoRoBoTic160413_0853.jpg|thumb|]]= VoLAB =
 
= VoLAB =
Projet principal : [[Le petit train du VoLAB]]
 
= Association VoRoBoTics =
= Association VoRoBoTics =
Date : 20/08/2018
Date : 20/08/2018
Ligne 20 : Ligne 27 :


= Problématique =
= Problématique =
Le réseau ferroviaire en modèle réduit du VoLAB 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.
[[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&nbsp;: [http://www.ho-ptit-train.be/Html/cablage_06.html Ho Ptit Train] dont je reproduit ici l’illustration.
Ce phénomène est très bien illustré et décrit sur internet en particulier sur le site&nbsp;: [http://www.ho-ptit-train.be/Html/cablage_06.html Ho Ptit Train] dont je reproduit ici l’illustration.


[[Image:VOLABTrainBr_cablage_06_01.png|thumb|''Illustration 1: Principe de la boucle de retournement'']]
[[Image:VOLABTrainBr_cablage_06_01.png|300px|left|thumb|''Illustration 1: Principe de la boucle de retournement'']]


{{Clr}}


Celle du Petit Train du VoLAB&nbsp;:
Celle du Petit Train du VoLAB&nbsp;:


[[Image:VOLABTrainBr_boucleVoLAB.png|thumb|<center>''Illustration 2: La boucle du Petit Train du VoLAB''</center>]]
[[Image:VOLABTrainBr_boucleVoLAB.png|300px|thumb|left|<center>''Illustration 2: La boucle du Petit Train du VoLAB''</center>]]


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.
{{Clr}}
 
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.
Nous avons choisi de couper le réseau après l’aiguillage 4184 du centre.


[[Image:VOLABTrainBr_coupure01.JPG|thumb|''Illustration 3: Coupure du réseau Petit Train du VoLAB'']]
[[Image:VOLABTrainBr_coupure01.JPG|left|thumb|''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.
{{Clr}}


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.
{{Clr}}


= Architecture =
= Architecture =
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.
[[Image:VOLABTrainBr_boucleVoLAB_capteurs.png|300px|thumb|''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.
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.


[[Image:VOLABTrainBr_boucleVoLAB_capteurs.png|thumb|''Illustration 4: position des capteurs et des coupures'']]
 
 
{{Clr}}


= Choix du capteur =
= 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 SFR-04 (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.
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.




Ligne 57 : Ligne 92 :


|}
|}
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.
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. [[Image:VOLABTrainBr_telsa2Gauss.JPG|thumb|''Illustration 8: tableau de conversion Tesla en Gauss'']]
 
'''Unipolaire''' &nbsp;: 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&nbsp;: plus de détection…
 
'''Bipolaire''' &nbsp;: le capteur détecte les champs dans les 2 sens


Unipolaire&nbsp;: 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&nbsp;: plus de détection…
'''Linaire''' &nbsp;: 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.


bipolaire&nbsp;: le capteur détecte les champs dans les 2 sens


linaire&nbsp;: 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.


[[Image:VOLABTrainBr_telsa2Gauss.JPG|thumb|''Illustration 8: tableau de conversion Tesla en Gauss'']]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.
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.
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.


{{Clr}}


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


[[Image:VOLABTrainBr_machineEtat.JPG|thumb|''Illustration 9: machine d'état'']]
[[Image:VOLABTrainBr_machineEtat.JPG|600px|thumb|left|''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 é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.
Ligne 81 : Ligne 119 :
L'état de repos est, vous l'aurez sans doute compris, l'état 0.
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.
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.
 
{{Clr}}


= Le code ARDUINO =
= Le code ARDUINO =
Ligne 155 : Ligne 199 :
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.
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.
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 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).
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 =
= Schémas =
== Carte mère et ARDUINO Nano ==
== Carte mère et ARDUINO Nano ==
Relais pinout
Brochage du Relais et du transistor 2N7000 :




Ligne 167 : Ligne 219 :
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_relais1114Dpinout1.JPG|thumb|''Illustration 10: Brochage du relais (vue de dessous)'']]
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_relais1114Dpinout1.JPG|thumb|''Illustration 10: Brochage du relais (vue de dessous)'']]
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_relais1114Dpinout2.JPG|thumb|''Illustration 11: Pinout du relais'']]
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_relais1114Dpinout2.JPG|thumb|''Illustration 11: Pinout du relais'']]
 
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_2700pinout.JPG|left|thumb|''Illustration 12: 2N2700 pinout'']]
|}
|}
Transistor 2N7000 pinout
[[Image:VOLABTrainBr_2700pinout.JPG|thumb|''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.
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.


[[Image:VOLABTrainBr_schemaCarteMere.JPG|thumb|''Illustration 13: Schéma de la carte mère'']]
{| style="border-spacing:0;"
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_schemaCarteMere.JPG|400px|thumb|''Illustration 13: Schéma de la carte mère'']]
| style="border:none;padding:0cm;"| [[Image:VOLABTrainBr_PCBCarteMere.JPG|400px|thumb|''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:
Nous avons réalisé un routage même si nous n'avons pas fait de pcb et l'avons fait avec une carte VEROBOARD:


[[Image:VOLABTrainBr_PCBCarteMere.JPG|thumb|''Illustration 14: Le PCB de la carte mère'']]Comme le VEROBOARD utilisé est simple face, les autres couches du PCB sont des straps réalisés en fils de cuivre.
Comme le VEROBOARD utilisé est simple face, les autres couches du PCB sont des straps réalisés en fils de cuivre.




Ligne 187 : Ligne 239 :


|}
|}
== Raccordement aux voies ==
== Raccordement aux voies ==
J1 est le connecteur principal et doit être raccordé à la voie principale.
J1 est le connecteur principal et doit être raccordé à la voie principale.
Ligne 192 : Ligne 245 :
J5 doit être raccordé aux rails de la boucle.
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...
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 ==
== Nomenclature ==
Ligne 258 : Ligne 315 :
|}
|}
= Support de carte imprimé en 3D =
= Support de carte imprimé en 3D =
[[Image:VOLABTrainBr_support.JPG|thumb|''Illustration 17: Support '']]
[[Image:VOLABTrainBr_support.JPG|thumb|300px|''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 : [http://www.vorobotics.com/wiki/index.php?title=BOBies Bobies].
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 : [http://www.vorobotics.com/wiki/index.php?title=BOBies Bobies].


On y fixe la carte mère grâce à 2 vis de 2.5 x 6 ( PLATCBZ02.5/006ZN disponibles chez [https://www.bricovis.fr/std/accueil.php BRICOVIS] )
On y fixe la carte mère grâce à 2 vis de 2.5 x 6 ( PLATCBZ02.5/006ZN disponibles chez [https://www.bricovis.fr/std/accueil.php BRICOVIS] )


= Fichiers sources =
= Fichiers sources =
Source ARDUINO
Source [https://github.com/volab/VOLAB_train_boucleDeRetournement/tree/master/04-realisation/boucleRet ARDUINO]


Source du présent article au format open document
Source du [https://github.com/volab/VOLAB_train_boucleDeRetournement/blob/master/03-conception/boucleRetournementConception/boucleRetournementConception180918_2055.odt présent article] au format open document


Version pdf
Version [https://github.com/volab/VOLAB_train_boucleDeRetournement/blob/master/03-conception/boucleRetournementConception/boucleRetournementConception180918_2055.pdf pdf]


Schéma de cablage
Schéma de [https://github.com/volab/VOLAB_train_boucleDeRetournement/blob/master/03-conception/boucleRetournementConception/VOLABTrainBr_schemaCarteMere.pdf câblage] en pdf


Source Inkscape de la machine d’état
Source Inkscape de la [https://github.com/volab/VOLAB_train_boucleDeRetournement/blob/master/03-conception/boucleRetournementConception/images/VOLABTrainBr_BR180903_0900.svg machine d’état]


Source du support mécanique Fusion360
Source du [https://github.com/volab/VOLAB_train_boucleDeRetournement/tree/master/04-realisation/03-cao_3D support] mécanique Fusion360


Les source kicad de la carte mère
Les source [https://github.com/volab/VOLAB_train_boucleDeRetournement/tree/master/04-realisation/kicad_boucleRet kicad] de la carte mère
 
datasheet du relais


datasheet du [http://www.teledynerelays.com/Datasheets/ER114.pdf relais]


= Licence =
= Licence =
Ce document est mis à disposition selon les termes de la&nbsp;[http://creativecommons.org/licenses/by/4.0/ Licence Creative Commons Attribution 4.0 International].  
Ce document est mis à disposition selon les termes de la&nbsp;[http://creativecommons.org/licenses/by/4.0/ Licence Creative Commons Attribution 4.0 International].  


[[Image:CC88x31.jpg]]Paternité 'by' :''L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.''
[[Image:88px-CC-Zero-badge.svg.png]]


= webographie =
[http://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons]


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.
= Bibliographie =
Ho Ptit Train
Ho Ptit Train


[http://www.ho-ptit-train.be/Html/cablage_06.html http://www.ho-ptit-train.be/Html/cablage_06.html]
[http://www.ho-ptit-train.be/Html/cablage_06.html http://www.ho-ptit-train.be/Html/cablage_06.html]
= webographie =
[http://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons]




Ligne 324 : Ligne 379 :
[https://www.bricovis.fr/std/accueil.php https://www.bricovis.fr/std/accueil.php]
[https://www.bricovis.fr/std/accueil.php https://www.bricovis.fr/std/accueil.php]


 
{{FinArticleSansLicence}}
= 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 [http://www.vorobotics.com/ www.vorobotics.com]

Version actuelle datée du 13 octobre 2018 à 23:21

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 28km au nord-ouest de Paris dans l'agglomération de Cergy Pontoise.

Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com


AccueilNos Projets