LoginSignup
0
3

More than 5 years have passed since last update.

WROOM-32 セットアップ

Last updated at Posted at 2017-04-01

WROOM-32の開発環境セットアップ ~ Lチカ

いろいろ使い勝手のよさそうなWROOM32を使っていこうと思います。
公式のセットアップで一部つまずきましたのでメモっておきます。

さっそくWROOM-32にプログラムを書く準備です。
今回は、ESP-IDFを使った方法でやりますので、手順は以下の公式の通りです。
 http://esp-idf.readthedocs.io/en/latest/windows-setup.html

Step 1: Quick Steps

MSYS32をDL (以下のリンクは20170401時点での最新ver)
  https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20170330.zip
Alternative - の方は飛ばします。

Step 2: Getting the esp-idf repository from github

上記のzipをC直下に展開して、コマンドラインで以下を実行
C:\msys32\mingw32.exe

好みのディレクトリに移動して以下を実行。ここでは、/home/nemeにesp-idfディレクトリを作成しました。
mkdir /home/name/my-esp-idf
cd /home/name/my-esp-idf
git clone --recursive https://github.com/espressif/esp-idf.git

Step 3: Starting a project

サンプルアプリをDLします。
ここでは/home/name/にespSampleAppというディレクトリを作成してそこにDLしました。
mkdir /home/name/espSampleApp
cd /home/name/espSampleApp
git clone https://github.com/espressif/esp-idf-template.git

サンプルアプリのコードはこんな感じです。

esp-idf-template/main/main.c
#include "freertos/FreeRTOS.h"
#include "esp_wifi.h"
#include "esp_system.h"
#include "esp_event.h"
#include "esp_event_loop.h"
#include "nvs_flash.h"
#include "driver/gpio.h"

esp_err_t event_handler(void *ctx, system_event_t *event)
{
    return ESP_OK;
}

void app_main(void)
{
    nvs_flash_init();
    tcpip_adapter_init();
    ESP_ERROR_CHECK( esp_event_loop_init(event_handler, NULL) );
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
    ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
    ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
    wifi_config_t sta_config = {
        .sta = {
            .ssid = "access_point_name",
            .password = "password",
            .bssid_set = false
        }
    };
    ESP_ERROR_CHECK( esp_wifi_set_config(WIFI_IF_STA, &sta_config) );
    ESP_ERROR_CHECK( esp_wifi_start() );
    ESP_ERROR_CHECK( esp_wifi_connect() );

    gpio_set_direction(GPIO_NUM_4, GPIO_MODE_OUTPUT);
    int level = 0;
    while (true) {
        gpio_set_level(GPIO_NUM_4, level);
        level = !level;
        vTaskDelay(300 / portTICK_PERIOD_MS);
    }
}

WiFiのアクセスとLチカですね。
ssidとpasswordを自分の環境にすれば動きそうです。
.ssid = "access_point_name",
.password = "password",

ハードウェアはLEDをGPIO_NUM_4に接続すれば良さそうですね。
仕様書を確認すると、pin番号26。

GPIO4.png

私の使ってるボードはDOIT製の開発ボードver.1ですので、D4のピンにpin番号26(GPIO4)がアサインされています。

GPIO4_D4.png
ボードのバージョンなどの情報はここを参考にさせていただきました。←大変参考になります。
回路図はここ

ソースコードのGPIO_NUM_2に変更すると、開発ボード上の青色LEDが光ります。

Step 4: Configuring the project

いよいよビルドです。
以下のコマンドでmsys32を起動します。
C:\msys32\msys2_shell.cmd
ここからはmsys32状での作業です。
idfのパスを通す
export IDF_PATH="C:/path/to/esp-idf
#今回の場合 export IDF_PATH="C:/msys32/home/name/my-esp-idf/esp-idf

公式に従って、サンプルアプリのディレクトリに移動してmake menuconfig
cd /home/name/espSampleApp/esp-idf-template
make menuconfig

Serial flasher config --->
(/dev/ttyUSB0) Default serial port
を選択し
/dev/ttyUSB0をCOM29
に変更。
Serial flasher config --->
Default baud rate (115200) --->
UARTの設定でボーレートが115200となっていますが、230400や931600にするとプログラムの転送速度が早くなります。(2MBaudはエラーになりました)
Exit
Exit
Save

ここから、makeと書いてあるのですが、実行すると以下のエラーがでました。
make

$ make
GENCONFIG
CC src/bootloader_random.o
CC src/flash_encrypt.o
CC src/esp_image_format.o
CC src/flash_partitions.o
CC src/secure_boot_signatures.o
CC src/secure_boot.o
CC src/bootloader_flash.o
AR libbootloader_support.a
CC log.o
AR liblog.a
CC flash_qio_mode.o
CC bootloader_start.o
AR libmain.a
LD bootloader.elf
/bin/sh: python: コマンドが見つかりません
make[1]: *** [/home/takaf/my-esp-idf/esp-idf/components/esptool_py/Makefile.projbuild:49: /home/takaf/espSampleApp/esp-idf-template/build/bootloader/bootloader.bin] エラー 127
make: *** [/home/takaf/my-esp-idf/esp-idf/components/bootloader/Makefile.projbuild:31: /home/takaf/espSampleApp/esp-idf-template/build/bootloader/bootloader.bin] エラー 2

pythonが見つかりません、とありますが、ツールチェーンへのパスが通っていないようです。
以下でパスを通します。ここを参考にさせていただきました。
私の環境だと、以下でパスが通りました。
export PATH="$PATH:/usr/bin:/mingw32/bin:/opt/xtensa-esp32-elf/bin"
再度
make
完了!!

続いて書き込み
make flash

ここまでの作業でWiFiの接続とLEDチカリを確認しました。
次はexamplesにある、UART(esp-idf/examples/peripherals/uart_echo)の接続を試したいと思います。

<補足情報>

私が使っている開発ボードはこれです。e-bayで頼みました。
香港から発送されてフィンランドを経由して来ましたので届くまで1ヵ月くらいかかりました(汗)
http://www.ebay.com/itm/351936749769?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

気づいたら開発ボードが秋月さんでも販売され始めてましたので、今後は簡単に入手ができていいですね。
http://akizukidenshi.com/catalog/g/gM-11819/
スイッチサイエンスさんからはピッチ変換ボードが出ています。
https://www.switch-science.com/catalog/3170/

20170411追記
export関係のコマンドですが、msys32を開くたびに設定するのが面倒なので、/etc/profile.dに、espdir.shを追加して、起動時に自動で叩くようにしました。
vim /etc/profile.d/espdir.sh

/etc/profile.d/espdir.sh
export IDF_PATH="C:/path/to/esp-idf
export PATH="$PATH:/usr/bin:/mingw32/bin:/opt/xtensa-esp32-elf/bin"
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3