Auteur Sujet: Carte détecteur de présence 16 entrées RailCom  (Lu 210 fois)

lebelge2

  • Jr. Member
  • **
  • Messages: 71
    • Voir le profil
Carte détecteur de présence 16 entrées RailCom
« le: novembre 09, 2024, 12:38:57 am »
Bonjour, ma dernière réalisation pour le suivi des trains dotés de la technologie RailCom ou non.
Détection de la présence de matériel roulant par consommation de courant et identification du numéro de loco. sur 16 canaux.

Le détecteur est composé d'une carte fille de chez Olimex  (processeurs Atmel ATXMEGA128A1) et de composants traversants.

C'est un clone du  GBM16T dont les plans, la construction et les fichiers sont libres de droits.

Pour les caractéristiques, je vous renvoie sur le site de l'auteur de la carte originale.
(16 entrées, faible insertion (0,3v), sensibilité ajustable, alimentation par DCC ou séparée, isolation galvanique des masses, etc…)

https://www.opendcc.de/s88/gbm_bidi/gbm_bidi_f.shtml

Je fournis le plan, la liste des composants, le fichier gerber (voir mon Github) ainsi qu’un support pour les interessés de cette réalisation.

https://github.com/Lebelge2/Carte-16-entrees-RailCom


La carte transmet les  rapports d'occupations et détection RailCom via son interface série isolée galvaniquement (9bits, 250.000 bauds)

Les messages peuvent être envoyés sur un logiciel de train tel que : CDM-Rail, JMRI, Rocrail ou LaBox.

La carte fille ATXMEGA128 est fournie sans Bootloader, un programmateur spécifique (PDI) est nécessaire. Voir la doc. (Programmer ATXMEGA128) sur mon Github.


Prix aproximatif des composants de la carte :

PCB carte mère (5 pièces JLCPCB)         5 €
ATXMEGA128 carte fille Olimex         15 €
1 ADUM 1201 (Isolateur magnétique)     1 €
33 diodes 1N5821 (lot de 50)                   4,15 €
32 résistances 1k (lot de 100)                   1,50 €
3 réseaux R1k (lot de 10)                          1,90 €
4 connecteurs mâles 2x10 (lot de 10)        2 €
20 LED 3mm (lot de 100)                         2 €
1 régulateur 7805 (lot de 10)                     1 €
21 borniers pich 5,08 (lot de 30)               3,40 €

Petit matériel
-----------------
1 transistor Mosfet BS170
2 condensateurs 22µF
2 condensateurs 100nF
1 diode Zener 3v3
1 résistance 100  Ohms
1 résistance 10K
1 résistance 20   Ohms 1W
1 Barette pico mâle et femelle 2,54

!!! Remarque :  Les frais de livraisons sont plus chères que le prix des pièces !!!

Démo. avec ce petit script à mettre dans le  void loop()  du  .ino
Affiche dans le moniteur les itinéraires  et numéros des locomotives.


unsigned long crT1 = 0;      // currentTime1
unsigned long pvT1 = 0;     // previousTime1
int DataTemp;
int Data[10];
int NbrData;
int i;

void setup() {   // Dans le setup configurer le sériél
  Serial1.begin(250000, SERIAL_8N1, 13, 14);   // Carte RailCom
//  Serial2.begin(250000, SERIAL_8N1, 15, 17);   // Carte RailCom
}

void loop() {  // A mettre à la fin du loop()

  if (Serial1.available()) {
    DataTemp = (Serial1.read());                 // Lit Data
    crT1 = millis();
    if ((crT1 - pvT1) > 10) {                    // >10ms,  Premier Data
      pvT1 = crT1;
      i = 0;                                     // Init tableau
      NbrData = DataTemp;                        // Nombre de Data dans trame
    }
    Data[i++] = DataTemp;                        // Mémorise les data
    if (i == NbrData + 1) {                      // Tous les Data reçus ?
      if (Data[1] == 2) {                        // Détection RailCom
        Serial.print("Loco n°");   Serial.print(Data[3]);
        if (Data[4] == 0)          Serial.print(" entre dans canton n°");
        else                       Serial.print(" entre à contre sens dans canton n°"); //0x80
        Serial.println(Data[2]+1);
      }
    }
  }
}

Bien à vous.

lebelge2

  • Jr. Member
  • **
  • Messages: 71
    • Voir le profil
Re : Carte détecteur de présence 16 entrées RailCom
« Réponse #1 le: novembre 09, 2024, 12:40:55 am »
Premier essai  de trois cartes 16 entrées RailCom, un Arduino Mega et LaBox.

(Voir image)

( Le Mega possède quatre entrées séries, trois sont programmées en entrées et reçoivent les données (9bits) des trois cartes, la quatrième programmée en sortie envoie les données (8bits) vers LaBox.)

Un nouveau fichier nommé Automat.cpp est ajouté  à LaBox.

Fonctions automate programmable.

Deux fonctions principales.

1)   Gestion des signaux automatiquement en mode 2 ou 3BAL.
             Arrêt des locos. devant un signal rouge
             Redémarrage des locos au signal orange (vitesse réduite) ou vert.

2)   Une loco entrant sur un canton peut déclencher des événements, par ex.:
-   Allumage des feux.  (Entrée tunnel (extinction à la sortie))
-   Modifier sa vitesse, sens  ou arrêt.
-   Changer de position un ou plusieurs aiguillages.
-   Gérer une autre locomotive.

Nombreuses possibilités en vue, sans câblage « type usine à gaz » et matériel coûteux…
 
A suivre…


Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3031
  • 100% Arduino et N
    • Voir le profil
Re : Carte détecteur de présence 16 entrées RailCom
« Réponse #2 le: novembre 09, 2024, 10:27:35 am »
Bravo Lebelge2,

Voilà une belle réalisation bien illustrée qui devrait donc intéresser pas mal de modélistes.

Les photos sont superbes.

Pourrais-tu joindre une schéma de principe d'une installation complète montrant les bloc fonctionnels et les liaisons entre blocs.
On voit bien que les 3 cartes détection présence+railcom sont raccordées à un Méga (qui peut offrir les 3 ports série nécessaires) qui est caché sous LaBox.
On voit bien aussi la carte extension Xpressnet reliée à LaBox.

Pour avoir une vue d'ensemble, ces 2 parties sont-elles reliées ensemble ou seulement à un PC avec un logiciel de train ? Et comment ?

Une version avec le buis Can à la place des ports série pourrait être une évolution future possible qui permettrait de se passer du Mega (ou pas ?).

Encore bravo  ;D
« Modifié: novembre 09, 2024, 10:38:53 am par Dominique »
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 71
    • Voir le profil
Re : Carte détecteur de présence 16 entrées RailCom
« Réponse #3 le: novembre 09, 2024, 02:38:43 pm »
Bonjour Dominique

Pour mon réseau, je n’utilise pas de PC, auparavant c’était un Arduino Uno qui gérait les signaux en 3 Bal et l’arrêt et le redémarrage des trains.
Cela fonctionnait correctement.
Actuellement je transcris le code pour l’ESP32 de LaBox, les premiers essais sont en cours.
Il est possible de remonter les messages d’occupations vers un logiciel PC à condition de connaître le protocol !
Je n’y connais rien en CAN, j’ignore si une transmission en 9 bits 250.000 Bauds est possible !
Ci-joint un schéma bloc de mon installation.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3031
  • 100% Arduino et N
    • Voir le profil
Re : Re : Carte détecteur de présence 16 entrées RailCom
« Réponse #4 le: novembre 09, 2024, 04:23:15 pm »
Je suis dans le même cas : pas de PC ni Mac (une tablette iPad à la rigueur mais je n'aurai pas le temps d'apprendre Swift et la programmer).
Je préfère un gestionnaire qui ne fait que cela, reçoit tous les événements du réseau et commande les trains, les signaux et les aiguilles (voire beaucoup plus comme les animations du réseau). Le seul gestionnaire hors PC que je saurais maitriser et adapter est celui de Pierre59 à configurer dans le code ou en JSON (si ça arrive bientôt).

Le bus CAN est la meilleure solution pour séparer les entités fonctionnelles et réaliser des développements indépendants les uns des autres et j'affirme que ce n'est pas plus compliqué que gérer un port série, et surement avec moins de problèmes :
- tout le protocole CAN est géré dans un contrôleur qui est soit intégré (comme dans l'ESP32 et de plus en plus de circuits) soit extérieur comme le MCP2515 ou 2517FD.
- Il s'interface en bus SPI donc ce qu'il y a de plus rapide avec 3 pins (MISO, MOSI et CLK) + in CS (chip sélect) et une entrée INT interruptions. Donc plusieurs périphériques SPI en // possibles. C'est presque moins que 3 ports série (6 pins).
- le contrôleur contient des tas de buffets d'entrée et de sortie intégrés et il gère intelligemment la présence des autres entités dans le réseau (tu déconnectes un cable, ça s'arrête et l'émetteur est prévenu, tu reconnectes et ça repart.
- les données ne sont jamais perdues (pas comme le serial, qui n'a qu'un seul buffet et en perd souvent, très souvent)
- des cables de liaison n'ont besoin que de 2 fils (on utilise du fil téléphonique en général) et on peut ajouter l'alimentation comme le fait Christophe.
- plus rapides : jusqu'à 1Mb/s et même 8Mb/s en CAN FD (que je n'ai pas essayé). Chaque message CAN peut contenir jusqu'à 8 octets en Can classique (celui qu'on utilise en général) et jusqu'à 64 octets en Can FD
- tu n'es plus limité aux 3 ports série du Mega, le Can supporte plus de 100 entités sur le même bus !
- etc : il y a plein de choses écrites sur le Can dans Locoduino et même le bouquin de Pierre Molinaro qui fournit les bibliothèques.



Je n’y connais rien en CAN, j’ignore si une transmission en 9 bits 250.000 Bauds est possible !
Ci-joint un schéma bloc de mon installation.

Comme indiqué plus haut, ce sont des octets de 8 bits chacun, en messages de 1 à 8 octets qu'on peut combiner de toutes les façons possibles (64 bits)

Il faut essayer le Can avec pratiquement tous les microcontroleurs c'est possible : on en a parlé très souvent.
LaBox supporte le Can sans problème : elle contient déjà un fichier Can prévu pour les commandes Marklin. On peut définir d'autres messages si besoin en plus ou à la place.

Pour démarrer en CAN, le plus simple est de faire un montage de test et d'utiliser les exemples fournis dans la bibliothèque ACAN-ESP32 par exemple, LoopBackDemo pour commencer et vérifier les branchements avec le contrôleur Can. Après tu remplaces le mode LoopBack par le mode Normal et tu branches un autre circuit. Il n'y a qu'un instruction send et une instruction receive : c'est très simple !

En ce moment je fais joujou avec des satellites PICO de Jean-Luc et ça fonctionne très facilement avec un Pico et un MCP2515.


Dis nous si tas as des questions.

« Modifié: novembre 09, 2024, 04:41:54 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3031
  • 100% Arduino et N
    • Voir le profil
Re : Carte détecteur de présence 16 entrées RailCom
« Réponse #5 le: novembre 09, 2024, 07:02:22 pm »
Et merci pour ton schéma d’installation, il est très clair.
Cordialement,
Dominique