概要
ESP-WROOM-32の公式開発フレームワークesp-idfを使って、開発環境を整えた。動作確認として、サンプルのHello world!プログラムを走らせた。
背景と目的
前回、Arduino環境(Arduino core for ESP32 WiFi chip)で、ESP-WROOM-32のLチカやiBeacon化をしてみたが、BLEデバイスとしての開発には、公式の開発環境(esp-idf)を使う必要があるらしい。(2017年5月2日現在)実際、私が見た限りArduinoのサンプルではかなりシンプルな例しかなくBLEデバイスを自由に開発するのは厳しそうだった。そこで、公式の開発フレームワークesp-idfを使ってHello world!プログラムが実行できる状態まで環境を整える。
詳細
0.方法を調べる
ESP-IDFの公式ドキュメントはこちら。開発環境をそろえるための大まかな手順は、
- Toolchainのセットアップ
- ESP-IDFのインストール
- Eclipeのセットアップ
- サンプルプログラムのビルドと書き込み
- 動作確認
だが、3つ目のステップは今回はサンプルが動けばいいので省略する。なお、私の環境は、Windows10、開発ボードは秋月電子のESP32-DevKitC ESP-WROOM-32開発ボード。
1.Toolchainのセットアップ
私の環境は、Windows10なので、こちらを参考に進める。
まず、Windows all-in-one toolchain & MSYSというzipファイルをダウンロード。これは、480MBと大きいのでちょっと時間かかる。DLが終わったら、C:\に解凍。そして、C:\msys32\mingw32.exeを実行してみると、以下の感じ。なお、公式ドキュメントにはカスタムセットアップの方法が書いてあるが、今回は理由がないのでやらない。
図1 Toolchainがインストールされたところ
2.ESP-IDFのインストール
2.1 ESP-IDFのダウンロードとインストール
以下の通り、gitでダウンロード。
cd C:\Users\MyName mkdir esp cd esp git clone --recursive "https://github.com/espressif/esp-idf.git"
esp-idfからダウンロードして配置してもいいかもしれない。
2.2 環境変数のセットアップ
こちらに従い、C:\msys32\etc\profile.dに、export_idf_path.shというファイルを作成し、先ほどESP-IDFをインストールしたフォルダを記入。パスは、Windowsの場合バックスラッシュをスラッシュに直さなければいけないのを注意。
export IDF_PATH="C:/Users/MyName/esp/esp-idf"
そして、mingw32.exeを(再)起動し、
printenv IDF_PATH
をしたときに、設定したパスが表示されればOK。
3.サンプルプログラムのビルドと書き込み、実行
3.1 サンプルプロジェクトのコピー
公式ドキュメントに従い、hello_worldというサンプルを使ってみる。まず、esp-idf\examples\get-started\hello_worldというフォルダを適当なパスにコピー。今回は、C:Users\MyName\espとした。(パスにスペースが入ってはダメ)
3.2 ボードを接続
ここで、開発ボードをPCに接続し、シリアルポートを確認。今回はCOM3を使う。
3.3 プロジェクトの設定
C:\msys32\mingw32.exeを起動し、プロジェクトのディレクトに移動し、設定を行う。
cd C:Users/MyName/esp/hello_world make menuconfig
Serial flasher config>Default serial portを選択し、COM3と記入し、saveして完了。
3.4 ビルドと書き込み
いよいよ、ビルドと書き込み。3.3同様に、C:\msys32\mingw32.exeで、プロジェクトのディレクトに移動し以下の1行を実行すれば、ビルドと書き込みをしてくれる。
make flash
正しく書き込めれば、以下のようになる。
図3.4 書き込み完了の状態
4.動作確認
シリアルターミナルで、表示を確認したところ、Hello worldと表示された!正しく動いている模様。これで、開発環境は整ったといえる。素晴らしい。
図4 動作確認
まとめ
ESP-IDFを使った開発環境を整え、Hello worldが走った。これから、どんどんプログラムが作れそうだ。