ESP-IDF ( ESP32 開発環境 ) の使い方

記事最終更新日:2017/10/06

スポンサーリンク

【お知らせ】
Wi-Fi WPA2 脆弱性対策は最新版をダウンロードしてインストールしてください。
Espressif Systems社のページでも紹介されていますので参考にしてください。
http://espressif.com/en/media_overview/news/espressif-releases-patches-wifi-vulnerabilities-cert-vu228519
(2017/10/19)
最新版 Toolchain をダウンロードしてインストールした場合、CDコマンドが効かないとか、make できないとか、パスが通っていないなどの不具合があった場合、操作の度に 一旦MSYS2 ウィンドウを閉じたり、場合によってはパソコンを再起動したら上手く動作する場合がありますので、試してみて下さい。

ESPRESSIF 社推奨のESP32 ( ESP-WROOM-32 ) の開発環境、ESP-IDF の使い方を説明します。

Arduino IDE でも ESP32 ( ESP-WROOM-32 ) は開発できますが、全ての機能を使うことがまだできません。
ESP-IDF を使うともっといろいろな機能が使えます。

ESP-IDF の使い方はいろいろな方々が記事にされていますが、Arduino IDE しか使ったことが無かった私にとっては、イマイチよく分からないことが多かったので、私なりに備忘録も兼ねてまとめてみました。

本家、ESPRESSIF社の GitHub の以下のページに英語版使用方法がありますので、合わせてご覧ください。

Espressif IoT Development Framework

ここでの場合は Espressif社の ESP32-DevKitC ( ESP-WROOM-32 )開発ボードを使います。

もちろん、スイッチサイエンスさんの ESPr® Developer 32 でも同じように使えます。

以下、Windows10 環境の場合で説明します。

1.MSYS2 ツールチェーンをインストール

まず、ESP32用に構成されたMSYS2 をインストールします。
MSYS2とは、Windows で gcc コンパイラなどのUNIX コマンドが使えるソフトです。
ESP32用 のC言語ソースを gcc コンパイラでコンパイルするために、MSYS2 を使います。

まず、Espressif社の ESP-IDF Programming Guide の以下のページを開いて下さい。

Standard Setup of Toolchain for Windows

そのページの中の下図の様な Toolchain Setup のところに、ZIPファイルリンクがありますので、クリックしてダウンロードしてください。
2017/7/11現在では 20170330 というバージョンですが、最新版に更新されていたらそれを使って下さい。

ESP-IDF_01

ダウンロードしたら、解凍してください。
サイズは 1.21 GB くらいあります。かなり大きいです。
解答するのに10分くらい時間がかかりますので覚悟してください。

解答したら、下図のようにその中の msys32 フォルダをドライブ直下にコピーすると良いです。
なぜかというと、コマンドラインでフォルダのパスを指定するので、Cドライブ直下か、またはその他のドライブ直下の方が、長いパス名を入力しなくて済む為に使いやすいと思います。
私は下図の様にシステムドライブとは別の Dドライブ直下に置きました。

ESP-IDF_02

ESP-IDF_03

次に、msys32 フォルダを開きます。
下図の様に、64bitパソコンならば、mingw64.exe をクリックして起動し、32bitパソコンならば、mingw32.exe をクリックして起動します。

ESP-IDF_04

すると、下図の様な MSYS2 ウィンドウが開きます。
下図は mingw64.exe のウィンドウです。
ここにコマンドを入力していきます。

これで、MSYS2 のインストールは完了です。

2.ESP-IDF をGET する

ESP-IDF は GitHub で公開されていて、C言語ソースファイルやライブラリ、環境設定ファイル、Makeコマンド設定ファイルなどがパッケージになっているものです。
本家の以下のページも合わせて参照してください。

http://esp-idf.readthedocs.io/en/latest/get-started/index.html#get-started-get-esp-idf

まず、ESP-IDF を設置するフォルダはどこでもいいのですが、ここでは、msys32/home フォルダの中に設置します。

下図の様に、msys32/home フォルダの中に esp というフォルダを作成します。

ESP-IDF_10

次に、msys32.exe または msys64.exe を起動して、以下のようなコマンドを入力します。
ここで注意!!
フォルダ指定はバックスラッシュ( ¥)ではなく、スラッシュを入力してください。

cd /d/msys32/home/esp

cd は change directory (カレントディレクトリ変更)です。
/d/ はd ドライブということです。
これを入力して、 Enter を押すと下図の様になります。

因みに、コマンドをコピペしたい場合、Windows の場合は右クリックするとコピペできます。
Ctrl+C などの一般的なショートカットは異なりますのでご注意ください。

ESP-IDF_11

ここで、私の場合は Toolchain を最新版(20170918)にしたときに、CDコマンドが効かず、espフォルダに移動できないという症状が出ました。
その場合、一旦 MSYS2 ウィンドウを閉じて、パソコンを再起動してみてください。

次に下図の様なコマンドを入力します。

git clone --recursive https://github.com/espressif/esp-idf.git

git の説明はここでは省きますが、このコマンド群を使うと、GitHub にある最新のプログラムをダウンロードできます。
特に、

--recursive

というオプションコマンドを入れないとサブモジュールが最新版になりませんので気を付けてください。
では、それを入力すると、こうなり、GitHubからダウンロードが始まります。

ESP-IDF_12

ダウンロードが終了するとこうなります。

ESP-IDF_13

そうしたら、実際にフォルダを見てみましょう。
下図の様な感じでGitHub上の ESP-IDF と同じものができているはずです。

ESP-IDF_14

要するに、GitHub から ZIP ファイルをダウンロードして解凍しても同じことができるわけです。
GitHub 上のファイルのクローンをパソコン上に作ったということです。

ちなみに、Arduino core for ESP32 のようにtools フォルダに get.exe はありません。

3.MSYS2 の環境設定で ESP-IDF のパスを通すファイルを作成

次に、MSYS2 に ESP-IDF のソースファイルを参照できるようにパスを通しておく環境設定ファイルを作成します。

まず、メモ帳などのテキストエディタで以下のようなコマンドを入力します。
このパスはそれぞれご自分のインストールしたフォルダに合わせて変えてください。

export IDF_PATH="D:/msys32/home/esp/esp-idf"
export PATH="$PATH:/d/msys32/usr/bin:/d/msys32/mingw32/bin:/d/msys32/opt/xtensa-esp32-elf/bin"

ESP-IDF_20

これを以下のフォルダに名前をつけて保存しておきます。

d:\msys32\etc\profile.d

(ここで注意していただきたいのは、profile.d というのはフォルダです
ファイル名ではありませんのでご注意!!)

ファイル名は、ここでは、My_IDF_PATH.sh としておきます。
ファイル拡張子は .sh にしてください。
文字コードは UTF-8 にして保存します。

ESP-IDF_21

そうしたら、必ず MSYS2 ( mingw64.exe または mingw32.exe )を一旦閉じて再起動してください。

4.プロジェクトの作成

では、いよいよプロジェクトを作成します。
空のプロジェクトを作成してもいいのですが、一番簡単で確実な方法は、ESP-IDF の examples からコピーして書き換えることです。

下図の様に、
msys32/home/esp/esp-idf/examples/get-started
フォルダへ移動し、まずは LED チカチカするためのサンプルプロジェクトがある、blink フォルダを msys32/home フォルダへコピーします。

ESP-IDF_22

Blink フォルダの中のmain フォルダを開くと、blink.c というC言語ソースファイルがあるので、テキストエディタで必要によってプログラムを書き換えればOKです。
要するにこれが Arduino IDE で言うスケッチのようなものです。

5.ESP32-DevKitC を接続する

ESP32-DevKitC などの ESP-WROOM-32 開発ボードを下図の様に LED と接続します。
LED は一般的な5V以下の物でOKです。
GPIO には最大12mA しか流せませんので、必ず電流制限抵抗を入れてください。

ESP-IDF_50

写真ではこんな感じになります。

ESP-IDF_51

mgo-tec電子工作 関連コンテンツ ( 広告含む )

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)