Auteur Sujet: TCO arduino Xpressnet  (Lu 43155 fois)

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #15 le: janvier 29, 2017, 01:28:14 pm »
Je suis content que UAD continue de te servir correctement, et désolé d'apprendre tes soucis avec tes décodeurs ds51k1.
Il faudrait que tu remplaces un décodeur par un Arduino avec un programme de monitoring de l'entrée Dcc pour voir les paquets qui circulent et lire en clair l'adresse demandée par le TCO. Sur le site de l'UAICF, il y a justement un sniffer. Il y a même un article qui en propose un: http://www.locoduino.org/spip.php?article39. Si les paquets passent bien, alors il faudsra regarder du côté de l'alimentation, voir avec un testeur si le décodeur envoie bien du courant aux aiguillages... Ce qui doit être le cas si la Multimaus connectée directement fait fonctionner les moteurs...

Si tu dois changer tes programmes Arduino, pense à basculer vers Accessories et Commanders plutôt que UAD. De nombreux problèmes ont été réglés, et les fonctionnalités sont bien plus étendues. En plus je ne maintiens plus UAD. Enfin, et pour information, j'ai le projet à plus ou moins moyen terme de remplacer DCC_decoder, la partie DCC de Commanders et UAD, par les routines de NMRADcc disponibles sur git sous le nom mrrwa et qui ne semble plus avoir de problème de décalage, et ce uniquement dans Commanders.
« Modifié: janvier 29, 2017, 01:34:13 pm par Thierry »

sam95

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • Blog de Sam95
Re : TCO arduino Xpressnet
« Réponse #16 le: janvier 29, 2017, 04:23:36 pm »
Merci je vais essayer de trouver les composants pour un sniffeur DCC.

Mais arrivant à reprogrammer l'adresse du DS51K1 via le TCO je pense qu'il reçoit la bonne adresse:

Je  programme le DS51K1 en adresse 6 avec la multimaus et le test à cette adresse, puis je connecte le TCO avec une adresse 10 dans le fichier ino, je remets le décodeur en mode programmation, j'actionne le bouton (lié à l'adresse 10). Une fois cela fait, sur la multimaus l'aiguillage ne réagit plus à l'adresse 6 mais bien à l'adresse 10.

 Je ne m'explique pas la fait qu'il n'envois pas ensuite l'impulsion vers le moteur de l'aiguillage

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #17 le: janvier 29, 2017, 06:15:31 pm »
Effectivement, ce que tu décris ressemble à une incompréhension mutuelle... Est ce que par hasard le décodeur ne serait pas réglé pour recevoir des adresses longues, et le TCO pour envoyer des adresses courtes, ou l'inverse ?

sam95

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • Blog de Sam95
Re : TCO arduino Xpressnet
« Réponse #18 le: janvier 29, 2017, 09:45:49 pm »
Bonne question...... comment puis-je savoir cela ?

plume

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #19 le: mai 23, 2017, 10:42:18 pm »
Bonjour,

Pour reprendre un poste ci-dessus, il n'y aucun problème pour reprendre / modifier le code source de la souris (et autres fichiers) proposé par l'UAICF Nevers-Vauzelles : http://modelisme58.free.fr/index.php/arduino.html

La souris, ou plutôt les souris, ont été créées à partir d'une librairie disponible citée ci-dessus. L'UAICF a mis en forme le code source pour s'adapter à des besoins.

Pour répondre à une question, pourquoi 2 alimentations ?
Quand on branche plusieurs souris, l'alimentation de la centrale risque de ne pas suffire ou chauffer (retour d'expérience quand on utilise plusieurs souris avec écran LCD, carte RJ45,...). La souris peut être alimentée par la centrale. Il y a un switch qui permet de sélectionner la source d'alimentation au choix.

Plusieurs souris ?
  • Un TCO pour piloter les accessoires ;
  • Une souris pour piloter les locomotives et accessoires : cette souris permet de sélectionner les locos par le CV1 ou son nom à l'aide de la bibliothèque enregistrée sur une carte SD (lecture fichier CSV). Cette souris permet aussi de piloter les accessoires. Elle permet aussi d'envoyer des séries de consignes enregistrées dans un fichier CSV : itinéraires, activer / désactiver les fonctions de plusieurs locos,...
  • Une souris pour piloter une locomotive à partir d'un vrai pupitre de TGV ;
  • Une souris sans fil pour commander les locomotives et accessoires à l'aide de la télécommande infrarouge de sa télévision.

Pour cette dernière, lorsque le tutoriel sera finalisé, une fiche présentera la mise en oeuvre d'une carte Arduino MEGA, d'un lecteur de carte SD, d'une LED de réception infrarouge (IR), d'une télécommande IR et de 5 matrices de LED.

Cette librairie XpressNet offre donc de nombreuses possibilités !

Plume
UAICF Nevers-Vauzelles

jsavary

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #20 le: juin 01, 2017, 02:11:52 pm »
Bonjour tout le monde.

n’étant pas sûr de mon montage électronique j'ai acheté un shield TTL to 485.

branchement fait, je refait un essai.
résultat : j'ai l'impression que la centrale discute bien avec le TCO (et inversement).
en revanche je commence à avoir de sérieux doutes sur la compatibilité des décodeur d'aiguillages ROCO 61196 et le TCO Xpressnet...
en effet celui-ci réponds bien lorsqu'il est piloté par ma multimauss, mais ne fait rien lorsque je veux l'actionner via le TCO.

Quelqu'un aurait la possibilité de tester ce montage avec ce décodeur d'aiguillage (ROCO 61196) ?

Merci d'avance pour vos retours...

Jerome.

plume

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #21 le: juin 05, 2017, 12:53:23 pm »
Bonjour,

Si la centrale discute bien, alors c'est que le shield TTL485 est bien connecté.
On peut vérifier avec la mise en ouvre du bouton d'arrêt d'urgence.

On peut aussi avoir un décalage d'une adresse DCC : pour vérifier cela, je conseille d'utiliser un analyseur de trame DCC pour s'assurer que la consigne a bien été envoyée. Cet analyseur de trames peut être réalisé avec un Arduino.
Voici un lien : http://modelisme58.free.fr/index.php/arduino.html

Plume

jsavary

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #22 le: juin 05, 2017, 08:42:51 pm »
Salut, et merci pour ta réponse plume.

j'ai donc monté un analyseur de trame DCC.
donc avec ma multimaus, lorsque j'envoi une commande à l'aiguillage, l'analyse montre que c'est l’accessoire en adresse 23 qui est sollicité.

je retourne donc dans mon programme de TCO, je modifie les bons paramètres et voici le résultat.

depuis la multimaus => droit
Acc 23 6:2 1 On  10000110 11111101
Acc 23 6:2 0 On  10000110 11110101
-
depuis la multimaus => dévié
Acc 23 6:2 1 Off  10000110 11111100
Acc 23 6:2 0 Off  10000110 11110100
-
depuis le TCO => position A de l'interrupteur
Acc 23 6:2 0 On  10000110 11110101
-
depuis le TCO => position B de l'interrupteur
Acc 23 6:2 0 Off  10000110 11110100

sauf que depuis le TCO... rien ne se passe sur mon aiguillage... pfffff...

je reste dans le flou.......

si quelqu'un a une nouvelle idée, je prends.

Merci a vous de votre aide.

Jérôme.

jsavary

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #23 le: juin 05, 2017, 10:29:25 pm »
J'ai trouvé.... et ça marche.

je vous fait le détail dans la semaine.. là j'en ai marre ^^

a très vite pour les explications... ( ca c'est de la bonne annonce  :P )

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #24 le: juin 06, 2017, 09:44:02 am »
Pour prendre un peu d'avance sur l'explication, il faut savoir que les centrales lorsqu'elle pilotent des accessoires envoient toujours au moins deux paquets : un pour l'activation de l'accessoire, un autre pour le désactiver au bout d'un temps généralement réglable sur la centrale elle même. Les deux trames sont identiques au bit 3 près, celui de l'activation. C'est pour cela que dans ma bibliothèque Commanders, je ne me fie qu'à celui qui désactive...

jsavary

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : TCO arduino Xpressnet
« Réponse #25 le: juin 06, 2017, 07:37:55 pm »
Bonjour,
chose promise chose due.

voici comment je me suis débrouillé pour trouver ma solution.

Postula de départ : commander un aiguillage commandé par un décodeur roco 61196 depuis un TCO xpressnet monté sur arduino.

je suis donc parti de la solution établie à partir de différents travaux ( NZIN, UAICF, SAM95 ).
malheureusement cela ne fonctionnait pas chez moi.

hier soir j'ai donc utilisé un arduino uno pour monter un sniffer DCC.
cela m'a donc permis de voir le résultat suivant:

Citer
depuis la multimaus => droit
Acc 23 6:2 1 On  10000110 11111101
Acc 23 6:2 0 On  10000110 11110101
-
depuis la multimaus => dévié
Acc 23 6:2 1 Off  10000110 11111100
Acc 23 6:2 0 Off  10000110 11110100
-
depuis le TCO => position A de l'interrupteur
Acc 23 6:2 0 On  10000110 11110101
-
depuis le TCO => position B de l'interrupteur
Acc 23 6:2 0 Off  10000110 11110100

Vous voyez là comment il manque des choses entre la multimaus et le TCO... il manque une ligne à chaque fois.
j'ai donc tenté de changer les adresses de décodeur dans tous les sens, mais rien n'y faisait.
je me suis dit: "il y a peut être une mise à jour de la librairie XpressNet pour arduino.."  et c'est le cas.
je suis donc passé de la version 1.8 à la version 1.9.

et là qu'elle n'est pas ma surprise dans le sniffeur...
sans rien changer au code de mon TCO, voici le resultat:

Citer
depuis la multimaus => droit
Acc 23 6:2 1 On  10000110 11111101
Acc 23 6:2 0 On  10000110 11110101
-
depuis la multimaus => dévié
Acc 23 6:2 1 Off  10000110 11111100
Acc 23 6:2 0 Off  10000110 11110100
-
depuis le TCO => position A de l'interrupteur
Acc 7 6:2 0 On  10000110 11110101
-
depuis le TCO => position B de l'interrupteur
Acc 7 6:2 0 Off  10000110 11110100

Tiens donc, je passe d'un accessoire en adresse 23 dans le code à une adresse 7 sur les rails.... pas cool.
voila donc une modification à faire.
à taton, j'ai donc trouvé que l'adresse à mettre dans le code est 99 pour mon décodeur d'aiguillage roco61193 .
donc 99 dans le code TCO = 27 dans le multimauss = 23 dans le sniffer DCC.

"clac" .. ca marche dans un sens, mais pas dans l'autre.
selon comment est positinné l'aiguillage avec la multimaus, le TCO opère, mais l'inverse n'est pas vrai.

je note que les commandes passées ne sont pas les même lors d'une mise en action de l'aiguillage avec la multimauss.
10000110 11111101
10000110 11110101
et
10000110 11111100
10000110 11110100

en simplifiant :
1101
0101
et
1100
0100

le bit de poids 8 semble indiquer l'activation.
le bit de poids 1 semble indiquer le sens de l'aiguille.

c'est peut etre faux , mais c'est mon analyse. ^^

partant de ce principe, j'en conclue que la commande qui vient du TCO est incomplete.
j'ai donc modifié le code que j'utilise ( UAICF ) de la façon suivante :

Citer
  // --- Commande pour Boutons à levier --------------------------------------------
  for (int i = NbrePoussoirs*2 +1; i < NbrePoussoirs*2 + NbreLevier +1; i++)
    {
    if (BtEtat != BtEtatAncien)
      {
        Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
        Serial.print(" (Arduino "); Serial.print(Bt); Serial.print(" Adresse : ");Serial.print( Aig, BtEtat );
        BtEtatAncien = BtEtat ;
        XpressNet.setTrntPos (0x0, Aig-1, BtEtat-8 ); // --- Ajout pour roco61196 + activation du bit de poids 8
        delay (10);                                                    // --- Ajout pour roco61196
        XpressNet.setTrntPos (0x0, Aig-1, BtEtat );
        delay (10);
        Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
        Serial.print(" (Arduino "); Serial.print(Bt); Serial.print(" Adresse : ");Serial.print( Aig, BtEtat );
      }
    }
   
   
"clac", "clac"..... alléluia
CA MARCHE !!!!!!!

voici le résultat du sniffeur DCC

Citer
depuis la multimaus => dévié
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 Off  10000110 11111100
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 Off  10000110 11110100
depuis la multimaus => droit
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 On  10000110 11111101
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 On  10000110 11110101
-
depuis le TCO position B => dévié
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 Off  10000110 11111100
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 Off  10000110 11110100
depuis le TCO position A => droit
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 On  10000110 11111101
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 On  10000110 11110101
voila qui est plutot sympa après plus d'un an de recherche... ^^
reste à voir si mes indications seront expliquées plus dans le detail par les spécialistes.

j’espère avoir été suffisamment clair dans mes explications.

à bientôt, Jérôme.
« Modifié: juin 08, 2017, 10:29:33 pm par Dominique »