MicroPythonでボタンAを押した時だけアイコンを表示してみよう


上の動画のようにボタンAを押した時だけハートのアイコンを表示してみます。

今回の内容はMakeCodeでボタンAを押した時だけアイコンを表示してみようの内容をマイクロパイソン(MicroPython)で書き換える内容になっています。


シンプルにコードを考えてみると、


from microbit import *

if button_a.is_pressed():
	display.show(Image.HEART)

上記のようなコードを作成したくなりますが、このコードだとマイクロビットの電源を入れた直後にボタンAを押さなければハートのアイコンが表示されることはありません。

ボタンAをいつでも押せるようにする為には、いつでもボタンAの処理を受け入れる準備をしなければなりません。


上記の要件を満たす為にコードを書き換えると、


from microbit import *

while True:
	if button_a.is_pressed():
		display.show(Image.HEART)

while True:を加え、囲った箇所が繰り返し実行されるようにします。

ただ、このコードをマイクロビットにフラッシングをして実行してみると、



ボタンAを押した時にハートのアイコンが表示されますが、ボタンAを押すのを止めた後でもハートのアイコンが表示され続けます。

コードを作成する時は、ハートを表示する処理の他にハートを表示しない処理というコードも一緒に作成する必要があります。


from microbit import *

while True:
	if button_a.is_pressed():
		display.show(Image.HEART)
	else:
		display.clear()

elseの処理を追加することで、ボタンAを押している時ボタンAを押していない時で処理を分ける事ができるようになります。


上記のコードをフラッシングした後にマイクロビットを見てみると、冒頭の動画のような操作を行えるようになっています。