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

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

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

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

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

2018年10月26日にブロックエディター(V1)が新しくなりました。ブロックの外観が変わりましたが、使い方はほぼ同じです。当記事は今までのブロックエディター(V0)のブロックを基に記事を作成していますので、新しいV1ブロックエディターのブロックと見た目が異なりますので、ご了承ください。今後、順次新しく追加されたブロック等に対応していきます。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較して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台しかないので、テストできるようになるまで後回しにさせていただきます。
無線ブロックについても記事が完成しましたので、こちらの記事を参照ください。


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

記事内容についてお伺い


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


 

クロームブラウザーをご使用の方へ

当サイトへの訪問ありがとうございます。その際、グーグルクロームブラウザーをお使いの方にお知らせです。グーグルクロームブラウザーでは、2018年7月から、サイトにより以下の表示がブラウザーのアドレスバーに表示されます。当サイトでも表示されますが、心配ありませんのでご安心ください。
SSL案内1
これは、SSLと呼ばれるWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みを使用していないためです。ネットショッピング、銀行サイトではパスワードやクレジットカードの情報を扱いますので、必須の仕組みです。当サイトでは、そのような情報を扱っておりませんので、暗号化は必須ではありませんが、訪問される方により安心していただけるように、SSL化を予定しております。このメッセージはSSL化完了まで念のため表示します。

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