Sisällysluettelo:

Virheenkorjaimen käyttäminen ESP32: 11 vaihetta (kuvilla)
Virheenkorjaimen käyttäminen ESP32: 11 vaihetta (kuvilla)

Video: Virheenkorjaimen käyttäminen ESP32: 11 vaihetta (kuvilla)

Video: Virheenkorjaimen käyttäminen ESP32: 11 vaihetta (kuvilla)
Video: kotiavustaja auringonvalvonta esphomella 2024, Marraskuu
Anonim
Kuinka käyttää virheenkorjainta ESP32: ssa
Kuinka käyttää virheenkorjainta ESP32: ssa

Oletko koskaan halunnut kurkistaa koodisi sisään nähdäksesi miksi se toimii niin kuin se on? Perinteisesti ESP32 -projekteissa sinun olisi pitänyt lisätä loputon tulostuslauseke yrittäessäsi selvittää, mitä oli tekeillä, mutta on olemassa parempi tapa!

Virheenkorjaaja on tapa nähdä, mitä koodin tietyissä osissa tapahtuu, ja kokeilla erilaisia muuttuja-arvoja ilman koodin kääntämistä uudelleen, yleensä tämä ei ole meille tarjolla upotetuissa projekteissa, mutta tässä oppaassa näytän sinulle miten sitä käytetään ESP32: ssa.

Tässä oppaassa näytän sinulle laitteiston asennuksen, ohjelmiston asentamisen ja yksinkertaisen esimerkin virheenkorjaimen käytöstä.

Tarvikkeet

  • ESP -Prog - Tätä levyä tarvitaan virheenkorjaukseen

    • Juuri ostin*
    • 5 dollaria halvempi, mutta en ole testannut*
  • ESP32, joka purkaa nastat 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [VALINNAINEN] Debug Shield, jota myyn Tindiessä

    • Sulka Huzzah32
    • D1 Mini ESP32

* = Kumppanilinkki

Vaihe 1: Katso video

Image
Image

Minulla on video tästä aiheesta, jos haluat tarkistaa sen.

Kanavallani teen yleensä ESP8266- ja ESP32 -pohjaisia videoita, joten jos olet kiinnostunut niistä, katso se!

Vaihe 2: Laitteisto - osat ja johdotus

Laitteisto - osat ja johdot
Laitteisto - osat ja johdot
Laitteisto - osat ja johdot
Laitteisto - osat ja johdot
Laitteisto - osat ja johdot
Laitteisto - osat ja johdot

Jos haluat käyttää virheenkorjainta, tarvitset vain ESP-Progin ja melkein minkä tahansa ESP32-levyn (linkit näihin aiemmassa vaiheessa)

ESP-Prog:

ESP-Prog on ESP32- ja ESP8266-sirujen valmistajien espressifin suunnittelema levy. Se yhdistää ESP32: n JTAG -nastoihin, jotta voimme käyttää virheenkorjainta. Sitä voidaan käyttää myös ESP32 -levyjen ohjelmointiin, mutta en käsittele sitä täällä.

ESP32 -kortti:

Voit käyttää tähän periaatteessa mitä tahansa ESP32 -levyä, kun se purkaa JTAG -nastat, jotka ovat 12, 13, 14 ja 15. Olen testannut sekä Adafruit -höyhen Huzzah32 että D1 Mini 32 -levyn, ja molemmat toimivat hyvin.

Huomaa, että voit käyttää luonnoksessasi olevia JTAG-nastoja virheenkorjaimen kanssa, esimerkiksi Huzzah32-kortin sisäänrakennettu LED on tapissa 13, joten et voi käyttää sitä virheenkorjauksen aikana.

Johdotus:

Liitä ESP-Prog ESP32: een vain kytkentäoppaalla, kuten yllä olevassa kuvassa. Tarkista ESP32 -kortin kytkentäkaaviosta, jos et heti näe sopivia nastoja, koska joskus ne käyttävät eri nimeämisjärjestelmää.

Debug Shields:

Nämä ovat valinnaisia, mutta myyn joitain Tindien kilpiä Huzzah32: lle ja D1 Mini 32: lle, jotka tekevät ESP-Progin yhdistämisestä todella helppoa, se purkaa sopivat nastat IDC-liittimeen, jonka voit yhdistää nauhakaapelilla suoraan suojus ja ESP-Prog

Vaihe 3: Laitteisto - ohjaimen asennus

Laitteisto - ohjaimen asennus
Laitteisto - ohjaimen asennus
Laitteisto - ohjaimen asennus
Laitteisto - ohjaimen asennus
Laitteisto - ohjaimen asennus
Laitteisto - ohjaimen asennus

Jotta voisimme käyttää ESP-ohjelmaa virheenkorjaukseen, meidän on asennettava sille sopivat ohjaimet. PlatformIO tarjoaa joitain vaiheita tähän, mutta käyn läpi tämän oppaan Windows -vaiheet.

  1. Lataa ja asenna ESP-Progin FTDI-ohjaimet täältä, vieritä oikealle ladataksesi "asennuksen suoritettava" versio helpottaaksesi sitä.
  2. Lataa ja asenna Zadig -työkalu täältä, joten voimme asentaa virheenkorjaukseen tarvittavan yleisen ohjaimen.
  3. Kun ESP-Prog on kytketty, avaa Zadig
  4. Napsauta Zadig -sovelluksen "Asetukset" -kohdassa "Listaa kaikki laitteet"
  5. Zadigin pudotusvalikko täytetään nyt, valitse vaihtoehto "Dual RS232-HS (Interface 0)". Varmista, että käyttöliittymä 0 valitset!
  6. Vihreän nuolen oikealla puolella pitäisi valita "WinUSB" ja napsauta "Vaihda ohjain"

Kun tämä on valmis, ohjaimet on asetettava käyttöön!

Huomautus: Jos vaihdat ESP-Progin USB-porttia, sinun on ehkä toistettava vaiheet 3-6 uudelleen. Jos saat virheen, kuten yllä olevassa kuvassa näkyy virheenkorjauksen aikana, sinun on toistettava vaiheet.

Vaihe 4: Ohjelmisto: PlatformIO: n asennus

Ohjelmisto: PlatformIO: n asennus
Ohjelmisto: PlatformIO: n asennus
Ohjelmisto: PlatformIO: n asennus
Ohjelmisto: PlatformIO: n asennus
Ohjelmisto: PlatformIO: n asennus
Ohjelmisto: PlatformIO: n asennus

PlatformIO on IDE kehittämiseen erilaisten sulautettujen kehysten kanssa, mukaan lukien Arduino-ekosysteemi. Sen käyttö on monimutkaisempaa kuin Arduino IDE: n kaltainen, mutta se on erittäin tehokas ja sisältää joitain ominaisuuksia, joita Arduino IDE kaipaa kipeästi, kuten automaattista täydennystä.

PlatformIO: n on käytettävä virheenkorjainta. Jos olet jo tutustunut PlatformIO -ohjelmaan, voit ohittaa muutaman vaiheen eteenpäin.

  • Lataa ja asenna Visual Studio Code (VS Code) PlatformIO.org -sivuston linkistä
  • Avaa VS -koodi ja avaa laajennusvalikko, painike on korostettu yllä olevassa kuvassa
  • Kirjoita "platformio" hakuun, valitse se ja napsauta asenna.

Vaihe 5: Ohjelmisto: PlatformIO: n käyttö

Ohjelmisto: PlatformIO: n käyttö
Ohjelmisto: PlatformIO: n käyttö
Ohjelmisto: PlatformIO: n käyttö
Ohjelmisto: PlatformIO: n käyttö
Ohjelmisto: PlatformIO: n käyttö
Ohjelmisto: PlatformIO: n käyttö

PlatformIO: n käyttö on hiukan erilaista kuin Arudino IDE: n käyttö, joten tässä vaiheessa käsittelemme vain perusesimerkit, joilla saat esimerkin toimimaan taululla.

Esimerkin avaaminen:

  1. Napsauta Koti -painiketta PlatformIO -työkalurivillä (Kuten kuvassa)
  2. Napsauta "Projektiesimerkkejä" -painiketta
  3. Valitse esimerkki "Arduino-blink" Espressif 32 -osiosta

Tämä avaa näytteen vilkutusprojektin. PlatformIO: n ulkoasu on melko erilainen kuin Arduino -projekti, joten käydään läpi perusasiat.

Missä koodi on?

Projektisi koodi tallennetaan "src" -kansioon, vilkkuva esimerkki näyttää "blink.cpp" -tiedoston, tämä tiedosto on sama kuin luonnostiedostosi (.ino) Arduino -projektissa.

Miten määritän korttini?

Projektisi kokoonpanot säilytetään projektisi "platformio.ini" -tiedostossa. Tämä on itse asiassa yksi suosikkiasioistani PlatformIO: ssa verrattuna Arduino IDE: hen, minusta ei ollut koskaan järkevää, että levyn asetukset eivät olleet sidottuja luonnoksiin.

Esimerkki.ini sisältää määritelmiä useille eri taulukoille, mutta pitää asiat yksinkertaisina, poistetaan kaksi alinta määritelmää.

Mihin COM -portti asetetaan?

PlatformIO yrittää automaattisesti löytää oikean COM -portin käytettäväksi, joten voit todella päästä eroon siitä, ettet aseta mitään tälle. Mutta jos sinulla on useita COM -portteja, joita käytät virheenkorjainta käytettäessä, mielestäni on järkevää asettaa tarvitsemasi portti. Voit määrittää ESP32 -laitteesi "platformio.ini" -kohdassa lisäämällä "upload_port" -määrityksen.

Miten voin ladata koodini?

Napsauta Lataa -painiketta (kuvake on nuoli, joka osoittaa oikealle), ja sen pitäisi koota ja ladata koodi. Sinun pitäisi nyt vilkkua LED -kortilla.

Vaihe 6: Virheenkorjaus: Mahdollinen banaanikuori

Virheenkorjaus: Mahdollinen banaanikuori!
Virheenkorjaus: Mahdollinen banaanikuori!
Virheenkorjaus: Mahdollinen banaanikuori!
Virheenkorjaus: Mahdollinen banaanikuori!
Virheenkorjaus: Mahdollinen banaanikuori!
Virheenkorjaus: Mahdollinen banaanikuori!

Tämä kiinnitti huomioni valmistellessani tätä ja toivottavasti korjaantuu, kun yrität sitä, mutta minusta oli tärkeää lähteä täältä.

Tämän oppaan laatimishetkellä PlatformIO: n uusin versio on 4.3.0 ja siinä on virhe, joka liittyy virheenkorjaukseen. Onneksi voimme päivittää uusimpaan kehitysversioon melko helposti, mikä ratkaisee ongelman.

Tarkista etusivulta PlatformIO -ytimen versio, jos se on "4.3.0", suorita seuraavat vaiheet.

  1. Napsauta PlatformIO -työkalurivin terminaalikuvaketta
  2. Päätetyypissä: pio upgrade --dev
  3. RestartVS -koodi ja PlatfromIO on päivitettävä

Vaihe 7: Virheenkorjaus: määritys

Virheenkorjaus: Määritykset
Virheenkorjaus: Määritykset

Meidän on muokattava "PlatofrmIO.ini" -tiedostoa virheenkorjauksen ottamiseksi käyttöön, meidän on vain lisättävä siihen kaksi asiaa.

debug_tool = esp-prog

Tämä asettaa käyttämämme virheenkorjaustyökalun.

debug_init_break = tbreak -asetukset

Tämä on temppu, jonka opimme Andress Spiessin videosta ESP32: n virheenkorjauksesta. Se kehottaa virheenkorjaajaa pysähtymään sovelluksemme asennuksessa.

Vaihe 8: Virheenkorjaus: Virheenkorjauksen aloittaminen

Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen
Virheenkorjaus: Virheenkorjauksen aloittaminen

Ennen kuin ryhdymme siihen, teemme luonnokseen pienen muutoksen, jonka avulla on helpompi osoittaa, mitä voit tehdä virheenkorjauksella.

  1. Luo uusi muuttuja, "int delayTime = 1000;" menetelmien ulkopuolella tämä tekee siitä globaalin muuttujan.
  2. Korvaa silmukan viivepuheluiden sisällä oleva numero tällä uudella muuttujalla: delay (delayTime);

Lataa koodi taululle vielä kerran ja aloita virheenkorjaus napsauttamalla työkalurivillä "Suorita" ja sitten "Aloita virheenkorjaus"

Näet asiat liikkuvat pääteikkunassa, mutta vaikka siinä todettaisiin, että se oli menestys, jos napsautat "Debug Console" -painiketta, näet, että se toimii edelleen, se kestää muutaman sekunnin.

Jos kaikki meni odotetulla tavalla, virheenkorjaaja pysähtyy asennuksen alussa.

Vaihe 9: Virheenkorjaus: Peruskäyttö

Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö
Virheenkorjaus: Peruskäyttö

Katsotaanpa joitain perusasioita siitä, mitä voit tehdä virheenkorjaimella

Katkaisupisteiden luominen:

Katkaisupiste on koodisi kohta, jossa haluat virheenkorjaajan pysähtyvän. Luo katkaisupiste napsauttamalla rivinumeron vasemmalla puolella. Lisää demona katkaisupiste silmukamenetelmän ensimmäiselle riville.

Katkaisupisteen navigointi:

Voit siirtyä katkaisupisteen välillä tai siirtyä seuraavalle koodiriville käyttämällä näytön yläreunassa olevia työkaluja. Paina "jatka" -painiketta (näyttää toistopainikkeelta) siirtääksesi juuri luomamme katkaisukohdan silmukan sisään.

Muuttuvat kellot:

Muuttuvien kellojen avulla voit seurata muuttujien arvoa, kun virheenkorjaaja pysäytetään katkaisupisteessä. Voit lisätä uuden muuttujan kellon napsauttamalla + -kuvaketta ja kirjoittamalla muuttujan nimen. Kirjoita demona muuttuja, jonka lisäsimme edellisessä vaiheessa "delayTime"

Muuttujan katseluohjelma:

Näet myös kaikki muuttujat ja niiden arvot, jotka ovat käytettävissä nykyisessä katkaisupisteessäsi. Jos haluat esitellä tämän, Jos katsot "Global" -osiosta, sinun pitäisi löytää "delayTime" -muuttuja.

Muuttujien arvon muokkaaminen:

Voit myös muokata muuttujien arvoja, ja se vaikuttaa välittömästi koodisi käyttäytymiseen. Osoita tämä napsauttamalla delayTime -muuttujaa Variable Viewer -osiossa ja muuttamalla arvoksi "100". Näytä tämä toimimalla poistamalla silmukan katkaisupiste käytöstä napsauttamalla rivin vasemmalla puolella uudelleen. Paina keskeytyskohdan navigointipalkin Jatka -painiketta. ESP32: n LED -valon pitäisi nyt vilkkua paljon nopeammin kuin ennen.

Vaihe 10: Vianetsintä

Ongelmien karttoittaminen
Ongelmien karttoittaminen

Totesin testauksen aikana, että joskus en voinut ladata ESP32: een, kun se oli kytketty ESP-ohjelmaan, enkä pystynyt selvittämään mallia, miksi tämä tapahtui, koska useimmiten voin ladata ilman mitään ongelmia. Huomasin, että voin vain irrottaa ESP32: n ja ESP-Progin, ladata koodin ESP32: een ja liittää ne sitten uudelleen, ja se toimisi hyvin.

Vaihe 11: Seuraus

Mielestäni tämä on todella hieno työkalu lisättäväksi työkalupakkiin, jotta voit selvittää, mitä projektisi sisällä tapahtuu.

Haluaisin kuulla, jos pidät tätä hyödyllisenä !. Kerro minulle alla olevissa kommenteissa tai liity minuun ja joukkoon muita tekijöitä Discord -palvelimellani, jossa voimme keskustella tästä aiheesta tai mistä tahansa muusta valmistajaan liittyvästä aiheesta, ihmiset ovat todella avuliaita siellä, joten se on hyvä paikka ripustaa ulos.

Haluan myös kiittää suuresti Github -sponsoreitani, jotka auttavat tukemaan tekemääni, arvostan sitä todella. Jos et tiedä, Github vastaa sponsorointeja ensimmäisen vuoden ajan, joten jos teet sponsoroinnin, he vastaavat sitä 100% seuraavien kuukausien aikana. Kiitos lukemisesta!

Suositeltava: