rb:-:bitは、micro:bit(イギリスの BBCが開発した教育向けマイコンボード)を使って
プログラミングをおこなうためのツールです。

Rubyのクラスライブラリとしての機能と WebSocketサーバの機能とをもっており、
Rubyのコンソールプログラムから micro:bitをコントロールしたり、
ブラウザ上で micro:bitと連携したプログラムを作成したりすることができます。
micro:bit(写真は micro:bit用電源ボードを装着した状態)


1. 準備作業 (How to setup)

(1)Rubyのインストール

rb:-:bitは Rubyの gemとして作られているので、まず Rubyのインストールが必要になります。
ここではその手順の詳細は省きますが、Windows環境で Ruby Installerを使用する場合は
「Devkit」付きのものを選択してインストールしてください。

(2)gem(rbbit)のインストール

コンソール(ターミナル)から gemコマンドを実行して rbbitをインストールしてください。
OSによって下記のように必要なコマンドが異なりますので注意してください。


(3)micro:bitへのプログラム転送(書き込み)

1) 下記の micro:bit用のプログラムファイルをダウンロードして、
    PCの適当なフォルダーに保存してください。

     ※「よくある質問」の「micro:bitのバージョン(v1.5 と v2.0)の見分け方を教えてください」を参照して、
          micro:bitのバージョンに応じた適切なファイルをダウンロードしてください。

     download_v1.5 microbit-rbbit_20201127_v1.5.hex    (micro:bit v1.5用)
     download_v2.0 microbit-rbbit_20201127_v2.0.hex    (micro:bit v2.0用) ※2020/11/25 日本で発売開始

2) PCと micro:bitを USBケーブルで接続して、
    PCにダウンロードした上記のファイルをドラッグ&ドロップなどの操作で
     micro:bitに転送(書き込み)してください。
dnd_hex
3) 正しく転送(書き込み)がおこなわれると、
    micro:bit内でプログラムが起動して下記のようなパターンで LEDが点灯します。
init_pattern

(4)シリアルポート(デバイス)の確認

OSに応じて下記のコマンドなどを実行して、
micro:bitが接続されているシリアルポート(デバイス)を確認してください。



(5)環境変数の設定

コンソール(ターミナル)を開き、上記(4)で確認したシリアルポート(デバイス)を
環境変数「MB_PORT」に設定してください。
  ※プログラム実行のつどシリアルポート(デバイス)を指定する方法もありますが、
     ここでは環境変数にシリアルポート(デバイス)を設定する方法を紹介します。




2. 簡易対話モードによる動作確認 (as Simple Interactive Mode)

(1)rbbitコマンドの実行

上述の準備作業(1)~(5)までができたら、環境変数を設定したコンソール(ターミナル)上で
rbbitコマンドを実行してください。
下記のようにmicro:bit> というプロンプトが表示されます。
(もしエラーなどが発生した場合は、準備作業(1)~(5)の内容を再確認してください)
cmd_rbbit

(2)プロンプトからの micro:bit操作

micro:bit> のプロンプトが表示されたら、
下記の一覧に記載されている簡易コマンドで micro:bitを操作することができます。
(exitで rbbitコマンドを終了)

コマンド 内容
on [x y] LEDを点灯
(x, yは LEDの位置; x, yともに 0~4の範囲で指定、省略可)
   on       ... すべての LEDを点灯
   on 2 2 ... 中心の LEDを点灯
off [x y] LEDを消灯
(x, yは LEDの位置; x, yともに 0~4の範囲で指定、省略可)
   off       ... すべての LEDを消灯
   off 2 2 ... 中心の LEDを消灯
turn [x y] LEDの点灯状態を反転
(x, yは LEDの位置; x, yともに 0~4の範囲で指定、省略可)
   turn       ... 中心の LEDが点灯していたら消灯、消灯していたら点灯
   turn 0 0 ... 左上の LEDが点灯していたら消灯、消灯していたら点灯
puts [str] 指定した文字列を表示
   puts          ... 「Ruby!」という文字列を表示(str省略時)
   puts Hello ... 「Hello」という文字列を表示
1 LEDパターン1を表示
   1 ... pattern1
2 LEDパターン2を表示
   2 ... pattern2
3 LEDパターン3を表示
   3 ... pattern3
play 音を出力(スピーカーの装着が必要)
   play ... 「ドレミファソラシド」の音階を鳴らす
scan micro:bitのセンサー値を表示(約10秒間)
   scan ... 下記の値を約10秒間表示
x: 加速度 x
y: 加速度 y
z: 加速度 z
pitch: 傾き[前後](°)
roll: 傾き[左右](°)
light: 明るさ
temp: 温度(℃)
button micro:bitのボタン押下状態を表示(約10秒間)
   button ... ボタン押下状態に応じて下記を表示(約10秒間で終了)
[A] press!: ボタン[A]が押された
[A] down: ボタン[A]が押されている
[A] release!: ボタン[A]が離された
[B] press!: ボタン[B]が押された
[B] down: ボタン[B]が押されている
[B] release!: ボタン[B]が離された
port ポート(デバイス)を表示
   port ... micro:bitが接続されているポート(デバイス)を表示
                (COM5, /dev/tty.usbmodem14132, /dev/ttyACM1 など)
reset リセット
   reset ... micro:bitをリセット
exit 終了
   exit ... rbbitコマンドを終了


3. WebSocketサーバ (as WebSocket Server)

簡易対話モードによる動作確認ができたら、
WebSocketサーバを使ったサンプルを試してみてください。
  → サンプルプログラム(WebSocketサーバ)

また、WebSocketサーバに関する詳細については
下記のページを参照してください。
  → リファレンス(WebSocketサーバ)


4. Rubyクラスライブラリ (as Ruby Class Library)

簡易対話モードによる動作確認ができたら、
Rubyクラスライブラリを使ったサンプルを試してみてください。
  → サンプルプログラム(Rubyクラスライブラリ)

また、Rubyクラスライブラリに関する詳細については
下記のページを参照してください。
  → リファレンス(Rubyクラスライブラリ)

Link to GitHub