稼働中

マイクロビット(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をずっと繰り返す。

'1'表示 '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)
が実行されます。

wait = False

(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()

LED-OFF

(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

display.set_pixel

(01-9)read_light_level

display.read_light_level()
ディスプレイ LED でまわりの光量を検出します。明るさは 0 から 255 までの整数値です。


#明るさを検出するので表示機能をoffします。
>>> display.off()
>>> display.read_light_level()
122

まとめ

microbitモジュールのdisplayについて記載しました。5x5LEDディスプレーのLEDの点灯、表示方法、明るさの設定などができます。また表示機能をオフして周囲の明るさを測定できます。