前回、前々回とLVGLを扱ってきましたが、LVGLを動かしていないタッチパネル付きのマイコンがまだ手元に残っていました。M5Stack Core2 for AWSです。
LVGLのサイトではM5Core2について触れていないので、どこかに情報があるだろうと思って探したら既に動かしている方がいらっしゃいました。こちらです。
LVGLのArduinoサンプルをベースにしていますが、画面表示とタッチパネル操作にはTFT_eSPIでなくM5Unifiedを使ってくれています。素晴らしいですね。
あとはサイトの手順に従うだけです。このプログラムではラベル表示だけ行っていたので、タッチパネルの動作確認にボタンウィジェットを表示させたらちゃんとクリック出来ました。
せっかくなのでLVGLのデモも動かしてみようと思います。
以下の作業はWindows環境のPlatformIOで行いますが、ArduinoIDEでも手順に大差ないのでこれを参考に試してみてください。
1.PlatformIOで新規プロジェクトを作成します。boardはM5Stack Core2、frameworkはArduinoを選びます。
2.プロジェクトが出来たらplatformio.iniを開いて以下の記述を追加します。
- lib_deps =
- m5stack/M5Unified@^0.2.1
- lvgl/lvgl@^9.2.2
Ctrl+Sでセーブするとライブラリがダウンロードされるので、終了するまで待ちます。
3.main.cppを開いて中の記述を全部削除したら、上記サイトのスケッチの中身をそのままコピーします。
4.プロジェクトのフォルダ内の.pio\libdeps\m5stack-core2\lvglにあるlv_conf_template.hをコピーしてlv_conf.hという名前にします。lv_conf.hを開いて15行目の #if 0 を #if 1 に変更し、1084行目の 0 を 1 にして保存します。
5.上記lvglフォルダにあるdemosフォルダをsrcフォルダの下に移動します。
6.プロジェクトのmain.cppを開いて #include <demos/lv_demos.h> と setup() の中にある lv_demo_widgets(); をコメントから外します。 setup() 中の lv_label ウィジェット関連の3行はコメントアウトしておきましょう。
7.M5Core2をPCにつないでコンパイル&書き込みを行えばおなじみのデモが起動します。
ちゃんとタッチパネルで操作できました。
LVGLのサイトによるとexamplesにあるウィジェットサンプルも上記デモと同様の手順で動かせるようなのですが、試してみたらオブジェクトのリンクに失敗していました。すでにサンプル内容は知っているので何もせず放置。念のため幾つかのサンプルをmain.cppにコピペしてみたら動きました。
これでM5Core2でもLVGLアプリが作れますね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます