Micro:bit v2

Micro:bitmaqueenサイトマップホーム

2015年3月に、BBC(英国放送協会)のMake ItDigitalキャンペーンにて発表され、Microsoft社、Lancaster大学、ARM社、Samsung社、Cisco社、Python Software Foundationなど、29のパートナーがBBCと一緒に開発したものです。
2016年にBBC中心とした体制より、Micro:bit Educational Foundation(非営利団体) (opens new window)に運営を託され、世界各地でmicro:bitを提供しています。
クレジットカード半分のサイズで、様々な機能を搭載したコンピューターで、学校などのプログラミング教育教材として注目されております。

Micro:bit(v2)の仕様

ハードウエア

No  項目  内容
 1 CPU Arm Cortex-M4 32 bit processor with FPU,
64MHz,Rom:512KB,RAM:128KB
 2 Bluetooth Bluetooth 5.1 with
Bluetooth Low Energy(BLE),24GHz
 3 ボタン ユーザ定義できるボタン(A/Bボタン)2つ、
ステム用ボタン(リセット・電源ボタン)
 4 ディスプレイ 5x5マトリックス、照度コントロール10段階
 5 光センサー ディスプレイに含む
 6 加速センサー 3軸(X,Y,Z)で測定
 7 磁気センサー コンパス読み取り値に変換
 8 温度センサー ー40C~105C
 9 タッチセンサー 静電容量式タッチ、最初に触れたとき、
離したとき、長く押したときの検知
10 スピーカー 電磁ブザータイプであるため、簡易的な音声の出力
11 マイク マイクで検出する音の大きさの数値表現
12 無線通信 micro:bit間専用の無線通信機能
13 GPIO UART,SPI,I2C,PWM,ANALOG,計25ピン
14 電源 USB、電池(1.8v~3.6v)
15 マイクロコントローラ Arm Cortex-M0+,ROM256KB,RAM16KB,48MHz
13 USBコネクター 2.0Full
14 サイズ 51.6X42.0X11.65,5g

ソフトウエア

本体実装場所(表)

実装場所(裏)

画像をクリックすると拡大出来ます。

プログラミングと実行

プログラミング環境

ブログラミングは「MakeCode(メイクコード) for micro:bit」を使います。MakeCodeの実行環境は次の通りです。

実行環境

Micro:bit本体にMakeCodeで作成したプログラムを書き込めば実行できます。
書込みは作成したプログラムをダウンロードして、USBケーブル経由で書き込みます。
またWebUSB指定で、Webブラウザから直接書き込みもできます。

BLE通信

BLE(Bluetooth Low Energy)はmicro:bitとWebブラウザだけで簡単に通信が出来ます。
プログラムはWeb Bluetooth APIを使ってWebブラウザとJavaScriptでお手軽に開発できます。
またWebアプリなので、プログラムのインストールは不要でPCだけでなくスマホでも実行でき、Microbitの色々な使い方が出来ます。

micro:bitブロック作成

最初に

プログラミングはBLE処理ブロックを下記の仕様で作成します。

サンプルブロックは(ble)で作成しております。

Web Bluetooth API

scan

周囲のBLEデバイスを検索(scan)します。 何らかのBLEデバイスがあればポップアップウィンドウが出て、周囲に未接続のBLEデバイスがあるとリストに表示されます。
ペア設定ボタンを選択すると接続処理を開始します。

connect

UUID(Universally Unique Identifier)を指定してどのSeviceのどのCharacte
risticを使うのかを指定します。 UUIDとは、重複する事のないIDで、128bitの数値です。 Byteで表すと16Byte、文字数でいうとハイフンを除いて32文字です。
詳細はこちらを参照してください。

Disconnect

終了処理を行います。

Read

BLEデバイスのセンサー値やスイッチのOFF/ONなどを読むことができます。
micro:bitに内蔵されている温度センサの値をReadボタンを押す度に取得して表示します。
READ処理が終わるとonReadイベントが呼ばれ、引数にはデータ値が入ります。 ここでは、8bitのデータとして取得しています。

サンプルプログラム:温度の取得(ble-read-tmp.htmlソースコード)、 ボタンの状態取得(ble-read-button.htmlソースコード)

Notify

セントラル(PCやスマホ)側からのタイミングではなく、ペリフェラル(BLEデバイス)側からのタイミングで読み込みます。
micro:bitに内蔵されている温度センサの値を1秒毎に取得して表示します。

サンプルプログラム:温度の取得(ble-notify-tmp.htmlソースコード)、 加速センサー情報の取得(ble-notify-kasoku.htmlソースコード)

Write

PCやスマホからBLEデバイスに対する制御が可能になります。 テキストボックスに打ち込んだ文字列がそのままmicro:bit側のLEDに表示されています。
送信データフォーマットは少しややこしいですが、TextEncoderというものを使って変換しています。

サンプルプログラム:文字の書き込み(ble-write-led.htmlソースコード)

UART通信

UART(Universal Asynchronous Receiver/Transmitter)は、デバイス間の非同期でシリアル通信プロトコルです。
デバイス間でデータの送受信が自由に出来、色々な処理が可能になりますがプログラミングの自由度が高くなり、難易度も高くなります。
UART処理用にMicro:bitのブロックを追加します。

BLEUART処理用にMicro:bitのブロックを追加します。サンプルブロックは(ble-all)で作成しております。

UART Read

UARTの場合は、固定のByte数ではなく、文字列として受け取る点が先程と異なります。for文を使って1つずつデータを連結し、数値化してから変数valueへ代入しています。

サンプルプログラム:色々な情報の取得(ble-uart-read.htmlソースコード)

UART Write

UARTサービスのRXキャラクタリスティックに変更しています。
書き込む場合は、文字列の最後に区切り文字を追加する必要があります。前半に比べ+ '\n'を追加しています。

サンプルプログラム:文字の書き込み(ble-uart-write.htmlソースコード)

UART Read/Writeを実装する

サンプルㇷ゚ログラム:文字の読込み書込み(ble-uart.htmlソースコード)

BLE アプリケーション

Micro:bitブロック

BLE UART WriteでMicro:bitに指示を出し、Readで、各種の情報を取得します。ブロックの処理は下記の通りです。 ブロックは(ble-uart)です。

JavaScriptアプリケーション

■モーションセンサー(ble-kasoku.html)
 X・Y・Z軸の値をグラフィック表示します。

■サイコロ(ble-saikoro.html)
 モーションセンサーの値を判定して、サイコロの目を表示します。

■コンパス(ble-compass.html)
 磁気センサーの値で方位を示します。

■電子ピアノ(ble-piano.html)
 ピアノの鍵盤イメージ操作で音を出します。

■温度・明るさ・音センサー(ble-sensor.html)
 各種のセンサー値をグラフィカル表示します。

Micro:bitmaqueenサイトマップホーム