Auteur Sujet: Projet de LegoLow : le WindMill Lego Train Layout Project (WMLTL)  (Lu 22127 fois)

LegoLow

  • Newbie
  • *
  • Messages: 7
  • AFOL Trains
    • Voir le profil
Bonjour à tous,
je me lance moi aussi !

Mon projet s'appelle ainsi juste une "boutade" sur le fait que l'on surnomme souvent notre maison celle du moulin à vent ;-)
Ce projet a démarré il y a maintenant plus d'un an après avoir vu ce que l'on pouvait faire avec une Arduino et les trains LEGO.
En voyant le potentiel d'espace disponible au sous-sol, en voyant mon père avoir mis de côté des trains HO toute sa vie sans jamais pouvoir en profiter, et étant plus particulièrement fan de la petite brique qui s'emboite et surtout de ces trains (de mon enfance jusqu'à maintenant), je me suis dis : c'est le moment ou jamais.
Je démarrais donc de çà :


pour préparer mon "plateau" de mon réseau, il a fallu faire quelques plans, créer quelques "meubles" (permettant de ranger notamment cette collection de Lego)



La surface (qui a été légèrement modifié depuis) est à peu près celle-ci :

Le 1m55 de gauche s'est transformé peu à peu en 1m60 et le 1m20 en 1m40.
La difficulté avec la "L-gauge" c'est que les courbes, ou demi-tour complet prennent 80 cm de diamètre..... donc dès que l'on veut dans le réseau mettre plusieurs voies en parallèle, cela commence à prendre beaucoup de place....

J'ai donc ensuite démarré mon réseau, foncant dans le tas (sans aucune préparation) et plusieurs incidents se sont succédés : inondation suite à un défaut d'évacuation des eaux de pluies, suivi d'une fuite d'eau. Le premier incident a fait gondolé certaines planches, le réseau devenant impraticable. Le deuxième força le démontage complet afin de réparer l'arrivée d'eau de la maison.
J'en ai profité alors pour mettre une petite couche de peinture sur les murs et de redémarrer le projet cette fois-ci dans l'ordre : étude et conception, recherche sur les différents composants et leurs mises en oeuvre, R&D sur l'automatisation des aiguillages, etc...

Voici le schéma de mon réseau (sujet à changement possible) :
  • Niveau 0 : entièrement "sous-terrain"

  • Niveau 1 : semi-souterrain, gare à l'air "libre" à 80%

  • Niveau 2 : niveau "plein-air"

  • Niveau 3 : début du "voyage" dans la montagne

  • Niveau 4 : montagne suite....

  • Niveau 5 : sommet de la montagne

J'essaye autant que possible de faire rouler mes trains à "gauche", de mettre mes signaux à gauche des voies. Il y a aura dessus 25 trains 9V qui rouleront et 5 trains 12V.


Entrons un peu plus dans les détails du projet :

  • Côté "contrôle" des trains :
    Ne pouvant contrôler mes loco directement, et devant jouer sur l'alimentation ou non de leurs rails pour les faire avancer, je me suis penché sur les systèmes de cantonnement, de "block-system" et j'ai trouvé que je pouvais via ce système faire croire que les trains roulaient tous en même temps, pas forcément à la même vitesse, d'en arrêter certains alors que d'autres roulent encore. Il a donc fallu que je divise ce tracé en cantons et que je trouve le moyen de les alimenter tous. J'ai trouvé sur le web de nombreux fans qui utilisent donc un L298N, un pont double en H, pour contrôler le niveau d'alimentation des rails LEGO. Il "dérive" dessus le transformateur classique LEGO (afin d'avoir du 9V), puis l'Arduino, via ces PWM, contrôle la puissance des L298N fournissant ainsi aux rails entre 0V et 9V. Un L298N contrôle 2 cantons. A raison de 58 cantons 9V et 12 cantons 12V, il me faut 40 L298N pour contrôler l'ensemble du réseau.


  • Côté alimentation du réseau :
    Pour le réseau principal, les trains sont en 9V. Il y a un réseau secondaire en 12V. Les motrices LEGO sont sensibles au voltage et parfois requièrent pas mal d'ampérage..... une motrice à vide utilise à peu près 380 mA. En charge, cela peut monter à 800 mA voir parfois plus notamment pour monter les côtes (surtout si on met 2 motrices sur la même section alimentée). Plutôt que de partir sur une alimentation PC modifée ou une alim de labo, j'ai trouvé un transfo "classique" qui me fournira mon 9V avec 5A... et si ce n'est pas assez, j'en ai repéré une, qui me délivrera 16,7A.....  il y aura quand même 25 trains 9V sur le réseau, certes ils ne tourneront sûrement pas tous en même temps du fait du cantonnement mais.... on sait jamais !!!

    Pareil pour le 12V, sauf que j'ai trouvé une plus costaud de suite : 12V à 8A.
    Les composants électroniques auront la leur : 5V à 10A.



  • Côté "capteurs :
    Je suis vite parti sur des LED IR pour détecter le passage, la présence des objets : ca marche dans le noir (je pense à mes "souterrains"), à la lumière, il suffit juste de bien les "calibrer".
    J'ai ensuite découvert les ILS (petit débutant que je suis !) : les trains LEGO ont "l'avantage" d'avoir des aimants pour coupler les wagons. J'ai fait un test et en surélevant un ILS de quelques millimètres, l'aimant de tête et de queue est détecté. Je n'ai pas fait le test si celui-ci détectait les aimants lorsque des wagons sont attelés.... mais j'ai cette piste comme capteurs de secours au cas où (bien que l'ILS n'est pas donné par rapport au LED IR.....)


  • Côté automatisation des aiguillages :
    Pour le réseau 12V, il y a eu une automatisation avec des télécommandes : pour cela je n'aurais qu'à étudier le type de courant (intensité et puissance) qui est envoyé aux aiguillages pour les faire basculer. Vu que ceux-ci se branchaient sur le côté de la centrale d'alimentation 12V, je pense qu'il devait envoyer soit du +12V ou -12V pour les faire basculer.... (ou moins en voltage). Donc cela ne devrait pas être bien compliqué de les contrôler via l'Arduino... et sûrement via des L298N.....

    Pour le réseau 9V, LEGO n'a jamais automatisé les aiguillages qui sont toujours restés manuels !!  :o
    J'ai donc dû rechercher, parcourir le web à la recherche d'une solution viable et sûr.... sans succès, je me suis orienté vers des servo en cherchant celui qui ferait le travail puisque les aiguillages LEGO ont une "résistance" interne que je ne voulais pas "casser".... j'ai trouvé après plusieurs commandes et tests, mon servo : un TowerPro MG92B et le montage LEGO adéquat :


    J'ai en tout 27 aiguillages à piloter....



  • Côté "signalisation verticale" :
    J'étais au début parti sur des feux "simples" : à 3 feux pour les cantons pseudo-permissif, à 2 feux pour les cantons à arrêt strict.... puis je suis tellement fan de trains, que je tente ces derniers temps (et çà se voit sur mes schémas plus haut) de pousser à un certain réalisme ferroviaire... donc je pense faire plutôt une gamme un peu plus large de feu : signaux à 3 feux pour les cantons "classiques", signaux avec carré rouge pour les arrêts stricts, signaux avec carré rouge et avertisseur 30, signaux avec carré rouge et avertisseur 60. + un feu de manoeuvre (blanc et violet) pour la voie qui sert d'insertion/sortie dans le réseau et des feux de manoeuvre violet fixe pour décorer mes voies de garage (qui seront vraiment que du décor).
    Au début avec mon système "simple", cela me faisait quand même la bagatelle de 144 Led..... alors plutôt que de cascader des HC595 à go-go, je m'oriente plutôt vers un MAX7219 qui permet le contrôle d'une matrice de 64 Leds..... que l'on peut bien sûr cascadé donc 2x MAX7129 + HC595 pour le reliquat de feu restant....
    Mais en passant avec à ma signalisation avancée, j'obtiens 256 Leds !!! Tiens, çà ne serait pas une puissance de 2 çà, surtout un multiple de 64 ;-)
    Donc résultat, je pense partir sur 4 x MAX7219 en cascade.... ca sera la partie "cablage" la plus importante : réalisé des matrices sans erreur.....

    J'ai dernièrement ajouté l'idée de mettre des feux d'indications de chemins : avant les aiguillages, surplombant les feux, ils existent des feux horizontaux blancs, indiquant le chemin que le train va prendre suivant les aiguillages.... sûrement à relier aux systèmes pilotant les aiguillages, cela me permettra d'avoir un petit feedback visuel que les aiguillages marchent bien  ;)


  • Côté "branchement" et "capteurs" :
    J'ai vite vu que le nombre de PWM étaient limité à 15 par Arduino Mega, j'ai donc opté directement pour cette carte. Au début, je n'avais que 15 capteurs IR (de détection de passage) par niveau, pour les 3 premiers niveau. J'étais donc parti sur une Arduino par niveau, la 4eme et dernière gérant tous les derniers niveaux..... mais je me suis dis, c'est pas possible, cela doit être possible de tout faire avec une seule carte !
    Au début, j'ai vu le fameux HC595 : le "bit-shifter" qui permet de gérer 8 sorties avec seulement 3 de l'Arduino.... je me disais pour les Led, ca devrait le faire...
    Puis en cherchant plus, j'ai trouvé pour démultiplexer les entrées analogiques grâce au CD4067 : 16 entrées analogiques sur une entrée analogique de l'Arduino : yeah !!! Car, pour le moment, j'en suis à 80 capteurs IR !!!!

    Pareil ensuite pour le contrôle de mes PWM : la petite "carte" PCA9685 qui permet de contrôler via l'I2C, 16 PWM. De plus, celle-ci est cascadable !
    Et pour mes servo d'aiguillage, la même carte, la PCA9685 !




  • Côté "bonus" :
    J'appelle çà "bonus" car si déjà j'arrive à faire tourner mon réseau ainsi, je serais super content !
    Donc bonus 1 : la reconnaissance des trains avant les gares afin que déjà d'une les trains de marchandises ne s'arrêtent pas (sauf problème de circulation) et que de deux, je puisse identifier mes trains pour le bonus 2. Cela sera sûrement en RFID. A voir si je peux suivre une fois le train identifié son parcours sur le réseau (théoriquement oui), sinon il y aura un lecteur RFID à chaque entrée de gare.

    Bonus 2 : des écrans OLED en gare, indiquant les trains au départ et/ou à l'arrivée... la classe !
    Il manquerait plus qu'une petite voie féminine et on s'y croirait "[jingle] le train 7740 en provenance de la gare 1 va bientôt entrer en gare, veuillez vous éloigner de la bordure du quai s'il vous plait ! [jingle]"


  • Côté controle-commande :
    J'ai prévu pour le moment un petit boitier, permettant de débrier tous les aiguillages, de faire démarrer le programme sur l'arduino, de le mettre en pause ou de l'arrêter (un shutdown propre remettant dans une certaine position tous les feux, tous les aiguillages).

    Je pousserais peut-être le bouchon plus loin en créant un programme sur tablette pour suivre le réseau en temps réel mais cela sera une autre paire de manche !!!


Voilà dans sa globalité mon projet. Pour l'instant donc, tout "rentre" dans une seule et unique Arduino : à voir ensuite à la programmation, à l'implémentation si une seule Arduino peut tout gérer. Je commencerais par faire le niveau 0, voir déjà les temps d'exécution et je verrais ainsi pour la suite si je dois mettre en place un réseau CAN par exemple ou juste diviser ma charge sur plusieurs Arduino, chacune gérant son niveau.... avec peut-être un peu d'échange entre carte du style : "coucou arduino du niveau 1, je suis Arduino du niveau 0 et je t'envoie un train sur ton réseau, tu as de la place ?"

En ce moment, je commence un peu ma programmation (mes classes de base et mes instances déjà).
Je vois aussi comment créer des "boitiers/carte" par type de "module" électronique (IR LED, signalisation LED, etc....) afin ensuite de réaliser un câblage clair.

Je reviendrais donc ici au fur de l'avancée de mes travaux, de mes tests et de mes retours d'expériences !
Un grand merci à vous pour votre patience et votre intérêt !

« Modifié: mai 26, 2017, 09:51:39 am par LegoLow »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3048
  • 100% Arduino et N
    • Voir le profil
Re : Projet de LegoLow : le WindMill Lego Train Layout Project (WMLTL)
« Réponse #1 le: mai 26, 2017, 11:28:56 pm »
Et là j'en suis baba : quel projet !

Même si on n'est pas "Lego", l'électronique qui va avec a tout son intérêt pour d'autres formats.

Merci de partager ce gigantesque projet.

Bon courage  :P
Cordialement,
Dominique

DDEFF

  • Hero Member
  • *****
  • Messages: 760
    • Voir le profil
Re : Projet de LegoLow : le WindMill Lego Train Layout Project (WMLTL)
« Réponse #2 le: mai 27, 2017, 12:53:40 pm »
Waaooooo !  ;D
En te disant de faire un fil spécifique, je ne pensais pas à ... ça !!!
Pas eu le temps de décortiquer, mais ça promet.

Comme dit Dominique : bon courage !  :P

Denis
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

LegoLow

  • Newbie
  • *
  • Messages: 7
  • AFOL Trains
    • Voir le profil
Re : Projet de LegoLow : le WindMill Lego Train Layout Project (WMLTL)
« Réponse #3 le: mai 29, 2017, 08:46:49 am »
Merci Dominique et Merci Denis !
Je vais bien en avoir besoin, la tâche est ardu et surtout longue et méticuleuse !