W tym poście chciałbym opisać sposób konfiguracji środowiska ESP-IDF pod Windows 10.
[Źródło: http://paulobrien.co.nz/2017/03/16/esp32-programming-with-arduino-on-windows/]
Na samym początku należy pobrać ESP-IDF dla środowiska Windows z poniższej strony:
Następnie przechodzimy do instalacji pakietów. Przebieg instalacji można podglądnąć na powyższej stronie. Oprócz pakietów podstawowych zostaną zainstalowane wszystkie dodatkowe elementy, jeśli nie zostały one zainstalowane wcześniej (np. Python, Cross Compiler).
Po instalacji i uruchomieniu ESP-IDF 4.3 CMD wyświetli się następujące okno:
Z tego okna dostępne będą wszystkie potrzebne zmienne środowiskowe dla ESP, nie będą one widoczne ze zwykłego okna cmd.
W celu przetestowania przygotowanego środowiska można skopiować przykładowy projekt z zainstalowanego folderu esp-idf->example. Wybrałem najprostsze rozwiązanie czyli blink.
Na samym początku należy przejść do projektu. Folder z projektem skopiowałem, tak aby wszystkie zmiany generować w kopii:
Jak można zaobserwować na screenie powyżej dostępne są układy ESP32, ESP32S2, ESP32C3, ESP32S3 lub linux. Porównanie wszystkich modułów można znaleźć pod tym linkiem. Różnią się one między sobą m. in.: procesorem, pamięcią RAM czy dostępnymi interfejsami.
Poprawne wykonanie komendy wygląda następująco:
- idf.py set-target esp32
Domyślne ustawienia są wygenerowane odpowiednio, więc wystarczy zapisać i wyjść (S->Enter->ESC->ESC).
Jedyne co teraz zostało to zbudować projekt (idf.py build). Ta operacja chwilę zajmie:
Teraz w celu wgrania projektu należy wywołać komendę idf.py -p COMxx flash, gdzie xx jest numerem portu pod jakim ESP32 jest widziane w systemie. W zależności od rodzaju płytki z układem ESP32 należy przytrzymać przycisk Boot lub użyć kombinacji dwóch klawiszy umieszczonych na PCB.
Po wgraniu projektu efekt działania można prześledzić w terminalu. W tym celu należy wpisać komendę idf.py monitor:
Dokładniejszych informacji należy szukać na stronie producenta:
Projekt można modyfikować w programie Visual Studio Code. Tutaj głównym elementem jest usunięcie pojawiających się błędów. Wykonuje się to poprzez dołączenie do kompilatora odnośników do plików z bibliotekami do ESP32. Można to wykonać przez dołożenie zmiennych środowiskowych lub wprowadzenie ich z palca:
- {
- "env": {
- "defaultIncludePath": [
- "C:/Users/wojte/OneDrive/Pulpit/esp-idf/components/**",
- "${workspaceFolder}/main/**",
- "${workspaceFolder}/build/config/*",
- "C:/Users/wojte/OneDrive/Pulpit/esp-idf/examples/common_components/protocol_examples_common/**"
- ],
- "defaultBrowsePath": [
- "C:/Users/wojte/OneDrive/Pulpit/esp-idf/components/**",
- "${workspaceFolder}/main",
- "${workspaceFolder}/build/config",
- "C:/Users/wojte/OneDrive/Pulpit/esp-idf/examples/common_components/protocol_examples_common"
- ]
- },
- "configurations": [
- {
- "name": "ESP32",
- "includePath": [
- "${defaultIncludePath}"
- ],
- "browse": {
- "path": [
- "${defaultBrowsePath}"
- ],
- "limitSymbolsToIncludedHeaders": false
- },
- "compilerPath": "C:/Users/wojte/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe",
- "cStandard": "c11",
- "cppStandard": "c++17",
- "compileCommands": "${workspaceFolder}/build/compile_commands.json",
- "configurationProvider": "ms-vscode.makefile-tools"
- }
- ],
- "version": 4
- }
Projekt wgrywamy na ESP za pomocą konsoli. Sposób przedstawiony na początku postu.
Innym sposobem jest pobranie rozszerzenie do VSC:
W celu rozpoczęcia pracy można wybrać jeden z gotowych przykładów, posłużę się tutaj projektem blink. Wybieramy go wpisując w menu Command Pallete ESP-IDF: Show Example Projects. Po czym należy określić lokalizację projektu na dysku. Takie rozwiązanie pozwoli na szybkie przygotowanie plików konfiguracyjnych do układu.
Po zainstalowaniu rozszerzenia pojawi się dodatkowe okno ESP-IDF Explorer na pasku z lewej strony.
W celu zbudowania projektu należy wybrać opcję ESP Build z menu Command Pallete (Ctrl + Shift + P):
Po przygotowaniu projektu można przejść do konfiguracji wgrywania pliku do układu ESP32.
Najpierw należy wybrać odpowiedni port COM. Wybieramy go przez kliknięcie na napis z portem COM. Przedstawionym na screenie poniżej. W moim przypadku jest to COM12.
Następnie wgrywamy program do płytki przez kliknięcie przycisku Flash. W dalszym ciągu należy pamiętać o wciśnięciu przycisku Boot.
Ostatnim elementem jest wybranie Monitor device. Co pozwoli na obserwację przebiegu programu w oknie terminala.