czwartek, 26 października 2017

Esp32 - programowanie za pomocą Arduino IDE

W moje ręce wpadła płytka developerska z układem ESP32, jest to "młodszy brat" prezentowanego wcześniej ESP8266:

Układ jest dużo potężniejszy od swego "starszego brata", różnice można zobaczyć w tabeli umieszczonej na tej stronie.
Dokładnie moja płytka jest opisana jako DOIT ESP32 DEVKIT V1 Board.


Aby używać jej w środowisku Arduino należy wyedytować dodatkowe managery płytek (File-Preferences-Additional Boards Manager) i dodać nową linijkę:
https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json 
UPDATE: na dzień dzisiejszy poprawnym URL'em może być: 
https://dl.espressif.com/dl/package_esp32_index.json 
Zobacz także: https://github.com/espressif/arduino-esp32
Następnie wchodzimy w Tools-Boards-Board manager i instalujemy FireBeetle-ESP32:
Co może trochę potrwać. Po instalacji pojawi się możliwość wybrania płytki:
Dobrze jest uruchomić Serial Monitor, przełączyć go na 115200 bodów i zrestetować płytkę (przyciskiem En). W konsoli powinien pojawić się taki komunikat:
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:1760
load:0x40078000,len:6668
load:0x40080000,len:252
entry 0x40080034
Teraz można wybrać sketch, oczywiście blink i zaflash'ować.
Niestety w moim przypadku pojawił się komunikat:
Connecting...

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Na szczęście rozwiązanie jest proste: należy nacisnąć i przytrzymać przycisk Boot, wcisnąć i puścić En i nadal trzymając Boot kliknąć na "Wgraj" w Arduino IDE. W konsoli Arduino zobaczymy:
esptool.py v2.0-dev
Connecting...
Uploading stub...
Running stub...
Stub running...
Attaching SPI flash...
Configuring flash size...
Compressed 8752 bytes to 5468...

Writing at 0x00001000... (100 %) 
Wrote 8752 bytes (5468 compressed) at 0x00001000 in 0.5 seconds (effective 144.1 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 105...

Writing at 0x00008000... (100 %) 
Wrote 3072 bytes (105 compressed) at 0x00008000 in 0.0 seconds (effective 1638.4 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %) 
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 8191.9 kbit/s)...
Hash of data verified.
Compressed 188416 bytes to 59074...

Writing at 0x00010000... (25 %) 
Writing at 0x00014000... (50 %) 
Writing at 0x00018000... (75 %) 
Writing at 0x0001c000... (100 %) 
Wrote 188416 bytes (59074 compressed) at 0x00010000 in 5.2 seconds (effective 288.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...
I dioda zaczyna ładnie migać...
Zmniejszyłem tylko Upload Speed na 115200 ze względu na dość długi i nie najwyższej jakości kabel USB.

Pinout można znaleźć tu.

3 komentarze:

  1. Wojciech Truszczyński13 sierpnia 2018 13:03

    Programowanie za pomocą Arduino może być ciekawe dla osób zajmujących się po części samym kodowaniem, i lubiących zgłębiac elektronikę. Możemy tworzyć urządzenia użytkowe i wdrażać kodowanie jak to robią w https://craftware.pl w pełnym tego słowa znaczeniu. Każda forma programowania jest fajna, ponieważ pobudza nas do analitycznego myślenia.

    OdpowiedzUsuń
  2. Hej, a z jakiego sklepu korzystasz? Zastanawiam się nad zamówieniem czegoś ze sklepu https://dlaelektrykow.pl/225-ogrzewanie-i-wentylacja, kojarzysz może tę stronę? Zależy mi na produktach wysokiej jakości, a dopiero zaczynam moją przygodę z elektroniką, więc nie mam dostatecznej wiedzy, żeby sama uznać, co się nadaje, a co nie ;)

    OdpowiedzUsuń