Innehållsförteckning:

Hur man använder en felsökning på en ESP32: 11 steg (med bilder)
Hur man använder en felsökning på en ESP32: 11 steg (med bilder)

Video: Hur man använder en felsökning på en ESP32: 11 steg (med bilder)

Video: Hur man använder en felsökning på en ESP32: 11 steg (med bilder)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Juli
Anonim
Hur man använder en felsökning på en ESP32
Hur man använder en felsökning på en ESP32

Har du någonsin velat kika in i koden för att se varför den beter sig som den är? Traditionellt i ESP32 -projekt hade du behövt lägga till oändliga utskriftsförklaringar för att försöka ta reda på vad som hände, men det finns ett bättre sätt!

En felsökare är ett sätt att se vad som händer i vissa delar av din kod och att testa olika variabelvärden utan att kompilera om din kod, vanligtvis är detta inte något tillgängligt för oss på inbäddade projekt, men i den här guiden visar jag dig hur man använder den på en ESP32.

I den här guiden visar jag dig hur du installerar hårdvaran, konfigurerar programvaran och visar ett enkelt exempel på hur du använder felsökaren.

Tillbehör

  • ESP -Prog - Detta är kortet som behövs för felsökning

    • Exakt jag köpte*
    • $ 5 Billigare, men jag har inte testat den*
  • En ESP32 som bryter ut stift 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [VALFRITT] Debug Shield jag säljer på Tindie

    • Fjäder Huzzah32
    • D1 Mini ESP32

* = Affiliate Link

Steg 1: Kolla in videon

Image
Image

Jag har en video om detta ämne om du vill kolla in det.

På min kanal gör jag vanligtvis ESP8266- och ESP32 -baserade videor, så om du är intresserad av dem, kolla in det!

Steg 2: Hårdvara - delar och ledningar

Hårdvara - Delar och ledningar
Hårdvara - Delar och ledningar
Hårdvara - Delar och ledningar
Hårdvara - Delar och ledningar
Hårdvara - Delar och ledningar
Hårdvara - Delar och ledningar

För att använda felsökaren behöver du bara en ESP-Prog och nästan alla ESP32-kort (länkar till dessa i ett tidigare steg)

ESP-Prog:

ESP-Prog är ett kort designat av espressif, tillverkarna av ESP32- och ESP8266-chipsen. Den ansluts till JTAG -stiften på ESP32 så att vi kan använda felsökaren. Den kan också användas för programmering av ESP32 -kort, men jag kommer inte att täcka det här.

ESP32 Board:

Du kan använda i princip vilket ESP32 -kort som helst för detta när det bryter ut JTAG -stiften, som är 12, 13, 14 & 15. Jag har testat både en Adafruit fjäder Huzzah32 och ett D1 Mini 32 -kort och de båda fungerade bra.

Observera att du kan använda JTAG-stiften i din skiss med felsökaren, till exempel är den inbyggda lysdioden på Huzzah32-kortet på stift 13, så du kan inte använda den under felsökning.

Kabeldragning:

För att ansluta ESP-Prog till ESP32, använd bara kabelguiden enligt bilden ovan. Kontrollera med kopplingsschemat på ditt ESP32 -kort om du inte omedelbart ser lämpliga stift eftersom de ibland använder ett annat namngivningsschema.

Debug Shields:

Dessa är valfria, men jag säljer några sköldar på Tindie för Huzzah32 och D1 Mini 32 som gör det enkelt att ansluta ESP-Prog, det bryter ut lämpliga stift till en IDC-kontakt som du kan använda en bandkabel för att ansluta direkt mellan skölden och ESP-Prog

Steg 3: Hårdvara - Driver Setup

Hårdvara - Driver Setup
Hårdvara - Driver Setup
Hårdvara - Driver Setup
Hårdvara - Driver Setup
Hårdvara - Driver Setup
Hårdvara - Driver Setup

För att kunna använda ESP-prog för felsökning måste vi installera lämpliga drivrutiner för den. PlatformIO ger några steg för det här, men jag kommer att gå igenom Windows -stegen i den här guiden.

  1. Ladda ner och installera FTDI-drivrutinerna för ESP-Prog härifrån, bläddra till höger för att ladda ner "installations körbar" version för att göra det enklare.
  2. Ladda ner och installera verktyget Zadig härifrån, detta gör att vi kan installera en generisk drivrutin som behövs för felsökning.
  3. Med ESP-Prog inkopplad, öppna Zadig
  4. I Zadig -programmet, under "Alternativ", klicka på "Lista alla enheter"
  5. Rullgardinsmenyn i Zadig kommer nu att fyllas i, välj alternativet "Dubbel RS232-HS (gränssnitt 0)". Se till att det är gränssnitt 0 du väljer!
  6. Till höger om den gröna pilen ska "WinUSB" väljas, klicka sedan på "Ersätt drivrutin"

När det är klart bör dina drivrutiner vara inställda för användning!

Obs! Om du ändrar USB-porten som du använder för ESP-Prog kan du behöva upprepa steg 3-6 igen. Om du får ett fel som visas på bilden ovan vid felsökning måste du upprepa stegen.

Steg 4: Programvara: Installera PlatformIO

Programvara: Installera PlatformIO
Programvara: Installera PlatformIO
Programvara: Installera PlatformIO
Programvara: Installera PlatformIO
Programvara: Installera PlatformIO
Programvara: Installera PlatformIO

PlatformIO är en IDE för att utveckla med olika inbäddade ramar, inklusive Arduino-ekosystemet. Det är mer komplicerat att använda än något liknande Arduino IDE, men det är mycket kraftfullt och har några funktioner som Arduino IDE saknar, till exempel automatisk komplettering.

Det krävs för PlatformIO att använda felsökaren. Om du redan är bekant med PlatformIO kan du hoppa över ett par steg.

  • Ladda ner och installera Visual Studio Code (VS Code) från länken på PlatformIO.org -webbplatsen
  • Öppna VS -kod och öppna tilläggsmenyn, knappen är markerad på bilden ovan
  • Skriv "platformio" i sökningen, välj den och klicka på installera.

Steg 5: Programvara: Använda PlatformIO

Programvara: Använda PlatformIO
Programvara: Använda PlatformIO
Programvara: Använda PlatformIO
Programvara: Använda PlatformIO
Programvara: Använda PlatformIO
Programvara: Använda PlatformIO

Att använda PlatformIO är lite annorlunda än att använda Arudino IDE, så i det här steget kommer vi bara att täcka grunderna för att få ett exempel att köra på en bräda.

Öppna ett exempel:

  1. Klicka på Hem -knappen i PlatformIO -verktygsfältet (som visas på bilden)
  2. Klicka på knappen "Projektexempel"
  3. Välj exemplet "Arduino-blink" under avsnittet Espressif 32

Detta öppnar ett provblinkprojekt. Layouten på en PlatformIO är ganska annorlunda jämfört med ett Arduino -projekt, så låt oss gå igenom grunderna.

Var är koden?

Koden för ditt projekt kommer att lagras i "src" -mappen, för blinkningsexemplet ser du en "blink.cpp" -fil, den här filen är densamma som din skissfil (.ino) i ett Arduino -projekt.

Hur konfigurerar jag mitt kort?

Konfigurationer för ditt projekt förvaras i en "platformio.ini" -fil i ditt projekt. Detta är faktiskt en av mina favorit saker med PlatformIO jämfört med Arduino IDE, det var aldrig meningsfullt för mig att styrelsens inställningar inte var knutna till skisser.

Exemplet.ini innehåller definitioner för flera olika tavlor, men för att hålla det enkelt ska vi ta bort de två nedre definitionerna.

Var ställer jag in min COM -port?

PlatformIO kommer faktiskt automatiskt att försöka hitta rätt COM -port att använda, så att du faktiskt kan komma undan med att inte ställa in något för detta. Men om du har flera COM -portar, vilket du kommer att göra när du använder felsökaren, tycker jag att det är vettigt att ställa in den specifika du behöver. Du kan se de olika enheterna du har genom att klicka på avsnittet "Enheter" på hemfliken och Du kan ställa in vilken din ESP32 är i "platformio.ini" genom att lägga till en "upload_port" -konfiguration.

Hur laddar jag upp min kod?

Klicka på knappen Ladda upp (ikonen är en pil som pekar åt höger) så ska den kompilera och ladda upp koden. Du bör nu ha en blinkande lysdiod på ditt kort.

Steg 6: Debugging: Potential Banana Skin

Debugging: Potential Banana Skin!
Debugging: Potential Banana Skin!
Debugging: Potential Banana Skin!
Debugging: Potential Banana Skin!
Debugging: Potential Banana Skin!
Debugging: Potential Banana Skin!

Detta är något som fångade mig när jag förberedde det här och förhoppningsvis kommer att fixas när du provar det, men jag tyckte att det var viktigt att lämna härifrån.

Vid tidpunkten för att göra denna guide är den senaste versionen av PlatformIO 4.3.0 och den har en bugg som relaterar till att kunna felsöka. Tack och lov kan vi uppdatera till den senaste utvecklingsversionen ganska enkelt vilket löser problemet.

Kontrollera på startsidan versionen av PlatformIO -kärnan, om den är "4.3.0", utför följande steg.

  1. Klicka på terminalikonen i PlatformIO -verktygsfältet
  2. I terminalen typ: pio uppgradering --dev
  3. RestartVS -kod och PlatfromIO bör uppdateras

Steg 7: Felsökning: Konfiguration

Felsökning: Konfiguration
Felsökning: Konfiguration

Vi behöver redigera filen "PlatofrmIO.ini" för att möjliggöra felsökning, vi behöver bara lägga till två saker i den.

debug_tool = esp-prog

Detta ställer in felsökningsverktyget vi använder.

debug_init_break = tbreak -installation

Detta är ett trick vi lärde oss av Andress Spiess video om felsökning på ESP32. Det säger till felsökaren att sluta i installationen av vår applikation.

Steg 8: Felsökning: Starta felsökning

Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning
Felsökning: Starta felsökning

Innan vi går in på det kommer vi att göra en mindre ändring av skissen som kommer att göra det lättare att visa vad du kan göra med felsökningen.

  1. Skapa en ny variabel, "int delayTime = 1000;" utanför alla metoder kommer detta att göra det till en global variabel.
  2. Ersätt numret i fördröjningssamtalen i slingan med denna nya variabel: delay (delayTime);

Ladda upp koden till kortet igen, för att börja felsöka, klicka på "Kör" i verktygsfältet och sedan på "Starta felsökning"

Du kommer att se saker och ting röra sig i terminalfönstret, men även när det står att det var framgångsrikt, om du klickar på "Debug Console" ser du att det fortfarande fungerar, det tar några sekunder att slutföra.

Om allt gick som förväntat kommer du att se felsökaren stoppa i början av installationen.

Steg 9: Felsökning: Grundläggande användning

Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning
Felsökning: Grundläggande användning

Låt oss täcka några av grunderna för vad du kan göra med felsökaren

Skapa brytpunkter:

En brytpunkt är en punkt i din kod där du vill att felsökaren ska stoppas. För att skapa en brytpunkt, klicka till vänster om radnumret. Som demo, lägg till brytpunkt till den första raden i loopmetoden.

Brytpunktsnavigering:

För att flytta mellan brytpunkten eller gå till nästa kodrad kan du använda verktygen som visas högst upp på skärmen. Tryck på "fortsätt" -knappen (ser ut som en uppspelningsknapp) för att flytta brytpunkten vi just skapade inuti slingan.

Variabla klockor:

Med variabla klockor kan du övervaka variabelns värde när felsökaren stoppas vid en brytpunkt. För att lägga till en ny variabelklocka kan du klicka på + -ikonen och sedan skriva in namnet på variabeln. Som demo skriver du in variabeln som vi lade till i föregående steg "delayTime"

Variable Viewer:

Du kan också se alla variabler och deras värden som är tillgängliga vid din nuvarande brytpunkt. För att demonstrera detta, Om du tittar i avsnittet "Global" bör du hitta variabeln "delayTime".

Redigera värdet på variabler:

Du kan också redigera värdena på variabler och det kommer att få omedelbar effekt på ditt kods beteende. För att demonstrera detta, klicka på delayTime -variabeln i avsnittet Variable Viewer och ändra värdet till "100". För att visa detta fungerar, inaktivera brytpunkten inuti slingan genom att klicka till vänster om radnumret igen. Tryck på fortsätt -knappen på brytpunktsnavigationsfältet. Lysdioden på din ESP32 ska nu blinka mycket snabbare än tidigare.

Steg 10: Felsökning

Felsökning
Felsökning

Jag upptäckte under min testning att jag ibland inte kunde ladda upp till ESP32 medan den var ansluten till ESP-prog, och jag kunde inte räkna ut ett mönster till varför detta hände, eftersom jag oftast kunde ladda upp utan några problem. Jag fann att jag bara kunde koppla bort ESP32 och ESP-Prog, ladda upp koden till ESP32 och sedan ansluta dem igen och det skulle fungera bra.

Steg 11: Konklusion

Jag tycker att det här är ett riktigt coolt verktyg att lägga till i verktygslådan för att ta reda på vad som händer i ditt projekt.

Jag skulle gärna höra om du tycker att det här är användbart !. Vänligen meddela mig i kommentarerna nedan, eller gå med mig och ett gäng andra tillverkare på min Discord -server, där vi kan diskutera detta ämne eller någon annan makerrelaterad sådan du har, människor är verkligen hjälpsamma där så det är ett bra ställe att hänga på ut.

Jag vill också rikta ett stort tack till mina Github -sponsorer som hjälper till att stödja det jag gör, jag uppskattar det verkligen. Om du inte vet matchar Github sponsring det första året, så om du gör en sponsring matchar de det 100% under de närmaste månaderna. Tack för att du läser!

Rekommenderad: