Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Sjekk videoen
- Trinn 2: Maskinvare - Deler og ledninger
- Trinn 3: Maskinvare - Driveroppsett
- Trinn 4: Programvare: Installere PlatformIO
- Trinn 5: Programvare: Bruke PlatformIO
- Trinn 6: Debugging: Potensiell bananskinn
- Trinn 7: Debugging: Konfigurasjon
- Trinn 8: Debugging: Start debugging
- Trinn 9: Debugging: Grunnleggende bruk
- Trinn 10: Feilsøking
- Trinn 11: Konklusjon
Video: Slik bruker du en feilsøker på en ESP32: 11 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Har du noen gang ønsket å ta en titt på koden din for å se hvorfor den oppfører seg som den er? Tradisjonelt i ESP32 -prosjekter ville du ha måttet legge til endeløs utskriftserklæring for å prøve å finne ut hva som foregikk, men det er en bedre måte!
En feilsøkingsfunksjon er en måte å se hva som skjer på bestemte deler av koden din og å prøve forskjellige variabelverdier uten å kompilere koden din på nytt, vanligvis er dette ikke noe som er tilgjengelig for oss på innebygde prosjekter, men i denne veiledningen vil jeg vise deg hvordan du bruker den på en ESP32.
I denne veiledningen viser jeg deg hvordan du konfigurerer maskinvaren, konfigurerer programvaren og viser et enkelt eksempel på bruk av feilsøkingsprogrammet.
Rekvisita
-
ESP -Prog - Dette er brettet som trengs for feilsøking
- Akkurat den jeg kjøpte*
- $ 5 Billigere, men jeg har ikke testet den*
-
En ESP32 som bryter ut pinne 12, 13, 14, 15
- Adafruit Feather Huzzah32
- D1 Mini ESP32*
-
[Valgfritt] Debug Shield jeg selger på Tindie
- Fjær Huzzah32
- D1 Mini ESP32
* = Tilknyttet lenke
Trinn 1: Sjekk videoen
Jeg har en video om dette emnet hvis du vil sjekke det ut.
På kanalen min lager jeg vanligvis ESP8266- og ESP32 -baserte videoer, så hvis du er interessert i dem, kan du sjekke det ut!
Trinn 2: Maskinvare - Deler og ledninger
For å bruke feilsøkingsprogrammet trenger du bare en ESP-Prog og nesten et hvilket som helst ESP32-kort (lenker til disse i et tidligere trinn)
ESP-Prog:
ESP-Prog er et brett designet av espressif, produsentene av ESP32- og ESP8266-brikkene. Den kobles til JTAG -pinner på ESP32 slik at vi kan bruke feilsøkingsprogrammet. Den kan også brukes til programmering av ESP32 -kort, men jeg vil ikke dekke det her.
ESP32 Board:
Du kan i utgangspunktet bruke et hvilket som helst ESP32 -kort til dette når det bryter ut JTAG -pinnene, som er 12, 13, 14 og 15. Jeg har testet både en Adafruit fjær Huzzah32 og et D1 Mini 32 -kort, og de fungerte bra.
Vær oppmerksom på at du kan bruke JTAG-pinnene i skissen din med feilsøkingsprogrammet, for eksempel er den innebygde LED-en på Huzzah32-kortet på pinne 13, så du kan ikke bruke den mens du feilsøker.
Kabling:
For å koble ESP-Prog til ESP32, bare bruk ledningsføringsguiden som vist på bildet ovenfor. Sjekk med koblingsskjemaet til ESP32 -kortet hvis du ikke umiddelbart ser de riktige pinnene, ettersom de noen ganger bruker et annet navnesystem.
Debug Shields:
Disse er valgfrie, men jeg selger noen skjold på Tindie for Huzzah32 og D1 Mini 32 som gjør tilkoblingen av ESP-Prog veldig enkel, det bryter ut de riktige pinnene til en IDC-kontakt som du kan bruke en båndkabel for å koble direkte mellom skjoldet og ESP-Prog
Trinn 3: Maskinvare - Driveroppsett
For å bruke ESP-prog til feilsøking må vi installere de riktige driverne for den. PlatformIO gir noen trinn for det her, men jeg vil gå gjennom trinnene i Windows i denne guiden.
- Last ned og installer FTDI-driverne for ESP-Prog herfra, bla til høyre for å laste ned "oppsett kjørbar" versjon for å gjøre det enklere.
- Last ned og installer verktøyet Zadig herfra, dette lar oss installere en generisk driver som trengs for feilsøking.
- Når ESP-Prog er plugget inn, åpner du Zadig
- I Zadig -programmet, under "Alternativer", klikker du på "Liste over alle enheter"
- Rullegardinmenyen i Zadig vil nå bli befolket, velg alternativet "Dual RS232-HS (grensesnitt 0)". Sørg for at det er grensesnitt 0 du velger!
- Til høyre for den grønne pilen bør "WinUSB" velges, og klikk deretter på "Erstatt driver"
Når det er ferdig, bør driverne være konfigurert for bruk!
Merk: Hvis du endrer USB-porten du bruker for ESP-Prog, må du kanskje gjenta trinn 3-6 igjen. Hvis du får en feil som vist på bildet ovenfor når du feilsøker, må du gjenta trinnene.
Trinn 4: Programvare: Installere PlatformIO
PlatformIO er en IDE for utvikling med forskjellige forskjellige innebygde rammer, inkludert Arduino-økosystemet. Det er mer komplisert å bruke enn noe som Arduino IDE, men det er veldig kraftig og har noen funksjoner som Arduino IDE sterkt savner, for eksempel automatisk fullføring.
Det kreves for PlatformIO å bruke feilsøkingsprogrammet. Hvis du allerede er kjent med PlatformIO, kan du hoppe over et par trinn.
- Last ned og installer Visual Studio Code (VS Code) fra lenken på PlatformIO.org -nettstedet
- Åpne VS -kode, og åpne utvidelsesmenyen, knappen er uthevet på bildet ovenfor
- Skriv "platformio" i søket, velg det og klikk på installer.
Trinn 5: Programvare: Bruke PlatformIO
Å bruke PlatformIO er litt annerledes enn å bruke Arudino IDE, så i dette trinnet vil vi bare dekke det grunnleggende for å få et eksempel til å kjøre på et brett.
Åpne et eksempel:
- Klikk på Hjem -knappen på PlatformIO -verktøylinjen (som vist på bildet)
- Klikk på "Prosjekteksempler" -knappen
- Velg eksempelet "Arduino-blink" under seksjonen Espressif 32
Dette åpner et eksempel på blinkprosjekt. Oppsettet til en PlatformIO er ganske annerledes enn et Arduino -prosjekt, så la oss gå gjennom det grunnleggende.
Hvor er koden?
Koden for prosjektet ditt vil bli lagret i "src" -mappen, for blinkeksemplet vil du se en "blink.cpp" -fil, denne filen er den samme som din skissefil (.ino) i et Arduino -prosjekt.
Hvordan konfigurerer jeg brettet mitt?
Konfigurasjoner for prosjektet lagres i en "platformio.ini" -fil i prosjektet. Dette er faktisk en av mine favoritt ting med PlatformIO sammenlignet med Arduino IDE, det var aldri fornuftig for meg at brettinnstillinger ikke var knyttet til skisser.
Eksemplet.ini inneholder definisjoner for flere forskjellige tavler, men for å holde ting enkelt, la oss slette de to nederste definisjonene.
Hvor setter jeg COM -porten min?
PlatformIO vil faktisk automatisk prøve å finne den riktige COM -porten som skal brukes, slik at du faktisk kan slippe unna med å ikke angi noe for dette. Men hvis du har flere COM -porter, som du vil gjøre når du bruker feilsøkingsprogrammet, synes jeg det er fornuftig å angi den spesifikke du trenger. Du kan se de forskjellige enhetene du har ved å klikke på "Enheter" -delen i startfanen, og du kan angi hvilken ESP32 din er i "platformio.ini" ved å legge til en "upload_port" -konfigurasjon.
Hvordan laster jeg opp koden min?
Klikk på Last opp -knappen (ikonet er en pil som peker til høyre), og den skal kompilere og laste opp koden. Du bør nå ha en blinkende LED på brettet.
Trinn 6: Debugging: Potensiell bananskinn
Dette er noe som fanget meg da jeg forberedte dette og forhåpentligvis vil bli fikset når du prøver det, men jeg syntes det var viktig å forlate her.
På tidspunktet for å lage denne veiledningen, er den nyeste versjonen av PlatformIO 4.3.0, og den har en feil som kan relateres til å kunne feilsøke. Heldigvis kan vi oppdatere til den nyeste utviklingsversjonen ganske enkelt som løser problemet.
Sjekk på startsiden versjonen av PlatformIO core, hvis den er "4.3.0", utfør følgende trinn.
- Klikk på terminalikonet på PlatformIO -verktøylinjen
- I terminaltypen: pio upgrade --dev
- RestartVS -kode og PlatfromIO bør oppdateres
Trinn 7: Debugging: Konfigurasjon
Vi trenger å redigere "PlatofrmIO.ini" -filen for å aktivere feilsøking, vi trenger bare å legge til to ting i den.
debug_tool = esp-prog
Dette angir feilsøkingsverktøyet vi bruker.
debug_init_break = tbreak oppsett
Dette er et triks vi lærte av Andress Spiess 'video om feilsøking på ESP32. Det forteller feilsøkingsprogrammet å stoppe i oppsettet av applikasjonen vår.
Trinn 8: Debugging: Start debugging
Før vi går inn på det, vil vi gjøre en liten endring av skissen som vil gjøre det lettere å demonstrere hva du kan gjøre med feilsøkingen.
- Lag en ny variabel, "int delayTime = 1000;" utenom noen metoder, vil dette gjøre det til en global variabel.
- Erstatt nummeret inne i forsinkelsesanropene i sløyfen med denne nye variabelen: delay (delayTime);
Last opp koden til brettet en gang til, for å starte feilsøking, klikk på "Kjør" og deretter "Start feilsøking" på verktøylinjen.
Du vil se tingene bevege seg i terminalvinduet, men selv når det står at det var suksess, hvis du klikker på "Debug Console" vil du se at det fortsatt fungerer, vil det ta noen sekunder å fullføre.
Hvis alt gikk som forventet, vil du se feilsøkingsprogrammet stoppe ved starten av oppsettet.
Trinn 9: Debugging: Grunnleggende bruk
La oss dekke noen av det grunnleggende om hva du kan gjøre med feilsøkingsprogrammet
Opprette bruddpunkter:
Et brytpunkt er et punkt i koden din der du vil at feilsøkingsprogrammet skal stoppe. For å opprette et brytpunkt, klikk til venstre for linjenummeret. Som demo, legg til brytningspunkt på den første linjen i loop -metoden.
Breakpoint Navigation:
For å flytte mellom bruddpunkt eller gå til neste kodelinje, kan du bruke verktøyene som vises øverst på skjermen. Trykk på "fortsett" -knappen (ser ut som en avspillingsknapp) for å flytte brytpunktet vi nettopp opprettet inne i løkken.
Variable klokker:
Variable klokker lar deg overvåke verdien av variabler når feilsøkingen stoppes ved et brytpunkt. For å legge til en ny variabelklokke, kan du klikke på + -ikonet og deretter skrive inn navnet på variabelen. Som en demo skriver du inn variabelen vi la til i forrige trinn "delayTime"
Variable Viewer:
Du kan også se alle variablene og verdiene deres som er tilgjengelige på ditt nåværende brytpunkt. For å demonstrere dette, hvis du ser i delen "Global", bør du finne varianten "delayTime".
Redigere verdien av variabler:
Du kan også redigere verdiene til variabler, og det får umiddelbar virkning på kodenes oppførsel. For å demonstrere dette, klikk på delayTime -variabelen i delen Variable Viewer, og endre verdien til "100". For å vise dette fungerer, deaktiver brytepunktet inne i løkken ved å klikke til venstre for linjenummeret igjen. Trykk på fortsett -knappen på navigasjonslinjen for brytpunkt. Lysdioden på ESP32 skal nå blinke mye raskere enn før.
Trinn 10: Feilsøking
Jeg fant ut under testen at jeg noen ganger ikke kunne laste opp til ESP32 mens den var koblet til ESP-prog, og at jeg ikke kunne finne ut et mønster på hvorfor dette skjedde, fordi jeg for det meste kunne laste opp uten noen problemer. Jeg fant ut at jeg bare kunne koble fra ESP32 og ESP-Prog, laste opp koden til ESP32 og deretter koble dem til igjen, og det ville fungere fint.
Trinn 11: Konklusjon
Jeg synes dette er et veldig kult verktøy å legge til i verktøykassen for å finne ut hva som skjer inne i prosjektet ditt.
Jeg vil gjerne høre om du synes dette er nyttig !. Gi meg beskjed i kommentarene nedenfor, eller bli med meg og en haug med andre beslutningstakere på Discord -serveren min, hvor vi kan diskutere dette emnet eller en annen makerrelatert en du har, folk er veldig hjelpsomme der, så det er et flott sted å henge ute.
Jeg vil også rette en stor takk til mine Github -sponsorer som hjelper meg med å støtte det jeg gjør, jeg setter virkelig pris på det. Hvis du ikke vet det, matcher Github sponsorater det første året, så hvis du lager et sponsing, vil de matche det 100% de neste månedene. Takk for at du leste!
Anbefalt:
ESP32 Bluetooth -opplæring - Slik bruker du innebygd Bluetooth av ESP32: 5 trinn
ESP32 Bluetooth -opplæring | Hvordan bruke innebygd Bluetooth av ESP32: Hei folkens siden ESP32 -kortet kommer med WiFi & Bluetooth begge, men for de fleste prosjektene bruker vi vanligvis bare Wifi, vi bruker ikke Bluetooth. Så i denne instruksjonene viser jeg hvor enkelt det er å bruke Bluetooth av ESP32 & For dine grunnleggende prosjekter
Slik bruker du Bluetooth (BLE) med ESP32: 3 trinn
Slik bruker du Bluetooth (BLE) med ESP32: ##### MERK ##### Metoden vist i denne instruksjonsboken er gammel og utdatert. Se denne videoen for den nyeste metoden. ############### Mens ESP32 har en omfattende funksjonsliste (Wikipedia), er den største funksjonen som trekker blikket den innebygde blå
Slik bruker du MQTT med Raspberry Pi og ESP8266: 8 trinn (med bilder)
Hvordan bruke MQTT Med Raspberry Pi og ESP8266: I denne instruksen vil jeg forklare hva MQTT -protokollen er og hvordan den brukes til å kommunisere mellom enheter. Så, som en praktisk demonstrasjon, skal jeg vise deg hvordan du setter opp en enkel to klientsystem, hvor en ESP8266 -modul sender et melding
Slik bruker du Mac Terminal og hvordan du bruker viktige funksjoner: 4 trinn
Slik bruker du Mac Terminal og hvordan du bruker viktige funksjoner: Vi viser deg hvordan du åpner MAC Terminal. Vi viser deg også noen få funksjoner i terminalen, for eksempel ifconfig, endring av kataloger, tilgang til filer og arp. Ifconfig lar deg sjekke IP -adressen din og MAC -annonsen din
Slik bruker du RPLIDAR 360 ° laserskanner med Arduino: 3 trinn (med bilder)
Slik bruker du RPLIDAR 360 ° laserskanner med Arduino: Jeg er en stor fan av å bygge sumobotter, og jeg er alltid på utkikk etter nye interessante sensorer og materialer å bruke for å bygge en bedre, raskere og smartere robot. Jeg fant ut om RPLIDAR A1 som du kan få for $ 99 på DFROBOT.com. Jeg sa at jeg var helt