Բովանդակություն:

Ինչպես օգտագործել Debugger- ը ESP32- ում. 11 քայլ (նկարներով)
Ինչպես օգտագործել Debugger- ը ESP32- ում. 11 քայլ (նկարներով)

Video: Ինչպես օգտագործել Debugger- ը ESP32- ում. 11 քայլ (նկարներով)

Video: Ինչպես օգտագործել Debugger- ը ESP32- ում. 11 քայլ (նկարներով)
Video: BTT GTR v1.0/M5 v1.0 - Basics 2024, Հուլիսի
Anonim
Ինչպես օգտագործել Debugger- ը ESP32- ում
Ինչպես օգտագործել Debugger- ը ESP32- ում

Երբևէ ցանկացե՞լ եք հայացք նետել ձեր կոդի ներսում ՝ տեսնելու, թե ինչու է այն իրեն այդպես պահում: Ավանդաբար ESP32 նախագծերում դուք պետք է ավելացնեիք անվերջ տպագիր հայտարարություն `փորձելու համար, թե ինչ է կատարվում, բայց կա ավելի լավ միջոց:

Վրիպազերծիչը միջոց է ՝ տեսնելու, թե ինչ է կատարվում ձեր ծածկագրի առանձին հատվածներում և փորձելու տարբեր փոփոխական արժեքներ ՝ առանց ձեր ծածկագիրը նորից կազմելու: ինչպես օգտագործել այն ESP32- ում:

Այս ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես կարգաբերել ապարատը, կարգավորել ծրագրակազմը և ցույց տալ վրիպազերծիչ սարքի օգտագործման պարզ օրինակ:

Պարագաներ

  • ESP -Prog - Սա այն վահանակն է, որն անհրաժեշտ է վրիպազերծման համար

    • Ես գնել եմ հենց մեկը*
    • 5 դոլար ավելի էժան, բայց ես այն չեմ փորձարկել*
  • ESP32, որը դուրս է գալիս 12, 13, 14, 15 կապում

    • Ադաֆրուտի փետուր Huzzah32
    • D1 Mini ESP32*
  • [ԸՆՏՐՈԹՅՈՆ] Debug Shield Ես վաճառում եմ Tindie- ում

    • Փետուր Huzzah32
    • D1 Mini ESP32

* = Գործընկերային հղում

Քայլ 1: Դիտեք տեսանյութը:

Image
Image

Ես ունեմ տեսանյութ այս թեմայով, եթե ցանկանում եք ստուգել այն:

Իմ ալիքում ես սովորաբար պատրաստում եմ ESP8266 և ESP32 տեսահոլովակներ, այնպես որ, եթե դրանք ձեզ հետաքրքրում են, խնդրում ենք ստուգել այն:

Քայլ 2: Սարքաշար - մասեր և լարեր

Սարքավորումներ - մասեր և լարեր
Սարքավորումներ - մասեր և լարեր
Սարքավորումներ - մասեր և լարեր
Սարքավորումներ - մասեր և լարեր
Սարքավորումներ - մասեր և լարեր
Սարքավորումներ - մասեր և լարեր

Վրիպազերծիչն օգտագործելու համար ձեզ հարկավոր է միայն ESP-Prog և գրեթե ցանկացած ESP32 տախտակ (դրանց հղումները ավելի վաղ քայլում)

ESP-Prog:

ESP-Prog- ը տախտակ է, որը նախագծված է espressif- ի ՝ ESP32 և ESP8266 չիպերի ստեղծողների կողմից: Այն միանում է ESP32- ի JTAG կապերին `թույլ տալու մեզ օգտագործել վրիպազերծիչը: Այն կարող է օգտագործվել նաև ESP32 տախտակների ծրագրավորման համար, բայց ես դա չեմ լուսաբանի այստեղ:

ESP32 խորհուրդ:

Հիմնականում դրա համար կարող եք օգտագործել ցանկացած ESP32 տախտակ, երբ այն դուրս գա JTAG կապումներից, որոնք 12, 13, 14 և 15. Ես փորձարկել եմ ինչպես Adafruit փետուր Huzzah32, այնպես էլ D1 Mini 32 տախտակ, և երկուսն էլ լավ են աշխատել:

Խնդրում ենք նկատի ունենալ, որ վրիպազերծիչի հետ կարող եք օգտագործել JTAG կապերը ձեր ուրվագծում, օրինակ ՝ Huzzah32 տախտակի ներկառուցված LED- ը գտնվում է 13-րդ կապում, այնպես որ կարգաբերման ժամանակ չեք կարող օգտագործել այն:

Հաղորդալարեր.

ESP-Prog- ը ESP32- ին միացնելու համար պարզապես օգտագործեք էլեկտրագծերի ուղեցույցը, ինչպես նշված է վերևում նկարում: Ստուգեք ձեր ESP32 տախտակի միացման սխեմայով, եթե անմիջապես չեք տեսնում համապատասխան կապում, քանի որ երբեմն նրանք օգտագործում են անվանման այլ սխեմա:

Վրիպազերծ վահաններ

Սրանք կամընտիր են, բայց ես վաճառում եմ մի քանի վահան Tindie- ի համար Huzzah32- ի և D1 Mini 32-ի համար, որոնք ESP-Prog- ն միացնելն իսկապես պարզ են դարձնում, այն համապատասխան կապում է IDC միակցիչին, որի միջոցով կարող եք ուղղակիորեն միանալ ժապավենային մալուխով: վահանը և ESP-Prog- ը

Քայլ 3: Սարքաշար - վարորդի կարգավորում

Սարքաշար - վարորդի կարգավորում
Սարքաշար - վարորդի կարգավորում
Սարքաշար - վարորդի կարգավորում
Սարքաշար - վարորդի կարգավորում
Սարքաշար - վարորդի կարգավորում
Սարքաշար - վարորդի կարգավորում

ESP-prog- ն վրիպազերծման համար օգտագործելու համար մենք պետք է դրա համար համապատասխան վարորդներ տեղադրենք: PlatformIO- ն դրա համար տալիս է որոշ քայլեր, բայց ես այս ուղեցույցում կանցնեմ Windows- ի քայլերի միջոցով:

  1. Ներբեռնեք և տեղադրեք FTDI- ի վարորդները ESP-Prog- ի համար այստեղից, ոլորելու համար ոլորեք դեպի աջ `« տեղադրման գործարկվող »տարբերակը ներբեռնելու համար` այն ավելի դյուրին դարձնելու համար:
  2. Ներբեռնեք և տեղադրեք Zadig գործիքը այստեղից, ինչը թույլ է տալիս տեղադրել ընդհանուր վարորդ, որն անհրաժեշտ է վրիպազերծման համար:
  3. ESP-Prog- ին միացված վիճակում բացեք Zadig- ը
  4. Zadig հավելվածում, «Ընտրանքներ» բաժնում, կտտացրեք «Թվարկել բոլոր սարքերը»
  5. Adադիգում բացվող էջն այժմ կլրացվի, ընտրեք «Dual RS232-HS (Interface 0)» տարբերակը: Համոզվեք, որ ձեր ընտրած ինտերֆեյսը 0 է:
  6. Կանաչ սլաքի աջ կողմում պետք է ընտրվի «WinUSB», այնուհետև կտտացրեք «Փոխարինել վարորդին»

Երբ դա ավարտվի, ձեր վարորդները պետք է տեղադրվեն օգտագործման համար:

Նշում. Եթե դուք փոխում եք USB պորտը, որն օգտագործում եք ESP-Prog- ի համար, գուցե ստիպված լինեք նորից կրկնել 3-6 քայլերը: Եթե վրիպազերծման ժամանակ սխալ եք ստանում, ինչպես ցույց է տրված վերևի նկարում, ապա պետք է կրկնել քայլերը:

Քայլ 4: Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն

Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն
Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն
Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն
Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն
Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն
Softwareրագրային ապահովում. Տեղադրելով PlatformIO- ն

PlatformIO- ն IDE է ՝ տարբեր ներկառուցված շրջանակներով զարգանալու համար, ներառյալ Arduino էկոհամակարգը: Ավելի բարդ է օգտագործել, քան Arduino IDE- ի նման մի բան, բայց այն շատ հզոր է և ունի որոշ առանձնահատկություններ, որոնք Arduino IDE- ն խիստ բաց է թողնում, օրինակ ՝ ավտոմատ լրացնելը:

Վրիպազերծիչն օգտագործելու համար պահանջվում է PlatformIO- ին: Եթե դուք արդեն ծանոթ եք PlatformIO- ին, ազատ զգալ բաց թողեք մի քանի քայլ առաջ:

  • Ներբեռնեք և տեղադրեք Visual Studio Code (VS Code) PlatformIO.org կայքում տեղադրված հղումից
  • Բացեք VS կոդը և բացեք ընդլայնումների ընտրացանկը, կոճակը նշված է վերևի նկարում
  • Որոնման մեջ մուտքագրեք «platformio», ընտրեք այն և կտտացրեք տեղադրել:

Քայլ 5. Softwareրագրակազմ. Օգտագործելով PlatformIO- ն

Softwareրագրային ապահովում. Օգտագործելով PlatformIO
Softwareրագրային ապահովում. Օգտագործելով PlatformIO
Softwareրագրային ապահովում. Օգտագործելով PlatformIO
Softwareրագրային ապահովում. Օգտագործելով PlatformIO
Softwareրագրային ապահովում. Օգտագործելով PlatformIO
Softwareրագրային ապահովում. Օգտագործելով PlatformIO

PlatformIO- ի օգտագործումը մի փոքր տարբերվում է Arudino IDE- ից, այնպես որ այս քայլում մենք պարզապես կքննարկենք տախտակի վրա աշխատող օրինակ ստանալու հիմունքները:

Օրինակ բացելը

  1. Կտտացրեք Գլխավոր կոճակին PlatformIO գործիքագոտու վրա (Ինչպես ցույց է տրված նկարում)
  2. Կտտացրեք «Նախագծի օրինակներ» կոճակին
  3. Ընտրեք «Arduino-blink» օրինակը Espressif 32 բաժնի տակ

Սա կբացի թարթման նմուշի նախագիծը: PlatformIO- ի դասավորությունը բավականին տարբերվում է Arduino նախագծի համեմատ, ուստի եկեք անցնենք հիմնականը:

Որտե՞ղ է ծածկագիրը:

Ձեր նախագծի ծածկագիրը կպահվի «src» թղթապանակում, թարթելու օրինակով դուք կտեսնեք «blink.cpp» ֆայլ, այս ֆայլը նույնն է, ինչ ձեր ուրվագծային ֆայլը (.ino) Arduino նախագծում:

Ինչպե՞ս կարգավորել իմ տախտակը:

Ձեր նախագծի կազմաձևերը պահվում են ձեր նախագծի «platformio.ini» ֆայլում: Սա, ըստ էության, PlatformIO- ի վերաբերյալ իմ ամենասիրած բաներից է ՝ համեմատած Arduino IDE- ի հետ, ինձ համար երբեք իմաստ չուներ, որ տախտակի կարգավորումները կապված չեն էսքիզների հետ:

Օրինակ.ini- ն պարունակում է բազմաթիվ տարբեր տախտակների սահմանումներ, սակայն ամեն ինչ պարզ պահելու համար եկեք ջնջենք ստորին երկու սահմանումները:

Որտե՞ղ եմ տեղադրում իմ COM պորտը:

PlatformIO- ն իրականում ինքնաբերաբար կփորձի գտնել ճիշտ օգտագործվող COM նավահանգիստը, այնպես որ կարող եք իրականում խուսափել դրա համար ոչինչ չկարգավորելուց: Բայց եթե ունեք բազմաթիվ COM նավահանգիստներ, որոնք կանեք վրիպազերծիչն օգտագործելիս, կարծում եմ, որ իմաստ ունի սահմանել այն, ինչ ձեզ հարկավոր է: Կարող եք տեսնել ձեր ունեցած տարբեր սարքերը ՝ կտտացնելով «Սարքեր» բաժինը տնային ներդիրում, և կարող եք սահմանել, թե որն է ձեր ESP32- ը «platformio.ini» - ում ՝ ավելացնելով «upload_port» կազմաձևը:

Ինչպե՞ս վերբեռնեմ իմ կոդը:

Կտտացրեք Վերբեռնում կոճակին (պատկերակը սլաք է, որը ցույց է տալիս աջ) և այն պետք է կազմի և վերբեռնի ծածկագիրը: Այժմ ձեր տախտակին պետք է լինի թարթող լուսադիոդ:

Քայլ 6: Սխալների շտկում. Բանանի պոտենցիալ մաշկ:

Վրիպազերծում. Պոտենցիալ բանանի մաշկ
Վրիպազերծում. Պոտենցիալ բանանի մաշկ
Վրիպազերծում. Պոտենցիալ բանանի մաշկ
Վրիպազերծում. Պոտենցիալ բանանի մաշկ
Վրիպազերծում. Պոտենցիալ բանանի մաշկ
Վրիպազերծում. Պոտենցիալ բանանի մաշկ

Սա մի բան է, որն ինձ գրավեց այն պատրաստելիս, և հուսով եմ, որ կփրկվի այն ժամանակ, երբ դուք փորձեք այն, բայց ես մտածեցի, որ կարևոր է հեռանալ այստեղից:

Այս ուղեցույցը պատրաստելու պահին PlatformIO- ի վերջին տարբերակը 4.3.0 է և այն ունի սխալ, որը վերաբերում է վրիպազերծման ունակությանը: Բարեբախտաբար, մենք կարող ենք բավականին հեշտությամբ թարմացնել զարգացման վերջին տարբերակը, որը լուծում է խնդիրը:

Հիմնական էջում ստուգեք PlatformIO միջուկի տարբերակը, եթե այն «4.3.0» է, կատարեք հետևյալ քայլերը:

  1. PlatformIO գործիքագոտում կտտացրեք տերմինալի պատկերակին
  2. Տերմինալի տեսակում. Pio upgrade --dev
  3. RestartVS ծածկագիրը և PlatfromIO- ն պետք է թարմացվեն

Քայլ 7: Կարգաբերում. Կազմաձևում

Վրիպազերծում. Կազմաձևում
Վրիպազերծում. Կազմաձևում

Մեզ անհրաժեշտ է խմբագրել «PlatofrmIO.ini» ֆայլը ՝ վրիպազերծումը միացնելու համար, դրան պետք է ավելացնել միայն երկու բան.

debug_tool = esp-prog

Սա սահմանում է debug գործիքը, որը մենք օգտագործում ենք:

debug_init_break = tbreak կարգավորում

Սա հնարք է, որը մենք սովորեցինք Անդրես Սփիեսի տեսանյութից ESP32- ում կարգաբերում կատարելու վերաբերյալ: Այն կարգաբերողին ասում է, որ դադարեցնի մեր ծրագրի կարգավորումը:

Քայլ 8: Կարգաբերում. Սկսեք կարգաբերում

Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում
Վրիպազերծում. Սկսել կարգաբերում

Նախքան դրան անդրադառնալը, մենք ուրվագծի աննշան փոփոխություն կկատարենք, ինչը ավելի դյուրին կդարձնի ցուցադրել, թե ինչ կարող եք անել վրիպազերծման հետ:

  1. Ստեղծեք նոր փոփոխական ՝ "int delayTime = 1000;" ցանկացած մեթոդից դուրս, դա կդարձնի գլոբալ փոփոխական:
  2. Repանգի հետաձգման զանգերի ներսում գտնվող համարը փոխարինեք այս նոր փոփոխականով ՝ delay (delayTime);

Մեկ անգամ ևս վերբեռնեք ծածկագիրը, այնուհետև կարգաբերում սկսելու համար, գործիքագոտում կտտացրեք «Գործարկել», այնուհետև «Սկսել կարգաբերում»

Տերմինալի պատուհանում կտեսնեք, թե ինչպես են շարժվում իրերը, բայց նույնիսկ երբ դա նշում է, որ դա հաջողություն է, եթե կտտացնեք «Վրիպազերծման վահանակի» վրա, կտեսնեք, որ այն դեռ աշխատում է, այն ավարտելու համար կպահանջվի մի քանի վայրկյան:

Եթե ամեն ինչ ընթանա այնպես, ինչպես և սպասվում էր, կարգաբերման սկզբում կտեսնեք կարգաբերիչի կանգառը:

Քայլ 9. Կարգաբերում. Հիմնական օգտագործում

Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում
Վրիպազերծում. Հիմնական օգտագործում

Եկեք լուսաբանենք որոշ հիմունքներ, թե ինչ կարող եք անել վրիպազերծիչի հետ

Խզման կետերի ստեղծում

Ընդմիջման կետը ձեր կոդի այն կետն է, որտեղ ցանկանում եք, որ վրիպազերծիչը կանգ առնի: Անջատիչ կետ ստեղծելու համար կտտացրեք գծի համարի ձախ կողմում: Որպես ցուցադրական, օղակի մեթոդի առաջին տողին ավելացրեք ընդմիջման կետ:

Breakpoint Navigation:

Անջատիչ կետի միջև անցնելու կամ հաջորդ կոդի տող տեղափոխվելու համար կարող եք օգտագործել այն գործիքները, որոնք կհայտնվեն էկրանի վերևում: Սեղմեք «շարունակել» կոճակը (կարծես նվագարկման կոճակ լինի) ՝ հանգույցի ներսում մեր ստեղծած խզման կետը տեղափոխելու համար:

Փոփոխական ժամացույցներ

Փոփոխական ժամացույցները թույլ են տալիս վերահսկել փոփոխականների արժեքը, երբ վրիպազերծիչը կանգնեցվում է ճեղքման կետում: Նոր փոփոխական ժամացույց ավելացնելու համար կարող եք սեղմել + պատկերակի վրա, այնուհետև պարզապես մուտքագրել փոփոխականի անունը: Որպես դեմո ՝ մուտքագրեք այն փոփոխականը, որը մենք ավելացրել էինք նախորդ քայլին «delayTime»

Փոփոխական դիտիչ

Կարող եք նաև տեսնել բոլոր փոփոխականներն ու դրանց արժեքները, որոնք առկա են ձեր ընթացիկ ճեղքման կետում: Սա ցուցադրելու համար, եթե նայեք «Գլոբալ» բաժնում, ապա պետք է գտնեք «delayTime» փոփոխականը:

Փոփոխականների արժեքի խմբագրում

Կարող եք նաև փոփոխել փոփոխականների արժեքները, և դա անմիջապես կազդի ձեր կոդերի վարքագծի վրա: Սա ցուցադրելու համար կտտացրեք Variable Viewer բաժնում delayTime փոփոխականին և արժեքը փոխեք «100» -ի: Որպեսզի դա աշխատի, անջատեք հանգույցի ներսում խզման կետը ՝ կրկին կտտացնելով տողի համարին ձախ: Կտտացրեք շարունակման կոճակը նավիգացիոն վահանակի վրա: Ձեր ESP32- ի LED- ն այժմ պետք է շատ ավելի արագ թարթել, քան նախկինում:

Քայլ 10: Խնդիրների վերացում

Անսարքությունների վերացում
Անսարքությունների վերացում

Իմ փորձարկման ընթացքում ես գտա, որ երբեմն ես չեմ կարող վերբեռնել ESP32- ում, երբ այն միացված է ESP-prog- ին, և ես չեմ կարող պարզել, թե ինչու դա տեղի ունեցավ, քանի որ ժամանակի մեծ մասը կարող էի վերբեռնել առանց ցանկացած խնդիր: Ես գտա, որ կարող եմ պարզապես անջատել ESP32- ը և ESP-Prog- ը, վերբեռնել կոդը ESP32- ում, այնուհետև նորից միացնել դրանք, և դա լավ կաշխատի:

Քայլ 11: Ուղեղի ցնցում

Կարծում եմ, որ սա իսկապես հիանալի գործիք է գործիքների տուփին ավելացնելու համար, որն օգնում է պարզել, թե ինչ է կատարվում ձեր նախագծի ներսում:

Ուրախ կլինեմ լսել, եթե սա օգտակար համարեք: Խնդրում եմ ինձ տեղյակ պահեք ստորև բերված մեկնաբանություններում կամ միացեք ինձ և իմ Discord սերվերի մի շարք այլ արտադրողների, որտեղ մենք կարող ենք քննարկել այս թեման կամ ձեր ստեղծած ցանկացած այլ թեմա, մարդիկ իսկապես օգտակար են այնտեղ, այնպես որ դա կախելու հիանալի վայր է: դուրս

Նաև կցանկանայի մեծ շնորհակալություն հայտնել իմ Github հովանավորներին, ովքեր օգնում են աջակցել այն, ինչ ես անում եմ: Ես իսկապես գնահատում եմ դա: Եթե չգիտեք, Github- ը հովանավորում է առաջին տարվա հովանավորությունները, ուստի եթե հովանավորչություն անեք, դրանք 100% -ով կհամապատասխանեն հաջորդ մի քանի ամիսների ընթացքում: Շնորհակալություն կարդալու համար:

Խորհուրդ ենք տալիս: