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

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

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

 

前回の記事では、ブロックエディターの基本ブロックとmicropythonを対比しながら説明しました。今回は入力ブロックの紹介です。

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

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

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

入力ブロックについて
 
ブロック micropython
1.ボタンAが押されたとき
microbit12-1
microbit12-2

while True:
if button_a.is_pressed(): ボタンが押されているとTrueを返します。
ボタンA:button_a、ボタンB:button_bが使えます。
A+Bの場合は、button_a.is_pressed() and button_a.is_pressed()
注:ifについては、論理ブロックで説明
以下はボタンA、B、A+Bをおした時にボタン名を表示するプログラム

2.ゆさぶられたとき
microbit12-3
while True:
if accelerometer.is_gesture(shake): 揺さぶられるとTrueを返します。

shake以外に、以下の指定ができます。
上:up、下:down、左:left、右:right、ロゴ面:face up
裏面:face down、落とす:freefall、加速度3G:3G
加速度6G:6G、加速度8G:8G、揺さぶり:shake
以下はロゴ面を上にしたらHAPPYアイコンを表示、ロゴ面を下にしたらSADアイコンを表示するプログラム

3.端子がタッチされたとき
microbit12-4
microbit12-5
microbit12-13
while True:
if pin0.is_touched(): pinがタッチされたときTrueを返します。
pin0、pin1、pin2が使えます。同時にGND端子を触っている必要があります。
以下はpin0をタッチするとHAPPYアイコンを表示、pin2をタッチするとSADアイコンを表示するプログラム
注:if pin0.is_touched():でタッチされていないときFalseを返します。
4.加速度
microbit12-6
accelerometer.get_x()
get_x()
軸の加速度、get_y()でy軸の加速度、get_z()でz軸の加速度を得ることができます。get_values()で、x、y、z軸の加速度を1度に得ることができます。
以下は、2秒ごとにx軸の加速度を表示するプログラム

5.明るさ
microbit12-7
 display.read_light_level()
ディスプレイのまわりの光量を検出します。戻り値は明度を表す 0 から 255 までの整数値で、値が大きいほど明るい。
以下は、2秒ごとに周りの明るさを表示するプログラム

6.方角
microbit12-8
compass.heading()
3軸の磁力から計算された方位を返します。値は時計回りの角度を示す 0 から 360 までの整数で、0 は北となります。
コンパスを使うには最初に、compass.calibrate()命令を記述してコンパスの調整をする必要があります。
以下は、最初にコンパスを調整してから、2秒ごとに方角を角度で表示するプログラム
7.温度
microbit12-9
 temperature()
温度を摂氏で返します。
以下は、2秒ごとに温度を表示するプログラム

8.傾斜
microbit12-10
accelerometer.get_x() ピッチ(Micro:bitのLED面を上に水平にしてボタンA,B側に傾ける)
accelerometer.get_y() ロール(Micro:bitのLED面を上に水平にしてPin側かその反対に傾ける)
注:micropythonでは傾きは実際に計測してみると約-1100~+1100の数値です。ブロックでは-180度~+180度に変換されています。計算で近似値は求められると考えますが、もう少し調査します。
8.磁力
microbit12-11
 compass.get_field_strength()
デバイスのまわりの磁場の強さを示す整数値を返します。Micro:bitの周りに何も無いときは地球の磁場の強さ、磁石を近づけると磁石の磁場が返されます。
以下は、2秒ごとにMicro:bitの周りの磁場の強さを表示するプログラム
9.稼働時間
microbit12-12
 running_time()
Micro:bitの電源が入ったか再起動してからの経過時間をミリ秒単位で返します。
以下は、2秒ごとに経過時間を表示するプログラム
10.加速度センサー計測範囲設定
microbit12-14
現時点、実装されていないようです。継続調査します。

 

入力ブロックについての紹介は以上です。次の記事では音楽ブロックの紹介をします。


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

記事内容についてお伺い


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


 

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

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

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