前回、ESP32-S3-BOX-LiteのプログラムをArduino IDEで作りました。開発環境としてはこれで十分なのですが、ESP32-S3-BOX-Liteの機能をフルに使いたくなったときの為にESP-IDFの環境も作っておくことにしました。
ESP-IDFをWindows環境で構築するときは色々なツールをインストールしていく必要があり面倒なので、aptコマンド一発で全てインストールできるLinux(Ubuntu23.10)環境で構築することにしました。
ESP-IDFの構築作業は、このページに従うだけです。Step1~Step4の作業を行います。Step4の環境設定のエイリアスは.bashrcに登録しておくといいでしょう。
ESP32-S3-BOX-LiteをUbuntuに接続したときのシリアルポートは/dev/ttyACM0になっていましたが、このデバイスへのアクセス権がないと書き込みできませんので、スーパーユーザになって/etc/groupの中のrootとdialoutのグループに自分のグループ名を追加しておきます。
続いてESP32-S3-BOXの為のフレームワークをコピーします。場所はESP-IDFをインストールした~/espが分かりやすくていいでしょう。この場所で次のコマンドを入力します。
git clone --recursive https://github.com/espressif/esp-box.git
これで準備完了です。端末を開いてエイリアスに登録した下記のコマンドを入力すればESP-IDFを利用できます。
get_idf
まずはサンプルプログラムをコンパイルしてESP32-S3-BOX-Liteに書き込んでみます。~/esp/esp-box/examples/image_displayに移動して次のコマンドを入力します。
idf.py menuconfig
ダイアログが表示されたら右カーソルで"Serial flasher config"を選択して以下のように設定します。
左カーソルでメインメニューにもどったら"HMI Board Config"でESP32-S3-BOX-Liteを選択します。
最後に'Q'キーでメニューを出し、'Y'キーでセーブして終了します。
ESP32-S3-BOX-LiteをPCにつなぎ、次のコマンドを入力するとサンプルプログラムが書き込まれます。
idf.py flash monitor
デモ起動後はCtrl+]でシリアルコンソールから抜けることができます。これでESP-IDFが使えるようになりました。
ESP32-S3-BOX-Liteのサンプルプログラムでは表示にLVGLというグラフィックライブラリを使っています。せっかくなのでこのライブラリの利用手順だけ確認しておきましょう。
まずは雛形となるプロジェクト~/esp/esp-idf/examples/get-started/sample_project/を任意の場所にコピーしておきます。フォルダ名は自分で分かりやすい名前に変えておくといいでしょう。
ESP32-S3-BOX-Liteのcomponentsを参照できるようにします。コピーしたフォルダの中のCMakeLists.txtの"project(main)"の上の行に以下の一行を追加します。
set(EXTRA_COMPONENT_DIRS ~/esp/esp-box/components)
端末を開いてこのフォルダに移動し、次のコマンドを入力します。
get_idf (すでに入力済みなら必要ありません)
idf.py set-target esp32s3
さらに次のコマンドを入力します。
idf.py menuconfig
ここで上記で行ったmenuconfigと同様の設定を行います。
続いて以下のコマンドを入力します。
idf.py create-manifest
これで準備は完了です。
次はプログラムの作成です。main/main.cを開いて以下の内容をコピーします。
最後にESP32-S3-BOX-LiteとPCをつなぎ、プログラムをコンパイルして書き込みます。
idf.py flash
これでLVGLが利用できるようになりました。
※コメント投稿者のブログIDはブログ作成者のみに通知されます