M5StackのLCDで画像を表示させる
買ったばかりの M5Stack を、さっそくいじってみました。 M5Stack Basic です。Switch Science で購入しました。
開発環境の準備
だいぶ前に Arduino Uno を使って遊んだことがあるので、開発環境は Arduino IDE を利用しています。
M5Stack を動かすために、公式ドキュメント で書いた通りに USB シリアルドライバー、ボードマネージャとライブラリをインストールする必要があります。
画像データの準備
SD カードを使えば簡単に画像を表示できるが、余分な SD カードを持ってないので、描画は M5.Lcd.drawJpg()
関数を使って、メモリから画像データを読み込みます。
イーブイの画像 を例として使いましょう。
この画像は PNG フォーマットなので、まずは JPEG 画像に変換します。
Python の Pillow ライブラリーで、Image.convert() メソッドを使えば簡単に変換できます。
JPEG は透明度をサポートしていないため、RGBA
から RGB
に変換すれば、JPEG として保存できます。
M5Stack の TFT LCD の解像度は 320x240 なので、適切なサイズに調整する必要もあります。
あとは、JPEG 画像を C の配列に変換します。 Python でざっくり書いてみました。
-i
オプシーンで画像ファイルまたはディレクトリを指定すれば、.c ファイルが生成されます。
そして、.c ファイルを Arduino スケッチのフォルダに移動します。
M5Stack にプログラムをアップロード
M5Stack 側のプログラムは以下のようになります。
シリアルポートを選択し、プログラムをアップロードした後、LCD に画像が表示されます。