Auteur Sujet: l'IDE arduino  (Lu 5474 fois)

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
l'IDE arduino
« le: septembre 18, 2020, 06:16:09 pm »
Bonjours à toutes et tous,

En programmant avec l'IDE de Arduino, est-il possible pour des raisons de débogage, de faire du "pas à pas" et afficher le résultat de chacune des instructions ?
Merci pour les réponses.
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : l'IDE arduino
« Réponse #1 le: septembre 18, 2020, 06:21:04 pm »
A priori, non, la solution de contournement est mettre des print() et println() des variables que l'on veut voir aux endroits stratégiques.
On peut les conditionner à une variable personnelle DEBUG.
Cordialement

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : l'IDE arduino
« Réponse #2 le: septembre 18, 2020, 06:33:19 pm »
Merci, je vais voir ce que je peux faire ...
mais c'est dommage que ça n'existe pas dans cet IDE !
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : l'IDE arduino
« Réponse #3 le: septembre 18, 2020, 06:53:54 pm »
Alors comment faire ...
quand on faire une compilation du programme, on peut voir écrit en orange les erreurs reconnues par le compilateur, mais ça ne veut pas dire qu'une instruction se trouve au bon endroit dans le code !
Comment vérifier qu'une instruction est bien exécutée à l'instant "T" et avec quel résultat ?  ???
L'interface IDE Arduino est la seule à exécuter le code ? existe-t-il d'autre compilateurs plus complet ? :P
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : l'IDE arduino
« Réponse #4 le: septembre 18, 2020, 07:37:27 pm »
Si vous mettez un print(variable) après votre instruction vous saurez en lançant le moniteur si :

1. le programme passe bien par là.
2. quelle est la valeur de la variable après instruction.

Que demander de plus ?

Si il n'y passe pas, il faut mettre un  print("Je suis là")  ailleurs. Il passera au moins dans le loop si le programme a été compilé sans erreurs et déversé dans l'Arduino.
Nota, ce n'est pas l'IDE qui exécute le code mais l'Arduino lui-même en toute autonomie.

Supposons que vous vouliez savoir si vous passez dans le switch et quelle est la valeur de n (attention les yeux, ça va défiler, mais on peut l'arrêter et si besoin ajoutez des delay)

      switch (n) // debut de la structure
      {
        case 5:           // bouton C1_V1
          digitalWrite(22, HIGH) ;  // aiguillage G1_D

Vous mettrez :
      println ("AVANT SWITCH");
      switch (n) // debut de la structure
      {
        print ("dans SWITCH  n = ");   println (n);
        case 5:           // bouton C1_V1
          digitalWrite(22, HIGH) ;  // aiguillage G1_D
Cordialement

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : l'IDE arduino
« Réponse #5 le: septembre 19, 2020, 07:11:46 am »
Merci MONSIEUR !

En majuscules, bientôt j'écrirais "Professeur" ! parce que j'en apprends plus ici, qu'à lire les différents tutos qu'on peut trouver ailleurs !

"Nota, ce n'est pas l'IDE qui exécute le code mais l'Arduino lui-même en toute autonomie."
Ça, on ne le lit pas dans les tutos !

Merci encore !
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 310
    • Voir le profil
Re : l'IDE arduino
« Réponse #6 le: septembre 19, 2020, 10:36:13 am »
Bonjours à toutes et tous,

En programmant avec l'IDE de Arduino, est-il possible pour des raisons de débogage, de faire du "pas à pas" et afficher le résultat de chacune des instructions ?
Merci pour les réponses.

L'IDE est un petit programme, simple à utiliser, qui s'adresse justement à ceux qui n'ont pas les connaissances d'un informaticien et c'est justement cela qui a fait son succès. Il est composé d'un éditeur de texte qui permet d'écrire un programme et il utilise d'autres logiciels afin de transformer ce programme en une suite d'instructions machines comprises du microcontrôleur des cartes Arduino.

Cette simplicité voulue fait que l'IDE ne fait pas tout et notamment pour le debug d'un programme. Il y a d'autres solutions comme PlatformIO mais quand on débute, le mieux est de se contenter de l'IDE et pour debuguer, on place (comme cela a été dit) des println pour surveiller les valeurs de variables et voir comment le programme s'enchaine.

Votre volonté de progresser vous honore mais sachez aussi prendre votre temps car c'est nécessaire à toute progression ; nous en avons fait de même lorsque nous avons débuté. Je constate que vous avez déjà passé de nombreuses étapes, alors bravo. Le reste viendra naturellement en son temps et peut-être qu'un jour vous manipulerez d'autres solutions que l'IDE. De nombreux articles ont été écrits dans LOCODUINO sur l'IDE et ce qu'il peut faire (dans la catégorie débutant) ; n'hésitez pas à les lire car plus vous maitriserez cet outil, plus il vous sera facile de concevoir un programme et de le mettre au point. Mais l'IDE ne fait pas tout : si un programme n'est pas bien conçu, il ne donnera pas satisfaction. D'où l'intérêt de manipuler des exemples simples afin de progresser en comprenant ce qui est fait et en adaptant ce qui marche à vos propres besoins.

Bonnes réussites.

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : l'IDE arduino
« Réponse #7 le: septembre 19, 2020, 07:15:57 pm »
Merci messieurs pour vos informations.

Je reste donc sur ma faim !
A l'heure actuelle, si j'avais un peu plus d'instruction en programmation et au moins 40 ans de moins, je n'aurais pas hésiter à tenter de concevoir un pluging qui permettrait ce que je recherche. Je suis persuadé que ce type de pluging rendrait service non seulement au débutant comme moi mais aussi au professionnel dont vous êtes !
Dommage !
merci de votre aide et bon WE !
Jacques
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : l'IDE arduino
« Réponse #8 le: septembre 19, 2020, 09:59:45 pm »
J'ai l'impression que vous n'avez pas encore vu ce qu’implique le temps réel, qui est le domaine de l'Arduino.

Contrairement à la logique des programmes en basic, la plupart des sketches Arduino évolués ne fonctionnent pas si on les arrête.

Vous verrez que delay() est à remplacer par l'utilisation de millis() dès qu'on veut traiter plusieurs tâches en parallèle.

Et pensez que la quasi totalité des lecteurs de Locoduino et ils sont nombreux, se contentent des println pour mettre au point leurs petites merveilles. Pourquoi pas vous ?

Les pros, que nous ne sommes pas sauf exceptions, peuvent disposer d'outils sophistiqués (PlatformIO a été cité) mais je crains que vous mettiez un tel temps à les maitriser que vous aurez abandonné les automatismes via Arduino avant. Utilisez déjà les conseils qu'on vous donne, il y a tout ce qu'il faut pour mettre au point votre projet. Sans oublier le site éditorial et autres ressources internet.

Et une dernière suggestion, partez d'un exemple qui marche, et complétez le après avoir maitrisé les bases de la programmation.
« Modifié: septembre 20, 2020, 09:42:32 am par msport »
Cordialement