【解説】M5stickVのpythonプログラミング ~液晶編~

m5stickv まとめサイト

こんにちは、けいです。
今回から、M5stickVというデバイスを使って、micropython言語の解説記事を上げていけたらなと思います。
自分も現在進行形で学習中なので、もし間違っていたらコメントでご指摘をお願いします。
M5stickVについてまとめた記事があるので、ぜひ読んでみて下さい。

M5stickVをざっくりと

特徴

M5stickVについては、沢山の記事がありますのでここではざっくりとだけ紹介します。

Kendryte K210を搭載したAIカメラです。高性能なニューラルネットワークプロセッサ(KPU)とデュアルコア 64 bit RISC-V CPUを使用しており、低コストかつ高いエネルギー効率で高性能な画像処理を行うことができます。

スイッチサイエンスさんより

ハードウェア的に画像処理などのAIに特化したデバイスだということが分かります。プログラムも、Micropythonで書くことができ、AIのライブラリを使用することができるので、まさに小型AIエッジデバイスのパイオニアといっても過言ではありません。

外観

下の写真は文房具と比較したものです。消しゴムになりきっていますね。
本当に消しゴムサイズでリアルタイムAI処理が出来てしまうので、5年前からしたら夢のようです。

消しゴム

文字を表示させる

M5stickVには液晶が元々ついていて、pythonで液晶の表示などを記述できるように設計されています。
今回は文字を表示させる方法に焦点を当てて解説します。
また、プログラムについては公式ドキュメントのものを使用します。

LCDモジュールで文字を表示

結果から見てみましょう。

プログラムを見てみましょう。

import lcd

lcd.init()
lcd.draw_string(100, 100, "hello maixpy", lcd.RED, lcd.BLACK)

プログラムを分解して見ていきましょう。

import lcd

1行目は、lcd モジュールを使えるようにimport します。

lcd.init()

3行目は、lcdに表示する画面を初期化します。

lcd.draw_string(100, 100, "hello maixpy", lcd.RED, lcd.BLACK)

4行目はlcdモジュールのdraw_stringという関数を使って、stringつまり文字列を描画します。
引数は順に、(横の初期位置, 縦の初期位置, 文字列, 文字の色, 背景の色)
となっています。

imageクラスを使って画像で文字を表示

結果から見てみましょう。

プログラムを見てみましょう。

import lcd
import image

img = image.Image()
img.draw_string(60, 100, "hello maixpy\n hello maixpy\n  hello maixpy", scale=2)
lcd.display(img)

プログラムを分解して見ていきましょう。

import image

2行目はimageモジュールをimportしています。

img = image.Image()

この行は、imageモジュールのImageクラスのインスタンスを生成して、imgという変数に代入しています。

img.draw_string(60, 100, "hello maixpy\n hello maixpy\n  hello maixpy", scale=2)

この行は、image.Image()クラスのdraw_string関数を使用して、imgに画像オブジェクトを生成します。
文字列は改行\nなどのコードも書けます。

lcd.display(img)

この行で、lcdに画像オブジェクトを表示させています。

次に、色を変化させる場合は、draw_string関数の引数のcolorを選択する必要があります。
color = (R, G ,B)で指定できます。
コードは以下になります。

import lcd
import image

img = image.Image()
img.draw_string(60, 100, "hello maixpy\n hello maixpy\n  hello maixpy", color=(128, 0, 0), scale=2)
lcd.display(img)

結果はこのようになります。

以上で今回は終わりとなります。ありがとうございました。
他のモジュールの使い方も紹介しているので、よかったら見てみてください。