ESP32をArudiono IDEではなくESP-IDFで開発する際の環境構築手順です。
OSはWindows10(64bit)です。
ESP-IDFとは
ESP-IDFはESP32の公式の開発環境です。
公式サイト:
https://docs.espressif.com/projects/esp-idf/en/stable/get-started/index.html
https://github.com/espressif/esp-idf
セットアップ
セットアップするためには2つのアプリケーションが必要です。
- Toolchain
- ESP-IDF
1. Toolchain
Toolchainとは、一般的にアプリケーションをつくるために必要なツールのことを指すようです。
ESP32の場合は、ESP32のアプリケーションをビルドするためのもので、MSYS2を指しています。
以下のページに記載されているリンクからMSYS2をダウンロードします。
https://docs.espressif.com/projects/esp-idf/en/stable/get-started/windows-setup.html
現時点では、https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip でした。
ダウンロードしたファイルは、Cドライブ直下に解凍します。
例えば、msys2.exeのパスは以下のようになります。
1 |
|
次に、C:\msys32\msys2.exe
を実行します。表示されたターミナルで以下のコマンド実行してください。
1 |
|
pythonのバージョンが表示されましたか?表示されない場合はpythonのパスが通っていません。
なので、.bashrcファイルなどを編集してpythonがあるフォルダにパスを通します。ファイルの末尾に以下の行を追加してください。
1 |
|
ファイルの編集方法ですが、vimが使える人はそのままターミナルで編集してください。
vimを使えない人はWindowsのメモ帳なので編集してください。ファイルは以下の場所にあります。
1 |
|
ファイルを編集したらMSYS2を再起動します。もう一度pythonのバージョンを確認してみましょう。
バージョンが表示されたらOKです。
1 |
|
2. ESP-IDF
ESP-IDFをgitで取得します。MSYS2を実行して、以下のコマンドを実行してください。
1 |
|
続いて、IDF_PATHを設定します。.bashrcファイルなどに以下の行を追加してください。
1 |
|
ここでMSYS2を再起動します。以下のコマンドを実行してesp-idf
ディレクトリ内のファイルが表示されればOKです。
1 |
|
以下、実行結果の例です。
1 |
|
最後に必要なpythonパッケージを取得します。以下のコマンドを実行してください。
1 |
|
プロジェクトのビルド
ESP-IDFにはプロジェクトがいくつも含まれていますが、その中でも簡単ものとしてHelloWorldとBlinkがあります。
ここでは、HelloWorldをビルドしてみます。
MSYS2を実行して、以下のコマンドを実行してください。これは、examples
ディレクトリにあるプロジェクトをesp
ディレクトリにコピーしています。
1 |
|
コピーしてきたディレクトリに移動します。
1 |
|
続いて、以下のコマンドで設定画面を表示します。
1 |
|
今回はシリアルポートの名前を設定します。各自の環境に合わせてください。
Serial flasher config
> Default serial port
の順に選択し、シリアルポートを入力してください。
使用しているのがCOM1
なら、そのままCOM1
と入力すればOKです。入力したらSAVEしてEXITします。
設定内容はsdkconfig
ファイルに保存されます。設定内容が保存されているか確認してみましょう。
以下のコマンドを入力してください。
1 |
|
以下はコマンドの実行例です。入力したシリアルポートが設定されていたらOKです。
1 |
|
では、ビルドして書き込んでみます。以下のコマンドを実行してください。
1 |
|
書き込みが終わったら、シリアルポートの通信内容を以下のコマンドで確認できます。
1 |
|
他のアプリケーションで確認する場合はボーレートを合わせてください。デフォルトだと115200bpsです。
以下のようなログが表示されます。
1 |
|
なお、make flash
実行時に以下のようなエラーが表示される場合はシリアルポートを認識していません。
ESP32が別のポートで認識されているか、そもそもESP32を認識していない可能性があります。Windowsのデバイス画面などでシリアルポートを確認してください。
また、別のアプリケーションが該当のポートを使っているのかもしれません。
1 |
|