Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet table élévatrice avec Arduino DUE + Nextion

    25 juin 2021 à 10:19:50

    Bonjour,

    J'essais de recopier et de débugger un projet qui à été offert à la communauté, et j'essais de le compiler sans avoir de grosse connaissance en Arduino. Il s'agit de la gestion d'une petite table élévatrice avec un moteur Nemma, avec sont fin de course pour l'initialisation et le tout piloter par un écran Nextion. Il s'agit d'une table pour une machine à induction qui fait juste un recuit grâce à une boucle alimenté par un oscillateur. Voir plan ci-joint :

    Imgur

    Ce projet est basé sur une carte Arduino DUE + Nextion. J'ai téléchargé les librairies demandées :

    • Arduino Nextion
    • SdFat
    • AccelStepper

    J'ai supprimé celle-ci : avr/dtostrf , car je me suis rendu compte qu'elle était intégrée.

    Malheureusement j'ai des erreurs qui apparaissent en fin de compilation :

    D:\Téléchargements\Annealer-Master\Annealer-Master.ino: In function 'void Read_SDcard()':
    Annealer-Master:1448:16: error: 'FatFile* FatVolume::vwd()' is private within this context
    In file included from C:\Program Files (x86)\Arduino\libraries\SdFat\src/FatLib/FatLib.h:27:0,
                     from C:\Program Files (x86)\Arduino\libraries\SdFat\src/SdFat.h:34,
                     from D:\Téléchargements\Annealer-Master\Annealer-Master.ino:1:
    C:\Program Files (x86)\Arduino\libraries\SdFat\src/FatLib/FatVolume.h:336:12: note: declared private here
       FatFile* vwd() {return &m_vwd;}
                ^~~
    Annealer-Master:1451:37: error: 'FatFile* FatVolume::vwd()' is private within this context
    In file included from C:\Program Files (x86)\Arduino\libraries\SdFat\src/FatLib/FatLib.h:27:0,
                     from C:\Program Files (x86)\Arduino\libraries\SdFat\src/SdFat.h:34,
                     from D:\Téléchargements\Annealer-Master\Annealer-Master.ino:1:
    C:\Program Files (x86)\Arduino\libraries\SdFat\src/FatLib/FatVolume.h:336:12: note: declared private here
       FatFile* vwd() {return &m_vwd;}
                ^~~
    D:\Téléchargements\Annealer-Master\Annealer-Master.ino: In function 'void SettingsReset(void*)':
    Annealer-Master:1766:29: error: 'RSTC' was not declared in this scope
    D:\Téléchargements\Annealer-Master\Annealer-Master.ino:1766:29: note: suggested alternative: 'MSTR'
    Annealer-Master:1766:3: error: 'rstc_start_software_reset' was not declared in this scope
    



    J'ai bien conscience que l'on ne peut pas débuter en programmation par un projet aussi complexe, mais j'aimerai le faire fonctionner quand même, et par la suite en le prenant en main apporter les modifications que j'aimerai.


    Le fichier source est ici : https://forum.accurateshooter.com/attachments/anneal-master_arduino-zip.1123401/

    Si vous pouviez m'aider à passer l'étape du débogage ce serai sympa.
    Merci.

    Stéphane

    Edit : je n'avais pas configuré la bonne carte Arduino, mais le message d'erreur de compilation est un autre maintenant :

    C:\Program Files (x86)\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexUpload.cpp:17:28: fatal error: SoftwareSerial.h: No such file or directory
    ResolveLibrary(SoftwareSerial.h)
     #include <SoftwareSerial.h>
      -> candidates: []                            ^
    



    -
    Edité par StéphaneCharrier 25 juin 2021 à 11:18:37

    • Partager sur Facebook
    • Partager sur Twitter
      25 juin 2021 à 12:51:28

      Le DUE n'a pas de bibliothèque SoftwareSerial dans celles intégrées à l'IDE, contrairement à quasiment toutes les autres cartes.

      Tu peux, soit

      • modifier le fichier NexUpload.cpp dans le bibliothèque Nextion pour mettre la ligne #include <SoftwareSerial.h> en commentaire ou le déplacer après le "#ifdef USE_SOFTWARE_SERIAL"
      • trouver et installer une bibliothèque SoftwareSerial compatible avec le DUE
      • créer un fichier SoftwareSerial.h vide dans ton projet

      Si tu modifies la bibliothèque Nextion, tu devras le refaire à chaque mise à jour de celle-ci (à moins que tu soumettes un rapport de bug pour que la bibliothèque soit corrigée).

      • Partager sur Facebook
      • Partager sur Twitter
        26 juin 2021 à 15:00:57

        Merci beaucoup pour cette réponse précise. Cela semble fonctionner, la compilation va plus loin sans ces messages de défaut, mais j'en ai de nouveaux :

        D:\Téléchargements\Anneal-Master_Arduino\Arduino_Code\Annealer-Master\Annealer-Master.ino: In function 'void Read_SDcard()':
        Annealer-Master:1448:12: error: 'SdFat' has no member named 'vwd'
        Annealer-Master:1451:33: error: 'SdFat' has no member named 'vwd'
        Utilisation de la bibliothèque SdFat version 2.0.7 dans le dossier: C:\Program Files (x86)\Arduino\libraries\SdFat 
        Utilisation de la bibliothèque SPI version 1.0 dans le dossier: C:\Users\Stéphane\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.12\libraries\SPI 
        Utilisation de la bibliothèque AccelStepper prise dans le dossier : C:\Program Files (x86)\Arduino\libraries\AccelStepper (legacy)
        Utilisation de la bibliothèque ITEADLIB_Arduino_Nextion-master prise dans le dossier : C:\Program Files (x86)\Arduino\libraries\ITEADLIB_Arduino_Nextion-master (legacy)
        Utilisation de la bibliothèque SD version 1.2.4 dans le dossier: C:\Program Files (x86)\Arduino\libraries\SD 
        exit status 1
        'SdFat' has no member named 'vwd'
        



        • Partager sur Facebook
        • Partager sur Twitter
          26 juin 2021 à 18:09:59

          StéphaneCharrier a écrit:

          'SdFat' has no member named 'vwd'

          Apparemment, il faut que tu installes un SdFat version 1.x.x, par exemple la bibliothèque "SdFat - Adafruit Fork" version 1.2.3, et que tu désinstalles la version 2.

          Dans la version 2 de SdFat, vwd est un membre privé de la classe FatVolume, alors que dans la version 1, c'est un membre de la classe SdFat.

          StéphaneCharrier a écrit:

          Le fichier source est ici : https://forum.accurateshooter.com/attachments/anneal-master_arduino-zip.1123401/

          Sauf qu'il faut créer un compte pour accéder aux téléchargements.
          • Partager sur Facebook
          • Partager sur Twitter
            26 juin 2021 à 19:07:23

            Merci beaucoup pour cette aide, il faut que j'essaye. En attendant un membre de la communauté Arduino ma donner cette solution qui fonctionne aussi en compilation :

            Remplacer :

            sd.vwd()->rewind();
            
                // Read all the file in root(up to 100 files)
                while (file.openNext(sd.vwd(), O_READ))
                {

            A remplacer par :

            FsFile root;
                if (!root.open("/")) {
                  Serial.println("Failed to open root");
                }
                root.rewind();
            
                // Read all the file in root(up to 100 files)
                while (file.openNext(&root, O_READ))
                {

            Pour les fichiers sources les voici sur mon Drive :

            https://1drv.ms/u/s!As8Bbwtz0yPV3jQ1qBs35XgyPuhp?e=nMSFxu

            https://1drv.ms/u/s!As8Bbwtz0yPV3jICXxCYU_7af1kR?e=3Femjr




            • Partager sur Facebook
            • Partager sur Twitter

            Projet table élévatrice avec Arduino DUE + Nextion

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown