Rétro-signalisation sans S88

Rétro-signalisation sans S88

Messagepar Conchito » 07 Mai 2019, 17:24

Bonjour,

Je compte utiliser ma centrale "Maison" à base d'Arduino Méga, DCCpp et booster 18200, pour piloter mon réseau et servir d'interface pour CDM-Rail.
Pour la partie commande des locos, pas trop de soucis ... L'interface DCC++ existe et fonctionne.
Par contre la rétro-signalisation est faite avec des cartes de détection ArCoMoRa fournissant des états logiques en fonction de l'occupation des zones. Ces états logiques sont récupérés par les entrées digitales de l'Arduino Méga. Comment puis-je utiliser l'état de ces entrées pour les remonter à CDM-Rail ? Sans nul doute par la liaison série USB, mais quel est le protocole à utiliser ? Quels sont les trames que CDM-Rail s'attend à recevoir ?
Une fois que CDM-Rail connaîtra l'état d'occupation des zones, je pourrai faire du pilotage automatique, avec itinéraires et tout et tout ...
Quelqu'un peut m'aider sur le protocole d'échange pour mettre en place la rétro-signalisation ?

Merci d'avance.
Conchito
 
Messages: 5
Inscrit le: 27 Avril 2019, 23:02

Re: Rétro-signalisation sans S88

Messagepar Xavier » 07 Mai 2019, 18:12

bonjour,

Je te propose de regarder le fil Dcc++.
J'ai en effet modifié le sketch de DCC++ pour lui ajouter le S88, JP et msport ont développé la dll et fait les test avec CDM-Rail. Tu trouveras de quoi le charger en page 16 de ce fil.

Quand tu parles d'ArCoMora, je suppose que c'est en particulier du sketch Arloco, donc du protocole LocoNet®. As tu des détails sur ce protocole?
A mon avis, cela passerait obligatoirement par des modifications du sketch Dcc++.

Amicalement,
Echelle N , Run depuis le 01/01/2013
Centrale NanoX/Roco + GenLiS88, Dcc++, Décodeurs Accessoires à base d'Arduino
Rétrosignalisation LDT RM-GB-8-N-B, Décodeur d'aiguillage LDT M-DEC-DC-B, Moteurs Conrad 219998
Club; AMFBC 73
Xavier
 
Messages: 458
Inscrit le: 11 Décembre 2009, 19:01
Localisation: Challes les eaux - Chambery (Savoie / Rhône Alpes)

Re: Rétro-signalisation sans S88

Messagepar Conchito » 07 Mai 2019, 22:48

Merci pour cette réponse rapide.

En fait, j'espère me passer du S88 en connectant directement la carte OKKIE d'Arcomora aux entrées digitales libres de mon Arduino Méga qui sert de centrale DCC++.
Je suppose que cela passe effectivement par une modification de la dll DCC++ et du sketch DCC++.
Je vais étudier le problème.

Amitiés.
Conchito
 
Messages: 5
Inscrit le: 27 Avril 2019, 23:02

Re: Rétro-signalisation sans S88

Messagepar Conchito » 07 Mai 2019, 23:32

Bonsoir Xavier,

Après analyse du sketch DCCpp_Z22_CDM_2, j'ai compris que la routine qui gère le S88 renvoie vers le PC et don CDM-Rail des trames commençant par <y qui remontent l'état d'occupation des zones du réseau.
Il suffirait de modifier cette partie du code pour renvoyer des trames <y constituées à partir des entrées de l'Arduino Méga reliées aux sorties de la carte OKKEI.

Peux-tu me confirmer cette affirmation ?

Sais-tu où je peux trouver le "dictionnaire" des trames acceptées par l'interface DCCpp de CDM-Rail ? Existe-t-il une documentation de l'interface DCC++ ?

Amicalement
Conchito
 
Messages: 5
Inscrit le: 27 Avril 2019, 23:02

Re: Rétro-signalisation sans S88

Messagepar Xavier » 08 Mai 2019, 08:06

Bonjour,

Je serai de retour a la maison ce soir et te donnerai la liste des commandes standard. J'ai complété cette liste avec le <Y> qui autorise le S88 mais qui peut effectivement être adapté pour tes besoins si tu t'en sens capable.
Je compléterai donc cette réponse au plus tôt.

Amicalement,
Xavier
Echelle N , Run depuis le 01/01/2013
Centrale NanoX/Roco + GenLiS88, Dcc++, Décodeurs Accessoires à base d'Arduino
Rétrosignalisation LDT RM-GB-8-N-B, Décodeur d'aiguillage LDT M-DEC-DC-B, Moteurs Conrad 219998
Club; AMFBC 73
Xavier
 
Messages: 458
Inscrit le: 11 Décembre 2009, 19:01
Localisation: Challes les eaux - Chambery (Savoie / Rhône Alpes)

Re: Rétro-signalisation sans S88

Messagepar Xavier » 08 Mai 2019, 15:00

Bonsoir,

Comme promis voici le lien vers les commandes standard en anglais

Complément pour le S88:
Tout d'abord les pins à utiliser pour le S88
A2 S88_Data_PIN
A3 S88_Clock_PIN
A4 S88_Reset_PIN
D6 S88_PS_PIN

Il faut en premier lieu initialiser le S88 en indiquant: <Y Nb_Module Format>
- le nombre de modules (8 détecteurs par module)
- le format binaire=0 ou hexadécimal=1
soit pour 2 modules donc 16 zones
Initialisation Binaire : <Y 2 0>
Initialisation Hexadécimale : <Y 2 1>
En réponse DCCpp renvoi <o 8*Nb_Module Format> suivi de la liste des états au format demandé <y états>
soit par exemple
<o 8*2 1><y 00011100> en réponse à <Y 2 0> .
<o 8*2 1><y 1A> en réponse à <Y 2 1>.

Il est alors possible de demander l'état de tous les modules: <Y>
Tout changement d'état détecté remontera cette même liste!
Exemples de réponse (donc suite à changement ou une requête d'état)
si Format=0 : <y 0001110000000110>
si Format=1 : <y 1A06>

Je te laisse le soin de modifier le S88.cpp pour l'adapter à tes besoins.
Pour ma part, j'ai préféré utiliser le S88 car il ne limite pas le nombre de zone de détection alors que ta solution est limitée aux broches libres de l'Arduino méga [soit 54(E/S numériques)+16(E analogiques) -14(dcc++ de base)=56 si mon rapide calcul n'est pas faux]

Amicalement,
Xavier
Dernière édition par Xavier le 09 Mai 2019, 09:04, édité 2 fois au total.
Echelle N , Run depuis le 01/01/2013
Centrale NanoX/Roco + GenLiS88, Dcc++, Décodeurs Accessoires à base d'Arduino
Rétrosignalisation LDT RM-GB-8-N-B, Décodeur d'aiguillage LDT M-DEC-DC-B, Moteurs Conrad 219998
Club; AMFBC 73
Xavier
 
Messages: 458
Inscrit le: 11 Décembre 2009, 19:01
Localisation: Challes les eaux - Chambery (Savoie / Rhône Alpes)

Re: Rétro-signalisation sans S88

Messagepar Conchito » 08 Mai 2019, 21:12

Merci Xavier pour toutes ces informations. :cool:

Je dois pouvoir m'en sortir sans trop de problèmes pour modifier S88.cpp.
Je vais garder la récurrence des envois des trames <y...> telle que définie dans S88.cpp et ajouter la lecture des entrées digitales soit avec un digitalRead () par broches d'entrée, soit par une lecture directe des registres du processeur pour ne pas perdre trop de temps. Cela suppose de répartir les informations de zones venant de la carte OKKIE suivant les ports des registres et à faire éventuellement les complémentations si besoin. A voir ...
Merci encore, l'exemple est le bienvenu.

Amitiés

Conchito
Conchito
 
Messages: 5
Inscrit le: 27 Avril 2019, 23:02

Re: Rétro-signalisation sans S88

Messagepar jpp38 » 10 Mai 2019, 14:43

Bonjour,

Si tu t'intéresses à CDM-Rail pour piloter ton Arduino DCC++, il faut impérativement que tu vérifies D'ABORD, que la DLL DCC++ livrée avec la version actuelle V6.04 de CDM-Rail est bien compatible avec le dernier sketch DCCpp_Z22_CDM_2.zip fourni par Xavier....
... Autrement dit, bien vérifier que tu arrives à te connecter correctement avec cette configuration. Sinon, ce n'est pas la peine d'aller plus loin.

Vu les difficultés rencontrées à l'époque (forte dépendance selon les clones Arduino), rien n'est gagné dans ce domaine.

JP
jpp38
 
Messages: 10532
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Rétro-signalisation sans S88

Messagepar Lormedy » 24 Juin 2019, 20:37

Bonjour,
J'ai retravaillé la routine S88.cpp de Xavier pour l'intégrer dans DCCpp de Thierry et chez moi le S88-N fonctionne très bien. Effectivement, tu peux lire les ports du MEGA au lieu de lire les data qui remontent du bus S88 et envoyer les données en lieu et place du paquet de données transmis vers le PC. Néanmoins cela n'ira pas plus loin que 56 capteurs comme te le fait remarquer Xavier alors que la routine S88 permet de lire 512 capteurs en repoussant les limites loin des besoins du modéliste. Ta solution convient pour les petits réseaux alors que le bus S88 est destiné à tous les modélistes, petit ou grand réseaux. Le S88 supprime les paquets de fils qui retournent à l'Arduino avec tous les problèmes que cela engendre. Son immunité aux parasites est bien meilleure avec le S88-N. C'est pour ces raisons que je n'ai pas adapté la routine vers cette solution. C'est à toi de juger de tes besoins en fonction de l’énergie dont tu disposes. Chacun est libre de ses choix et de sa créativité que j'encourage. Tiens nous au courant de l'avancement de tes travaux.
Ferroviairement
Réseau DCC 2 voies H0
PC + Node.js + CDT30 + Arduino Mega + L298+ Max 471
Détecteurs de train perso + S88-N_8E/16E perso
http://lormedy.free.fr
Lormedy
 
Messages: 4
Inscrit le: 09 Mai 2019, 05:31


Retourner vers Le coin des bricoleurs (électronique)

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité