Table des matières:

Comment utiliser un débogueur sur un ESP32 : 11 étapes (avec photos)
Comment utiliser un débogueur sur un ESP32 : 11 étapes (avec photos)

Vidéo: Comment utiliser un débogueur sur un ESP32 : 11 étapes (avec photos)

Vidéo: Comment utiliser un débogueur sur un ESP32 : 11 étapes (avec photos)
Vidéo: Débuter avec une carte ESP32 et Arduino 2024, Novembre
Anonim
Comment utiliser un débogueur sur un ESP32
Comment utiliser un débogueur sur un ESP32

Avez-vous déjà voulu jeter un coup d'œil à l'intérieur de votre code pour voir pourquoi il se comporte ainsi ? Traditionnellement, dans les projets ESP32, vous auriez dû ajouter une déclaration d'impression sans fin pour essayer de comprendre ce qui se passait, mais il existe un meilleur moyen!

Un débogueur est un moyen de voir ce qui se passe dans des sections particulières de votre code et d'essayer différentes valeurs de variables sans recompiler votre code. comment l'utiliser sur un ESP32.

Dans ce guide, je vais vous montrer comment configurer le matériel, configurer le logiciel et montrer un exemple simple d'utilisation du débogueur.

Fournitures

  • ESP-Prog - C'est la carte nécessaire pour le débogage

    • Exactement celui que j'ai acheté*
    • 5$ moins cher, mais je ne l'ai pas testé*
  • Un ESP32 qui casse les broches 12, 13, 14, 15

    • Plume d'Adafruit Huzzah32
    • D1 Mini ESP32*
  • [FACULTATIF] Bouclier de débogage que je vends sur Tindie

    • Plume Huzzah32
    • D1 Mini ESP32

* = Lien d'affiliation

Étape 1: regardez la vidéo

Image
Image

J'ai une vidéo sur ce sujet si vous voulez la regarder.

Sur ma chaîne, je fais généralement des vidéos basées sur ESP8266 et ESP32, donc si vous êtes intéressé par celles-ci, n'hésitez pas à les consulter !

Étape 2: Matériel - Pièces et câblage

Quincaillerie - Pièces et câblage
Quincaillerie - Pièces et câblage
Quincaillerie - Pièces et câblage
Quincaillerie - Pièces et câblage
Quincaillerie - Pièces et câblage
Quincaillerie - Pièces et câblage

Pour utiliser le débogueur, vous n'avez besoin que d'un ESP-Prog et de presque toutes les cartes ESP32 (liens vers ceux-ci dans une étape précédente)

ESP-Prog:

L'ESP-Prog est une carte conçue par espressif, les fabricants des puces ESP32 et ESP8266. Il se connecte aux broches JTAG de l'ESP32 pour nous permettre d'utiliser le débogueur. Il peut également être utilisé pour programmer les cartes ESP32, mais je ne couvrirai pas cela ici.

Carte ESP32:

Vous pouvez utiliser pratiquement n'importe quelle carte ESP32 pour cela une fois qu'elle sort les broches JTAG, qui sont 12, 13, 14 et 15. J'ai testé à la fois une carte Adafruit Feather Huzzah32 et une carte D1 Mini 32 et elles ont toutes les deux bien fonctionné.

Veuillez noter que vous pouvez utiliser les broches JTAG dans votre croquis avec le débogueur, par exemple la LED intégrée de la carte Huzzah32 est sur la broche 13, vous ne pouvez donc pas l'utiliser pendant le débogage.

Câblage:

Pour connecter l'ESP-Prog à l'ESP32, il suffit d'utiliser le guide de câblage tel que fourni dans l'image ci-dessus. Vérifiez avec le schéma de câblage de votre carte ESP32 si vous ne voyez pas immédiatement les broches appropriées car elles utilisent parfois un schéma de nommage différent.

Boucliers de débogage:

Ceux-ci sont facultatifs, mais je vends des blindages sur Tindie pour le Huzzah32 et le D1 Mini 32 qui rendent la connexion de l'ESP-Prog vraiment simple, il répartit les broches appropriées sur un connecteur IDC que vous pouvez utiliser un câble plat pour connecter directement entre le bouclier et l'ESP-Prog

Étape 3: Matériel - Configuration du pilote

Matériel - Configuration du pilote
Matériel - Configuration du pilote
Matériel - Configuration du pilote
Matériel - Configuration du pilote
Matériel - Configuration du pilote
Matériel - Configuration du pilote

Afin d'utiliser ESP-prog pour le débogage, nous devons installer les pilotes appropriés. PlatformIO fournit quelques étapes pour cela ici, mais je vais passer en revue les étapes Windows de ce guide.

  1. Téléchargez et installez les pilotes FTDI pour ESP-Prog à partir d'ici, faites défiler vers la droite pour télécharger la version "setup exécutable" pour le rendre plus facile.
  2. Téléchargez et installez l'outil Zadig à partir d'ici, cela nous permet d'installer un pilote générique nécessaire au débogage.
  3. Avec l'ESP-Prog branché, ouvrez Zadig
  4. Dans l'application Zadig, sous "Options", cliquez sur "Liste tous les appareils"
  5. La liste déroulante dans Zadig sera maintenant remplie, sélectionnez l'option "Dual RS232-HS (Interface 0)". Assurez-vous que c'est l'interface 0 que vous sélectionnez !
  6. À droite de la flèche verte, "WinUSB" doit être sélectionné, puis cliquez sur "Remplacer le pilote"

Lorsque cela est terminé, vos pilotes doivent être configurés pour être utilisés !

Remarque: si vous changez le port USB que vous utilisez pour l'ESP-Prog, vous devrez peut-être répéter les étapes 3 à 6. Si vous obtenez une erreur comme indiqué dans l'image ci-dessus lors du débogage, vous devez répéter les étapes.

Étape 4: Logiciel: Installation de PlatformIO

Logiciel: Installation de PlatformIO
Logiciel: Installation de PlatformIO
Logiciel: Installation de PlatformIO
Logiciel: Installation de PlatformIO
Logiciel: Installation de PlatformIO
Logiciel: Installation de PlatformIO

PlatformIO est un IDE pour développer avec différents frameworks embarqués, y compris l'écosystème Arduino. Il est plus compliqué à utiliser que quelque chose comme l'IDE Arduino, mais il est très puissant et possède certaines fonctionnalités qui manquent cruellement à l'IDE Arduino, telles que la saisie semi-automatique.

Il est nécessaire à PlatformIO d'utiliser le débogueur. Si vous connaissez déjà PlatformIO, n'hésitez pas à sauter quelques étapes.

  • Téléchargez et installez Visual Studio Code (VS Code) à partir du lien fourni sur le site Web PlatformIO.org
  • Ouvrez VS Code et ouvrez le menu des extensions, le bouton est mis en surbrillance dans l'image ci-dessus
  • Tapez "platformio" dans la recherche, sélectionnez-le et cliquez sur installer.

Étape 5: Logiciel: Utilisation de PlatformIO

Logiciel: Utilisation de PlatformIO
Logiciel: Utilisation de PlatformIO
Logiciel: Utilisation de PlatformIO
Logiciel: Utilisation de PlatformIO
Logiciel: Utilisation de PlatformIO
Logiciel: Utilisation de PlatformIO

L'utilisation de PlatformIO est un peu différente de l'utilisation de l'IDE Arudino, donc dans cette étape, nous allons simplement couvrir les bases de l'exécution d'un exemple sur une carte.

Ouvrir un exemple:

  1. Cliquez sur le bouton Accueil de la barre d'outils PlatformIO (comme indiqué dans l'image)
  2. Cliquez sur le bouton "Exemples de projet"
  3. Sélectionnez l'exemple "Arduino-blink" dans la section Espressif 32

Cela ouvrira un exemple de projet blink. La disposition d'un PlatformIO est assez différente de celle d'un projet Arduino, alors passons en revue les bases.

Où est le code ?

Le code de votre projet sera stocké dans le dossier "src", pour l'exemple blink, vous verrez un fichier "blink.cpp", ce fichier est le même que votre fichier de croquis (.ino) dans un projet Arduino.

Comment configurer ma carte ?

Les configurations de votre projet sont conservées dans un fichier "platformio.ini" de votre projet. C'est en fait l'une de mes choses préférées à propos de PlatformIO par rapport à l'IDE Arduino, cela n'a jamais eu de sens pour moi que les paramètres de la carte ne soient pas liés à des croquis.

L'exemple.ini contient des définitions pour plusieurs tableaux différents, mais pour simplifier les choses, supprimons les deux définitions du bas.

Où dois-je configurer mon port COM ?

PlatformIO essaiera en fait automatiquement de trouver le bon port COM à utiliser, vous pouvez donc vous en tirer sans rien définir pour cela. Mais si vous avez plusieurs ports COM, ce que vous aurez lors de l'utilisation du débogueur, je pense qu'il est logique de définir celui dont vous avez besoin. Vous pouvez voir les différents périphériques que vous possédez en cliquant sur la section "Périphériques" dans l'onglet Accueil, et vous pouvez définir celui de votre ESP32 dans le "platformio.ini" en ajoutant une configuration "upload_port".

Comment télécharger mon code ?

Cliquez sur le bouton Télécharger (l'icône est une flèche pointant vers la droite) et il devrait compiler et télécharger le code. Vous devriez maintenant avoir une LED clignotante sur votre carte.

Étape 6: Débogage: Peau de banane potentielle

Débogage: Peau de banane potentielle !
Débogage: Peau de banane potentielle !
Débogage: Peau de banane potentielle !
Débogage: Peau de banane potentielle !
Débogage: Peau de banane potentielle !
Débogage: Peau de banane potentielle !

C'est quelque chose qui m'a surpris lorsque je préparais cela et qui, espérons-le, sera corrigé au moment où vous l'essayerez, mais j'ai pensé qu'il était important de partir d'ici.

Au moment de la rédaction de ce guide, la dernière version de PlatformIO est la 4.3.0 et contient un bogue lié à la possibilité de déboguer. Heureusement, nous pouvons mettre à jour la dernière version de développement assez facilement, ce qui résout le problème.

Vérifiez sur la page d'accueil la version du noyau PlatformIO, si elle est "4.3.0", effectuez les étapes suivantes.

  1. Dans la barre d'outils PlatformIO, cliquez sur l'icône du terminal
  2. Dans le type de terminal: pio upgrade --dev
  3. Le code RestartVS et PlatfromIO doivent être mis à jour

Étape 7: Débogage: Configuration

Débogage: configuration
Débogage: configuration

Nous devons éditer le fichier "PlatofrmIO.ini" pour activer le débogage, nous n'avons qu'à y ajouter deux choses.

debug_tool = esp-prog

Cela définit l'outil de débogage que nous utilisons.

debug_init_break = configuration de tbreak

C'est une astuce que nous avons apprise de la vidéo d'Andress Spiess sur le débogage sur l'ESP32. Il indique au débogueur de s'arrêter dans la configuration de notre application.

Étape 8: Débogage: Démarrage du débogage

Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage
Débogage: démarrer le débogage

Avant d'entrer dans le vif du sujet, nous allons apporter une modification mineure à l'esquisse qui facilitera la démonstration de ce que vous pouvez faire avec le débogage.

  1. Créez une nouvelle variable, "int delayTime = 1000;" en dehors de toute méthode, cela en fera une variable globale.
  2. Remplacez le nombre à l'intérieur des appels de délai dans la boucle par cette nouvelle variable: delay(delayTime);

Téléchargez à nouveau le code sur la carte, puis pour lancer le débogage, dans la barre d'outils, cliquez sur « Exécuter » puis « Démarrer le débogage »

Vous verrez les choses bouger dans la fenêtre du terminal, mais même lorsque cela indique que c'est réussi, si vous cliquez sur la "Console de débogage", vous verrez que cela fonctionne toujours, cela prendra quelques secondes pour terminer.

Si tout s'est déroulé comme prévu, vous verrez le débogueur s'arrêter au début de l'installation.

Étape 9: Débogage: Utilisation de base

Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base
Débogage: utilisation de base

Voyons quelques-unes des bases de ce que vous pouvez faire avec le débogueur

Création de points d'arrêt:

Un point d'arrêt est un point de votre code où vous souhaitez que le débogueur s'arrête. Pour créer un point d'arrêt, cliquez à gauche du numéro de ligne. En tant que démo, ajoutez un point d'arrêt à la première ligne de la méthode de boucle.

Navigation des points d'arrêt:

Pour passer d'un point d'arrêt à un autre ou passer à la ligne de code suivante, vous pouvez utiliser les outils qui apparaîtront en haut de l'écran. Appuyez sur le bouton "continuer" (ressemble à un bouton de lecture) pour déplacer le point d'arrêt que nous venons de créer à l'intérieur de la boucle.

Montres variables:

Les surveillances de variables vous permettent de surveiller la valeur des variables lorsque le débogueur est arrêté à un point d'arrêt. Pour ajouter une nouvelle veille variable, vous pouvez cliquer sur l'icône +, puis saisir simplement le nom de la variable. Comme démo, tapez la variable que nous avons ajoutée à l'étape précédente "delayTime"

Visionneuse de variables:

Vous pouvez également voir toutes les variables et leurs valeurs qui sont disponibles à votre point d'arrêt actuel. Pour faire une démonstration, si vous regardez dans la section "Global", vous devriez trouver la variable "delayTime".

Modification de la valeur des variables:

Vous pouvez également modifier les valeurs des variables et cela aura un effet immédiat sur le comportement de vos codes. Pour le démontrer, cliquez sur la variable delayTime dans la section Variable Viewer et modifiez la valeur en « 100 ». Pour montrer que cela fonctionne, désactivez le point d'arrêt à l'intérieur de la boucle en cliquant à nouveau à gauche du numéro de ligne. Appuyez sur le bouton Continuer dans la barre de navigation du point d'arrêt. La LED de votre ESP32 devrait maintenant clignoter beaucoup plus rapidement qu'avant.

Étape 10: Dépannage

Dépannage
Dépannage

J'ai découvert lors de mes tests que parfois je ne pouvais pas télécharger sur l'ESP32 alors qu'il était connecté à l'ESP-prog, et je ne pouvais pas comprendre pourquoi cela s'était produit, car la plupart du temps, je pouvais télécharger sans des problèmes. J'ai découvert que je pouvais simplement déconnecter l'ESP32 et l'ESP-Prog, télécharger le code sur l'ESP32, puis les reconnecter et cela fonctionnerait bien.

Étape 11: Conclusion

Je pense que c'est un outil vraiment cool à ajouter à la boîte à outils pour aider à comprendre ce qui se passe dans votre projet.

J'aimerais savoir si vous trouvez cela utile !. S'il vous plaît laissez-moi savoir dans les commentaires ci-dessous, ou rejoignez-moi et un tas d'autres créateurs sur mon serveur Discord, où nous pouvons discuter de ce sujet ou de tout autre créateur lié à vous, les gens sont vraiment utiles là-bas, donc c'est un endroit idéal pour s'accrocher dehors.

Je tiens également à remercier chaleureusement mes sponsors Github qui m'aident à soutenir ce que je fais, je l'apprécie vraiment. Si vous ne le savez pas, Github fait correspondre les parrainages pour la première année, donc si vous faites un parrainage, ils le feront à 100% pour les prochains mois. Merci d'avoir lu!

Conseillé: