Auteur Sujet: Identifier les trains  (Lu 15115 fois)

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Identifier les trains
« le: mars 22, 2016, 02:04:24 pm »
J'ai récemment lu qu'on pouvait transmettre internet via les ampoules de la maison !
La lumière de la lampe est modulée et un récepteur reconnait cette modulation et, donc, récupère le signal émis.
Une sorte de wifi lumineux.  ;)

Je me suis alors dit que nos locos sont éclairées et qu'on pourrait ainsi transmettre leur identité, que ce soit en DCC et, surtout, en analogique.
Dans la loco, on n'a pas de place.  :(

Je propose donc le codeur HCS301 de Microchip, en cms.
http://ww1.microchip.com/downloads/en/devicedoc/21143b.pdf
Il travaille en 12V et on voit en p5 le schéma de principe qui utilise une seul composant, le HCS301. On peut ainsi identifier 15 locos. :D
Il faut, bien sûr, un transistor supplémentaire pour que ce codage influe sur les LED d'éclairage.
Mais c'est tout petit... et pénible à souder, je vous l'accorde.

A l'endroit où on veut identifier le train qui passe, un photo transistor et le décodeur (en DIL, cette fois, on a de la place).
Je propose le HCS515 de Microchip :
http://ww1.microchip.com/downloads/en/DeviceDoc/40183E.pdf
Schéma d'application p27.

Le codage st le même (p18 pour le HCS515 et p9 pour le HCS301).

Ce codage permettrait de recaler les locos à leur véritable emplacement.
Je vois deux usages :
1°) Reconnaissance d'une loco à la mise sous tension
2°) Suite à divers faux contacts, pouvoir réaffecter la bonne adresse DCC à la bonne loco.

Parce que le gestionnaire doit savoir à tout instant où est tel train et se recaler s'il y a des "loupés"...  ???
« Modifié: mars 22, 2016, 02:41:18 pm par DDEFF »
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Identifier les trains
« Réponse #1 le: mars 23, 2016, 09:00:58 am »
Tu as raison de penser qu'il faut toujours arriver à identifier les trains à un endroit donné du réseau (à défaut de partout).

Ton idée est originale. Mais je n'ai pas bien compris ce qu'il faut installer dans la loco. Une maquette serait intéressante pour démontrer le concept.

Personnellement, j'utilise les micro-capsules RFID qui sont très simples à installer dans une loco, ou un wagon (aucune soudure). Le capteur ID12 se place dans un bâtiment ou un tunnel. Voir l'article.
http://www.locoduino.org/spip.php?article41

Ce serait intéressant que chacun présente sa ou ses propres solutions dans ce fil.
« Modifié: mars 23, 2016, 09:50:33 pm par Dominique »
Cordialement,
Dominique

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : Identifier les trains
« Réponse #2 le: mars 27, 2016, 06:55:37 pm »
J'ai eu une autre idée. ::)

On installe dans une loco 3 aimants.
Sous la voie, hors de vue (je déteste les ILS), on met une série d'ILS dans le ballast de façon à ce qu'une loco donnée soit la seule à avoir un "code" donné.
loco 1 = 10101
loco 2 = 10110
loco 3 = 10111
etc...

Autre piste : une LED (non codée) et 2 aimants.
Pour la LED, on peut simplement faire un trou sous la loco au droit des phares et l'éclairage sert de source de lumière.
Le code est lu avec un photo transistor et quelques ILS.
« Modifié: mars 27, 2016, 07:08:38 pm par DDEFF »
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Identifier les trains
« Réponse #3 le: mars 27, 2016, 08:28:35 pm »
Tu regorges d'idées  8) Respect !

Pour remplacer un ILS (je suis d'accord c'est gros et laid, surtout en N), il y a le détecteur à effet Hall.
C'est plus petit qu'un transistor, noir, et ça peut se poser sur une traverse de format N (donc encore plus invisible en HO).
Pas de contact mécanique donc pas de rebonds (10 à 20 ms à gérer par le soft, ça complique) et un temps de réponse très court.
C'est ce qui équipe maintenant toutes les voitures et qui remplace les "vis platinées".

Mais avec ça tu ne connais pas le numéro d'un train. Mettre des "patterns" de capteurs me semble beaucoup trop compliqué à installer coté loco (pas de place et avec les détails de plus en plus sophistiqués, c'est dommage d'abimer une loco).

Il existe des systèmes qui consistent à coller un code-barre sous la machine. Il faut donc installer un système réflectif au milieu de la voie. Pas beau sauf si c'est dans un tunnel.

Personnellement je préfère et de loin le système RFID ou NFC, avec les microcapsules transporteur comme les péages automatiques.
https://www.sparkfun.com/products/11827
https://www.sparkfun.com/products/9416

J'en ai acheté tout un stock sur eBay et ça fonctionne bien.
http://www.locoduino.org/spip.php?article41
Bien-sur c'est réservé pour les espaces en tunnel ou gare cachée.

Mais combiné avec un autre système de détection, cela confirme un numéro de train avec un certitude absolue au moment où il passe à cet endroit. Au pire un train non détecté est sous l'entière responsabilité de son conducteur entre le départ et le capteur NFC. Ensuite il est totalement sous contrôle. C'était la solution de mon premier réseau et il n'a jamais fait défaut.

Pour moi, la solution que je retiens dans mon réseau en cours de construction est la combinaison de 2 détections :

  • la corrélation entre les événements de traction (commandes de vitesse DCC intégrant l'adresse DCC du train) ET les événements d'occupation (capteurs de consommation) : j'expliquerai comment faire (ce n'est que du logiciel), et ça marche déjà partiellement chez moi dans le gestionnaire du réseau (j'ai des témoins);

Dans cet exemple, chaque train est tout entier dans la zone détectée.
Dans l'exemple ci-dessous, les trains sont à cheval sur 2 zones.
Petite précision : pour faire cet écran de type TCO, j'ai collé 2 écrans TFT 2,8 pouces côte à côte.
La bande verticale du milieu est un bavure de rétroéclairage.


  • la détection RFID dans un tunnel, qui confirme l'autre détection ou la remplace si elle était fausse ou infructueuse. Après, il ne faut plus perdre les trains, mais c'est facile.

Les écrans ci-dessus ont été photographiés en vacances où je n'avais emporté QUE l'Arduino Due gestionnaire. Pour tester j'ai lancé un simulateur qui n'a fait qu'envoyer des messages CAN identiques à ceux qu'il reçoit quand il est à la maison.

De retour à la maison, j'ai branché le gestionnaire sur le réseau CAN opérationnel et je n'ai pas modifié une seule ligne de code : Et ça marche nickel. Mais ce n'est pas encore tout à fait fiable, mon algorithme a besoin d'être perfectionné (c'est là où est le plaisir). De toute façon le capteur RFID ci-dessus sera de mise obligatoirement.
La seule contrainte est de placer un micro-capsule dans chaque train. Ce n'est pas nécessaire d'être dans la loco. Il y a toujours un wagon où c'est plus facile.
D'ailleurs le capteur RFID n'a pas pour mission d'indiquer une position précise mais seulement un numéro de train.

Si un ami vient à la maison avec son train, on peut placer une micro-capsule en quelques secondes avec un bout de double face.

Que demander de plus ?
« Modifié: mars 27, 2016, 10:44:02 pm par Dominique »
Cordialement,
Dominique

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : Identifier les trains
« Réponse #4 le: mars 27, 2016, 10:35:18 pm »
Rien
ça me paraît parfait
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

savignyexpress

  • Invité
Re : Identifier les trains
« Réponse #5 le: juin 01, 2016, 11:06:29 am »
Bonjour à tous,

La question de l'identification des trains est un sujet récurrent sur plusieurs forums, mais je me demande si c'est une fonctionnalité absolument nécessaire.

Si le système (PC, Arduino, centrale sophistiquée) connaît:
  • la position initiale de chaque train,
  • l'état de chaque train: arrêté, marche avant, marche arrière,
  • la position de chaque aiguille,
  • le passage des trains via des détecteurs de passage judicieusement placés,

il devrait être capable de "suivre" les trains sur le réseau en temps réel sans avoir besoin d'identifier les trains.

Dans les années 2002-2004, je donnais des cours de programmation temps réel et les travaux pratiques se faisaient avec un réseau H0 complexe et des locos (sans wagon pour simplifier). Le logiciel contrôlait les locos via le système digital de Märklin et les aiguilles. Il recevait le retour d'ILS mais pas d'identification. Le programme, composé de plusieurs tâches concurrentes (une par loco) suivait chaque loco et il permettait d'illustrer concrètement les notions de sections critiques en faisant attendre une loco lorsqu'une autre parcourait un tronçon partagé.

Des logiciels tels que MpC (Modellbahn Steuerung per Computer) sont capables de suivre les trains sans les identifier, aussi bien en analogique qu'en digital. Sur le réseau d'exposition des chemins de fer du Kaeserberg (http://www.kaeserberg.ch/), MpC fonctionne en mode analogique, les caractéristiques de chaque loco sont transmises à chaque bloc au fur et à mesure de sa progression sur le réseau. Je crois par ailleurs que le logiciel de Pegase fonctionne de la même manière.

Une identification en un seul lieu, par exemple dans une gare cachée, pourrait toutefois permettre de resynchroniser le système avec l'état réel du réseau. Et là il n'est plus nécessaire de cacher les détecteurs !

Meilleures salutations.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Identifier les trains
« Réponse #6 le: juin 01, 2016, 08:44:14 pm »
Bonjour Marc-Henri,

Je suis complètement d'accord avec cet exposé : l'identification des trains n'est nécessaire qu'une seule fois, à la mise en route d'un réseau et en mode DCC principalement, car le système de gestion est supposé ne pas perdre connaissance du train au cours de son déplacement.

Pour la plupart des logiciels de gestion, il suffit d'indiquer l'adresse DCC (ou le numéro) du train situé à un endroit donné.

Certains s'arrangent à faire revenir les trains en gare et enregistrer sa position avant l'extinction du réseau. Si personne n'y a touché, on le retrouve à la mise en route suivante.

Maintenant, je pense qu'il y a des cas où une identification automatique mais ponctuelle, évidemment (dans la gare caché en effet, ce serait excellent) est un avantage supplémentaire et peut conférer un coté magique au pilotage.

A coté des détecteurs faits pour cela (RFID, codes barres, Railcom) qui nécessitent un ajout de matériel, soit dans le train, soit sur la voie, j'ai testé la corrélation entre les événements de traction (commandes de vitesse DCC) et les événements d'occupation. Donc, sans matériel additionnel. Je constate que cela fonctionne bien, en particulier si les trains ne démarrent pas en même temps et ne sont pas trop près.

Donc ce n'est pas infaillible pour le moment, mais je considère que c'est encourageant.

Bien-entendu je ne manquerai pas de diffuser mes résultats quand j'aurais atteint un niveau de fiabilité acceptable.
Et cela suppose aussi que le logiciel de gestion soit capable de récupérer les événements de traction : là je ne suis pas certain que ce type de rétrosignalisation de traction soit monnaie courante dans les réalisations commerciales. D'où l'interêt du DIY aussi dans ce domaine.

Bien cordialement

Cordialement,
Dominique