前回までのあらすじ
積んでいたM5Paperでカレンダー的なものを作ろうとE-Inkの表示周りの基本を学んでいたイナバちゃん、カレンダーの枠をデザインするのが面倒で再び積みの体勢を取り始めるのであった‥
前回というのはこの記事ですね。
M5Paperの画像表示でもうちょっと遊ぶ - イナバちゃんログ
画像ファイルの表示や基本図形の描画はできるものの、組み合わせてデザイン作るの大変だなーと思い始めたら急激に面倒臭くなってしまいました。
このままではまた積んじゃうので、ライブラリを使って横着する方向でなんとか積みを回避したいと思います。
ライブラリ
LVGLというライブラリがあって、なかなか良さそうなので今回はこれを使ってみます。
まずは Getting Started を読みながらやってみますが、いきなりM5PaperではなくM5Core2をターゲットにします。E-Inkはクセがありますからね。。
Get Started
何はともあれ必要なライブラリをプロジェクトにインポートします。私はPlatformioを使っていますので、platformio.iniに下記を追加します。
lib_deps = lvgl/lvgl@^8.0.1
CLIでpio lib install
するか、一回コンパイルしてライブラリをダウンロードします。
コンパイルした場合はlv_conf.h
が無いと怒られたと思いますが、lvgl/lv_conf_template.h
をコピーしてlv_conf.h
を編集します。
最低限編集する項目は
- 冒頭の
#if 0
を#if 1
に変更 LV_COLOR_DEPTH
をデバイスに合わせて変更(今回は16にします)LV_TICK_CUSTOM
を1
にする
です。
後はドキュメントに従ってバッファ、イメージバッファフラッシュ処理、入力デバイス処理のハンドラを作成すればOKです。
シンプルなWidgetであるLabelを配置したサンプルを記述してみました。
期待通りで文字列が描画されています!(アイカツ!9周年おめでとうございます!!)
もっと動きがあるサンプルも見たかったので、LVGLのデモをインポートして、Benchmark demoを動かしてみました。
事前準備としてM5Core2で動かして感触をつかむテスト
— イナバ (@hollyhockberry) 2021年10月6日
Arduino環境でLVGL v8.0 with LGFX pic.twitter.com/Ef78IpfPuD
なんとなくわかったのでM5Paperで動かしましょう。
が、ちょっと長くなったので次回に続きます。