【M5stickV】画像をLCDに表示させる

前回に続いて、M5stickVの解説記事です。まだ、前回の記事を読んでいない方はぜひ読んでみて下さい。


今回はM5stickVで自分の好きな画像データをM5stickVで表示させる方法についてご紹介していきたいと思います。
情報が公式にしか載っていないので公式の情報をかみ砕いて解説します。
また、開発環境はMaixpy IDEで行っています。

解説

モジュールのインポート

M5stikVで画像を表示するには、imageモジュールの中のImageクラスを利用します。
始めにimageモジュールをインポートします。
ついでに液晶に表示するためのlcdモジュールもインポートします。

import image
import lcd

画像オブジェクトの生成

続いて、imageモジュールのImageクラスを利用して、SDカードに保存してある画像を呼び出し、インスタンスを生成します。
今回はファイルの保存場所は/sdの直下に置きます。
例えばpicture1.jpgというjpgファイルを保存するとしたら、ご自分のpcでファイルを開いてsdカードのファイルにそのまま保存してください。

img = image.Image("/sd/picture1.jpg")

液晶に表示

これで、画像オブジェクトが生成できたので、液晶に表示します。

lcd.display(img)

結果

カラーで表示することができました。
ちなみに、この写真は韓国の仁川空港で撮影したものです。

エラーについて

MemoryError: Out of normal MicroPython Heap Memory! Please reduce the resolution of the image you are running this algorithm on to bypass this issue!

画像オブジェクトを生成するところで、画像のサイズが大きすぎて、メモリが限界です!
というような上記のエラーが出ることがあります。
これは、画像サイズが大きいものにはMicroPythonが対応していないそうなので、画像サイズを小さくしてください。
M5stickVは画像サイズが 240 × 135 なので覚えておくといいと思います。

※注意事項

※sdカードには相性問題があります。

 相性についてはミクミンさんが先陣を切って共有データを作って下さったので参考にしてください。

 また、M5stack公式もsdカードの相性についてまとめているので参考にしてみて下さい。
M5stack公式のページ

私自身が動作確認をしたものがこちらです。

最後に

M5stickVはまだ発売されたばかりで、情報が少ないので間違った情報を書いている可能性があります。
気兼ねなくご指摘ください。
今後もM5stickVについての解説記事を上げていきたいと思いますので、よろしくお願い致します。

他のモジュールの解説などを行っているので、ぜひ読んでみて下さい。