Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Chris

Pages: [1] 2
1
Les réseaux / Re : Projet Chris
« le: octobre 17, 2023, 01:49:16 pm »
Un petite présentation de mon TCO
Voilà des photos de mon TCO et du circuit  de commande.
La partie gauche représente le niveau bas du réseau et la partie droite le niveau haut (gare principale).
Les options choisies étaient d'utiliser des poussoirs plutôt que des interrupteurs afin de permettre au gestionnaire de changer les positions des aiguillages automatiquement, sans que les leds soient en incohérence avec les interrupteurs.
des leds jaunes matérialisent les positions des aiguillages, des leds bleues pour les occupations de zones.

Ayant été échaudé par mon réseau initialement non démontable, j'ai en permanence en tête le souci de pouvoir dépanner avec le minimum d'intervention ; toutes les leds sont donc branchées sans soudure  (j'ai utilisé pour ça des pattes de support tulipe).

Pour le circuit de commande , j'ai fait avec ce que j'avais sous la main :
 - des 74ls374 reliés à des ULN2803. (tous les circuits sont sur support)

Ce qui donne :
 - une matrice 3x7 poussoirs + 1 (22 aiguillages)
 - un bus de donnée 8 bits + 7 Chip Select pour les 7 buffers de commande des leds (soit 56 leds).

En tout 26 pins de l'Arduino 1 qui gère le TCO (et prend aussi en charge 10 capteurs de passage).

Bon, à l’intérieur c'est un peu le plat de nouilles ::), je le reprendrai plus tard.

J'aime beaucoup celui de Dominique et je pense que je le referai dans ce sens ( dessin de CDM rail je présume, en couleur avec des zones bien définies et des leds mieux placées) en conservant mes poussoirs et optimisant lr cablage...


2
Les réseaux / Re : Projet Chris
« le: octobre 16, 2023, 02:54:57 pm »
Merci Christophe pour ta réponse.
Pour illustrer le développement de mon réseau, voilà les photos de mes 3 modules assemblés, dans leur état actuel.
Je reviendrai plus en détail sur mes différents choix,et réalisations,... et aussi sur mes interrogations pour la suite.  ;)

3
Présentez vous ! / Présentation Chris
« le: octobre 16, 2023, 11:33:09 am »
Bonjour à tous,
Je n'étais pas encore passé par la case présentation...
Donc, voilà, je m'appelle Christian, ancien ingénieur en informatique, je vais sur mes 70 ans  :( et retraité depuis 7 ans, j'ai repris mon réseau N qui stagnais depuis plusieurs décennies à la cave ou au grenier.
Ce n'était qu'un début, en voie Peco, avec des moteurs d'aiguillage à impulsion, destiné à fonctionner en analogique, mal maitrisé avec des coupures partout pour créer des cantons.
Construit au départ en un seul bloc de 3,5  X 1,5 m pas du tout aux normes des modules j'ai dû le tronçonner en 3 pour le stocker.
Et puis  qui dit retraite dit plus de temps, et la technologie ayant beaucoup évoluée, avec la découverte de l'Arduino et de Locoduino j''ai repris tout ça :
 - Remontage du réseau,
 - Suppression des coupures,(autant que possible)
 - motorisation des aiguillages par Servos,
 - Passage au numérique avec 4 Arduinos Mega pour commander le réseau,
 - Réalisation d'un TCO,
 - Manette de commande  par télécommande IR,
 - Gestionnaire en C++ (issu des articles Locoduino).

Voilà, j'en suis là et mes trains ne circulent pas encore... j'ai encore à réaliser le lien entre le gestionnaire et la centrale DCC++ issue aussi de Locoduino.

J'ai commencé à décrire mon réseau sur le forum " Les réseaux/Projet de Chris" (https://forum.locoduino.org/index.php?topic=1604.0=

Voilà... En tout cas, un grand MERCI à Locoduino et à tous ses animateurs et membres pour ce Site Magnifique !

Cordialement

4
Les réseaux / Re : Projet Chris
« le: octobre 10, 2023, 02:25:31 pm »
Tout en développant ma configuration  JMRI / CMRI, j'ai continué à explorer Locoduino, un source inépuisable d'idées, d’expérience et d'articles d'une grande efficacité.
Et me voilà reparti sur une autre configuration avec pour base les articles suivants :
 1 - Réalisation de centrales DCC avec le logiciel libre DCC++  ( https://www.locoduino.org/spip.php?article182 )
 2 - Contrôleur à télécommande infrarouge pour centrale DCC++ ( https://www.locoduino.org/spip.php?article200 )
 3 - La bibliothèque ACAN ( https://www.locoduino.org/spip.php?article268 )
 4 - Étude d’un passage à niveau multivoies ( https://www.locoduino.org/spip.php?article145 )
5 - Un gestionnaire en C++ pour votre réseau ( https://www.locoduino.org/spip.php?article154 )
et bien d'autres encore...

Je suis donc passé à la configuration ci-dessous :
4 Arduinos Mega répartis aux 4 coins du réseau, reliés entre eux par un bus CAN et gérant chacun une partie du réseau (Capteurs, aiguillages, éclairages, ...) et aillant chacun une spécificité :
 - Arduino 1 : Gestion du TCO ( poussoirs et leds )
 - Arduino 2 : Gestion des trains ( Centrale DCC++)
 - Arduino 3 : Gestion  à préciser (signalisation ?)
 - Arduino 4 : Gestionnaire général ( Zones, itinéraires,...)

à cela s'ajoute un Arduino Uno  constituant la réception des commandes IR d'une télécommande TV et transmettant ces commandes à l'Arduino 2

Voilà. A suivre  d'autres détails  ;) :D

5
Les réseaux / Re : Projet Chris
« le: octobre 08, 2023, 04:06:46 pm »
Bonjour et merci pour l'accueil et les encouragements.
Je vais essayer de présenter en détail sur ce fil, ma démarche, mes tentatives et revirements  ;)
Dans un premier temps, j'ai étudié attentivement l'article de janvier 2019 de Dominique "Communication entre JMRI et Arduino"
(https://www.locoduino.org/spip.php?article240 ).
Puis divers articles et la documentation de  JMRI et CMRI m'ont convaincu d'essayer cette méthode pour piloter mon réseau.

Les schémas ci-dessous montrent l'organisation que j'avais choisie : 3 Arduinos Méga avec un gestionnaire sur PC  sous JMRI et CMRI.

          - un Arduino prenant en charge le TCO
          - un Arduino prenant en charge la commande des trains avec DCC++
          - un Arduino prenant en charge une partie des capteurs, aiguillages et signalisation.

Chaque carte Arduino pouvant être considérée comme un nœud CMRI avec un nombre quasi infini d'entrées sorties de JMRI.
Chacun d'entre eux avait aussi è gerer une partie des capteurs, des aiguillages etc... en fonction de sa position par rapport au réseau.

J'ai testé et ça fonctionne très bien.

Deux inconvénients, cependant :
 - j'étais relié à mon PC (bien que cela puisse être évité apparement avec WiThrottle)
 - La construction du gestionnaire demandait de définir un grand nombre de règles sous JMRI (mais Cependant, pour qui veut s'en donner la peine JMRI est très puissant, mais il faut jongler entre les variables d'Entrée, Interne et de Sortie...).

6
Les réseaux / Re : Projet Chris
« le: octobre 06, 2023, 07:45:14 pm »
Pour compléter voila une première photo de son état l'an dernier.

7
Les réseaux / Projet Chris
« le: octobre 06, 2023, 06:05:28 pm »
Ça y est, je me lance !
ça fait plusieurs années (depuis ma retraite c'est à dire au moins 4 ans) que j'ai repris mon réseau initié quand j'étais ado et abandonné, remisé dans un garage puis au grenier. Ce réseau réalisé partiellement au début en un seul bloc, j'ai dû pour le stocker, le couper en 3 morceaux  ! j'aurais peut-être dû le recommencer mais je l'ai repris tel quel.
Je ne vous dit pas la galère... refaire toutes les jonctions entre les 3 partie, etla volonté de passer au numérique qui n'était que naissant au moment de sa création.
Le schéma vous montre les 3 modules avec en bleu le niveau inférieur et en rouge le niveau supérieur.
C'est un réseau bien imparfait mais bon, j"essaye de faire au mieux avec...
C'est ma découverte de l'Arduino et de Locoduino qui m'ont entrain" dans cette entreprise .
Après avoirlu beaucoup des articles de Locoduino j j'ai pas mal avancé mais il reste beaucoup à faire et je pense que vos conseils et suggestion me seront très utiles.

8
JMRI et Arduino / Re : Communication JMRI/ARduino
« le: décembre 15, 2020, 02:55:14 pm »
Je vais étudier ça  :)

Cordialement
Christian

9
JMRI et Arduino / Re : Communication JMRI/ARduino
« le: décembre 13, 2020, 10:11:23 pm »
Finalement j'ai essayé C/MRI et... l'essayer c'est l'adopter  :D

10
JMRI et Arduino / Re : Communication JMRI/ARduino
« le: décembre 12, 2020, 11:29:17 am »
Bonjour,
après avoir résolu mes problèmes précédents, je me pose une nouvelle question :

JMRI peut il gérer un port série en entré et sortie en même temps ?
Je m'explique :
je voudrais connecter JMRI à mon arduino pour lire les ILS et transmettre les infos à JMRI qui en retour modifiera la position des aiguillages.
Autrement dit, faire en un seul script ce que font de façon séparée les 2 scripts SensorScan et TurnOutScan...
Existe-t-il un script qui gérerait les 2?

Cordialement


11
JMRI et Arduino / Re : JMRI
« le: septembre 18, 2020, 04:25:10 pm »
Bonjour et merci pour vos tentatives de réponse,
j'ai fini par trouver la raison de mon problème dont je vous fais part... ça peut aider d'autres novices comme moi sur l'arduino, et JMRI.

Alors voilà :
 - J'ai bien configuré ma liaison série dans l'arduino en COM6 et 115200 bauds
 - même chose dans le script Sensor_Scan.py pour JMRI

Mais comme j'ai utilisé  PanelPro pour essayer de commander mes locos, j'avais configuré ce dernier en mode DCC++ sur le port série.
Du coup, en ajoutant mon tableau de capteurs en Internal comme précisé dans l'article de Dominique,
 le script Sensor_Scan.py trouvait toujours le port occupé pour le DCC

La solution est finalement évidente : On ne peut visiblement pas faire les 2 en même temps.
Et en désactivant la liaison DCC++, ça marche ! :D :D :D
(A une exception prêt cependant : le script s'attend à gérer des capteurs dénommés "AR:" et non "AR", mais cela a déjà été signalé par ailleurs me semble-t-il)
Voilà.
Donc moi qui voulais utilisé un arduino pour les entrées capteurs et un pour les commandes d'aiguilles+ train, je vais devoir revoir mon schéma.
Peut-être comme suit :
JMRI en gestionnaire sur 2 ports USB relié à 2 arduino :
L'un transmettant les détections, et autres E/S en internal et l'autre en DCC pour les sorties Trains et Aiguillages

Cordialement

12
JMRI et Arduino / Re : JMRI
« le: septembre 16, 2020, 09:33:05 pm »
Le script est le suivant : sensor_scan.py :

# Capture Sensor Data from an Arduino Serial Transmission
# In the form: Character "A" followed by
# 1 byte: bit 7 Sensor ON/OFF bit 6-0 sensor # 1-127
# Author: Geoff Bunza 2018 based in part on a script by
# Bob Jacobsen as part of the JMRI distribution
# Version 1.2
# An Automat object to create a separate thread
# that can sit there, waiting for each character to arrive

import jarray
import jmri
import purejavacomm

class SerialSensorMux(jmri.jmrit.automat.AbstractAutomaton) :
    # ctor starts up the serial port
    def __init__(self, portname) :
        global extport
        self.portID = purejavacomm.CommPortIdentifier.getPortIdentifier(portname)
   try:
            self.port = self.portID.open("JMRI", 50)
        except purejavacomm.PortInUseException:
            self.port = extport
        extport = self.port
        # set options on port
        baudrate = 115200
        self.port.setSerialPortParams(baudrate,
            purejavacomm.SerialPort.DATABITS_8,
            purejavacomm.SerialPort.STOPBITS_1,
            purejavacomm.SerialPort.PARITY_NONE)
        # Anticipate the Port Opening will restart the Arduino
        # Uncomment the following line for use on RPi You may need to fiddle with the 2000
        # msec delay this works on my RPi 3 B+
        #self.waitMsec(2000)
      # get I/O connections for later
        self.inputStream = self.port.getInputStream()
        self.outputStream = self.port.getOutputStream()
        return

    # init() is the place for your initialization
    def init(self) :
        return

    # handle() is called repeatedly until it returns false.
    def handle(self) :
        global ttest
        if ttest == 1 :
                self.outputStream.write('!')
                self.outputStream.write('!')
                self.outputStream.write('!')
                self.outputStream.write(0x0D)
                ttest = 0
        # get next character   
        if self.inputStream.read() != 65 :
                return 1
        sensor_num = self.inputStream.read()
        sensor_state = ( sensor_num>>7 ) & 1
        sensor_num = sensor_num & 0x7f
        mesg = "AR:%d" % (sensor_num)
        if sensor_num == 1 and sensor_state == 1 :
            print "Sensor Read Ends"
            self.inputStream.close()
            self.outputStream.close()
            self.port.close()
            return 0
        s = sensors.getByUserName( mesg )
        if s is None :
                print mesg, " Not Available"
                return 1
        if sensor_state == 1 :
                s.setKnownState(ACTIVE)
        if sensor_state == 0 :
                s.setKnownState(INACTIVE)

        return 1    # to continue 0 to Kill Script

    def write(self, data) :
        # now send
        self.outputStream.write(data)
        return

    def flush(self) :
        self.outputStream.flush()
        return
ttest=1
# create one of these; provide the name of the serial port
a = SerialSensorMux("COM6")

# set the thread name, so easy to cancel if needed
a.setName("SerialSensorMux script")

# start running
a.start();

# setup  complete
a.flush()


la ligne
 "self.portID = purejavacomm.CommPortIdentifier.getPortIdentifier(portname)"

récupère un identifiant du port série portname (ici COM6) pour ensuite ouvrir le port par un open, mais ne le trouve pas (enfin me semble-t-il) d'où le extport non défini.
Mais je ne comprends pas pourquoi... l'arduino communique bien avec mon ordi via ce port puisque je peux televerser le sketch.
Je fais le test de communication entre JMRI et Arduino en lecture de capteurs.
De l'article "Communications entre JMRI et Arduino"

13
JMRI et Arduino / Re : JMRI
« le: septembre 16, 2020, 04:16:57 pm »
C'est bien extport (port externe) qu'il y a dans le script .
Pourtant j'ai bien mis mon port "COM6" identifié par l'arduino dans la ligne voulue.

14
JMRI et Arduino / Re : Communication JMRI/ARduino
« le: septembre 15, 2020, 06:44:53 pm »
Bonjour,
impossible de faire fonctionner les scripts, tout le reste fonctionne, mais dans la console système de JMRI j'ai le message suivant :

2020-09-15 18:17:16,288 jython.RunJythonScript                ERROR - Unable to execute script. [AWT-EventQueue-0]
javax.script.ScriptException: NameError: global name 'extport' is not defined in <script> at line number 86
....
....
Caused by: Traceback (most recent call last):
  File "<script>", line 86, in <module>
  File "<script>", line 22, in __init__
NameError: global name 'extport' is not defined

Ne connaissant pas JavaScript, je suis incapable d'en déduire quelque chose.
j'ai bien mis mon port "COM6" partout,
la même vitesse, toutes les opérations dans l'ordre, rien n'y fait.
Merci d'avance pour vos lumières.

15
JMRI et Arduino / Re : JMRI
« le: septembre 15, 2020, 06:26:27 pm »
Bonjour,
impossible de daire fonctionner les scripts, tout le reste fonctionne, mais dans la console système de JMRI j'ai le message suivant :

2020-09-15 18:17:16,288 jython.RunJythonScript                ERROR - Unable to execute script. [AWT-EventQueue-0]
javax.script.ScriptException: NameError: global name 'extport' is not defined in <script> at line number 86
....
....
Caused by: Traceback (most recent call last):
  File "<script>", line 86, in <module>
  File "<script>", line 22, in __init__
NameError: global name 'extport' is not defined

Ne connaissant pas JavaScript, je suis incapable d'en déduire quelque chose.
j'ai bien mis mon port "COM6" partout,
la même vitesse, toutes les opérations dans l'ordre, rien n'y fait.
Merci d'avance pour vos lumières.

Pages: [1] 2