Auteur Sujet: Bonjour  (Lu 9034 fois)

Daniel075

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Bonjour
« le: février 23, 2019, 07:39:13 pm »
Je suis modéliste ferroviaire et construit de A à Z mes modèles en zéro (chacun me demande environ 4 ans). Sans réseau, j’ai souhaité réaliser un va et vient pour les animer sur un bout de rail. J’ai monté il ya deux mois un petit automatisme sur une base Arduino UNO, + LMD 18200 + MAX471 + 2 petits capteurs à ultrason, que j’ai fait marcher en analogique (à 66KHz en Fast PWM) . Fort de ce succès et ayant pris connaissance des articles traitant du logiciel DCC++ et de certaines des réalisations associées, notamment un article complet traitant de la réalisation d’ « un va et vient automatique et réaliste », j’ai entrepris d’implanter dans mon électronique décrite ci-dessus son homologue digital.
Dans mes attentes, je recherchais un logiciel qui ne m’oblige ni à tout réécrire, ni a devenir un expert en C++ comportant une procédure d’implémentation et la liste des commandes pour y accéder. Mes difficultés rencontrées ont été les suivantes : Sur le premier point beaucoup d’articles mentionnaient DCCpp.h et me renvoyaient sur le site GitHub où effectivement bien des noms utilisent le terme DCCpp. J’ai finalement trouvé un DCCpp.h au fond d’un dossier zip DcDccNanoControleur. Pour son implantation, j’ai suivi les indications des articles Locoduino. Ils mentionnent l’usage de la « libraries » Arduino sous Windows et les options d’installation présentes dans les commandes d’en tête du logiciel IDE. Pour l’utilisation de ce logiciel, après des hésitations et des tâtonnements, j’ai finalement identifié une dizaines d’ordres dutype : DCCpp :: begin() , DCCpp :: beginMain(),  DCCpp :: loop(), DCCpp :: identifyLocoIdMain(), DCCpp :: setSpeedMain(),.. et leurs homologues Prod. Aujourd’hui, mon automatisme fonctionne (la partie des fonctions de l’automatisme est pratiquement reprise à l’identique de sa version analogique). Cependant des points ne marchent pas. Les commandes DCCpp ::identifyLocoIdMain(), DCCpp ::readCvMain() ne marchent pas et pourtant lors de mes hésitations sur la chargement de tel ou tel autre logiciel à télécharger, ces commandes ont fonctionnées et notamment j’ai pu vérifier que le contenu des CV de mon décodeur Hornby à 20€ était conforme à la notice du fabriquant. La commande DCCpp ::setSpeedMain() marche et a toujours marché.  Je suspecte des versions logicielles chargées inadaptées, ou incorrectement chargées. L’inexpérience de mes premiers pas dans ce domaine y est bien sûr pour quelques choses. Quelqu’un pourrait-il m’aiguiller sur une démarche pour rectifier ce point. Quoiqu’il en soit je salue et remercie les rédacteurs des différents articles traitant du sujet DCC++. Sans eux je ne me serais certainement pas lancé dans cette aventure.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Bonjour
« Réponse #1 le: février 24, 2019, 10:28:13 am »
Bonjour, bienvenue et bravo pour votre persévérance et les résultats obtenus  ;D

DCCpp est une bibliothèque complète qui s’intègre dans l’IDE Arduino. Pour ce faire il faut aller dans le menu « gérer les bibliothèques » et rechercher DCCpp. L’IDE l’installe ensuite automatiquement et proposera des mises à jour s’il y en a.

Ainsi vous serez certain d’avoir les bons fichiers qui vont ensembles et les fonctions marcheront.

Pour la fonction identifyLocoIdMain(), le résultat peut dépendre du décodeur installé dans vos locos : certains n’obeissent pas bien !

Il y a des éléments de réponse ici :
http://forum.locoduino.org/index.php?topic=661.0

Cordialement
Dominique
« Modifié: février 24, 2019, 10:31:44 am par Dominique »
Cordialement,
Dominique

Daniel075

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Bonjour
« Réponse #2 le: février 24, 2019, 05:48:03 pm »
Bravo ..... et merci. C’était très exactement cela. Le décodeur Hornby était chargé sur 50mA. Je l’ai chargé à 100mA et il a finalement répondu à mes commandes, DCCpp ::identiyLocoIdMain(), DCCpp ::readCvMain() .
Peut-être pourriez-vous me préciser un point sur l’installation des logiciels. L’installation de DCCpp via le menu d’entête de IDE «  Outils / Gérer les bibliothèques »   ne m’avait pas échappé, et j’avais cliqué sur installé en sélectionnant «  DCCpp by Thierry Paris version 1.3.1. » Mais j’ai également placé dans le répertoire Windows «  C:\Program Files (x86)\Arduino\libraries » les fichiers DCCpp, DCCpp_Uno, DCCpp.zip, que j’ai retiré depuis sans que cela ne gène en rien l’exécution de IDE et l’appel à #include<DCCpp.h> . De même qu’en est -il de ce menu d’entête « Croquis/ Inclure une bibliothèque » La bibliothèque DCCpp apparait bien dans les choix proposés, mais ces actions sont elles nécessaires ? Il m’a semblé lire dans les articles locoduino que l’utilisation du menu « Gérer les bibliothèques » était la seule action à réaliser.
Je vous joins pour illustrer mes messages une photo de l’automate qui pilote le va-et-vient. La platine comporte un bouton de réglage de la vitesse de croisière. Un bouton de réglage de la temporisation d’arrêt aux extrémités. plus un voyant vert quand tout va bien , un voyant rouge d’alarme lors de mesures jugées incorrectes des capteurs Ultrason et un dernier voyant rouge d’alarme en cas de surcharge de courant qui coupe bien évidemment instantanément la sortie du LMD18200.
Cordialement

Tony04

  • Hero Member
  • *****
  • Messages: 549
    • Voir le profil
Re : Bonjour
« Réponse #3 le: février 24, 2019, 06:01:45 pm »
Bonsoir Daniel,

Citer
Le décodeur Hornby était chargé sur 50mA. Je l’ai chargé à 100mA et il a finalement répondu à mes commandes

pourrais-tu m'expliquer ce que tu entends par chargé à 50mA ou 100mA ? Peut-être que cela pourrait résoudre mon problème que tu as vu dans le lien de Dominique.

Cordialement
Antoine

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Bonjour
« Réponse #4 le: février 24, 2019, 06:57:04 pm »
Superbe machine et belle réalisation : ça donne envie  :P

J’espère que vous partagerez votre circuit de va et vient.

Cela vaudra le coup de compléter nos informations sur la réponse des decodeurs : Dans une machine du commerce en N il n’est pas facile d’augmenter la « charge » du décodeur qui est le courant consommé total de la machine, et plus simplement la distinction entre les mesures de courant des bits 1 et 0 par DCCpp.

Si on ne peut pas agir sur le courant consommé, il faut rechercher à améliorer la sensibilité du circuit de mesure de courant.
Cordialement,
Dominique

Daniel075

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
Re : Bonjour
« Réponse #5 le: février 25, 2019, 08:26:24 pm »
Je fais très peu rouler mes machines. Aussi monter un décodeur ne présente pas un grand intérêt pour moi.  C’est une fois mon automatisme analogique réalisé que je me suis rendu compte qu’il me suffisait simplement d’installer ce logiciel DCCpp dans mon électronique pour disposer d’un va-et-vient digital. Pour faire l’essai j’ai acheté un Decodeur bon marché Hornby (20€) et sur les fils moteur j’ai soudé une résistance de charge de 200 ohm (environ 57mA). Le décodeur n’a pas répondu aux commandes de lecture. J’ai remplacé suite à votre conseil la charge par une résistance de 100 ohm (le double de courant)  qui a marché. Notez que même avec 110 ohm, ça ne marchait tjrs pas.  Concernant la lecture du courant, je n’ai jamais reçu de la commande DCCpp ::getCurrentMain() autre chose que 0. Ce qui ne me prive pas, je lis le courant directement sur la broche analogique et le circuit MAX471 est fiable et précis. Je l’utilise notamment au lancement du programme, tant que je n’ai pas reçu de réponse à l’identification d’une loco sur les rails je surveille toutes les 10ms une surcharge de courant > 450mA . Dès que j’ai l’assurance qu’il s’agit d’une machine digital, la protection passe à 1500mA.