マイクロビット(m_01)microbit.display
display
「microbit」モジュールには「display, Image, button_a, button_b, accelerometer, compass,pin0, pin1, pin2, pin3, pin4 pin5, pin6, pin7, pin8, pin9, pin10, pin11, pin12,pin13, pin14, pin15, pin16, pin19, pin20,i2c, spi, uart, panic, reset, running_time, sleep, temperature」の関数などがあります。
※「microbit」モジュールを「from microbit import *」でインポートした前提で記載しています。
(00)Hello, World!
from microbit import *
display.scroll("Hello, World!")
runさせると「Hello, World!」の文字がmicro:bitの5x5LEDにスクロール表示されます。このdisplayについて記載します。
(01)microbit.display
「display」には「show、scroll、clear、on、off、is_on、get_pixel、set_pixel、read_light_level」の関数があります。
(01-1)show
5x5LEDディスプレィ上にvalueを表示します。
display.show(image)
display.show(value, delay=400, *, wait=True, loop=False, clear=False)
>>> display.show('A') #文字Aを表示
>>> display.show(Image.HAPPY) #イメージHAPPYを表示
>>> display.show(123,400,wait=True,loop=False,clear=False)
#数字 1->2->3 が400msec間隔で表示、「3」表示のまま停止
#loop=Trueなら1->2->3->1->2-・・->2->3をずっと繰り返す。
#文字 A->B->Cが400msec間隔で表示、「C」表示のまま停止
>>> display.show('ABC',400,wait=True,loop=False,clear=False)
#リスト文字データが400msec間隔で表示(A->B->C->1->2->3)
>>> a=['A','B','C','1','2','3']
>>> display.show(a,400,wait=True,loop=False,clear=False)
#リスト文字、イメージデータが400msec間隔で表示(HAPPY->A->SAD)
>>> A_list = [Image.HAPPY, 'A', Image.SAD]
>>> display.show(A_list,400,wait=True,loop=False,clear=False)
#イメージリストデータが400msec間隔で表示(時計の針12時~11時)
>>> display.show(Image.ALL_CLOCKS,400,wait=True,loop=False,clear=False)
wait が False の場合にはバックグラウンドで実行されます。
下の例ではImage.ALL_CLOCKSを表示中にImage.ALL_CLOCKSがプリントされます。
display.show(Image.ALL_CLOCKS,400,wait=False,loop=False,clear=False)
が終わっていないのに
for i in Image.ALL_CLOCKS:
print(i)
が実行されます。
(01-2)scroll
5x5LEDディスプレィ上にvalueを右から左へ水平方向にスクロールして表示します
display.scroll(value, delay=150, *, wait=True, loop=False, monospace=False)
monospace が True である場合、文字は 5 ピクセル幅、False の場合はスクロールでの文字間が 1 ピクセルのブランクになるそうです。
#文字列
>>> display.scroll('ABC', delay=150, wait=True, loop=False, monospace=False)
>>>
#文字列 エラー
>>> display.scroll(ABC, delay=150, wait=True, loop=False, monospace=False)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'ABC' is not defined
#数値
>>> display.scroll(123, delay=150, wait=True, loop=False, monospace=False)
>>> display.scroll(1.23, delay=150, wait=True, loop=False, monospace=False)
#変数でもOK
>>> a=123
>>> display.scroll(a, delay=150, wait=True, loop=False, monospace=False)
>>> a='ABC'
>>> display.scroll(a, delay=150, wait=True, loop=False, monospace=False)
(01-3)clear
5x5LEDディスプレィの表示をクリアします。
display.clear()
>>> display.clear()
(01-4)on
display.on()
ディスプレイを有効にします。
(01-5)off
display.off()
ディスプレイを無効にします。
ディスプレイに関連づけられた GPIO 端子を他の目的に再利用できるようにします。
#3を表示
>>> display.show(3)
#非表示(消去ではない)
>>> display.off()
#3が表示される
>>> display.on()
(01-6)is_on
display.is_on()
ディスプレイが有効であれば True 、無効であれば False を返します。
>>> display.on()
>>> display.is_on()
True
>>> display.off()
>>> display.is_on()
False
>>>
(01-7)set_pixel
display.set_pixel(x,y)
x 列 y 行の LEDの明るさを設定します。表示されているImageの明るさを設定します。
(01-8)get_pixel
display.get_pixel(x,y,0-9)
x 列 y 行の LEDの明るさを返します。表示されているImageの明るさを調べる
#displayのx,y=2,3を明るさ9にする(左上隅が0,0、x→,y↓)
>>> display.set_pixel(2,3,9)
#displayのx,y=2,3を明るさを調べる
>>> display.get_pixel(2,3)
9
(01-9)read_light_level
display.read_light_level()
ディスプレイ LED でまわりの光量を検出します。明るさは 0 から 255 までの整数値です。
#明るさを検出するので表示機能をoffします。
>>> display.off()
>>> display.read_light_level()
122
まとめ
microbitモジュールのdisplayについて記載しました。5x5LEDディスプレーのLEDの点灯、表示方法、明るさの設定などができます。また表示機能をオフして周囲の明るさを測定できます。