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 - JCG

Pages: [1]
1
Bonjour,

Mon problème venait du fait que j'envoyais un espace entre le "<" et la lettre de fonction. Comme DCCpp ne traite que le premier caractère suivant le "<", sans chercher le suivant, il ne se passait rien.

Une fois l'espace enlevé, tout va bien en utilisant telle quelle la BaseStation de Gregg ou, avec la bibliothèque de Thierry, à condition de ne pas oublier certaines des modifications à faire dans DCCpp.h (pour répondre à Dominique, j'avais bien évidemment potassé avec beaucoup d'intérêt les articles de Thierry mais fait quelques oublis).

Merci pour vos conseils et la réactivité du forum Locoduino.
Cela m'a permis avec deux Arduino Nano de faire une centrale pour cinq locos indépendantes disposant chacune d'une commande avec bouton de réglage de vitesse et trois boutons de fonctions, ce qui suffit pour l'instant à mes besoins.

2
Bonsoir,
Heureusement que j'avais utilisé au départ le programme DCC_Uno.ino de la BaseStation DCC++ de Gregg E. Berman car sans rien avoir à faire il fonctionne sans problème tant avec des commandes directes que via un programme en Processing.

En revanche, je n'arrive pas à faire fonctionner la variante DCCpp-Master.zip conseillée par LOCODUINO.
Contrairement au programme de Gregg où l'on retrouve les modules sous forme d'onglets quand on lance DCCpp_Uno.ino je n'ai pas trouvé comment le lancer pour avoir les onglets et pour le compiler j'ai finalement du recopier tous les modules dans un même folder.
Les explications n'étant pas très claires, j'ai essayé déjà de voir quel était le programme maître et j'ai choisi SerialDCC.ino en pensant pouvoir au moins taper les commandes à la console. En général rien ne se passe et dans le meilleur des cas la loco avance à peine avec les feux qui rougeoient juste comme si l'alimentation tombait en panne (à tel point que j'ai vérifié les tensions et en désespoir de cause rechargé la version BaseStation pour vérifier que tout fonctionnait à nouveau bien).
J'en déduis qu'il y a des choix ou manipulations à faire dans les différents modules avant de lancer la compilation.
Merci d'avance de me dire quel est le minimum à faire pour que cela fonctionne.

3
Bonjour,

Désolé pour mon erreur. Ce sont les versions de DCCpp avec TextCommand qui sont plus récentes que celles avec SerialCommand.
J'avais utilisé https://git.framasoft.org/locoduino.org/Biblio-DCC/tree/InterfaceDCC
alors que la page de Locoduino conseille https://github.com/Locoduino/DCCpp/blob/master/DCCpp.zip
et comme le second ne fait que réhabiller le premier, je ne me suis pas aperçu de la confusion en lisant les explications.

Je vais donc installer la bibliothèque DCCpp-master.zip et reprendre mes essais.

4
Bonjour Antoine,

Merci pour cette réponse (dans la version actuelle de DCCpp le module TextCommand est remplacé par SerialCommand, c'est donc cette fonction que j'ai tenté d'utiliser).

Avec le morceau de programme, on envoie directement à SerialCommand::parse() les trames reçues par Serial1 à la place de celles arrivant à BaseStation par la console ou l'Ethernet et décodées par SerialCommand::process : c'est exactement ce que je souhaite faire.

J'ai donc complété DCCpp_Uno, mais la BaseStation ne réagit pas.
En ajoutant Serial.print(cmdBlue); avant SerialCommand::parse(cmdBlue); j'ai vérifié sur la console que les instructions que j'envoyais par Serial1 (par exemple <1> <t 1 3 50 1> ou <f 3 147>) étaient correctement reçues et transmises sans les < et > à SerialCommand::parse. Pourtant rien ne se passe.
En revanche, via SerialCommand::process() les commandes directes sur la console série continuent à bien marcher.
Je ne vois pas pourquoi celles traitées directement par SerialCommand::parse ne fonctionnent pas.

Une idée sur ce qui m'échappe ?
Merci d'avance

5
Bonjour à tous,
Toutes mes excuses si le sujet a déjà été abordé, mais je ne l'ai pas trouvé.
DCC++ est une magnifique réalisation qui se pilote facilement depuis un PC en mode console ou par programme en envoyant sur le port série/USB des commandes simples de type <t 1 3 50 1> ou <f 3 147>.

Je souhaiterais élaborer ces trames par un second Arduino utilisé comme Contrôleur, en le branchant directement sur celui qui gère la Base Station.
La Base Station est prévue pour être pilotée soit via le port USB de l'Arduino soit via un shield Ethernet, mais il y a probablement moyen de se brancher directement (par RX-TX ou avec SoftwareSerial).

Je n'ai pas trouvé comment faire.
Merci d'avance si quelqu'un a la solution.

6
Présentez vous ! / Bonjour à tous
« le: février 08, 2020, 09:46:29 am »
Cela fait des années que je publie sur mon site https://jcgrimaldi.000webhostapp.com/indexhob.html des montages à base d'électronique classique, de PIC ou d'Arduino.
A l'échelle 1/1 ou au 1/87e, j'utilise un Arduino comme décodeur DMX à 12 sorties pour les éclairages ou des animations à base de servos.
A l'époque du regretté site Ptitrain, j'ai aussi pas mal contribué et beaucoup appris.
M'étant récemment mis au DCC pour mes petits enfants, j'ai tout naturellement réalisé ma première centrale de commande avec un Arduino.
J'ai équipé mes locos HO avec des décodeurs Lenz 10231-02. Pour utiliser la sortie de fonction disponible, je les ai complétés par une carte DFPlayer mini et un petit HP avec une carte microSD sur laquelle j'ai enregistré le sifflet de la loco. Pour vraiment pas cher, moins de 5€ au total, cela fait beaucoup d'effet (pour une loco vapeur, il vaut mieux un vrai décodeur sonore).
J'ai découvert DCC++ sur le site Locoduino et je remercie les auteurs pour la qualité des articles et l'intérêt du forum.

Pages: [1]