LOCODUINO

Bibliothèque Commanders

Ou comment donner des ordres !

. Par : Thierry

Tous les projets Arduino ont en commun de devoir transmettre des ordres entre des commanditaires et des exécuteurs... Les commanditaires peuvent être des capteurs ou des timers qui vont signaler qu’une action doit être entreprise, ou des intermédiaires entre un humain et sa machine, voire même entre deux machines. Les exécuteurs sont les leds (…)

Retourner à l'article

Vous répondez à :

Bibliothèque Commanders 1er novembre 2016 10:54, par Thierry

Les valeurs citées correspondent certainement au décodage de UNDEFINED_ID... Donc ce n’est pas significatif, et c’est pour ça qu’il fallait exclure ces valeurs de retour. Je dirais que le 5V et la masse sont à prendre sur l’Arduino. Peut être que pour aider à comprendre ce qui se passe, il faudrait activer le mode Debug de Commanders en retirant le ’//’ devant #define COMMANDERS_DEBUG_MODE dans Commanders.h .

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

48 Messages

  • Bibliothèque Commanders 16 octobre 2016 19:03, par Pat95

    Bonjour

    J’ai commencé à tester cette nouvelle bibliothèque qui me semble super intéressante. Toutefois je rencontre deux difficultés :
    1) je ne sais pas modifier une bibliothèque protégée en lecture seule (exemple supprimer ’//’) ?
    2) j’ai essayé l’exemple "SimpleButtons" et le message d’erreur suivant s’affiche :

    C :\Users\laurence\Documents\Arduino\libraries\Commanders-master-7865035e79e4426478ad0a458a0c64dace0b7434\examples\SimpleButtons\SimpleButtons.ino : In function ’void ReceiveEvent(long unsigned int, COMMANDERS_EVENT_TYPE, int)’ :
    SimpleButtons:17 : error : ’printEvent’ is not a member of ’Commanders’
    Commanders::printEvent(inId, inEvent, inData) ;
    exit status 1
    ’printEvent’ is not a member of ’Commanders’

    J’ai sans doute un manque d’expérience pouvez-vous me conseiller ?
    Cordialement.

    Répondre

    • Bibliothèque Commanders 22 octobre 2016 15:07, par Pat95

      Bonjour,

      Je reviens et toujours pas trouvé de solution.
      Je teste l’exemple "SimpleButtons" et j’ai toujours le même message.
      J’ai essayé de modifier les ’//’ dans la bibliothèque et lorsque je veux sauvegarder la réponse est "ce fichier est en lecture seule essayez un nom de fichier différent".
      Voilà le nom du fichier que j’ai téléchargé il est long :Commanders-master-7865035e79e4426478ad0458a0c64dace0b7434.zip/Commanders-master-7865035e79e4426478ad0458a0c64dace0b7434/Commanders.zip/commanders/src/Commanders.h et arrivé là j’ai accès au fichier texte mais impossible de le sauvegarder sans changer le nom du fichier !!!.
      Logiquement je ne dois pas pouvoir modifier une bibliothèque et garder le même nom ?
      J’ai besoin d’un conseil.

      Répondre

      • Bibliothèque Commanders 22 octobre 2016 16:50, par Thierry

        Je pense que le problème de lecture seule vient du fait que vous tentez d’utiliser et de modifier le .zip, ce qui n’est pas possible. D’abord, comme le nom du zip est le nom de la bibliothèque sur votre machine, renommez votre fichier .zip en ’Commanders.zip’. Ce sera plus compréhensible. Ensuite utilisez la commande Croquis/Inclure une bibliothèque/Ajouter la bibliothèque .zip...’ et choisissez Commanders.zip . Et voilà, c’est installé ! Modifiez si vous le voulez votre fichier Commanders.h (pas celui du zip, celui qui est installé), et utilisez ’Croquis/Inclure une bibliothèque/Commanders’ pour l’utiliser. Les exemples sont disponibles via l’option Fichier/Exemples/Commanders .

        Répondre

        • Bibliothèque Commanders 22 octobre 2016 18:37, par Pat95

          Et bien oui dans toutes mes tentatives de modifier j’étais sur le fichier .zip origine. Enfin bref je peux supprimer ou inscrire ’//’ un grand merci.
          j’ai encore un petit problème à la compilation avec Commanders::printEvent(inId, inEvent, inData) ;
          j’ai bien ajouté ’//’ à CANCOMMANDER et vérifié que j’ai mcp_can.h et mcp_can_dfs.h mais dans VStudio pas dans extras.
          Merci pour l’aide.

          Répondre

          • Bibliothèque Commanders 22 octobre 2016 20:41, par Thierry

            Pour que PrintEvent soit disponible, il faut être en version DEBUG, c’est à dire qu’il n’y ait pas de ’//’ devant #define COMMANDERS_DEBUG_MODE . Pour que le CAN soit bien désactivé et ne nécessite pas mcp_can.h et mcp_can_defs.h il faut qu’il n’y ait pas non plus de ’//’ devant #define NO_CANCOMMANDER , à moins que vous ne souhaitiez utiliser un bus CAN... Enfin la répertoire VStudio contient ce qu’il faut pour tester un croquis avec Visual Studio, mais n’est d’aucune utilité pour le fonctionnement normal, donc considérez qu’il est absent !

            Répondre

  • Bibliothèque Commanders 16 octobre 2016 20:41

    Bonjour, et merci de votre intérèt pour Commanders.

    A ma connaissance, les fichiers présents dans le répertoire de la bibliothèque ne sont pas protégés, en tout cas pas sous Windows. Est ce votre cas ? Et effectivement printEvent n’est accessible que si vous arrivez à enlever le ’//’ ! Donc dès que vous y serez parvenu, la compilation se passera bien.

    Répondre

  • Bibliothèque Commanders 20 octobre 2016 20:59, par Loco28

    Plusieurs questions sur la partie DCC :

    * où se trouve la routine DCCINT ?

    * par rapport à l’exemple donné dans la bibliothèque (DCC COMMANDER), à quoi correspond la commande DccCommander.printEvent ?

    Répondre

  • Bibliothèque Commanders 21 octobre 2016 10:27, par Thierry

    DCCINT se trouve dans DccCommander.hpp. Ce fichier est inclus si il y a toujours le ’//’ devant ’#define NO_DCCCOMMANDER’ dans Commanders.h .
    Le PrintEvent de DccCommander est globalement le même que celui de Commanders, il affiche juste l’identifiant sous la forme d’une adresse Dcc plutôt qu’un simple entier long.

    Répondre

    • Bibliothèque Commanders 21 octobre 2016 14:15, par Loco28

      OK, merci

      Mais question suivante (d’un néophyte) : comment on édite un fichier xxx.hpp ou xxx.h ?

      De plus, à quel niveau j’intègre la bibliothèque dans l’IDE de l’ARDUINO : je charge fichier par fichier (commander.hpp, commander.cpp, commanders.cpp, commanders.hpp, commanders.h), ou bien au niveau d’un répertoire (src, studio, ) ?

      Répondre

  • Bibliothèque Commanders 21 octobre 2016 14:50, par Thierry

    Normalement, vous n’avez pas besoin de toucher quoi que ce soit dans une bibliothèque. C’est un peu sa raison d’être : une boite noire qui marche toute seule... Dans le cas de mes bibliothèques, il peut être utile (jamais obligatoire...) de modifier le fichier .h principal, ici Commanders.h, mais c’est tout. Et encore, uniquement pour aider à trouver les erreurs ou pour gagner un peu de mémoire.
    Je ne saisis pas ce que vous voulez dire par ’j’intègre’. Le mieux je crois est de lire et d’appliquer l’article que j’ai écrit sur le sujet : Installer une bibliothèque. Après pour l’utiliser, il suffit d’ajouter #include <Commanders.h> au début de votre croquis. Rien d’autre n’est nécessaire.

    Répondre

    • Bibliothèque Commanders 21 octobre 2016 20:54, par Loco28

      Le terme "j’intègre" n’était surement pas approprié. En fait je parlais simplement d’inclure "commanders" dans mon projet.
      j’ai essayé votre méthode (la plus simple) et cela a fonctionné.
      Il n’est pas question pour moi de modifier quelque chose qui fonctionne mais je me demandais comment on fait pour éliminer les "//" devant les fonctions qui ne sont pas utiles et surtout, comment je connais à quoi servent les différents programmes inclus dans cette librairie, quels sont les arguments en retour (même si au vu de vos articles j’ai déjà une bonne idée).
      Dernière chose, pour rebondir sur un commentaire que l’on m’a fait sur le forum LR, est-ce que Commanders est bien compatible LENZ ?

      Répondre

  • Bibliothèque Commanders 21 octobre 2016 21:10, par Thierry

    Pour tout dire, l’article n’a pas vocation à tout expliquer, mais plutôt à mettre les pieds à l’étrier et pousser un utilisateur potentiel à tenter de faire ce qu’il veut. Et c’est exactement ce que vous semblez faire ! Mais bien sûr, si vous avez besoin d’explications sur tel ou tel aspect de la bibliothèque, n’hésitez pas à demander ici ou mieux, sur le forum de Locoduino. Et si des explications sont encore nécessaires, c’est que l’article sur Commanders doit être amélioré !
    La partie Dcc de Commanders fonctionne avec la norme Dcc. Le DccCommander ne peut pas fonctionner avec du Motorola/Marklin, Selectrix ou tout autre protocole non standard. Donc oui, si la centrale Lenz est configurée en Dcc, alors Commanders sera capable de décoder les instructions qu’il voit passer.

    Répondre

    • Bibliothèque Commanders 21 octobre 2016 23:05, par Loco28

      OK, merci, c’est maintenant à moi d’aller plus loin.
      J’ai un peu de "hard" à faire (la partie récupération du signal DCC avec un 6N137) avant toute chose.
      Mon objectif, dans un premier temps, est de piloter une vingtaine d’aiguillage via des relais
      (ARDUINO UNO, registre à décalage, driver de relais, relais).

      Je vais donc commencer à utiliser les deux parties de programme (définition, exploitation) que vous donnez ci-dessus.

      Répondre

  • Bibliothèque Commanders 30 octobre 2016 19:25, par loco28

    Bonsoir,

    J’ai repris mon projet à la réception de quelques composants.
    Je suis sous la version 1.6.12.
    Je viens de faire un essai, sur un programme de clignotement de led (simplement pour valider mon ARDUINO UNO), d’inclure la bibliothèque COMMANDERS. Commandrrs.h est bien ajouté mais également Event.h (?)
    Par contre, à la compilation j’ai une erreur :

    Non utilisé : C :\Program Files\Arduino\libraries\Commanders
    exit status 1
    Erreur de compilation pour la carte Arduino/Genuino Uno

    Pouvez-vous me dire d’où cela peut venir ?

    Cordialement

    Répondre

  • Bibliothèque Commanders 30 octobre 2016 20:18, par loco28

    Re-bonsoir,

    Je complète mon post précédent : j’ai repris tranquillement l’installation de la bibliothèque selon vos conseils. j’ai toujours un message d’erreur mais, à priori, ce serait la bibliothèque DIO2.h qui manquerait.
    Or je n’arrive pas à la trouver, ni sur LOCODUINO, ni sur ARDUINO.

    Répondre

  • Bibliothèque Commanders 30 octobre 2016 20:22, par Thierry

    Oui, event.h a été ajouté pour permettre d’utiliser l’enum COMMANDERS_EVENT_TYPE même depuis un programme extérieur, comme les exemples d’envoi de donnée CAN ou I2C qui n’utilisent pas Commanders. Cela dit, si c’est déroutant, c’est aussi sans conséquence sur votre programme. Par contre, pour pouvoir vous aider sur le message d’erreur, je dois avoir votre croquis... Copiez/collez le ici ou envoyer le à mon adresse thierry at locoduino.org (Remplacez le ’at’ par ’@’).

    Répondre

  • Bibliothèque Commanders 30 octobre 2016 20:24, par Thierry

    DIO2 est présente dans le répertoire ’extra’ de Commanders. Sinon, elle est téléchargeable ici : https://git.framasoft.org/locoduino... .

    Répondre

    • Bibliothèque Commanders 30 octobre 2016 23:09, par Loco28

      OK.
      Sur le COMMANDERS.h chargé (Forge Locoduino), le répertoire "Extras" est vide.
      J’ai chargé DIO2.h.
      Si j’ai bien compris, il faut l’installer comme toute bibliothèque, par contre, faut-il effectuer le remplacement de pin_arduino.h par pin2_arduino.h ou bien mettre pin2_arduino.h dans le même répertoire que pin_arduino.h ou ne rien faire ?

      Répondre

  • Bibliothèque Commanders 31 octobre 2016 10:31, par Thierry

    Je plaide coupable. Effectivement, le répertoire extra du zip de Commanders est vide... Je vais corriger ça au plus vite. Il n’y a rien à changer sur ce qui est installé. DIO2 choisira le bon fichier en fonction du modèle d’Arduino sélectionné dans l’IDE.

    Répondre

    • Bibliothèque Commanders 31 octobre 2016 19:24, par loco28

      C’est OK, j’ai récupéré le nouveau "COMMANDERS" avec DIO2 inclu.
      Tout est installé et la compil de mon petit programme est OK.
      Mon intention est, dans un premier temps, de visualiser les infos DCC sur le moniteur série.
      Le programme est le suivant :

      #include <Commanders.h>

      void setup()

      Commanders::begin (LED_BUILTIN) ;
      DccCommander.begin(0x00, 0x00, digitalPinToInterrupt(3)) ;
      Serial.begin(9600) ;

      void loop()
      unsigned long ret = Commanders::loop() ;

      Serial.print(DCCID(ret)) ;
      Serial.print(" ") ;
      Serial.print(DCCACTIVATION(ret)) ;
      Serial.print(" ") ;

      Je pense que cela doit fonctionner.
      Il ne me reste plus qu’à inclure le petit montage (6N137) sur l’ARDUINO et à brancher un signal DCC

      Répondre

  • Bibliothèque Commanders 31 octobre 2016 20:25, par Thierry

    Oui ça devrait fonctionner. Il faudrait juste tester sur UNDEFINED_ID que la variable ret va contenir lorsque rien ne sera capté, et ne faire le Serial.print que si ret est différent. Et mettre Serial.println() en dernier pour passer à la ligne...
    Bonne continuation.

    Répondre

    • Bibliothèque Commanders 31 octobre 2016 22:07, par loco28

      Je vais encore vous solliciter car pour l’instant cela ne fonctionne pas.
      Normalement, la led "pin 13" devrait clignoter quand un ordre arrive ? Or, il ne se passe rien. Le moniteur affiche 7295 184 (j’ai enlevé le test sur le changement de ret).
      J’ai vérifié plusieurs fois le montage avec le 6N137. Tout est OK. La pin 6 du 6N137 est reliée à la pin 3 de l’ARDUINO.
      Est-ce qu’il faut prendre le 5V sur l’ARDUINO ou à part ?
      (j’ai aussi vérifié sur un décodeur d’accessoires du commerce que ma centrale fonctionne)

      Répondre

  • Bibliothèque Commanders 1er novembre 2016 10:54, par Thierry

    Les valeurs citées correspondent certainement au décodage de UNDEFINED_ID... Donc ce n’est pas significatif, et c’est pour ça qu’il fallait exclure ces valeurs de retour. Je dirais que le 5V et la masse sont à prendre sur l’Arduino. Peut être que pour aider à comprendre ce qui se passe, il faudrait activer le mode Debug de Commanders en retirant le ’//’ devant #define COMMANDERS_DEBUG_MODE dans Commanders.h .

    Répondre

  • Bibliothèque Commanders 1er novembre 2016 19:08, par Loco28

    Bonsoir,

    J’ai modifié mon croquis pour ne plus avoir le défilement des valeurs de UNDEFINED_ID.
    J’ai enlevé les "//" devant define COMMANDERS_DEBUG_MODE dans Commanders.h (puis reset de mon PC, rechargement du croquis dans l’ARDUINO).
    Par contre, rien ne s’affiche sur le moniteur SERIE. Y a t il une autre opération à faire pour le mode DEBUG ?

    Répondre

  • Bibliothèque Commanders 1er novembre 2016 20:24, par Thierry

    Non, juste compiler et téléverser le programme dans l’Arduino. Pour info, le moniteur série doit être configuré avec Serial.begin avec la vitesse voulue dès le départ du setup(). Je teste toujours au maxi, à 115200 bauds. Et il faut configurer la console série à la même vitesse choisie.

    Répondre

  • Bibliothèque Commanders 4 novembre 2016 21:01, par Thierry

    Après vérification, je dois reconnaître que DccCommander ne marche pas. J’ai poussé une nouvelle version corrigée sur la forge.
    Une petite modification pas inutile dans votre DCC1.ino serait d’ajouter ’true’ comme dernier argument de DccCommander.begin() afin de faire clignoter la diode si un signal Dcc est perçu par l’Arduino. Mieux vaut l’enlever lorsque tout marche bien, c’est du temps perdu pour la faire fonctionner qui n’est pas passé dans la loop Dcc, et cela empêche d’utiliser la diode comme témoin de réception d’un événement, comme un code Dcc valide.

    Répondre

    • Bibliothèque Commanders 11 novembre 2016 21:20, par loco28

      Bonsoir,
      OK je vais refaire un essai mais pour l’instant je n’arrive pas à supprimer la bibliothèque installée pour recharger la nouvelle.
      Quel est la procédure ?

      Répondre

    • Bibliothèque Commanders 12 novembre 2016 21:26, par loco28

      Désolé de ma dernière question mais il suffisait que j’aille dans le répertoire LIBRARIES pour enlever COMMANDERS.

      J’ai testé.
      Le MODE DEBUG m’indique bien que je reçois des paquets DCC et la valeur décodée correspond bien à ce que j’ai envoyé.
      Par contre DCCID(ret) et DCCACTIVATION(ret) restent coinçés à 7295 et 184.

      Répondre

  • Bibliothèque Commanders 13 novembre 2016 10:42, par Thierry

    Ça c’est curieux. Cela donne une valeur de ret à 1847295, ce qui ne correspond à rien de précis... Je n’avais pas ce comportement avec le croquis que vous m’avez passé...

    #include <Commanders.h>
    
    void setup()
    {
     
      Serial.begin(115200);
     
      Commanders::begin (LED_BUILTIN);
      DccCommander.begin(0x00, 0x00, 0, true);
    }
    
    void loop() 
    {
    	unsigned long ret = Commanders::loop();
    
    	if (ret != UNDEFINED_ID)
    	{
    	   Serial.print(DCCID(ret));
    	   Serial.print(" / ");
    	   Serial.println(DCCACTIVATION(ret));
    	}
    }

    Vous êtes sûr que votre centrale fonctionne en Dcc, et pas en Motorola ou autre protocole ?

    Répondre

    • Bibliothèque Commanders 13 novembre 2016 19:32, par Loco28

      Ma centrale est bien en DCC.

      J’ai essayé de compiler le programme ci-dessus, mais j’ai une erreur de compilation :
      "collect2.exe : error : Id returned 5 exit status
      exit status 1
      Erreur de compilation pour la carte Arduino/Genuino Uno"

      et ce que je mette la fonction digitalPinToInterrupt() ou le numéro de l’interruption.

      Pour info, je compile sans que la carte UNO soit connectée sur l’USB. Est-ce que cela a une importance ?

      Répondre

    • Bibliothèque Commanders 13 novembre 2016 20:16, par Loco28

      Finalement j’ai ré-écris le programme dans un autre sketch et je n’ai plus cette erreur de compilation (???!!).
      Par contre je n’ai toujours pas de résultat. la led clignote bien (en permanence), le DEBUG m’indique bien la réception des paquets DCC mais "ret" reste toujours à 7295 et 184

      Répondre

  • Bibliothèque Commanders 25 décembre 2016 16:09, par loco28

    Finalement j’ai testé la bibliothèque DCCDecoder et cela fonctionne nickel.
    J’ai maintenant 32 sorties pilotées en DCC. Je m’en sers pour les aiguilles et pour les signaux, le tout sous CDM-Rail

    Répondre

  • Bibliothèque Commanders 18 septembre 2019 08:50, par Juan

    Bonjour Thierry

    Comme je l’ai dit, j’étudie les bibliothèques Commanders et Accessories. Je les trouve très intéressantes, je pense qu’elles sont exactement ce que je cherchais.
    Mais j’ai une question idiote, essentielle : où sont installées ces bibliothèques, dans la carte Arduino de la centrale, ou dans la carte Arduino du décodeur ?

    Je vous remercie beaucoup,
    Juan.

    Répondre

  • Bibliothèque Commanders 18 septembre 2019 09:26, par Thierry

    Bonjour

    Ces bibliothèques sont indépendantes, et elles ne sont pas réservées à un usage DCC ou même modélisme... Commanders est utile dès qu’un bouton physique a besoin d’être utilisé, mais elle peut aussi recevoir des ordres depuis une interface I2C, SPI, série. Le DCC n’est que l’une des possibilités. Accessories est faite pour commander des Leds et des moteurs, donc d’un usage assez universel sur plateforme Arduino, quel que soit le projet. Dans ton cas, Commanders va recevoir ses ordres à partir du DCC et les transmettre aux accessoires via Accessories, c’est donc dans le partie décodeur qu’elles doivent se trouver toutes les deux.

    Répondre

    • Bibliothèque Commanders 18 septembre 2019 17:37, par Juan

      Merci beaucoup, Thierry.
      Je continue à étudier les bibliothèques et j’espère faire mes premiers tests ce week-end.

      Juan.

      Répondre

  • Bibliothèque Commanders 20 septembre 2019 11:41, par Juan

    Bonjour Thierry,
    Encore une fois avec plus de doutes, comme j’ai vu que quelques exemples de la bibliothèque incluent sur le même carte les bibliothèques DCCpp et Commanders.
    Pour clarifier les choses : mon montage se compose d’une carte Mega avec la DCCpp et le motor shield (ou LMD18200 ...) et une autre carte Mega pour le décodeur d’accessoires.
    Et je me propose d’installer un TCO (en plus du DCCpp), pour le moment avec des boutons et des DELs, plus tard un potentiomètre, ....
    Quelle configuration des bibliothèques Commanders et Accessories recommandez-vous ?
    Je vous remercie beaucoup,
    Juan.

    Traduit avec www.DeepL.com/Translator

    Répondre

  • Bibliothèque Commanders 20 septembre 2019 14:21, par Thierry

    Dans les exemples DCCpp, j’utilise juste Commanders pour gérer les boutons de vitesse et de fonction. Ça n’a aucun rapport avec le décodage DCC...
    Dans votre config : un Mega avec DCCpp, auquel on peut ajouter Commanders pour les boutons de pilotage de loco, un Mega avec Commanders et Accessories pour le pilotage des accessoires en décodant le signal DCC, et un autre MEGA avec pourquoi pas Commanders et Accessories pour gérer les boutons et les leds du TCO...

    Répondre

  • Bibliothèque Commanders 20 septembre 2019 19:47, par Juan

    C’est une bonne idée, Thierry. Je vais l’étudier attentivement.
    Merci beaucoup, Juan.

    Répondre

  • Bibliothèque Commanders 10 décembre 2020 20:59, par Martial

    Bonjour Thierry, J’ai besoin de quelques clarifications. Mon ’Setup’ : DCCpp (Super) sur Mega , JMRI. Maintenant je veux mettre en place une série de Arduino pour les accessoires en utilisant Commanders et Accessories.Comme outil de travail j’utilise Visual Code avec PlateformIO.

    Question no.1 : Pour décortiquer les données DCC je n’ai besoin que du montage de MynaBay et DCCCommander est la portion logiciel ? Si oui, j’assume que l’interrupt est la sortie de l’opto. Si non, qu’est-ce qu"il me manque ?

    Question no. 2 : Est-ce qu’il y a une différence entre DCCCommander et DCCCommanderNMRA, et quelle classe doit on utiliser ?

    Merci pour ton excellent travail. Je poursuis mes expérimentations.
    A+

    Répondre

    • Bibliothèque Commanders 11 décembre 2020 08:21

      Bonjour Martial,
      Tu as bien cerné la chose :) . DCCCommander est bien la partie logicielle du décodeur. Elle existe dans une ancienne version et elle est toujours dispo pour les anciens codages, mais la bonne à utiliser est la nouvelle DCCCommanderNMRA qui reprend la partie décodage de signal de la bibliothèque NMRA. Donc une fois le petit montage branché (voir à ce sujet le circuit que j’ai proposé sur le forum (https://forum.locoduino.org/index.p...)) et le begin du commander fait, tout doit marcher !

      Répondre

  • Bibliothèque Commanders 29 janvier 2021 20:57, par BRUNO

    Bonjour, j’ai suivi vos conseils, je vais essayer cette bibliothèque, mais c’est la galère , après une erreur systématique de compilation, j’ai ajouté la bibliothèque DIO2 , erreur corrigée, je pense que vous devriez jeter un coup d’oeil dans le contenu du téléchargement de la bibliothèque commanders, maintenant avec votre exemple Dcccommanders "#error To be able to compile this sample, the line #define NO_DCCCOMMANDERNMRA must be commented in Commanders.h" c’est prometteur mais extrêmement compliqué !!! bon courage

    Répondre

    • Bibliothèque Commanders 30 janvier 2021 20:35, par Thierry

      Bonjour et merci de vous intéresser à ma bibliothèque.

      Comme je l’explique dans l’article (https://www.locoduino.org/ecrire/?e...) qui lui est consacré, la configuration passe par la mise en remarque ou pas de certaines lignes, comme celle qui est demandée par l’exemple Dcccommanders. Ce n’est pas une erreur, c’est le seul moyen de conditionner un programme pour ne pas utiliser plus de mémoire que nécessaire sur nos petits Arduino.

      Répondre

  • Bibliothèque Commanders 19 mars 2021 13:32, par Laurent Rodier

    Chapeau ...
    Vous en avez mis de l’effort. c’est super bien fait et sur tout en francais.
    j’ai beaucoup de respect pour ce travail que vous avez fait pour nous simplifier
    la vie avec cette librairie sur les entrée sortie des cartes arduino.

    J’adore le principe. Je suis néophite dans ce domaine et j’ai un projet que je travail depuis quel que temps, c’est de manipuler les controle d’un petit moteur de bateau de 4hp de la console.

    je suis a étudier le fonctionnement de la librairie. et j’ai commencer par l’exemple fullDeclaration dans le fichier Commandes.h j’ai enlever les // aux ligne 527,530 et 533 et une erreur de class DccCommanderNMRA has no member named begen

    Voici le texte.
    version 1.0 dans le dossier : C :\Program Files (x86)\arduinoB\hardware\arduino\avr\libraries\Wire
    exit status 1
    ’class DccCommanderNMRAClass’ has no member named ’begin’ »

    Répondre

    • Bibliothèque Commanders 19 mars 2021 15:53, par Laurent Rodier

      Re bonjour... Comme je suis debutant j’ai envoyer mon texte trop vitte.
      Ma question : pour avoir ,provoqué cette erreur quelle erreur j’ai pu faire.

      je vous remerci pour votre temps a ma repondre
      Laurent

      Répondre

  • Bibliothèque Commanders 19 mars 2021 22:06, par Thierry

    Bonjour et merci de vous intéresser à Commanders.

    Cette bibliothèque contient beaucoup de moyens de donner des ordres (des Commanders...), et chacun à son importance. Pourtant faire cohabiter tout le monde réclame beaucoup de mémoire programme et de mémoire vive pour les variables. La plupart du temps, tout n’est pas nécessaire en même temps... C’est pourquoi une configuration est possible dans le fichier Commanders.h pour activer/désactiver des fonctionnalités. Dans le cas de FullDeclarations.ino, on est dans le cas le plus improbable et le plus défavorable : tout est activé en même temps. C’est une demo... Pour que ça marche, la partie configuration doit ressembler à ça :
    //////////////////////////////////////////
    //#define NO_BUTTONSCOMMANDER
    //#define NO_BUTTONSCOMMANDERENCODER
    //#define NO_BUTTONSCOMMANDERPUSH
    //#define NO_BUTTONSCOMMANDERANALOGPUSHES
    //#define NO_BUTTONSCOMMANDERSWITCH
    //#define NO_BUTTONSCOMMANDERPOTENTIOMETER
    //#define NO_CANCOMMANDER
    #define NO_DCCCOMMANDER
    //#define NO_DCCCOMMANDERNMRA
    //#define NO_I2CCOMMANDER
    //#define NO_SERIALCOMMANDER
    #define NO_EVENTSSEQUENCER

    Un fois cela fait, il reste un bug que je n’ai pas encore corrigé dans FullDeclarations.ino, il faut remplacer DccCommanderNMRA.begin(0, 0, 3) ; par DccCommanderNMRA.beginByPin(0, 0, 3) ; et ça devrait le faire...

    Répondre

  • Bibliothèque Commanders 14 avril 2021 15:30, par Garolou

    Bonjour Thierry,
    Bravo pour votre site, mine d’informations et de découvertes.
    Très novice en C, j’essaye d’utiliser votre article pour commander à partir d’une centrale ESU, des aiguillages par servos via un PCA 9695.
    Je vous avoue que je suis perdu, tant pour inclure commanders ( arduino m’indique une importation vide ) que pour paramétrer le code.
    Même si vos articles sont interessants et bien faits et je vous en remercie, le fait d’avoir un code en pièce détachées m’occasionne des erreurs, tant je suis nul ! Merci pour votre aide
    Louis

    Répondre

    • Bibliothèque Commanders 14 avril 2021 16:37, par Thierry

      Difficile d’aider sans le code source du croquis, sans la version de l’IDE Arduino et la certitude que les bibliothèques Commanders et son acolyte DIO2 sont bien installés.

      Répondre

Rubrique Bibliothèques

Les derniers articles

Les articles les plus lus