Mündəricat:

Bir ESP32: 11 Adımda Hata Ayıklayıcısını necə istifadə etmək olar (Şəkillərlə birlikdə)
Bir ESP32: 11 Adımda Hata Ayıklayıcısını necə istifadə etmək olar (Şəkillərlə birlikdə)

Video: Bir ESP32: 11 Adımda Hata Ayıklayıcısını necə istifadə etmək olar (Şəkillərlə birlikdə)

Video: Bir ESP32: 11 Adımda Hata Ayıklayıcısını necə istifadə etmək olar (Şəkillərlə birlikdə)
Video: ESP-32 Programlama Kartı Nedir, Nasıl Kullanılır? Teknik Özellikleri ve Örnek Webserver Uygulaması 2024, Iyul
Anonim
Bir ESP32 -də bir Hata Ayıklayıcısını necə istifadə etmək olar
Bir ESP32 -də bir Hata Ayıklayıcısını necə istifadə etmək olar

Kodunuzun niyə belə davrandığını görmək üçün heç bir göz atmaq istəmisinizmi? Ənənəvi olaraq ESP32 layihələrində, baş verənləri anlamağa çalışmaq üçün sonsuz çap ifadəsi əlavə etməlisiniz, amma daha yaxşı bir yol var!

Hata ayıklayıcı, kodunuzun müəyyən hissələrində baş verənləri görmək və kodunuzu yenidən tərtib etmədən fərqli dəyişən dəyərləri sınamaq üçün bir yoldur, ümumiyyətlə bu, quraşdırılmış layihələrdə bizim üçün əlçatan bir şey deyil, amma bu təlimatda sizə göstərəcəyəm ESP32 -də necə istifadə olunur.

Bu təlimatda sizə aparat qurmağı, proqramı qurmağı və ayıklayıcıdan istifadə etmək üçün sadə bir nümunə göstərəcəyəm.

Təchizat

  • ESP -Prog - Bu, ayıklama üçün lazım olan lövhədir

    • Aldığım dəqiq bir şey*
    • 5 dollar daha ucuzdur, amma sınamamışam*
  • 12, 13, 14, 15 pinlərini çıxaran bir ESP32

    • Adafruit Lələk Huzzah32
    • D1 Mini ESP32*
  • [İSTEĞE BAĞLI] Tindie -də satdığım Debug Shield

    • 32
    • D1 Mini ESP32

* = Ortaq Bağlantısı

Addım 1: Videoya baxın

Image
Image

Bunu yoxlamaq istəyirsinizsə bu mövzuda bir videom var.

Kanalımda ümumiyyətlə ESP8266 və ESP32 əsaslı videolar hazırlayıram, buna görə maraqlanırsınızsa lütfən baxın!

Addım 2: Avadanlıq - Parçalar və Kablolama

Avadanlıq - hissələri və naqilləri
Avadanlıq - hissələri və naqilləri
Avadanlıq - hissələri və naqilləri
Avadanlıq - hissələri və naqilləri
Avadanlıq - hissələri və naqilləri
Avadanlıq - hissələri və naqilləri

Hata ayıklayıcısını istifadə etmək üçün yalnız bir ESP-Prog və demək olar ki, hər hansı bir ESP32 lövhəsinə ehtiyacınız var (bunlara əvvəlki bir addımdakı bağlantılar)

ESP-Proqram:

ESP-Prog, ESP32 və ESP8266 çiplərini istehsal edən espressif tərəfindən hazırlanmış bir lövhədir. Hata ayıklayıcıdan istifadə etmək üçün ESP32 -nin JTAG sancaqlarına qoşulur, ESP32 lövhələrini proqramlaşdırmaq üçün də istifadə edilə bilər, amma burada bunu əhatə etməyəcəyəm.

ESP32 lövhəsi:

12, 13, 14 və 15 olan JTAG sancaqlarını qırdıqdan sonra bunun üçün hər hansı bir ESP32 lövhəsindən istifadə edə bilərsiniz. Həm Adafruit lələyi Huzzah32, həm də D1 Mini 32 lövhəsini sınadım və hər ikisi də yaxşı işlədilər.

Xatırladaq ki, eskizinizdə JTAG sancaqlarından istifadə edə bilərsiniz, məsələn, Huzzah32 lövhəsinin quraşdırılmış LEDi pin 13-dədir, buna görə ayıklama zamanı istifadə edə bilməzsiniz.

Kablolama:

ESP-Prog-ı ESP32-yə bağlamaq üçün yuxarıdakı şəkildə göstərildiyi kimi kabel bələdçisini istifadə edin. Bəzən fərqli bir adlandırma sxemi istifadə etdikləri üçün uyğun pinləri görmürsənsə, ESP32 lövhənizin naqillərinin diaqramına baxın.

Debug Shields:

Bunlar isteğe bağlıdır, amma ESP-Prog-ı bağlamağı həqiqətən asanlaşdıran Huzzah32 və D1 Mini 32 üçün Tindie-də bir neçə qalxan satıram, aralarında birbaşa bağlamaq üçün lent kabelindən istifadə edə biləcəyiniz bir IDC bağlayıcısına uyğun pinləri ayırır. qalxan və ESP-Prog

Addım 3: Hardware - Sürücü Quraşdırması

Avadanlıq - Sürücü Quraşdırması
Avadanlıq - Sürücü Quraşdırması
Avadanlıq - Sürücü Quraşdırması
Avadanlıq - Sürücü Quraşdırması
Avadanlıq - Sürücü Quraşdırması
Avadanlıq - Sürücü Quraşdırması

Hata ayıklama üçün ESP-prog-dan istifadə etmək üçün bunun üçün uyğun sürücüləri quraşdırmalıyıq. PlatformIO bunun üçün bəzi addımlar təqdim edir, amma bu təlimatda Windows addımlarından keçəcəyəm.

  1. ESP-Prog üçün FTDI sürücülərini buradan yükləyin və quraşdırın, asanlaşdırmaq üçün "quraşdırma yürütülebilir" versiyasını yükləmək üçün sağa fırladın.
  2. Zadig alətini buradan yükləyin və quraşdırın, bu, ayıklama üçün lazım olan ümumi bir sürücü quraşdırmağımıza imkan verir.
  3. ESP-Prog qoşulduqda Zadig'i açın
  4. Zadig tətbiqetməsində "Seçimlər" bölməsində "Bütün Cihazları Siyahıya Al" düyməsini basın.
  5. Zadigdəki açılan siyahı indi doldurulacaq, "Dual RS232-HS (Interface 0)" seçimini seçin. Seçdiyiniz 0 interfeysi olduğundan əmin olun!
  6. Yaşıl oxun sağ tərəfində "WinUSB" seçilməlidir, sonra "Sürücünü dəyişdir" düyməsini basın.

İş bitdikdə sürücüləriniz istifadəyə hazır olmalıdır!

Qeyd: ESP-Prog üçün istifadə etdiyiniz USB portunu dəyişdirsəniz, 3-6-cı addımları təkrar etməli ola bilərsiniz. Ayıklama zamanı yuxarıdakı şəkildə göstərildiyi kimi bir səhv alsanız, addımları təkrarlamalısınız.

Addım 4: Proqram təminatı: PlatformIO qurulması

Proqram təminatı: PlatformIO quraşdırılır
Proqram təminatı: PlatformIO quraşdırılır
Proqram təminatı: PlatformIO quraşdırılır
Proqram təminatı: PlatformIO quraşdırılır
Proqram təminatı: PlatformIO qurulması
Proqram təminatı: PlatformIO qurulması

PlatformIO, Arduino eko sistemi də daxil olmaqla müxtəlif qurulmuş çərçivələrlə işləmək üçün bir IDE-dir. İstifadəsi Arduino IDE kimi bir şeydən daha mürəkkəbdir, lakin çox güclüdür və Arduino IDE-nin avtomatik tamamlama kimi çox darıxdığı bəzi xüsusiyyətlərə malikdir.

PlatformIO -dan hata ayıklayıcısından istifadə etmək tələb olunur. PlatformIO ilə tanışsınızsa, bir neçə addımı atlaya bilərsiniz.

  • PlatformIO.org saytında göstərilən linkdən Visual Studio Kodunu (VS Kodu) yükləyin və quraşdırın
  • VS Kodunu açın və uzantılar menyusunu açın, düymə yuxarıdakı şəkildə vurğulanmışdır
  • Axtarışa "platformio" yazın, seçin və quraşdırın.

Addım 5: Proqram təminatı: PlatformIO -dan istifadə

Proqram təminatı: PlatformIO -dan istifadə
Proqram təminatı: PlatformIO -dan istifadə
Proqram təminatı: PlatformIO -dan istifadə
Proqram təminatı: PlatformIO -dan istifadə
Proqram təminatı: PlatformIO -dan istifadə
Proqram təminatı: PlatformIO -dan istifadə

PlatformIO istifadə etmək Arudino IDE -dən istifadə etməkdən bir az fərqlidir, buna görə də bu addımda bir lövhədə işləyən bir nümunə əldə etmənin əsaslarını əhatə edəcəyik.

Bir nümunə açmaq:

  1. PlatformIO alətlər çubuğundakı Ev düyməsini basın (Şəkildə göstərildiyi kimi)
  2. "Layihə nümunələri" düyməsini basın
  3. Espressif 32 bölməsinin altındakı "Arduino-blink" nümunəsini seçin

Bu nümunə göz qırpma layihəsini açacaq. PlatformIO -nun düzeni bir Arduino layihəsi ilə müqayisədə olduqca fərqlidir, buna görə də əsasları nəzərdən keçirək.

Kod haradadır?

Layihənizin kodu "src" qovluğunda saxlanılacaq, göz qırpma nümunəsi üçün "blink.cpp" faylını görəcəksiniz, bu fayl Arduino layihəsindəki eskiz faylınızla (.ino) eynidir.

Lövhəmi necə konfiqurasiya etmək olar?

Layihəniz üçün konfiqurasiyalar layihənizdə "platformio.ini" faylının içərisində saxlanılır. Bu, Arduino IDE ilə müqayisədə PlatformIO haqqında ən çox bəyəndiyim şeylərdən biridir, lövhə parametrlərinin eskizlərlə əlaqəli olmaması mənim üçün heç vaxt məntiqli olmadı.

. İni nümunəsi bir çox fərqli lövhə üçün tərifləri ehtiva edir, amma hər şeyi sadə saxlamaq üçün altdakı iki tərifi silək.

COM portumu harada qura bilərəm?

PlatformIO, avtomatik olaraq istifadə etmək üçün doğru COM portunu tapmağa çalışacaq, buna görə əslində bunun üçün heç bir şey təyin etməməklə qurtula bilərsiniz. Ancaq birdən çox COM portunuz varsa, hata ayıklayıcısını istifadə edərkən ehtiyac duyduğunuz konfiqurasiyanı təyin etməyi mənalı hesab edirəm. Ev sekmesinde "Cihazlar" bölməsinə tıklayarak fərqli cihazları görə bilərsiniz. "upload_port" konfiqurasiyasını əlavə edərək "platformio.ini" də ESP32 -nin hansının olduğunu təyin edə bilərsiniz.

Kodumu necə yükləyə bilərəm?

Yüklə düyməsini basın (simge sağa işarə edən bir oxdur) və kodu tərtib etməli və yükləməlidir. İndi lövhənizdə yanıb -sönən bir LED olmalıdır.

Addım 6: Hata Ayıklama: Potensial Banana Dərisi

Hata Ayıklama: Potensial Banana Dərisi!
Hata Ayıklama: Potensial Banana Dərisi!
Hata Ayıklama: Potensial Banana Dərisi!
Hata Ayıklama: Potensial Banana Dərisi!
Hata Ayıklama: Potensial Banana Dərisi!
Hata Ayıklama: Potensial Banana Dərisi!

Bu hazırlayarkən məni yaxalayan bir şeydir və inşallah sınadığınız zaman düzələcək, amma buradan ayrılmağın vacib olduğunu düşündüm.

Bu təlimatı hazırlayarkən PlatformIO -nun ən son versiyası 4.3.0 -dır və hata ayıklama qabiliyyəti ilə əlaqəli bir səhv var. Şükürlər olsun ki, problemi həll edən ən son inkişaf versiyasına yeniləyə bilərik.

Ana səhifədə PlatformIO core versiyasını yoxlayın, əgər "4.3.0" olarsa, aşağıdakı addımları yerinə yetirin.

  1. PlatformIO alət çubuğunda terminal simgesini vurun
  2. Terminal tipində: pio upgrade --dev
  3. RestartVS kodu və PlatfromIO yenilənməlidir

Addım 7: Hata Ayıklama: Konfiqurasiya

Hata Ayıklama: Konfiqurasiya
Hata Ayıklama: Konfiqurasiya

Hata ayırmağı təmin etmək üçün "PlatofrmIO.ini" faylını redaktə etməliyik, ona yalnız iki şey əlavə etməliyik.

debug_tool = esp-prog

Bu, istifadə etdiyimiz ayıklama alətini təyin edir.

debug_init_break = tbreak qurulumu

Bu, Andress Spiessin ESP32 -də hata ayıklama videosundan öyrəndiyimiz bir hiylədir. Hata ayıklayıcıya tətbiqimizin quraşdırılmasında dayanmasını söyləyir.

Addım 8: Hata Ayıklama: Hata Ayırmağa Başlayın

Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın
Hata Ayıklama: Hata Ayırmağa Başlayın

İçəri girməzdən əvvəl, eskizdə kiçik bir dəyişiklik edəcəyik ki, bu da ayıklama ilə nə edə biləcəyinizi nümayiş etdirməyi asanlaşdıracaq.

  1. Yeni bir dəyişən yaradın, "int delayTime = 1000;" hər hansı bir metodun xaricində, bunu qlobal bir dəyişən halına gətirəcək.
  2. Döngədəki gecikmə zənglərindəki nömrəni bu yeni dəyişənlə əvəz edin: delay (delayTime);

Kodu bir daha lövhəyə yükləyin, sonra ayıklamaya başlamaq üçün alətlər çubuğunda "Çalış" və sonra "Hata Ayıklamaya Başla" düymələrini basın.

İşlərin terminal pəncərəsində hərəkət etdiyini görəcəksiniz, ancaq bunun müvəffəqiyyətli olduğunu bildirsə belə, "Debug Console" düyməsini tıklasanız hələ də işlədiyini görəcəksiniz, tamamlanması bir neçə saniyə çəkəcək.

Hər şey gözlənildiyi kimi olsaydı, qurğunun əvvəlində hata ayıklayıcıyı dayandıracağını görəcəksiniz.

Addım 9: Hata Ayıklama: Əsas İstifadə

Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə
Hata Ayıklama: Əsas İstifadə

Hata ayıklayıcı ilə edə biləcəyiniz bəzi əsasları nəzərdən keçirək

Qırılma nöqtələri yaratmaq:

Bir kəsmə nöqtəsi, kod ayıklayıcının dayandırılmasını istədiyiniz bir nöqtədir. Bir kəsilmə nöqtəsi yaratmaq üçün sətir nömrəsinin soluna vurun. Demo olaraq, döngə metodunda birinci sətrə kəsmə nöqtəsi əlavə edin.

Breakpoint Naviqasiyası:

Kəsmə nöqtəsi arasında hərəkət etmək və ya növbəti kod sətrinə keçmək üçün ekranın yuxarısında görünəcək vasitələrdən istifadə edə bilərsiniz. Yenidən yaratdığımız kəsmə nöqtəsini hərəkət etdirmək üçün "davam et" düyməsini (oynatma düyməsinə bənzəyir) basın.

Dəyişən saatlar:

Dəyişən saatlar, hata ayıklayıcı bir kəsmə nöqtəsində dayandırıldıqda dəyişənlərin dəyərini izləməyinizə imkan verir. Yeni bir dəyişən saat əlavə etmək üçün + işarəsini vura bilərsiniz, sonra dəyişənin adını yazın. Bir demo olaraq, "delayTime" əvvəlki addımında əlavə etdiyimiz dəyişəni yazın.

Dəyişən Baxıcı:

Mövcud dayanma nöqtənizdə mövcud olan bütün dəyişənləri və onların dəyərlərini də görə bilərsiniz. Bunu demo etmək üçün "Qlobal" bölməsinə baxırsınızsa, "delayTime" dəyişənini tapmalısınız.

Dəyişənlərin Dəyərinin Düzəldilməsi:

Dəyişənlərin dəyərlərini də düzəldə bilərsiniz və kodlarınızın davranışına dərhal təsir edəcək. Bunu göstərmək üçün Variable Viewer bölməsindəki delayTime dəyişənini vurun və dəyəri "100" olaraq dəyişdirin. Bunun işlədiyini göstərmək üçün yenidən xətt nömrəsinin soluna tıklayaraq döngədəki kəsmə nöqtəsini deaktiv edin. Dayanma nöqtəsi naviqasiya çubuğundakı davam düyməsini basın. ESP32 -dəki LED indi əvvəlkindən daha sürətli yanıb -sönməlidir.

Addım 10: Problemlərin aradan qaldırılması

Giderme
Giderme

Test zamanı gördüm ki, ESP32-yə ESP32-ə qoşulduqda bəzən yükləyə bilmədim və bunun niyə baş verdiyini anlaya bilmədim, çünki çox vaxt yükləmədən yükləyə bilərəm. hər hansı bir problem. ESP32 və ESP-Prog-ı ayıra biləcəyimi, ESP32-ə kodu yükləyə biləcəyimi və sonra yenidən bağlaya biləcəyimi gördüm.

Addım 11: Nəticə

Düşünürəm ki, bu, layihənizin içərisində nələrin baş verdiyini anlamağa kömək etmək üçün alət qutusuna əlavə etmək üçün həqiqətən də əla vasitədir.

Bunu faydalı hesab etsəniz eşitmək istərdim! Zəhmət olmasa aşağıdakı şərhlərdə mənə bildirin və ya Discord serverimdə mənə və ya bir çox digər istehsalçıya qoşulun, burada bu mövzunu və ya sahib olduğunuz başqa bir istehsalçı ilə bağlı müzakirələr apara bilərik, insanlar orda həqiqətən faydalıdırlar, buna görə asmaq üçün əla yerdir çıxmaq

Etdiklərimi dəstəkləməyə kömək edən Github Sponsorlarıma da böyük təşəkkürümü bildirmək istərdim, bunu çox qiymətləndirirəm. Bilmirsinizsə, Github ilk il üçün sponsorluqlara uyğun gəlir, buna görə sponsorluq etsəniz, önümüzdəki bir neçə ay ərzində 100% uyğunlaşacaqlar. Oxuduğunuz üçün təşəkkürlər!

Tövsiyə: