esp_idf_00

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


スポンサーリンク



6.コンパイルオプションメニュー設定

コンパイルする前に、コンパイルオプションを設定します。

まず、ESP32 開発ボード ( ESP-DevKitC , ESPr Developer 32 など )をパソコンとUSB接続します。
次にMSYS2 ( mingw64.exe または mingw32.exe )を再起動し、cd コマンドを以下のように入力して、blink フォルダに移動します。

cd /d/msys32/home/User-Name/blink


次に

make menuconfig

と入力します。
Enter を押すと、下図の様に make コマンドが走り始まればOKです。


しばらく経つとコンパイル設定メニューが表示されます。


キーボードの矢印カーソルキー[↓] を押して、下図の様に Serial Flasher config を選びます。


すると、下図の様な画面になりますので、Default serial port をセレクトしてEnterします。


すると、下図の様な画面になります。


ここで、Windows10 画面のタスクバーにあるWindowロゴを右クリックして、タスクマネージャーを起動します。


デバイスマネージャーを開いたら下図の様にポート(COM と LPT) をクリックすると、ESP32-DevKitC の USB COMポート番号が分かります。
ここでは3番です。


そうしたら、MSYS2 コマンドライン画面に戻り、下図の様に番号を書き換えてOKをEnterします。
Windows の場合、COM3 という形に書き換えます。
Mac の場合 /dev/cu.3 という形式らしいです。
その後、OKしてください。


そうしたら、[Esc]キーを2回連続で押すことを、何回か繰り返すと、元の画面に戻ります。

元の画面に戻ったら、キーボードの矢印カーソルキーの[↓]を押して、例えば下図のように、Example Configuration へカーソルを移動させます。


そこで、下の部分が <Select>にカーソル(青くなっている)ことを確認して、Enter を押します。
(矢印キーの [←] や [→] を押すとカーソルが移動します)

そうすると下図の様に Example Configuration メニューの中に入れます。


もう一度 Enter を押すと下図の様な画面になります。


ここで、LED を接続するところを GPIO #5 から #23 へ変更してみます。


そうしたら Enter を押します。

キーボードのEsc キーを2回連続で押すと、一つ前の画面に映ります。

そして、最初の画面まで行ったら、次に ESP32 の CPU クロック周波数を設定してみます。
LED 点滅程度ではデフォルトのままでもいいのですが、ここではあえて設定してみます。

下図の様に Component config を選択します。


下図の画面でもう一度 Enter します。


そして、下図の画面でもう一度 Enter します。


すると、下図の様な画面になるので、カーソルキーの[↓] を押して、240MHz の最速にして Enter キーを押すと決定になります。


その後、下図の画面になり、240MHz にセレクトされていることが確認できます。


次に、矢印カーソルキー[→] を押して、<Save>をセレクトして設定を保存します。
GPIO 設定と共に、今まで設定したものが保存されます。


すると、下図の画面になるので、OKをEnter します。


次に下図のように保存100% になった旨の画面が出るので Exit します。


ひたすら<Exit>していくか、[Esc] キーを2回連続で押していくと、menuconfig 画面が閉じ、設定ファイルがmake されてMSYS2コマンドウィンドウに戻ります。
カーソルが現れるまで、しばらく時間がかかります。1分くらいでしょうか。


これでコンパイルオプション設定完了です。

7.コンパイル書き込み

では、いよいよ、ESP32-DevKitC や ESPr Developer 32 などの開発ボードのフラッシュにコンパイル書き込みしていきます。

下図の様に

make flash

というコマンドを入力してEnter します。
(ここで注意!! flush と間違えないように!!私は何度もやらかしました)


するとコンパイルが始まり、コンパイル終了後、自動的に ESP32 へ書き込みします。
今回の場合、転送速度は 115200bps です。
思ったより時間がかかります。
2~3分丸々かかります。
あまりにも早く終わったら何かしらエラーがあります。
気長に待ってください。

たかが Lチカプログラムのコンパイルなのに、何でこんなに時間がかかるのかと不思議に思うかもしれません。
恐らく、全てのライブラリもコンパイルしているからだろうと思われます。
Arduino IDE ならば直ぐにコンパイル終わります。
でも、Arduino IDE も ESP-IDF でコンパイルしたライブラリを使っているのです。
つまり、ESP32用の Arduino は、ESP-IDF で作られたものと言っても過言ではありません。

手軽に操作したければ、Arduino core for ESP32。
全ての機能と、ライブラリを自分の好きな設定でコンパイルしたければ ESP-IDF と言った感じですね。

というわけで、書込み成功したらこんな感じになります。


実際にLED がチカチカ点滅していればOKです。


以上、ESP-IDF の使い方でした。
Arduino IDE に比べてかなり面倒ですね。
ネット上に様々な方々が記事にされていますが、イマイチ分からないところがあったので、今回は自分で記事にしてみました。

その他、参考にさせていただいたサイトは以下の通りです。
情報ありがとうございました。
m(_ _)m

rukihenaさん
ESP32(ESP-WROOM-32)でLチカ (WindowsでESP-IDF使用)

T-YOSHさん
WROOM-32 セットアップ


スポンサーリンク


 

mgo-tec電子工作ブログ管理人おすすめ
Amazon.co.jp
M5Stack Basic
スイッチサイエンス
Amazon.co.jp
ESPr Developer 32
スイッチサイエンス(Switch Science)
Amazon.co.jp
Amazon.co.jp

「ESP-IDF ( ESP32 開発環境 ) の使い方」への7件のフィードバック

  1. mgo-tec 様

    ESP-IDFの使い方にチャレンジしてみました。
    「書込み成功したらこんな感じになります。」の所まで何とかたどり着いたのですが、Lチカ点滅には至りませんでした。
    最後の行に下記のメッセージが出ていますが素人の私にはまったく解読できません。何かコメントをいただけると幸いです。
    make[1]: *** [/home/name/my-esp-idf/esp-idf/make/prpject.mk-387 /c/msys32/home/blink/build/bootloader/bootloader.elf] エラー 1
    make *** [/home/name/my.esp-idf/esp-idf/components/bootloader/Makefile.projbuild:40: /c/msys32/home/blink/build/bootloader/bootloader.bin] エラー 2

    1. juchangさん

      お返事おそくなりすみません。
      検証するのに時間がかかってしまいました。

      しばらく IDF を使っていなかったので分かりませんでした。
      ツールチェーンを最新版にしたら make が全くできませんでした。

      いろいろ試したところ、Espressif Systems の ESP-IDF設定ページにあるように、homeフォルダの中にあるユーザーフォルダ内にespフォルダやプロジェクトフォルダを入れないとうまく動作しないことがわかりました。

      それと、64bitパソコンでも、mingw32.exe を使うことです。
      これは今分かったことです。

      ということで、記事も書き換えましたので、ご参照いただき、再度試してみて下さい。
      これでも動作しない場合はまたご連絡いただけると助かります。

  2. 初めまして。

    高級言語は全くの素人です。
    ESP32を使いたくこのページに来ました。
    一応、解説通り行ったつもりですが、make menuconfigのところでエラーで止まります。
    いろいろ書いてありますが、具体的にどうしていいのか分からず、お聴きしたく書いています。
    よろしければアドバイスお願いいたします。

    以下はエラーメッセージです。

    The following Python requirements are not satisfied:
    click>=5.0
    pyelftools>=0.22
    The recommended way to install a packages is via “pacman”. Please run “pacman -Ss ” for searching the package database and if found then “pacman -S mingw-w64-i686-python2-” for installing it.
    NOTE: You may need to run “pacman -Syu” if your package database is older and run twice if the previous run updated “pacman” itself.
    Please read https://github.com/msys2/msys2/wiki/Using-packages for further information about using “pacman”
    Alternatively, you can run “C:/msys32/mingw32/bin/python.exe -m pip install –user -r C:/msys32/home/so/esp/esp-idf/requirements.txt” for resolving the issue.
    make: *** ‘menuconfig’ に必要なターゲット ‘check_python_dependencies’ を make するルールがありません. 中止.

    よろしくお願いいたします。

    1. ギター好きさん

      記事をご覧いただきありがとうございます。
      今、多忙で検証する時間が無いので、今しばらくお待ちください。

      1. ギター好きさん

        お待たせしました。
        インストールし直してみたのですが、当方ではそのエラーが出ないため、正直よくわかりません。
        ただ、エラーメッセージを見る限り、Pythonモジュールのインストールが不十分だったようです。
        ESP-IDFの英語マニュアルサイトを参照してみてください。
        https://docs.espressif.com/projects/esp-idf/en/stable/get-started/index.html#get-started-get-esp-idf
        そこに、必要なPythonパッケージのインストール方法が書いてあります。
        それに沿って、以下のコマンドをMSYS2ウィンドウに入力してみて下さい。

        python -m pip install --user -r $IDF_PATH/requirements.txt

        これで、Pythonパッケージがインストールされると思いますので、再度 make menuconfig を試してみて下さい。

        因みに、このコマンドを入力しなくても私の環境では問題ありませんでした。
        もしかしたら、セキュリティソフトがダウンロードを阻害している可能性がありますので、ダウンロードの際はセキュリティソフトやファイアウォール設定を解除するなりしてみるということも考えられますね。

  3. ひさしぶりでしたが、うまく点滅まで行けました。
    ひとつ気になったのは、フォルダーのパスのコピーは手入力よりは、シフト押しながらの右クリックが間違いないな、と実感(笑)。
    /でなくても¥で通りました。
    そろそろ終わりのwindows7での工作でした。
    ありがとうございました。

    1. ブログご覧いただき、コメントありがとうございます!
      そうですね。手入力はやってられないし、間違えますね。
      コピペが一番です。

      ESP-IDFは私は難しくて面倒なので、今は殆どArduino core for the ESP32でプログラミングしています。
      ライブラリも豊富で、お勧めですよ!
      (^^)

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください