当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で学ぶ 14

Micro:bit(マイクロビット)で学ぶ 14

前回の記事では、ブロックエディターの音楽ブロックとmicropythonを対比しながら説明しました。今回はLEDブロックとループブロックの紹介です。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

2021年8月25日更新:Mu EditorがV1.1.0b5へバージョンアップされていますので、『Micro:bit(マイクロビット)で学ぶ 9』を参照して最新版を導入してみてください。ただし、当記事はV1.0.3を基にしていますので画面が異なっている場合があるかもしれませんが、プログラミング的には変わりはありません。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。クラス、関数、モジュールなどは最初は難しいかなという事で説明を省き、サンプルプログラムを通して理解できればと考えています。

LEDブロックについて
 
ブロック micropython
1.点灯、消灯
microbit14-1
microbit14-2
microbit14-7
display.set_pixel(x, y, value)
LEDの左上を0,0として右下の4,4まで、x列,y行を指定して、valueは明るさを0から9までの数字で指定します。valueに0を指定すると消灯できます。ブロックでは0から255の範囲で明るさを指定できましたが、micropythonでは0から9です。
以下は、真ん中のLED(2,2)を明るさ9で点灯し、その後消灯するプログラム

2.点灯かどうか調べる
microbit14-3
display.get_pixel(x, y)
LEDの左上を0,0として右下の4,4まで、x列,y行で指定したLEDの明るさを0から9の値で返します。0で消灯しています。
以下はHAPPYイメージを表示後、LED1,1が点灯か調べてその明るさをLEDに表示するプログラム


3.反転
microbit14-4
同等の命令は実装されていません。2の点灯かどうか調べる命令を使い、明るさが0(9)なら1の命令で9(0)にします。
以下は、HEARTを表示して真ん中のLEDを反転するプログラム
4.明るさを設定する
microbit14-5
microbit14-6
同等の命令は実装されていません。また、micropythonの明るさ指定は0から9までです。display.set_pixel(x, y, value)命令のvalueを変数で指定することで、代用できます。明るさを確認するには、2のdisplay.get_pixel(x, y)命令を使用します。
以下は、明るさを5にしてLEDを複数点灯するプログラム

5.アニメーションを停止
microbit14-8

 

同等の命令は実装されていません。しかし、6のdisplay.off()で代用可能です。この命令は本来、入出力PINとLEDの信号を兼用しているPINがあり、入出力PINを入出力専用にする命令です。再度、LEDを使えるようにするためには、6のdisplay.on()命令が必要です。
以下は、スクロールしているメッセージを3秒で止めて、1秒後にHAPPYアイコンを表示するプログラム
6.表示をオン/オフにする
microbit14-10
display.off()、display.on()
LED表示を使うか使わないか設定できます。PINのP3, P4, P6, P7, P9, P10の信号はLEDと兼用しているため、これらのPINを入出力用に使うには、display.off()命令でLEDを使わない設定にする必要があります。
7.棒グラフをプロット
microbit14-11
同等の命令は実装されていません。ただし、micropythonの命令を組み合わせれば実現できると思います。いつか紹介できればと思います。
ループブロックについて
 
ブロック micropython
1.くりかえし
microbit14-12
microbit14-13

 

for i in range(start, end, step)
range()関数で指定された回数、以降の命令を実行します。
range(0,4,1)は0,1,2,3、range(4,0,-1)は4,3,2,1とiに代入されて実行されます。
サンプルのように、elseを使って決められた回数実行後に行う命令を指定できます。
以下は、4,3,2,1とカウントダウンし最後にHAPPYアイコンをLEDに表示するプログラム
2.もし真(偽)ならくりかえし
microbit14-14
while 条件式
基本ブロックの『ずっと』と似ていますが、条件式で偽の場合も指定できます。
以下は、偽の条件を使って5から0までLEDにカウントダウン表示するプログラム
3.配列の値を変数に入れてくりかえす
microbit14-15
for word in hairetu
hairetu変数の配列要素を順にwordに代入して以下の命令が実行されます。
配列変数の例:haireru = [‘Japanese’, ‘English’, ‘French’]
以下は、英語で3,2,1とLEDにカウントダウン表示するプログラム

LEDブロックとループブロックについての紹介は以上です。次の記事では論理ブロック/変数ブロック/計算ブロックの紹介をします。なお、無線ブロックについてはMicro:bitが現時点1台しかないので、テストできるようになるまで後回しにさせていただきます。
無線ブロックについても記事が完成しましたので、こちらの記事を参照ください。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

    マイクロビットカテゴリの最新記事