Communications entre JMRI et Arduino
Pour piloter votre réseau avec JMRI
Vous répondez à :
Bonjour,
je suis en train d’essayer les solutions de communication entre arduino et jmri, je patine un peu mais je devrais pouvoir m’en sortir même à 68 ans. Concernant JMRi je rejoint Alain, j’ai assuré un grosse partie de la traduction, c’est un travail énorme que je continue, s’il y a d’autres volontaire pas de problème
39 Messages
-
Communications entre JMRI et Arduino 2 janvier 2019 11:55, par FCOT2002
Bonjour Dominique,
Bel article. Mais déjà très (trop) avancé dans l’utilisation de JMRI. Je pense que pour manipuler JMRI à ce niveau il faut déjà être passé par quelques heures à comprendre le fonctionnement de JMRI. Et peut-être commencer par des liens plus "simples" entre JMRI et Arduino.
Pour déterminer la chose je suis passé par du code beaucoup plus simpliste, trouvé sur le site de l’UAICF 58 Nevers. Les aiguilles / itinéraires sont plus simples à paramétrer. Mais ce n’est que pour débuter je le rappelle.
Sinon " via un bus CAN, sans changer la configuration et les réglages de JMRI !" voui évidemment car JMRI cause CAN couramment ;-)
Au plaisir de vous lire
-
voui évidemment car JMRI cause CAN couramment ;-)
Homme de peu de foi :-)
JMRI ne voit que l’Arduino auquel il est connecté par l’USB. C’est Arduino (A) joue le rôle de proxy. Il est relié en CAN a un ensemble d’Arduino (E) distribués sur le réseau. C’est sur ces Arduino que sont implantés les capteurs et/ou les actionneurs. L’Arduino (A) maintient un état des capteurs (lus par JMRI) et un état des actionneurs (écrits par JMRI). Il communique à intervalles réguliers avec les Arduino (E) pour synchroniser les capteurs : les états des capteurs de (E) sont reçus par (A) et mis à disposition de JMRI. Il communique également à intervalles réguliers pour synchroniser les actionneurs. Les états des actionneurs de (A) reçus de JMRI sont diffusés à (E). Rien de plus compliqué. JMRI ne sait pas qu’il y a un système distribué relié par CAN.
-
Oui tout à fait, mais je ne voulait pas rentrer dans les détails, juste faire remarquer que JMRI connait CAN ;-)
Et je n’en ai jamais douté.
Comme évoqué avec Dominique ouvrir cet article pour aborder JMRI me semble audacieux, alors rajouter la couche CAN maintenant...
-
Parfois l’audace est un de nos péchés mignons !!!
-
-
-
D’après la page Réseau Can, je cite :
JMRI fournit les fonctions Capteur et Aiguillage, une fois configuré pour OpenLCB ou CBUS "Events".
JMRI peut connecter aus réseaux CAN de différentes façons :
Via USB
C’est comme dans l’article (je pense).
Réseau TCP/IP
Il est également possible de joindre via une connexion TCP/IP (Ethernet ou WiFi). Cela peut aller dans un autre séquence JMRI en cours d’exécution ex : un hub OpenLCB, ou directement à un adaptateur IP-CAN.
On verra cela peut-être plus tard.
Avec l’Arduino proxy cité par Jean-Luc, on ouvre une porte vers des choses interessantes que nous préparons par ailleurs. Stay tuned !
-
-
Communications entre JMRI et Arduino 2 janvier 2019 17:54, par msport
Merci pour cette nouvelle piste pour l’utilisation d’un ordinateur pour piloter nos réseaux. Peut-être plus conviviale que de créer moult lignes de code.
Une question pour Jean-Luc qui a attiré notre attention sur les problème potentiels quand on alimente un Arduino directement en 5V, ce qui est, sauf erreur, proposé ici.Alimenter directement sur la broche 5V engendre plusieurs problèmes :
1 - vous ne pouvez pas in-situ alimenter et charger un nouveau soft par l’USB sauf si vous avez inséré une diode de protection ...
J’ai grillé quelques Arduino, souvent dans cette configuration (un Arduino en alimente un autre p.e.) mais ce n’était peut-être pas lié.
D’où la question, y a t il des précautions à prendre dans cette configuration où potentiellement on alimente les capteurs par l’Arduino ?
En tout cas au moins une, qui est de ne pas dépasser la limite thermique du régulateur intégré à la carte de l’Arduino si on l’alimente via le VIN.
Sur le shield, il y a un pont PWR_SEL qui permet de séparer l’alimentation des capteurs de celle de l’Arduino, solution certainement à recommander si on a un grand nombre de capteurs.-
J’ai constaté par mesure ohmmètre que si le shield entièrement enfoncé sur ses broches, les points de soudure des picots d’alimentation du shield touchent le connecteur métallique USB. cela crée un court circuit qui grille les résistances derrière le connecteur. Je mets depuis soit une cale plastique soit un gros scotch épais double face pour éviter ce problème.
Sur un site anglais ou américain le défaut est d’ailleurs signalé.
-
-
Communications entre JMRI et Arduino 2 janvier 2019 20:31, par Jean-Luc
Je n’ai pas trouvé le schéma électrique de ce shield. Mais la sérigraphie VCC - GND du bornier d’alimentation semble effectivement indiquer que l’Arduino est alimenté via le 5V. Évidemment il serait préférable que ce sensor shield embarque un régulateur 5V et prenne sont entrée d’alimentation sur VIN. Je recommanderais effectivement d’enlever le jumper situé à côté du bornier d’alimentation.
-
Communications entre JMRI et Arduino - JMRI en français 3 janvier 2019 12:57, par Alain LM
Concernant la traduction française de JMRI, qui est effectivement incomplète, je rappelle que JMRI est un logiciel libre (aux sens ’Open Source’) et gratuit dont les développeurs sont tous bénévoles. S’il y a un noyau dur de bénévoles qui poussent du code de façon quotidienne, il y a également quelques occasionnels comme moi-même qui apportent des contributions de temps en temps.
J’ai ainsi complété la traduction française sur plusieurs fonctionnalités ces derniers jours (ce sera pour la prochaine version), mais il reste encore pas mal de travail. Tout le monde peut contribuer ; pour la traduction, ce n’est pas très compliqué, mais il faut installer l’environnement de développement sur son ordinateur - tout est expliqué sur le site.
Avis aux amateurs !
Il est également possible de faire part de vos commentaires, questions et requêtes (de traduction ou fonctionnalités) sur la liste de discussion des utilisateurs JMRI (en anglais cependant).Voir en ligne : Liste de discussion utilisateurs JMRI
-
Communications entre JMRI et Arduino 3 janvier 2019 13:08, par Alain LM
...(trop) avancé dans l’utilisation de JMRI...
Pour réagir à la première remarque sur cet article, il me semble que l’objectif de ce site n’est pas de parler de JMRI mais bien de l’utilisation de l’Arduino. L’article renvoie aux bonnes références sur JMRI dans l’introduction. C’est peut-être avancé par rapport à d’autres d’article du site, mais il en faut pour tous.
Excellente initiative d’avoir traduit les articles de Geoff Bunza. Pour ceux que l’anglais ne rebute pas, il a publié énormément d’articles et de programmes Arduino pour notre loisir. A découvrir sur MRH.
Voir en ligne : MRH : Model Railroad Hobbyist
-
Communications entre JMRI et Arduino 14 mai 2019 16:38, par Blorec Hervé
Bonjour,
je suis en train d’essayer les solutions de communication entre arduino et jmri, je patine un peu mais je devrais pouvoir m’en sortir même à 68 ans. Concernant JMRi je rejoint Alain, j’ai assuré un grosse partie de la traduction, c’est un travail énorme que je continue, s’il y a d’autres volontaire pas de problème
-
Merci Hervé,
Cela promet de prochains articles passionnants ;)
Cordialement
Dominique
-
-
Communications entre JMRI et Arduino 22 septembre 2019 21:37, par Marchand Patrick
Bonjour,
Je recherche un patch en français, pour le logiciel JMRI 4.17.4. Je ne parle pas l’anglais.
Merci.
Cordialement,-
Bonsoir,
Vous pouvez passer JMRI en français.
j’ai trouvé dans décodeur pro / préférence/ Display/ Locale affichage un menu langue avec le choix du français.
cela marche bien.
-
-
Communications entre JMRI et Arduino 24 septembre 2019 18:24, par msport
La version 4.17.4 est une version test. Est-elle traduite ?
La version de production est la 4.16.
Ayant JMRI 4.10 en français, sans me souvenir l’avoir configuré (pas trouvé dans les préférences), je me demande si c’est lié à la version de Java. Elle est indiquée dans la fenêtre de PanelPro. -
Communications entre JMRI et Arduino 26 septembre 2019 16:42, par luc delchie
Dominique, bonjour,
J’ai réalisé une centrale en utilisant votre article et ceux rattachés à l’utilisation de JMRI / DCC++ etc.
Je me suis appuyé sur vos scripts Python et sketch auduinoun module pour gérer le retour de la présence des trains via une Arduino Mega et des détecteurs de consommation de courant via des optocoupleurs
Le sketck Arduino intègre un filtre numériqueun module pour piloter 8 aiguillages via une Arduino Uno avec le pilotage des aiguillages construit sur des ULN2803A
Comme vous l’indiquiez dans votre article, je souhaiterais gérer les feux de signalisation en utilisant un processus identique à la gestion des aiguillages, soit lire le tableau "feux de signalisation"
J’aurais besoin de votre aide ou des pistes sur la modification du programme correspondant en python
En parallèle, ne sachant pas mettre des pièces jointes dans ce texte, je les ajoute à un article que j’ai ouvert dans le forum
merci
luc-
Luc, cet article est un point de départ pour communiquer entre JMRI et Arduino.
Votre question va plus loin et sort du cadre de cet article. Rejoignez le forum où un dossier est consacré à JMRI. J’y ai déplacé votre question. Les experts JMRI (que je ne suis pas encore) vous répondront probablement.
-
-
Communications entre JMRI et Arduino 2 janvier 2020 20:37, par Martinot Alain
Bonjour, je suis conquis par le projet DCC Arduino pour piloter mon réseau. Je rencontre un petit soucis pour faire fonctionner ma carte Mega : elle se connecte bien au soft JMRI, il m’indique qu’elle est connectée sur le port com4. J’ai bien modifié le port(dans Notepad++) avant de lancer le script dans JMRI mais mes capteur reste ’inconnu’ ? J’ai essayé dans l’autre sens (aiguillage), çà fait pareil.Je sèche un peu, j’ai essayé via un autre port et même un autre pc. Merci de m’éclairer SVP.
-
Communications entre JMRI et Arduino 2 janvier 2020 23:12, par msport
-
Communications entre JMRI et Arduino 16 janvier 2020 22:46, par Jean-Pierre Delwasse
Bonjour Dominique. Merci pour cet excellent article. Je suis membre de l’AMFL et nous sommes en train de moderniser notre réseau N. Comme ce réseau est modulaire, la spécialisation des arduinos pour les entrées et sorties ne sera pas applicable. Nous souhaiterions plutôt avoir sous chaque module un arduino multi-fonctions qui gère à la fois les entrées et les sorties et intègre la logique de traitement des commandes (sorties). Est-ce faisable ? Merci de votre attention.
-
Communications entre JMRI et Arduino 17 janvier 2020 09:56, par Dominique
Bonjour,
la série d’articles La carte Satellite V1 (1) ne répond-elle pas à votre question ?
-
Merci de votre réponse Dominique. J’avais déjà pris connaissance de cet article, mais à mon avis cette solution ne peut être mise entre les mains d’un club dont 95 % des membres maîtrisent à peine les notions d’électricité. Son architecture est parfaite mais il faut une mise en œuvre plus simple.
Nous voulons simplement faire ce que vous avez décrit dans votre réponse ci-dessus commençant par ’Homme de peu de foi !’. Donc, dans mon esprit, il s’agit seulement d’intégrer les deux sketches de Geoff Bunza dans un même Arduino en limitant les tableaux d’aiguillages et de capteurs aux tricts besoins locaux... Comme je ne suis pas un expert programmation Arduino, ma question était : peut-on le faire ?
Bonne fin de journée.-
Bonsoir Jean-Pierre,
Je vous donne la même réponse que j’ai donnée précédemment : Le forum de l’article n’est pas le meilleur endroit pour entrer dans les détails de JMRI. Merci de poser votre question sur le forum http://forum.locoduino.org/index.ph.... Il y a des utilisateurs expérimentés de JMRI !
-
J’hésitais à vous relancer Dominique, je ne voulais pas abuser, mais ma question (je me suis peut-être mal exprimé) ne concernait pas JMRI que je connais sur le bout des doigts, l’utilisant depuis près de dix ans avec CMRI, mais bien Arduino... Vais-je devoir utiliser deux arduinos par module, un pour les entrées et un pour les sorties avec deux ports USB et deux réseaux Can, où puis-je fusionner la recette de Geoff Bunza dans un arduino pour les entrées et sorties de chaque module sur un réseau unifié ? Je cherche à faire de façon plus économique ce que l’on pourrait faire très facilement avec des Smini CMRI distribués reliés par un réseau RS485...
-
Je ne sais pas vous répondre mais vous aurez plus de chance de trouver de l’aide sur le forum que je vous ai indiqué.
-
-
-
-
-
Communications entre JMRI et Arduino 17 janvier 2020 12:03, par CLB89
Bonjour à vous,
Novice dans JMRI je m’essaye à sa mise en oeuvre à partir de votre excellent article "Communications entre JMRI et Arduino", section Aiguillage. Tout marche très bien pour la création du tableau d’aiguillages, mais le script TurnoutDataTransfer.py ne s’exécute pas correctement : je retrouve dans le log session de JMRI l’information suivante :
"
Caused by : Traceback (most recent call last) :
File "<script>", line 22, in <module>
NameError : global name ’extportin’ is not defined
"
La ligne 22 correspond bien au source du script TurnoutDataTransfer.py
J’utilise les dernières versions de JMRI et de java à savoir : PanelPro 4.18+R37ad3d0
et Java version 1.8.0_231(en).
<p>Pourriez vous m’aider !</p> -
Communications entre JMRI et Arduino 17 janvier 2020 14:16, par Dominique
Le forum de l’article n’est pas le meilleur endroit pour entrer dans les détails de JMRI. Merci de poser votre question sur le forum http://forum.locoduino.org/index.ph...
-
Communications entre JMRI et Arduino 27 juin 2020 20:45, par Jean-Pierre Delwasse
Cela fait deux mois que je galère avec les routines en Jython à partir de celles de Geoff Bunza, puis, en revenant sur le site de JMRI, sous la rubrique Connexion avec Arduino, j’ai trouvé la possibilité de simuler une connexion CMRI à travars un lien USB. Il s’agit seulement de charger un simulateur CMRI dans l’Arduino de commande ou de tête de réseau ! Le principe de CMRI est simple : on envoie une adresse à partir de la table des lumières avec un bit on ou off et on reçoit une adresse de la table des censeurs avec un bit on ou off. En simulant une Susic on a accès à 2048 adresses (et beaucoup plus si on utilise plusieurs nœuds)... C’est simple, c’est direct ! Sur le réseau N de l’AMFL, on a besoin d’environ 500 adresses pour les occupations, la rétro des aiguillages, la commande des aiguillages, la commande des relais pour les sources d’alimentation (Dcc + trois sources analogiques), la signalisation et l’info sur les manettes de commande des trains en analogique.
Relaxez, ça marche...Voir en ligne : https://www.jmri.org/help/en/html/h...
-
Merci Jean-Pierre,
Voilà un exemple concret de réalisation qui serait le bienvenu sur le Forum Locoduino (un sujet à créer comme : "Le réseau N de l’AMFL, un exemple de gestion de réseau avec JMRI et C/MRI sur Arduino" dans la rubrique JMRI et Arduino. Ce serait une manière de présenter les nombreux éléments du réseau N de l’AMFL et surtout comment les ingrédients sont asociés dans l’Arduino, les périphériques et les communications. Pour finir : quelques écrans de pilotage sur JMRI pour voir ce que ça donne (et envie d’aller voir ce réseau à Lyon (voir lien). Promis, j’y passerai à l’un de mes prochains passages à Lyon.
Quelle bibliothèque as-tu utilisé ?
La connexion avec l’Arduino passe-t-elle par du RS485 ?
N’hésites pas à me demander de l’aide pour ce fil du forum ;).Voir en ligne : https://www.amfl.fr/reseaux/modulaire-N
-
Merci Dominque. Tu seras certainement le bienvenu à l’AMFL lors de ton prochain passage à Lyon. Préviens-moi quelques jours d’avance pour que je m’assure que les principaux animateurs de notre solution soient présents.
La communication entre l’ordinateur et le réseau (CAN) d’arduinos se fait le plus simplement du monde à l’aide du connecteur USB de l’arduino de tête de réseau. Cet arduino utilise un simulateur CMRI créé par Michael D K Adams et que l’on peut télécharger, avec des exemples d’utilisation à l’adresse
https://github.com/madleech/Arduino...
Nous avons encore un peu de travail à faire avant de publier nos résultats, mais nous pourrons faire cela au début de l’automne, je pense.
Bon été à tous les arduinistes...
-
-
-
Communications entre JMRI et Arduino 20 mai 2021 10:26, par Quinot
Bonjour ;
Encore un article passionnant !
L’article annoncé à la fin (déport des cartes arduino sur un bus CAN) est-il paru ? Je ne le trouve pas...
Je l’attends avec impatience ! La boucle sera bouclée (JMRI -> DCC -> CAN -> signalisation -> rétro-signalisation -> CAN -> JMRI)
Cordialement
Claude -
Communications entre JMRI et Arduino 20 mai 2021 22:22, par msport
Bonjour,
la série d’articles La carte Satellite V1 ne répondrait-elle pas à votre question ?
Cordialement-
Certes, la carte satellite V1 permet de connecter SAM aux satellites via le bus CAN. Cependant, l’interface avec JMRI n’est pas abordé...
J’espérais avoir ce lien lorsque vous écriviez : "Dans un prochain article nous vous présenterons une manière de déporter les broches de lecture de détecteurs ou de sortie vers des actionneurs, via un bus CAN, sans changer la configuration et les réglages de JMRI !"
Aujourd’hui, nous avons un lien entre JMRI et une carte Arduino (votre article), un lien entre des satellites et SAM via le bus CAN (article satellite V1), mais pas la chaine totale entre JMRI, SAM et des satellites.
Ceci dit, vos articles sont passionnants !
-
-
Communications entre JMRI et Arduino 3 juin 2021 14:46, par Dominique
Merci pour vos compliments. Mais auriez-vous quelque chose à proposer, à partager et à discuter entre nous ?
Voir le forum : http://forum.locoduino.org/index.ph... -
Communications entre JMRI et Arduino 4 juillet 2021 21:35, par titi
bonjour
après avoir suivi les explications
cela ne fonctionne pas
dans le moniteur série j’ai bien s2rie de A
je suis sur le port 5
j’ai bien mes 68 capteur je lance le script scan
et rien ce passe
j’ ai rèinstaler jmri
et toujours rien
une idée ? par avance merci -
Communications entre JMRI et Arduino 5 juillet 2021 10:35, par Grosminet
Je crains que vous n’ayez pas été très loin dans le détail ... qui renvoie vers le forum, meilleur endroit pour bénéficier d’un dépannage. Voir sur le forum
-
Communications entre JMRI et Arduino 3 février 2022 15:21, par Olivier CASSE
Bonjour,
il faut saisir "AR :" (je suis sous Windows), en ouvrant la console JMRI (Aide / Console système) j’obtenais des erreurs "AR:n NotAvailable" qui m’ont mis sur la voie...
Les coquilles :
1) Dans l’espace Nom d’utilisateur, mettez simplement AR ; // => AR :
2) Supprimez maintenant les entrées IS0 et IS1 AR:0 et AR:1, car nous ne les utiliserons pas. Vous devez maintenant avoir 68 capteurs dans le tableau avec les noms d’utilisateur IS2 à IS68 AR:2 à AR:68.si ca peut aider a d’autres pour ne pas chercher d’ou vient un potentiel problème...sur un article que je trouve très utile, merci !
Olivier
-
Communications entre JMRI et Arduino 3 février 2022 15:23, par Olivier CASSE
Il y avait je pense confusion entre Nom Système (ISn) et Utilisateur (AR:n) !
Olivier -
Communications entre JMRI et Arduino 9 février 20:30, par Pierre34
Bonsoir,
Je poursuis, grâce à vous,mon apprentissage sur JMRI et ma première centrale DCC. Je suis sur Macbook Pro OS Mojave.Avec DecodeurPro pas de soucis les locomotives avancent.
Avec Panel pro, je dessine un réseau, avec aiguillages et capteurs et je crée des itinéraires.
Je voudrai maintenant rendre actifs les capteurs et envoyer des ordres depuis JMRI
Pour la partie deux de ce projet, cela fonctionne, mais je me heurte à un os sur la partie une.
J’ai recommencé une bonne dizaine de fois en désinstallant et réinstallant JMRI par sureté mais toujours le même résultat.Dans les fichiers Sensor_Scan.py et SensorSerialClose.py je rentre l’adresse /dev/cu.wchusbserial1410 comme dans le fichier TurnoutDataTransfer.py
Je suis scrupuleusement l’ordre des commandes comme indiqué dans le mode opératoire
Mais quand le lance le script les capteurs restent à l’état inconnu.
Alors que dans le cas des aiguilles (deuxième partie) elles s’initialisent bien. J’arrive donc bien à lancer un script.La console système semble pourtant dire que tout se passe bien à l’ouverture de panel pro, au chargement de la table, l’arduino et son shield clignote lorsque je lance le script ce qui semble confirmer qu’il y a bien communication entre JMRI et l’arduino.
Voici les dernières lignes de la console :
19:57:25,116 apps.PanelPro.PanelPro INFO - Main initialization done [main]
19:59:24,322 jmri.configurexml.LoadXmlConfigAction INFO - Loading selected file : /Users/Pierre/Library/Preferences/JMRI/Mon_Réseau_JMRI.jmri/Essai_Capteurs.xml [AWT-EventQueue-0]
19:59:34,524 jmri.jmrit.audio.JoalAudioFactory INFO - Initialised JOAL using OpenAL : vendor - OpenAL Community version - 1.1 ALSOFT 1.23.1 [Listed Table Generation]Et voici les premières lignes quand le lance le script de cloture :
20:24:16,163 jmri.jmrit.automat.AbstractAutomaton WARN - Unexpected Exception ends AbstractAutomaton thread [SerialSensorMux script]
org.python.core.PyException : java.io.IOException : java.io.IOException : Stream Closed
at org.python.core.Py.JavaError(Py.java:547) [jython-standalone-2.7.2.jar:2.7.2]
at org.python.core.PyObject._jthrow(PyObject.java:3593) [jython-standalone-2.7.2.jar:2.7.2]Je n’arrive pas à comprendre ce qui ne marche pas. Pourriez vous m’aider ? Je n ’ai pas trouvé de solution dans le forum.