Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Sprawdź wideo
- Krok 2: Sprzęt - części i okablowanie
- Krok 3: Sprzęt - Konfiguracja sterownika
- Krok 4: Oprogramowanie: Instalacja PlatformIO
- Krok 5: Oprogramowanie: korzystanie z PlatformIO
- Krok 6: Debugowanie: Potencjalna skórka banana
- Krok 7: Debugowanie: Konfiguracja
- Krok 8: Debugowanie: Rozpoczęcie debugowania
- Krok 9: Debugowanie: podstawowe użycie
- Krok 10: Rozwiązywanie problemów
- Krok 11: Podsumowanie
Wideo: Jak korzystać z debugera na ESP32: 11 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Czy kiedykolwiek chciałeś zajrzeć do swojego kodu, aby zobaczyć, dlaczego zachowuje się tak, jak jest? Tradycyjnie w projektach ESP32 musiałbyś dodawać niekończące się instrukcje drukowania, aby spróbować dowiedzieć się, co się dzieje, ale jest lepszy sposób!
Debuger to sposób na zobaczenie, co dzieje się w poszczególnych sekcjach kodu i wypróbowanie różnych wartości zmiennych bez ponownej kompilacji kodu, zwykle nie jest to coś dostępnego dla nas w projektach osadzonych, ale w tym przewodniku pokażę ci jak go używać na ESP32.
W tym przewodniku pokażę, jak skonfigurować sprzęt, oprogramowanie i pokazać prosty przykład użycia debuggera.
Kieszonkowe dzieci
- ESP-Prog - To jest płyta potrzebna do debugowania
- Dokładnie taki, który kupiłem*
- 5 USD Tańszy, ale nie testowałem*
-
ESP32, który wyłamuje pin 12, 13, 14, 15
- Pióro Adafruit Huzzah32
- D1 Mini ESP32*
-
[OPCJONALNIE] Tarcza debugowania, którą sprzedaję na Tindie
- Pióro Huzzah32
- D1 Mini ESP32
* = Link afiliacyjny
Krok 1: Sprawdź wideo
Mam film na ten temat, jeśli chcesz to sprawdzić.
Na moim kanale zwykle robię filmy oparte na ESP8266 i ESP32, więc jeśli jesteś nimi zainteresowany, sprawdź to!
Krok 2: Sprzęt - części i okablowanie
Aby korzystać z debuggera potrzebujesz tylko ESP-Prog i prawie dowolnej płyty ESP32 (linki do nich we wcześniejszym kroku)
Program ESP:
ESP-Prog to płyta zaprojektowana przez espressif, twórców układów ESP32 i ESP8266. Łączy się z pinami JTAG ESP32, aby umożliwić nam korzystanie z debuggera. Może być również używany do programowania płytek ESP32, ale nie będę tego tutaj omawiał.
Płyta ESP32:
Możesz użyć do tego praktycznie dowolnej płytki ESP32, gdy wyłamie ona piny JTAG, czyli 12, 13, 14 i 15. Przetestowałem zarówno płytkę Adafruit Huzzah32 z piórami, jak i płytkę D1 Mini 32 i obie działały bez zarzutu.
Pamiętaj, że możesz użyć pinów JTAG w swoim szkicu z debuggerem, na przykład wbudowana dioda LED płyty Huzzah32 znajduje się na pinie 13, więc nie możesz jej używać podczas debugowania.
Okablowanie:
Aby podłączyć ESP-Prog do ESP32, wystarczy skorzystać z przewodnika okablowania przedstawionego na powyższym obrazku. Sprawdź na schemacie okablowania swojej płyty ESP32, jeśli nie widzisz od razu odpowiednich pinów, ponieważ czasami używają one innego schematu nazewnictwa.
Tarcze debugowania:
Są one opcjonalne, ale sprzedaję na Tindie kilka osłon na Huzzah32 i D1 Mini 32, które sprawiają, że podłączenie ESP-Prog jest naprawdę proste, wyłamuje odpowiednie piny do złącza IDC, które można użyć kabla taśmowego do bezpośredniego połączenia między tarcza i ESP-Prog
Krok 3: Sprzęt - Konfiguracja sterownika
Aby użyć ESP-prog do debugowania, musimy zainstalować do niego odpowiednie sterowniki. PlatformIO zapewnia tutaj kilka kroków, ale przejdę przez kroki systemu Windows w tym przewodniku.
- Pobierz i zainstaluj sterowniki FTDI dla ESP-Prog stąd, przewiń w prawo, aby pobrać wersję „wykonywalną konfigurację”, aby było łatwiej.
- Pobierz i zainstaluj narzędzie Zadig stąd, to pozwala nam zainstalować ogólny sterownik potrzebny do debugowania.
- Po podłączeniu ESP-Prog otwórz Zadig
- W aplikacji Zadig, w sekcji „Opcje”, kliknij „Wyświetl wszystkie urządzenia”
- Lista rozwijana w Zadig zostanie teraz wypełniona, wybierz opcję „Podwójny RS232-HS (interfejs 0)”. Upewnij się, że wybrany jest interfejs 0!
- Po prawej stronie zielonej strzałki należy wybrać „WinUSB”, a następnie kliknąć „Zamień sterownik”
Kiedy to się skończy, twoje sterowniki powinny być gotowe do użycia!
Uwaga: Jeśli zmienisz port USB, którego używasz dla ESP-Prog, być może będziesz musiał powtórzyć kroki 3-6 ponownie. Jeśli podczas debugowania pojawi się błąd, jak pokazano na powyższym obrazku, musisz powtórzyć kroki.
Krok 4: Oprogramowanie: Instalacja PlatformIO
PlatformIO to IDE do tworzenia z różnymi wbudowanymi frameworkami, w tym z ekosystemem Arduino. Jest bardziej skomplikowany w użyciu niż coś takiego jak Arduino IDE, ale jest bardzo potężny i ma pewne funkcje, których Arduino IDE bardzo brakuje, takie jak autouzupełnianie.
PlatformIO wymaga korzystania z debugera. Jeśli znasz już PlatformIO, możesz pominąć kilka kroków.
- Pobierz i zainstaluj Visual Studio Code (VS Code) z linku podanego na stronie PlatformIO.org
- Otwórz VS Code i otwórz menu rozszerzeń, przycisk jest podświetlony na powyższym obrazku
- Wpisz "platformio" w wyszukiwaniu, wybierz je i kliknij zainstaluj.
Krok 5: Oprogramowanie: korzystanie z PlatformIO
Korzystanie z PlatformIO jest nieco inne niż korzystanie z Arudino IDE, więc w tym kroku omówimy tylko podstawy uruchamiania przykładu na płycie.
Otwieranie przykładu:
- Kliknij przycisk Strona główna na pasku narzędzi PlatformIO (jak pokazano na rysunku)
- Kliknij przycisk „Przykłady projektów”
- Wybierz przykład „Arduino-blink” w sekcji Espressif 32
Spowoduje to otwarcie przykładowego projektu migania. Układ PlatformIO jest zupełnie inny niż projekt Arduino, więc przejdźmy przez podstawy.
Gdzie jest kod?
Kod twojego projektu będzie przechowywany w folderze "src", w przykładzie blink zobaczysz plik "blink.cpp", ten plik jest taki sam jak plik szkicu (.ino) w projekcie Arduino.
Jak skonfigurować tablicę?
Konfiguracje dla twojego projektu są przechowywane w pliku "platformio.ini" w twoim projekcie. W rzeczywistości jest to jedna z moich ulubionych rzeczy w PlatformIO w porównaniu do Arduino IDE, nigdy nie miało dla mnie sensu, aby ustawienia płyty nie były związane ze szkicami.
Przykładowy plik.ini zawiera definicje wielu różnych tablic, ale dla uproszczenia usuńmy dwie dolne definicje.
Gdzie ustawić port COM?
PlatformIO automatycznie spróbuje znaleźć odpowiedni port COM do użycia, więc możesz uciec bez ustawiania niczego do tego. Ale jeśli masz wiele portów COM, które będziesz używać podczas korzystania z debugera, myślę, że warto ustawić ten, którego potrzebujesz. Możesz zobaczyć różne posiadane urządzenia, klikając sekcję „Urządzenia” na karcie głównej i możesz ustawić, który z nich znajduje się w ESP32 w "platformio.ini", dodając konfigurację "upload_port".
Jak mogę przesłać swój kod?
Kliknij przycisk Prześlij (ikona to strzałka skierowana w prawo) i powinien skompilować i przesłać kod. Powinieneś teraz mieć migającą diodę LED na swojej płycie.
Krok 6: Debugowanie: Potencjalna skórka banana
To jest coś, co mnie zaskoczyło, kiedy to przygotowywałem i mam nadzieję, że zostanie to naprawione do czasu, gdy spróbujesz, ale pomyślałem, że ważne jest, aby stąd wyjść.
W momencie tworzenia tego przewodnika najnowsza wersja PlatformIO to 4.3.0 i zawiera błąd związany z możliwością debugowania. Na szczęście możemy dość łatwo zaktualizować do najnowszej wersji rozwojowej, co rozwiązuje problem.
Sprawdź na stronie głównej wersję rdzenia PlatformIO, jeśli jest to „4.3.0”, wykonaj następujące czynności.
- Na pasku narzędzi PlatformIO kliknij ikonę terminala
- W terminalu wpisz: pio upgrade --dev
- Należy zaktualizować kod RestartVS i PlatfromIO
Krok 7: Debugowanie: Konfiguracja
Potrzebujemy edycji pliku "PlatofrmIO.ini", aby umożliwić debugowanie, musimy tylko dodać do niego dwie rzeczy.
debug_tool = esp-prog
To ustawia narzędzie do debugowania, którego używamy.
debug_init_break = konfiguracja tbreak
Jest to sztuczka, której nauczyliśmy się z filmu Andress Spiess na temat debugowania w ESP32. Nakazuje debugerowi zatrzymanie konfiguracji naszej aplikacji.
Krok 8: Debugowanie: Rozpoczęcie debugowania
Zanim do tego przejdziemy, dokonamy niewielkiej zmiany w szkicu, która ułatwi zademonstrowanie, co można zrobić z debugowaniem.
- Utwórz nową zmienną, "int delayTime = 1000;" poza jakimikolwiek metodami, uczyni to zmienną globalną.
- Zastąp liczbę wewnątrz wywołań opóźniających w pętli nową zmienną: delay(delayTime);
Ponownie prześlij kod na tablicę, a następnie, aby rozpocząć debugowanie, na pasku narzędzi kliknij „Uruchom”, a następnie „Rozpocznij debugowanie”
Zobaczysz, jak rzeczy poruszają się w oknie terminala, ale nawet jeśli mówisz, że to się udało, jeśli klikniesz „Konsola debugowania”, zobaczysz, że nadal działa, ukończenie zajmie kilka sekund.
Jeśli wszystko poszło zgodnie z oczekiwaniami, debuger zatrzyma się na początku instalacji.
Krok 9: Debugowanie: podstawowe użycie
Omówmy niektóre z podstaw tego, co można zrobić za pomocą debugera
Tworzenie punktów przerwania:
Punkt przerwania to punkt kodu, w którym debuger ma się zatrzymać. Aby utworzyć punkt przerwania, kliknij po lewej stronie numeru wiersza. Jako demonstrację dodaj punkt przerwania do pierwszej linii w metodzie pętli.
Nawigacja w punktach przerwania:
Aby poruszać się między punktem przerwania lub przejść do następnej linii kodu, możesz użyć narzędzi, które pojawią się u góry ekranu. Naciśnij przycisk „kontynuuj” (wygląda jak przycisk odtwarzania), aby przenieść właśnie utworzony punkt przerwania wewnątrz pętli.
Zegarki zmienne:
Zegary zmiennych umożliwiają monitorowanie wartości zmiennych, gdy debuger jest zatrzymany w punkcie przerwania. Aby dodać nowy zegarek ze zmienną, możesz kliknąć ikonę +, a następnie po prostu wpisać nazwę zmiennej. Jako demo wpisz zmienną, którą dodaliśmy w poprzednim kroku "delayTime"
Przeglądarka zmiennych:
Możesz również zobaczyć wszystkie zmienne i ich wartości, które są dostępne w bieżącym punkcie przerwania. Aby to zademonstrować, jeśli zajrzysz do sekcji „Globalne”, powinieneś znaleźć zmienną „delayTime”.
Edycja wartości zmiennych:
Możesz także edytować wartości zmiennych, co będzie miało natychmiastowy wpływ na zachowanie Twojego kodu. Aby to zademonstrować, kliknij zmienną delayTime w sekcji Variable Viewer i zmień wartość na „100”. Aby pokazać to działanie, wyłącz punkt przerwania wewnątrz pętli, ponownie klikając po lewej stronie numeru wiersza. Naciśnij przycisk Kontynuuj na pasku nawigacyjnym punktu przerwania. Dioda LED na twoim ESP32 powinna teraz migać znacznie szybciej niż wcześniej.
Krok 10: Rozwiązywanie problemów
Podczas moich testów odkryłem, że czasami nie mogłem wgrać do ESP32, gdy był podłączony do ESP-prog, i nie mogłem rozgryźć, dlaczego tak się stało, ponieważ przez większość czasu mogłem wgrywać bez jakieś problemy. Stwierdziłem, że mogę po prostu odłączyć ESP32 i ESP-Prog, wgrać kod do ESP32, a następnie podłączyć je ponownie i będzie działać dobrze.
Krok 11: Podsumowanie
Myślę, że to naprawdę fajne narzędzie, które można dodać do zestawu narzędzi, aby pomóc zorientować się, co dzieje się w twoim projekcie.
Chciałbym usłyszeć, czy uznasz to za przydatne!. Daj mi znać w komentarzach poniżej lub dołącz do mnie i kilku innych twórców na moim serwerze Discord, gdzie możemy omówić ten temat lub inny związany z twórcą, ludzie są tam bardzo pomocni, więc jest to świetne miejsce do zawieszenia na zewnątrz.
Chciałbym również bardzo podziękować moim Sponsorom Github, którzy pomagają we wspieraniu tego, co robię, naprawdę to doceniam. Jeśli nie wiesz, Github dopasowuje sponsoring przez pierwszy rok, więc jeśli dokonasz sponsoringu, dopasują go w 100% przez następne kilka miesięcy. Dziękuje za przeczytanie!
Zalecana:
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): 10 kroków
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): Jest to proste wprowadzenie do rozpoczęcia pracy z systemem Linux, a konkretnie z Ubuntu
Samouczek Bluetooth ESP32 - Jak korzystać z wbudowanego Bluetooth ESP32: 5 kroków
Samouczek Bluetooth ESP32 | Jak korzystać z wbudowanego Bluetooth ESP32: Cześć, Ponieważ płyta ESP32 jest wyposażona w WiFi i amp; Bluetooth oba, ale w większości naszych projektów zwykle używamy tylko Wi-Fi, nie używamy Bluetooth. Więc w tej instrukcji pokażę, jak łatwo jest korzystać z Bluetooth ESP32 i amp; Dla Twoich podstawowych projektów
Jak korzystać z MQTT z Raspberry Pi i ESP8266: 8 kroków (ze zdjęciami)
Jak korzystać z MQTT z Raspberry Pi i ESP8266: W tej instrukcji wyjaśnię, czym jest protokół MQTT i jak służy do komunikacji między urządzeniami. Następnie, jako praktyczną demonstrację, pokażę ci, jak skonfigurować proste dwa system kliencki, w którym moduł ESP8266 wyśle wiadomość
Jak korzystać z terminala Mac i jak korzystać z kluczowych funkcji: 4 kroki
Jak korzystać z terminala Mac i jak korzystać z kluczowych funkcji: Pokażemy Ci, jak otworzyć terminal MAC. Pokażemy również kilka funkcji w Terminalu, takich jak ifconfig, zmiana katalogów, dostęp do plików i arp. Ifconfig pozwoli Ci sprawdzić Twój adres IP i reklamę MAC
Jak korzystać z DMX512/RDM z Raspberry Pi: 6 kroków (ze zdjęciami)
Jak używać DMX512/RDM z Raspberry Pi: Raspberry Pi może być używany do sterowania oświetleniem za pośrednictwem magistrali DMX512. W systemach magistralowych DMX512 jako warstwa fizyczna stosowana jest warstwa RS-485. Nasz RS422 / RS485 Serial HAT to w pełni izolowany galwanicznie kapelusz do komunikacji szeregowej przeznaczony do użytku z Raspberry Pi