クリエイター手抜きプロジェクト[640]IoT マイクロビット編 MicroPythonに挑戦(2)
── 古籏一浩 ──

投稿:  著者:



今回は、マイクロビットのPython(パイソン)で、カスタムアイコンをLEDに表示してみます。まずは、Pythonエディターを起動しましょう。

・Pythonエディター
https://python.microbit.org/v/1.1


起動すると、あらかじめプログラムが書かれていますが、全部消してください。

マイクロビットのPythonは、JavaScript(ブロックエディタ)よりも高機能です(その代わりBluetooth機能がない)。

同じLED表示でも、JavaScriptではLEDのオン/オフでアイコン(画像)を表示しますが、Pythonでは手軽に10段階の明るさを指定して表示することができます。なお、JavaScriptでも頑張れば、0〜255までの明るさを指定して表示はできます。その代わりブロックを25個並べるか、輝度を計算して表示することになります。





手軽に10段階の輝度で表示できるPythonですが、ブロックエディタがないので、0〜9までの数値を並べて書くことになります。どのように書けばよいのかは、以下のリファレンスページに記載されています。

https://microbit-micropython.readthedocs.io/en/latest/tutorials/images.html


それでは、実際にコードを書いてみましょう。以下のコードはLEDに□を表示します。点灯しているところが9の数値で最も明るくなります。0は消灯です。

マイクロビットのLEDは5×5サイズなので、合計25個の明るさを指定します。マイクロビットのPythonではImage()のパラメーターに文字列で明るさを指定します。また、LEDの1行の区切りはコロン(:)を使います。

from microbit import *
while True:
icon = Image("99999:"
"90009:"
"90009:"
"90009:"
"99999")
display.show(icon)

プログラムを入力したら、ダウンロードボタンを押してください。HEXファイルがダウンロードフォルダにできるので、マイクロビットに転送(ドラッグ&ドロップ)してください。期待どおりにLEDに□が表示されたでしょうか。

もし、エラーメッセージがLED画面に流れてくるようであれば、コードが間違っていますので見直してください。なお、LEDにはエラーが発生した行番号が流れてくるので、それを参考に修正してください。

次に、グラデーションを表示してみましょう。せっかく輝度を指定して表示できるので、ここは輝度変化がわかるグラデーションにします。縦横グラデーションではつまらないので、斜め45度のグラデーションにしましょう。左上が暗く右下に行くに従って明るくなるようにします。

実際のプログラムは、以下のようになります。

from microbit import *
while True:
icon = Image("01245:"
"12456:"
"24567:"
"45678:"
"56789")
display.show(icon)

まあまあキレイな(?)グラデーションが表示されます。ちなみに何か処理を繰り返さず単純にグラデーションを表示するなら、while True:は不要です。さらに、表示する輝度データをまとめることで、以下のように短く書くこともできます。

from microbit import *
display.show(Image("01245:12456:24567:45678:56789"))
 
 
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


NHKでアニメ「SHIROBAKO」を放送しているので見てるけど、やはり何か作るというのは大変。特に集団で何かひとつのものを作っていくのは、悲喜こもごもって感じ。

一人で全部考えて、最後まで全部アニメ作れたらいいのだろうけど、現状そこまでAIが補助してくれるわけでもないし、そこまで技術が進歩してるわけでもなし。でも、何かアニメとか作ってみたいなあとは思ったり(思うだけで作らない)

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/