Auteur Sujet: Projet Sokaris Rocrail Arduino (suite)  (Lu 2926 fois)

Sokaris83

  • Newbie
  • *
  • Messages: 5
  • Arduino Rocrail N
    • Voir le profil
Projet Sokaris Rocrail Arduino (suite)
« le: mars 16, 2022, 11:27:03 pm »
Bonjour a tous,

Mon projet décrit dans le forum « les réseaux » en janvier 2018 avance à petits pas.
J’utilise bien RocRail pour la gestion du réseau et le TCO mais je crée ma centrale de communication entre les actionneurs et les capteurs avec du matériel Arduino que j’ai appelé RasciiStation. Je garde le DCC avec la centrale Arduino sur une carte UNO pour le matériel roulant. Je travaille depuis quelques mois à développer mon système RasciiStation pour communiquer avec Rocrail en utilisant le protocole Rascii. Cette configuration matériel me permet d’utiliser des cartes relais avec l’Arduino pour commander les actionneurs (comme les aiguilles) utilisant des tensions supérieures à 5V sans être obligé d’utiliser, comme je l’ai essayé, des décodeur d’aiguilles du style WD34. Comme j’ai acheté une carte je l’ai quand même intégrée.
L’étude de système RasciiStation est donc en cours et sa documentation aussi. J’essaie de m’appuyer sur le formalisme UML Je la posterai dès quelle me paraîtra suffisamment claire, je ne suis pas un grand rédacteur !
Mon cahier des charges est le suivant :
    • On utilise la langage C++ avec les librairies Arduino.
    • L’application RocRail® effectue toute la gestion du circuit ferroviaire ( appelée aussi maquette). Elle communique avec le système par deux liaisons série (USB). Ce système, appelé MONTRAIN , comprend 2 sous-ensembles, un utilisant le protocole DCCpp1 et l’autre RASCII .
    • Le circuit ferroviaire communique les données concernant les capteurs aux cartes esclaves et à la carte maître du sous-système .
    • RocRail® envoie les commandes (aiguilles, feux, et autres) à ce même sous-système .
    • Le circuit de traction est en DCCpp réalisé par un Arduino UNO qui est connecté à RocRail® par une liaison série (USB), c’est le sous-système DccStation.
    • Une particularité pour 4 aiguilles (à déterminer) : elles sont pilotées par un décodeur DCC WD34. Les commandes de ces aiguilles sont donc envoyées par le courant de traction (DCCpp) et gérées par le programme DCCpp.Uno  de DccStation.
    • Les cartes esclaves sont en liaison I2C . Ces cartes peuvent être des Arduino UNO ou Arduino Mega2560. Chaque carte qui commande des appareils de voie utilise des cartes relais comme interface (les commandes sont en 5V et les moteurs d’appareil de voie en 12 à 16V).
    • Système RasciiCodeco : modules créés par mes soins. Il comprend une partie pour la carte maître et une pour les cartes esclaves.
La librairie RASCII comprend 2 fichiers (RASCII.cpp et RASCII.h) téléchargés sur le site de : https://gitlab.com/rocrail/Arduino/tree/master/libraries/RASCII.
    • Une interface permet de suivre les messages provenant ou a destination de RasciiStation sur un écran LCD comportant 2 lignes de 16 caractères.
    • En option : ces messages peuvent apparaître sur l’application RocRail® .
    • Le système comporte plusieurs cartes. Le même programme doit être utilisé pour toutes les cartes. Un numéro de carte permet de distinguer le comportement du programme pour chaque carte.
    • C’est dans l’application RocRail® que toutes les adresses sont configurées. RasciiStation est chargé de mettre à jour les adresses utilisées et de quelles façons (appareils de voies, retro-signalisation, autres…) elles sont utilisées.

En ce qui concerne les détecteurs d’occupation j’ai choisi le schéma de détecteurs d'occupation en DCC (train35.fr) avec détection par consommation de courant.

Images ajoutées :
- ConfigurationMateriel.jpg (réalisé avec LibreOffice Writer)
- DeploiementMontrain.jpg (réalisé avec Drawio sousVisual Studio Code et converti par Paint)
- LesliaisonCom.jpg (réalisé avec Drawio sousVisual Studio Code et converti par Paint)
- detecteurOCC.jpg (réalisé avec KiCAD)

Toutes les critiques et corrections sont bonnes !
Merci
A bientôt.





La vrai connaissance est de connaître l'étendue de son ignorance (Confucius).