Indholdsfortegnelse:

Sådan bruges en fejlfinding på en ESP32: 11 trin (med billeder)
Sådan bruges en fejlfinding på en ESP32: 11 trin (med billeder)

Video: Sådan bruges en fejlfinding på en ESP32: 11 trin (med billeder)

Video: Sådan bruges en fejlfinding på en ESP32: 11 trin (med billeder)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Sådan bruges en fejlfinding på en ESP32
Sådan bruges en fejlfinding på en ESP32

Har du nogensinde ønsket at kigge inde i din kode for at se, hvorfor den opfører sig, som den er? Traditionelt i ESP32 -projekter ville du have været nødt til at tilføje en endeløs udskrivningserklæring for at prøve at finde ud af, hvad der foregik, men der er en bedre måde!

En debugger er en måde at se, hvad der sker i bestemte sektioner af din kode og prøve forskellige variable værdier uden at kompilere din kode igen, normalt er dette ikke noget, der er tilgængeligt for os på integrerede projekter, men i denne guide vil jeg vise dig hvordan man bruger det på en ESP32.

I denne vejledning viser jeg dig, hvordan du konfigurerer hardwaren, konfigurerer softwaren og viser et enkelt eksempel på, hvordan du bruger fejlfindingsprogrammet.

Forbrugsvarer

  • ESP -Prog - Dette er kortet, der er nødvendigt til fejlfinding

    • Præcis en jeg købte*
    • $ 5 Billigere, men jeg har ikke testet det*
  • En ESP32, der bryder pin 12, 13, 14, 15 ud

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [VALGFRIT] Debug Shield sælger jeg på Tindie

    • Fjer Huzzah32
    • D1 Mini ESP32

* = Tilknyttet link

Trin 1: Tjek videoen

Image
Image

Jeg har en video om dette emne, hvis du vil tjekke det ud.

På min kanal laver jeg normalt ESP8266 og ESP32 -baserede videoer, så hvis du er interesseret i dem, kan du tjekke det ud!

Trin 2: Hardware - Dele og ledninger

Hardware - Dele og ledninger
Hardware - Dele og ledninger
Hardware - Dele og ledninger
Hardware - Dele og ledninger
Hardware - Dele og ledninger
Hardware - Dele og ledninger

For at bruge debuggeren skal du kun bruge en ESP-Prog og næsten ethvert ESP32-kort (links til disse i et tidligere trin)

ESP-Prog:

ESP-Prog er et bord designet af espressif, producenterne af ESP32 og ESP8266 chips. Den kan tilsluttes JTAG -pins på ESP32, så vi kan bruge fejlfindingsprogrammet. Den kan også bruges til programmering af ESP32 -kort, men det dækker jeg ikke her.

ESP32 Board:

Du kan stort set bruge ethvert ESP32 -kort til dette, når det bryder JTAG -benene ud, som er 12, 13, 14 & 15. Jeg har testet både en Adafruit fjer Huzzah32 og et D1 Mini 32 -kort, og de fungerede begge fint.

Bemærk, at du kan bruge JTAG-stifterne i din skitse med fejlfindingen, for eksempel er den indbyggede LED på Huzzah32-kortet på pin 13, så du kan ikke bruge den, mens fejlfinding.

Ledninger:

For at tilslutte ESP-Prog til ESP32 skal du bare bruge ledningsføringsguiden som vist på billedet ovenfor. Tjek med ledningsdiagrammet på dit ESP32 -kort, hvis du ikke umiddelbart kan se de relevante stifter, da de nogle gange bruger et andet navngivningsskema.

Debug Shields:

Disse er valgfri, men jeg sælger nogle skjolde på Tindie til Huzzah32 og D1 Mini 32, der gør tilslutning af ESP-Prog virkelig enkel, det bryder de passende stifter ud til et IDC-stik, som du kan bruge et båndkabel til at forbinde direkte mellem skjoldet og ESP-Prog

Trin 3: Hardware - Driveropsætning

Hardware - Driveropsætning
Hardware - Driveropsætning
Hardware - Driveropsætning
Hardware - Driveropsætning
Hardware - Driveropsætning
Hardware - Driveropsætning

For at bruge ESP-prog til fejlfinding skal vi installere de relevante drivere til det. PlatformIO giver nogle trin til det her, men jeg vil gennemgå Windows -trinene i denne vejledning.

  1. Download og installer FTDI-driverne til ESP-Prog herfra, rul til højre for at downloade "setup eksekverbar" version for at gøre det lettere.
  2. Download og installer værktøjet Zadig herfra, dette giver os mulighed for at installere en generisk driver, der er nødvendig til fejlfinding.
  3. Når ESP-Prog er tilsluttet, skal du åbne Zadig
  4. I Zadig -applikationen under "Indstillinger" skal du klikke på "Liste over alle enheder"
  5. Rullemenuen i Zadig vil nu blive udfyldt, vælg "Dual RS232-HS (Interface 0)". Sørg for, at det er interface 0, du vælger!
  6. Til højre for den grønne pil skal "WinUSB" vælges, og klik derefter på "Erstat driver"

Når det er færdigt, skal dine drivere være indstillet til brug!

Bemærk: Hvis du ændrer den USB-port, du bruger til ESP-Prog, skal du muligvis gentage trin 3-6 igen. Hvis du får en fejl som vist på billedet ovenfor under fejlfinding, skal du gentage trinene.

Trin 4: Software: Installation af PlatformIO

Software: Installation af PlatformIO
Software: Installation af PlatformIO
Software: Installation af PlatformIO
Software: Installation af PlatformIO
Software: Installation af PlatformIO
Software: Installation af PlatformIO

PlatformIO er en IDE til udvikling med forskellige forskellige integrerede rammer, herunder Arduino-økosystemet. Det er mere kompliceret at bruge end noget lignende Arduino IDE, men det er meget kraftfuldt og har nogle funktioner, som Arduino IDE meget savner, såsom automatisk komplet.

Det er påkrævet for PlatformIO at bruge fejlfindingsprogrammet. Hvis du allerede kender PlatformIO, kan du springe et par trin videre.

  • Download og installer Visual Studio Code (VS Code) fra linket på PlatformIO.org -webstedet
  • Åbn VS -kode, og åbn udvidelsesmenuen, knappen er fremhævet på billedet ovenfor
  • Skriv "platformio" i søgningen, vælg det, og klik på installer.

Trin 5: Software: Brug af PlatformIO

Software: Brug af PlatformIO
Software: Brug af PlatformIO
Software: Brug af PlatformIO
Software: Brug af PlatformIO
Software: Brug af PlatformIO
Software: Brug af PlatformIO

Brug af PlatformIO er lidt anderledes end at bruge Arudino IDE, så i dette trin dækker vi bare det grundlæggende for at få et eksempel til at køre på et bræt.

Åbning af et eksempel:

  1. Klik på knappen Hjem på PlatformIO -værktøjslinjen (som vist på billedet)
  2. Klik på knappen "Projekteksempler"
  3. Vælg eksemplet "Arduino-blink" under afsnittet Espressif 32

Dette åbner et prøveblinkprojekt. Layoutet på en PlatformIO er ret anderledes i forhold til et Arduino -projekt, så lad os gå igennem det grundlæggende.

Hvor er koden?

Koden til dit projekt vil blive gemt i "src" -mappen, for blinkeksemplet vil du se en "blink.cpp" -fil, denne fil er den samme som din skitsefil (.ino) i et Arduino -projekt.

Hvordan konfigurerer jeg mit bord?

Konfigurationer til dit projekt opbevares i en "platformio.ini" -fil i dit projekt. Dette er faktisk en af mine yndlings ting ved PlatformIO sammenlignet med Arduino IDE, det gav aldrig mening for mig, at tavleindstillinger ikke var knyttet til skitser.

Eksemplet.ini indeholder definitioner for flere forskellige tavler, men for at holde tingene enkle, lad os slette de to nederste definitioner.

Hvor indstiller jeg min COM -port?

PlatformIO vil faktisk automatisk forsøge at finde den korrekte COM -port, der skal bruges, så du faktisk kan slippe af sted med ikke at indstille noget til dette. Men hvis du har flere COM -porte, som du vil, når du bruger debuggeren, synes jeg, det er fornuftigt at indstille den specifikke, du har brug for. Du kan se de forskellige enheder, du har, ved at klikke på sektionen "Enheder" på fanen Startside, og du kan indstille, hvilken din ESP32 er i "platformio.ini" ved at tilføje en "upload_port" -konfiguration.

Hvordan uploader jeg min kode?

Klik på knappen Upload (ikonet er en pil, der peger til højre), og den skal kompilere og uploade koden. Du skal nu have en blinkende LED på dit bord.

Trin 6: Debugging: Potential Banana Skin

Debugging: potentiel bananskind!
Debugging: potentiel bananskind!
Debugging: potentiel bananskind!
Debugging: potentiel bananskind!
Debugging: potentiel bananskind!
Debugging: potentiel bananskind!

Dette er noget, der fangede mig, da jeg forberedte dette, og forhåbentlig vil blive rettet, når du prøver det, men jeg syntes, det var vigtigt at forlade her.

På det tidspunkt, hvor denne vejledning laves, er den nyeste version af PlatformIO 4.3.0, og den har en fejl, der vedrører at kunne fejlsøge. Heldigvis kan vi nemt opdatere til den nyeste udviklingsversion, som løser problemet.

Kontroller på startsiden versionen af PlatformIO core, hvis den er "4.3.0", skal du udføre følgende trin.

  1. Klik på terminalikonet på værktøjslinjen PlatformIO
  2. I terminaltypen: pio upgrade --dev
  3. RestartVS -kode og PlatfromIO bør opdateres

Trin 7: Debugging: Konfiguration

Debugging: Konfiguration
Debugging: Konfiguration

Vi skal redigere filen "PlatofrmIO.ini" for at muliggøre fejlfinding, vi behøver kun at tilføje to ting til den.

debug_tool = esp-prog

Dette indstiller det fejlfindingsværktøj, vi bruger.

debug_init_break = tbreak opsætning

Dette er et trick, vi lærte af Andress Spiess 'video om fejlfinding på ESP32. Det fortæller debuggeren at stoppe i opsætningen af vores applikation.

Trin 8: Debugging: Start debugging

Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging
Debugging: Start debugging

Inden vi går ind i det, vil vi foretage en mindre ændring af skitsen, der vil gøre det lettere at demonstrere, hvad du kan gøre med fejlfinding.

  1. Opret en ny variabel, "int delayTime = 1000;" uden for nogen metoder, vil dette gøre det til en global variabel.
  2. Erstat nummeret inde i forsinkelsesopkaldene i sløjfen med denne nye variabel: delay (delayTime);

Upload koden til kortet igen, for derefter at starte fejlfinding, klik på "Kør" på værktøjslinjen og derefter på "Start fejlfinding"

Du vil se tingene bevæge sig i terminalvinduet, men selv når det siger, at det var en succes, hvis du klikker på "Debug Console", vil du se, at det stadig fungerer, vil det tage et par sekunder at afslutte.

Hvis alt gik som forventet, vil du se fejlfindingen stoppe ved starten af opsætningen.

Trin 9: Debugging: Grundlæggende brug

Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug
Debugging: Grundlæggende brug

Lad os dække nogle af det grundlæggende i, hvad du kan gøre med fejlfindingsprogrammet

Oprettelse af breakpoints:

Et breakpoint er et punkt i din kode, hvor du vil have fejlfindingen til at stoppe. For at oprette et breakpoint skal du klikke til venstre for linjenummeret. Som demo føjes breakpoint til den første linje i loop -metoden.

Breakpoint Navigation:

For at flytte mellem brudpunkt eller gå til den næste kodelinje, kan du bruge de værktøjer, der vises øverst på skærmen. Tryk på "fortsæt" -knappen (ligner en afspilningsknap) for at flytte det breakpoint, vi lige har oprettet inde i løkken.

Variable ure:

Variable ure giver dig mulighed for at overvåge værdien af variabler, når fejlfindingen stoppes ved et afbrydelsespunkt. For at tilføje et nyt variabelt ur kan du klikke på ikonet + og derefter bare skrive variabelens navn. Som demo skal du indtaste den variabel, vi tilføjede i det foregående trin "delayTime"

Variabel fremviser:

Du kan også se alle de variabler og deres værdier, der er tilgængelige på dit aktuelle breakpoint. For at demonstrere dette, hvis du kigger i sektionen "Global", skal du finde variablen "delayTime".

Redigering af værdien af variabler:

Du kan også redigere værdierne for variabler, og det får øjeblikkelig virkning på din kodes adfærd. For at demonstrere dette skal du klikke på variablen delayTime i afsnittet Variable Viewer og ændre værdien til "100". For at vise dette arbejde skal du deaktivere brudpunktet inde i sløjfen ved at klikke til venstre for linjenummeret igen. Tryk på knappen Fortsæt på navigationslinjen for breakpoint. LED'en på din ESP32 skal nu blinke meget hurtigere end før.

Trin 10: Fejlfinding

Fejlfinding
Fejlfinding

Jeg fandt ud af under min test, at jeg nogle gange ikke kunne uploade til ESP32, mens den var forbundet til ESP-prog, og jeg kunne ikke finde ud af et mønster til, hvorfor dette skete, fordi jeg for det meste kunne uploade uden nogen problemer. Jeg fandt ud af, at jeg bare kunne afbryde ESP32 og ESP-Prog, uploade koden til ESP32 og derefter tilslutte dem igen, og det ville fungere fint.

Trin 11: Konklusion

Jeg synes, at dette er et virkelig fedt værktøj at tilføje til værktøjskassen for at hjælpe med at finde ud af, hvad der foregår inde i dit projekt.

Jeg ville elske at høre, om du synes, at dette er nyttigt !. Lad mig vide det i kommentarerne herunder, eller slut mig til mig og en flok andre producenter på min Discord -server, hvor vi kan diskutere dette emne eller enhver anden makerrelateret, du har, folk er virkelig hjælpsomme der, så det er et godt sted at hænge ud.

Jeg vil også gerne sige en kæmpe tak til mine Github -sponsorer, der hjælper med at støtte det, jeg gør, jeg sætter virkelig pris på det. Hvis du ikke ved det, matcher Github sponsorater for det første år, så hvis du laver et sponsorat, matcher de det 100% i de næste par måneder. Tak fordi du læste!

Anbefalede: