INHOUDSOPGAWE:

Hoe om 'n ontfouter op 'n ESP32 te gebruik: 11 stappe (met foto's)
Hoe om 'n ontfouter op 'n ESP32 te gebruik: 11 stappe (met foto's)

Video: Hoe om 'n ontfouter op 'n ESP32 te gebruik: 11 stappe (met foto's)

Video: Hoe om 'n ontfouter op 'n ESP32 te gebruik: 11 stappe (met foto's)
Video: MSE IDE + MSE GUI / ReView / Free open source Pascal / MSE Lang / Martin Schreiber / 2022 2024, November
Anonim
Hoe om 'n ontfouter op 'n ESP32 te gebruik
Hoe om 'n ontfouter op 'n ESP32 te gebruik

Wou u al ooit na u kode kyk om te sien waarom dit optree soos dit is? Tradisioneel sou u in ESP32 -projekte eindelose drukverklarings moes byvoeg om te probeer uitvind wat aan die gang was, maar daar is 'n beter manier!

'N Ontfouter is 'n manier om te sien wat op sekere dele van u kode gebeur en om verskillende veranderlike waardes uit te probeer sonder om u kode weer saam te stel; gewoonlik is dit nie iets wat ons in die ingeboude projekte beskikbaar het nie, maar in hierdie gids sal ek u wys hoe om dit op 'n ESP32 te gebruik.

In hierdie gids sal ek jou wys hoe om die hardeware op te stel, die sagteware op te stel en 'n eenvoudige voorbeeld van die gebruik van die ontfouter te toon.

Voorrade

  • ESP -Prog - Dit is die bord wat nodig is vir ontfouting

    • Presies een wat ek gekoop het*
    • $ 5 goedkoper, maar ek het dit nie getoets nie*
  • 'N ESP32 wat pen 12, 13, 14, 15 uitbreek

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [OPSIONEEL] Ontfoutskild verkoop ek op Tindie

    • Feather Huzzah32
    • D1 Mini ESP32

* = Geaffilieerde skakel

Stap 1: Kyk na die video

Image
Image

Ek het 'n video oor hierdie onderwerp as u wil kyk.

Op my kanaal maak ek gewoonlik video's op basis van ESP8266 en ESP32, so kyk gerus as u daarin belangstel!

Stap 2: Hardeware - onderdele en bedrading

Hardeware - onderdele en bedrading
Hardeware - onderdele en bedrading
Hardeware - onderdele en bedrading
Hardeware - onderdele en bedrading
Hardeware - onderdele en bedrading
Hardeware - onderdele en bedrading

Om die ontfouter te gebruik, benodig u slegs 'n ESP-Prog en byna enige ESP32-bord (skakel hierna in 'n vroeëre stap)

ESP-Prog:

Die ESP-Prog is 'n bord wat ontwerp is deur espressif, die vervaardigers van die ESP32- en ESP8266-skyfies. Dit maak verbinding met JTAG -penne van die ESP32 sodat ons die ontfouter kan gebruik. Dit kan ook gebruik word vir die programmering van ESP32 -borde, maar ek behandel dit nie hier nie.

ESP32 -bord:

U kan basies enige ESP32 -bord hiervoor gebruik sodra dit die JTAG -penne uitbreek, wat 12, 13, 14 en 15. Ek het beide 'n Adafruit -veer Huzzah32 en 'n D1 Mini 32 -bord getoets en hulle het albei goed gewerk.

Let daarop dat u die JTAG-penne in u skets met die ontfouter kan gebruik, byvoorbeeld dat die ingeboude LED van die Huzzah32-bord op pen 13 is, sodat u dit nie kan gebruik tydens ontfouting nie.

Bedrading:

Om die ESP-Prog aan die ESP32 te koppel, gebruik die bedradinggids soos op die foto hierbo. Raadpleeg die bedradingsdiagram van u ESP32 -bord as u nie dadelik die toepaslike penne sien nie, aangesien dit soms 'n ander benamingskema gebruik.

Ontfout skilde:

Dit is opsioneel, maar ek verkoop 'n paar skilde op Tindie vir die Huzzah32 en die D1 Mini 32 wat die verbinding van die ESP-Prog baie eenvoudig maak; dit breek die toepaslike penne uit na 'n IDC-aansluiting waarmee u 'n lintkabel kan gebruik om direk tussen die skild en die ESP-Prog

Stap 3: Hardeware - bestuurderopstelling

Hardeware - bestuurderopstelling
Hardeware - bestuurderopstelling
Hardeware - bestuurderopstelling
Hardeware - bestuurderopstelling
Hardeware - bestuurderopstelling
Hardeware - bestuurderopstelling

Om die ESP-prog vir ontfouting te gebruik, moet ons die regte bestuurders daarvoor installeer. PlatformIO bied hier 'n paar stappe hiervoor, maar ek gaan deur die Windows -stappe in hierdie gids.

  1. Laai die FTDI-bestuurders vir die ESP-Prog hier af en installeer, blaai na regs om die weergawe van die 'instelbare uitvoer' af te laai om dit makliker te maak.
  2. Laai die hulpmiddel Zadig hier af en installeer dit, sodat ons 'n generiese bestuurder kan installeer wat nodig is vir ontfouting.
  3. As die ESP-Prog ingeprop is, maak Zadig oop
  4. Klik in die Zadig -toepassing onder "Opsies" op "Lys alle toestelle"
  5. Die aftreklys in Zadig sal nou ingevul word; kies die opsie "Dual RS232-HS (Interface 0)". Maak seker dat dit die koppelvlak 0 is wat u kies!
  6. Regs van die groen pyltjie moet 'WinUSB' gekies word en klik dan op 'Vervang bestuurder'

As dit klaar is, moet u bestuurders gereed wees vir gebruik!

Opmerking: as u die USB-poort verander wat u vir die ESP-Prog gebruik, moet u moontlik stappe 3-6 herhaal. As u 'n fout opspoor soos in die prent hierbo getoon, moet u die stappe herhaal.

Stap 4: Sagteware: Installeer PlatformIO

Sagteware: die installering van PlatformIO
Sagteware: die installering van PlatformIO
Sagteware: die installering van PlatformIO
Sagteware: die installering van PlatformIO
Sagteware: die installering van PlatformIO
Sagteware: die installering van PlatformIO

PlatformIO is 'n IDE vir ontwikkeling met verskillende ingebedde raamwerke, insluitend die Arduino-ekosisteem. Dit is ingewikkelder om te gebruik as iets soos die Arduino IDE, maar dit is baie kragtig en het 'n paar funksies wat die Arduino IDE baie mis, soos outomatiese voltooiing.

PlatformIO moet die ontfouter gebruik. As u reeds vertroud is met PlatformIO, kan u 'n paar stappe oorskiet.

  • Laai Visual Studio Code (VS Code) af en installeer dit vanaf die skakel op die PlatformIO.org -webwerf
  • Maak VS -kode oop en maak die uitbreidingsmenu oop; die knoppie word in die prent hierbo gemerk
  • Tik 'platformio' in die soektog, kies dit en klik op installeer.

Stap 5: Sagteware: Met behulp van PlatformIO

Sagteware: met behulp van PlatformIO
Sagteware: met behulp van PlatformIO
Sagteware: met behulp van PlatformIO
Sagteware: met behulp van PlatformIO
Sagteware: met behulp van PlatformIO
Sagteware: met behulp van PlatformIO

Die gebruik van PlatformIO is 'n bietjie anders as om die Arudino IDE te gebruik, dus in hierdie stap behandel ons net die basiese beginsels om 'n voorbeeld op 'n bord te laat loop.

Maak 'n voorbeeld oop:

  1. Klik op die Home -knoppie op die PlatformIO -werkbalk (soos op die foto getoon)
  2. Klik op die knoppie "Projekvoorbeelde"
  3. Kies die voorbeeld "Arduino-blink" onder die gedeelte Espressif 32

Dit sal 'n voorbeeldknipprojek oopmaak. Die uitleg van 'n PlatformIO is redelik anders as 'n Arduino -projek, dus laat ons deur die basiese beginsels gaan.

Waar is die kode?

Die kode vir u projek word in die 'src' -lêergids gestoor; vir die blink voorbeeld sal u 'n' blink.cpp 'lêer sien; hierdie lêer is dieselfde as u sketslêer (.ino) in 'n Arduino -projek.

Hoe kan ek my bord instel?

Konfigurasies vir u projek word in 'n 'platformio.ini' -lêer in u projek gehou. Dit is eintlik een van my gunsteling dinge oor PlatformIO in vergelyking met die Arduino IDE, dit het nooit vir my sin gemaak dat die bordinstellings nie aan sketse gekoppel was nie.

Die voorbeeld.ini bevat definisies vir verskeie verskillende borde, maar om die dinge eenvoudig te hou, laat ons die onderste twee definisies verwyder.

Waar stel ek my COM -poort?

PlatformIO sal eintlik outomaties probeer om die korrekte COM -poort te vind om te gebruik, sodat u eintlik kan wegkom om niks hiervoor in te stel nie. Maar as u meer COM -poorte het, wat u sal gebruik as u die ontfouter gebruik, dink ek dat dit sinvol is om die spesifieke toestel in te stel wat u benodig. u kan bepaal watter u ESP32 in die 'platformio.ini' is deur 'n 'upload_port' -opset by te voeg.

Hoe laai ek my kode op?

Klik op die oplaai -knoppie (die ikoon is 'n pyltjie wat regs wys) en dit moet die kode saamstel en oplaai. U moet nou 'n knipperende LED op u bord hê.

Stap 6: Ontfouting: moontlike piesangvel

Ontfouting: moontlike piesangvel!
Ontfouting: moontlike piesangvel!
Ontfouting: moontlike piesangvel!
Ontfouting: moontlike piesangvel!
Ontfouting: moontlike piesangvel!
Ontfouting: moontlike piesangvel!

Dit is iets wat my opgeval het toe ek dit voorberei het, en hopelik sal dit herstel word teen die tyd dat u dit probeer, maar ek het gedink dit is belangrik om hier weg te gaan.

Ten tyde van die opstel van hierdie gids, is die nuutste weergawe van PlatformIO 4.3.0 en bevat dit 'n fout wat verband hou met die ontfouting. Gelukkig kan ons redelik maklik na die nuutste ontwikkelingsweergawe opdateer wat die probleem oplos.

Kyk op die tuisblad na die weergawe van PlatformIO -kern, as dit '4.3.0' is, voer die volgende stappe uit.

  1. Klik op die TerminalIO -werkbalk op die terminale ikoon
  2. In die terminale tipe: pio upgrade --dev
  3. HerlaaiVS -kode en PlatfromIO moet opgedateer word

Stap 7: Ontfouting: konfigurasie

Ontfouting: opset
Ontfouting: opset

Ons moet die 'PlatofrmIO.ini' -lêer wysig om ontfouting moontlik te maak; ons hoef net twee dinge daarby te voeg.

debug_tool = esp-prog

Dit stel die ontfoutingsinstrument wat ons gebruik, in.

debug_init_break = opstel van tbreak

Dit is 'n truuk wat ons geleer het uit die video van Andress Spiess oor ontfouting op die ESP32. Dit vertel die ontfouter om te stop met die opstel van ons toepassing.

Stap 8: Ontfouting: begin met ontfouting

Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting
Ontfouting: begin met ontfouting

Voordat ons daarby ingaan, sal ons 'n klein verandering aan die skets maak, wat dit makliker sal maak om te demonstreer wat u met die ontfouting kan doen.

  1. Skep 'n nuwe veranderlike, "int delayTime = 1000;" Buiten enige metodes, sal dit 'n globale veranderlike maak.
  2. Vervang die nommer binne die vertragingsoproepe in die lus met hierdie nuwe veranderlike: delay (delayTime);

Laai die kode nog een keer op die bord op, klik dan op "Uitvoer" en dan op "Begin ontfouting" in die werkbalk om te begin met ontfouting

U sal sien dat die dinge in die terminale venster beweeg, maar selfs as dit sê dat dit 'n sukses was, sal u sien dat dit nog steeds 'n paar sekondes neem om te klik as u op die 'Ontfoutkonsole' klik.

As alles verloop soos verwag, sien u die ontfouter aan die begin van die opstelling.

Stap 9: Ontfouting: basiese gebruik

Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik
Ontfouting: basiese gebruik

Kom ons kyk na die basiese beginsels van wat u met die ontfouter kan doen

Skep breekpunte:

'N Breekpunt is 'n punt van u kode waar u wil hê dat die ontfouter moet stop. Om 'n breekpunt te skep, klik links van die reëlnommer. Voeg as breekpunt by die eerste reël in die lusmetode.

Breekpuntnavigasie:

Om tussen die breekpunt te beweeg of na die volgende reël kode te gaan, kan u die gereedskap wat bo -aan die skerm verskyn, gebruik. Druk die "voortgaan" -knoppie (lyk soos 'n speelknoppie) om die breekpunt wat ons pas geskep het, binne die lus te skuif.

Veranderlike horlosies:

Met veranderlike horlosies kan u die waarde van veranderlikes monitor wanneer die ontfouter teen 'n breekpunt gestop word. Om 'n nuwe veranderlike horlosie by te voeg, kan u op die + -ikoon klik en tik dan die naam van die veranderlike. Tik as 'n demo die veranderlike wat ons bygevoeg het in die vorige stap "delayTime"

Veranderlike kyker:

U kan ook al die veranderlikes en hul waardes wat op u huidige breekpunt beskikbaar is, sien. Om dit te demonstreer, as u in die afdeling "Globaal" kyk, moet u die veranderlike "delayTime" vind.

Wysiging van die waarde van veranderlikes:

U kan ook die waardes van veranderlikes wysig, en dit het onmiddellike effek op u kodesgedrag. Om dit te demonstreer, klik op die delayTime -veranderlike in die afdeling Variable Viewer en verander die waarde na "100". Om hierdie werking te wys, skakel die breekpunt in die lus uit deur weer links van die reëlnommer te klik. Druk die voortgaan -knoppie op die breekpunt -navigasiebalk. Die LED op u ESP32 behoort nou baie vinniger as voorheen te flikker.

Stap 10: Probleemoplossing

Probleemoplossing
Probleemoplossing

Ek het tydens my toetsing agtergekom dat ek soms nie na die ESP32 kon oplaai terwyl dit aan die ESP-prog gekoppel was nie, en ek kon nie 'n patroon vind waarom dit gebeur het nie, omdat ek meestal sonder kon oplaai enige probleme. Ek het gevind dat ek net die ESP32 en die ESP-Prog kon ontkoppel, die kode na die ESP32 kon oplaai en dit dan weer konnekteer, en dit sou goed werk.

Stap 11: Besering

Ek dink dit is 'n baie aangename hulpmiddel om by die gereedskapskas te voeg om te bepaal wat in u projek aangaan.

Ek hoor graag of u dit nuttig vind! Laat weet my asseblief in die kommentaar hieronder, of sluit aan by my en 'n klomp ander makers op my Discord -bediener, waar ons hierdie onderwerp kan bespreek of enige ander verwante een wat u het, mense is baie behulpsaam daar, so dit is 'n goeie plek om op te hang uit.

Ek wil ook my Github -borge bedank wat my help ondersteun wat ek doen, ek waardeer dit opreg. As u dit nie weet nie, pas Github borgskappe vir die eerste jaar by, so as u 'n borgskap maak, pas hulle dit die volgende paar maande 100% aan. Dankie vir die lees!

Aanbeveel: