25個のLEDや各種センサ、通信機能を持つデバイス「micro:bit」を使ってプログラムで操作してみよう。microbitのプログラミングは、ダウンロード版のドリトルのみ対応している。
microbitは、イギリスのmicrobit教育財団が開発した教育用マイコンボードである。25個のLEDを使って文字列や数字の表現や、センサを使った各種計測ができる。また、外部デバイスを端子に接続し、モータなどのアクチュエータの制御なども行うことが可能である。
microbitには標準でセンサが5つ、LEDが25個、外部接続が可能な端子がある。各部品の説明を表で示す。
部品名 | 説明 |
---|---|
ディスプレイ | 25個のLEDをディスプレイと言う。それぞれのLEDを点灯・消灯することで文字や数字、絵を表現できる |
光センサ | 周辺の明るさを計測できる |
温度センサ | 周辺の温度を計測できる |
加速度センサ | 加速度を計測できる。傾きや落下などの動きを検出できる |
コンパス | 磁気を計測できるため、方角の判断ができる |
端子 | センサやモータなどの外部デバイスの入出力ができる |
Windowsが導入されたコンピュータでドリトルとプロッチを通信するには、以下の設定をおこなう。このとき、プログラムのコンパイル環境のインストールを行うため、OSの管理者権限が必要となる場合がある。
手順1:パソコンとmicrobitをUSBケーブルで接続する。
手順2:プログラムを編集画面に記述する
システム!"microbit"使う。 最初に実行=「 ディスプレイ!321 表示。 」。 繰り返し実行=「 ディスプレイ!"hello"表示。 」。 mb!転送。
手順3:プログラムを実行(実行ボタンを押す)
手順4:「micro:bitへの転送を実行しますか?」と表示されるので「はい(Y)」を選択する
手順5:転送が完了するまで待つ(初回実行時は、転送に10秒程度かかる。以降の実行は、2秒程度で転送が完了する)
ドリトルからmicrobitを制御するプログラムは、次の形で記述する。先頭の行では、microbitを使うプログラムを作成することを示している。以後、microbit本体を表す「mb」というオブジェクトを使うことができるようになる。
システム!"microbit"使う。 最初に実行=「 ・・・ 」。 繰り返し実行=「 ・・・ 」。 mb!転送。
最初に実行の「・・・」の部分には、一度だけ実行したいプログラムを書く。
繰り返し実行の「・・・」の部分には、何度も実行したいプログラムを書く。
転送を実行すると、プログラムがコンパイルされ、microbitに転送される。
microbitは25個のLEDを使うことで文字や数字を表示できる。25個のLEDに相当するオブジェクト「ディスプレイ」を使い、表示やスクロール表示を使うことで文字を表示できる。
システム!"microbit"使う。 最初に実行=「 ディスプレイ!"start"表示。 」。 繰り返し実行=「 ディスプレイ!"end"スクロール表示。 」。 mb!転送。
ディスプレイオブジェクトの命令一覧
命令 | 説明 |
---|---|
表示 | 25個のLEDで英数字を表示できる。点灯する箇所を指定することもできる |
スクロール表示 | 表示できる内容は表示命令と同じ。表示する際に左にスクロールしながら表示していく |
クリア | LEDをすべて消灯する |
ディスプレイでは、各々のLEDを点灯させるか消灯させるかを指定することで絵を表示することが可能である。表示やスクロール表示の引数に1と0を組み合わせた25の数字を指定する。LEDの点灯は「1」、消灯は「0」である。数字と数字の間にはスペースが必要である。
システム!"microbit"使う。 最初に実行=「 ディスプレイ!1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 表示。 」。 繰り返し実行=「 ディスプレイ!0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 スクロール表示。 」。 mb!転送。
microbitに搭載しているボタンを使ってみる。ボタンの押されている?を使うことで、ボタンが押された時に動作するプログラムの作成が可能である。microbitには「A」ボタンと「B」ボタンがある。それぞれ、ボタンAオブジェクトとボタンBオブジェクトがあり、またAとBの両方を示すボタンABオブジェクトも準備している。
ここでは、ボタンを押した時に文字を表示するプログラムを作成してみる。ボタンを使ったプログラムの場合、条件分岐の記述を行う必要がある。ドリトルでは、IF文に相当する「!なら」を使うことで条件分岐のプログラムを作ることができる3)。
システム!"microbit"使う。 最初に実行=「 ディスプレイ!クリア。 」。 繰り返し実行=「 「ボタンA!押されている?」!なら「 ディスプレイ!"A"表示。 」実行。 「ボタンB!押されている?」!なら「 ディスプレイ!"B"表示。 」実行。 」。 mb!転送。
上記のプログラムでは、最初に一度だけ実行する「最初に実行」のブロックの中にディスプレイの消灯命令を実行しており、何度も繰り返す「繰り返し実行」のブロックの中に「ボタンAを押したとき」の条件分岐と「ボタンBを押したとき」の条件分岐を実行している。ボタンAを押した場合は、ディスプレイに「A」を表示し、