スマイビー (Smi:be, s2microbit-ble) は、オフライン版Scratch (スクラッチ) から micro:bit (マイクロビット) を Bluetooth (ブルートゥース) 接続で使うための拡張ブロックです。USBケーブルで利用できるs2mと同じ様なブロックを、PC内臓もしくは一般的なBluetoothアダプタで使えます。ゲームコントローラーやロボットなど楽しいものが色々作れそうなので公開します。
- Windows 10
- Mac OS X
- 準備やインストール方法
- Windows: インストーラを開くと警告が出ますが「詳細情報」をクリックすると「実行」を選べます。
- Mac: コントロールキーを押しながらダウンロードされたpkgファイルを開くとインストールできます。
- 詳細はページの下の方(ここをクリックすると移動)をみてください。
- ブロックの使い方
- アイコンをクリックするか(こちら)からたどれます。
s2mのブロックと互換性があるため、s2microbit-ble という名前にしていますが、読みにくいので以下のような略称を使います。
- スマイビー
スクラッチ + マイクロビット + ブルートゥースエルイー - Smi:be
Scratch + micro**:bit + Bluetooth LE** (bは2個でひとつのbとする)
- s2mと同じようなブロックに加え、加速度センサなどの値を直接読めるブロックを用意したので、Scratchの無線ゲームコントローラを簡単に作成することができます。
- 入出力ピンとして、0-2ピンだけでなく、8, 13-16ピンを使えるので、ダブルモータードライバなどを Scratch から動かせます。(アナログ入力は0-2ピンのみ使用可能です。)
- 別途 Python や NodeJS といった環境を準備する必要はありません。
- インストーラ(Windowsでは加えてVC++再頒布パッケージ)のダウンロード以外では、ネットワーク接続は不要です。ただし、使用時にブロックのヘルプは読めなくなります。
- 特定のUSB Bluetooth アダプタは必要なく、Bluetooth 4.0以上のアダプタがPCに内臓されていれば、もしくは汎用のUSB Bluetooth 4.0以上対応のアダプタがあれば、多くの場合接続できます。ただし Windows版は Windows 10 のみ対応で、2017年4月ぐらいまでのアップデートが必要です。
- 現在は Windows 10 と Mac OS X のみですが、おそらく Linux版のビルドも可能です。
Bluetooth 4.0 以上を内蔵した PC か USB等のBluetoothアダプタが必要です。Windows の場合は以下も確認してください。
- Windows 10 build 10.0.15063 以上(OSビルド 15063以上)
- Windows の画面左下の「ここに入力して検索」に winver といれ、リターンを押すと確認できます。
- バージョンが古い場合は Windows をアップデートしておきます。
- Microsoft Visual C++ 2015 再頒布可能パッケージをインストールしておきます。
- 上のリンクからダウンロードできます。
- 多くの場合 Windows 10 (64bit) なので、その場合は vc_redist.x64.exe を選びます。
- すでに入っている場合は不要です。よくわからない場合は先に進んで、もしエラーが起きたらこれを入れてください。
- Windows のファイル拡張子を表示するようにしておくと便利です。
- ファイルエクスプローラーで「表示」>「ファイル名拡張子」にチェックしておきます。
- この Release ページ から最新バージョンをダウンロード、インストールします。
- 立ち上げ方
- インストール完了時にはデフォルトではそのまま立ち上がります。
- 二回目以降は、デスクトップのアイコンから立ち上げるか、Windows のタスクバー右下の「ここに入力して検索」に s2mi.. あたりまで入れると選べます。
- 「The specified module could not be found」というエラーが出る場合は、準備のところで説明した再頒布可能パッケージが入っていない可能性があります。
- この Release ページ から最新バージョンをダウンロード、インストールします。
- s2microbit-ble_installer-v(バージョン番号).pkg という名前です。
- Control キーを押しながら ダウンロードされた pkg ファイルをクリックし、「開く」を選びます。このとき「開発元は未確認です。開いてもよろしいですか?」という警告が表示されます。
- もう一度、ダウンロードされた pkg ファイルをクリックすると、インストールが開始します。
- 管理者権限がない場合、インストール先で「自分専用にインストール」を選びます。
- 立ち上げ方
- Launchpad から s2microbit-ble を立ち上げます。見つからない場合は、検索の欄に s2mi.. あたりまで入れると選べます。
- こちらのWikiも確認してみてください。
- s2microbit-ble の画面からScratch2のサンプルプロジェクトをダウンロードして開きます
- s2microbit-ble の画面からHEXファイルをダウンロードしてmicro:bitへ転送しておきます。
- 接続の確認
- micro:bit とPCがすでにペアリング済みの場合、ペアリングは解除しておきます(ペアリングなしで接続するため)。
- micro:bit に上記のHEXファイルが書き込まれていれば、s2microbit-ble が立ち上がったときに自動で接続されます。画面右側にメッセージや進行状況が表示されます。
- このHEXファイルが書き込まれた micro:bit が2つ以上見つかると、いずれかをクリックして選択することができます。あらかじめ1台だけ見つかるようにして、アドレス(数字やアルファベットが2文字ずつコロンで区切られたもの)を調べておく必要があります。
- micro:bit の LEDマトリクスが「ハート」を経て「チェックマーク」に変われば接続完了です。
- Scratch 2 エディタの「その他」ブロックの s2microbit-ble という文字の横にある赤丸が緑丸になっていれば s2microbit-ble と Scratch 2 が接続できています。
- 飛行機のような感じで動かしてください。
- AやBボタンを押している間、何か起こります。(A: Air, B: Bダッシュ)
- 動作デモはこの記事や動画で確認できます。
- その他のサンプルプログラムはこちらのページにあります。
以下の二つのうちどちらかで行います。
- サンプルプログラムを元にプログラム作っていき「名前をつけて保存」で別の名前にします。
- 拡張ブロック用のファイルs2microbit_JA.s2eを00scratchからダウンロードしておきます。新たにプロジェクトを作成し、シフトを押しながら「ファイル」>「実験的なHTTP拡張を読み込み」でダウンロードしたファイルを選ぶと拡張ブロックが追加されます。
- 通常は s2microbit_JA.s2e を使ってください。LED表示等の反応速度を少しでも上げたいときは s2microbit_JA_nowait.s2e を使えますが、反応のタイミングがやや不安定になります。(s2microbit_JA.s2e では、micro:bit に正しく命令が届くまで Scratchの次のブロックが実行されません。)
- ペアリングは不要です。逆にペアリングされているとうまく接続できないかもしれません。その場合はペアリングを削除してみてください。
- 最初に見つかった micro:bit と接続します。電源の入った他の micro:bit が近くにあると、うまく接続できないかもしれません。
- scanning... などの途中で止まる可能性もあります。以下を試してみてください。
- s2microbit-ble を一度落として立ち上げ直す。
- micro:bit のリセットボタンを押す。
- micro:bit の一度電池を外して入れなおす。
多くのブロックは MrYsLab の s2m と互換性があり、s2m 用のプロジェクトがそのまま動く部分もありますが、一方で、特に以下の点は大きく異なります。
- LED の明るさは段階的に指定できない(点灯か消灯かのみ)。
- アナログピンの値は 0-1023 ではなく、0-255 の範囲。
また、文字列をスクロールしたあとは、スクロール前のLEDパターンに戻るようになっています(ここの仕様は変わるかもしれません)。
- s2microbit-ble は Github のリポジトリを clone して改造できます。
- 全体のシステム構成は、図で書くとこんな感じで、詳しくはこちらの記事で解説しています。
- s2microbit-ble では Electron という仕組みを使っています。インストーラを生成する方法など、詳しくはこちらの記事が参考になります。
- もう少しシンプルなバージョンは s2microbit-ble-console にあり、使用方法はこちらの記事が参考になります。
このプログラムを作るうえで以下のコードやモジュールを参考にしたり、一部利用したりしています。
- https://github.com/sandeepmistry/node-bbc-microbit
- https://github.com/jasongin/noble-uwp
- https://github.com/jaafreitas/scratch-microbit-extension
- https://github.com/MrYsLab/s2m
- 拡張ブロックの一部は MrYsLab s2m 互換です。
- s2m互換ブロックの日本語は石原さんの翻訳を参考にしています。
- 英語ブロック名は s2m (Alan Yorinks) のものを利用させてもらっています。
- デモプロジェクトの音楽は"魔王魂"からです。
- Wikiでは一部"いらすとや"の画像を使わせてもらっています。
Scratch 2 (offline) extension for BBC micro:bit bluetooth connection with PC built-in or general USB bluetooth adapters.
![blocks](/memakura/s2microbit-ble/raw/master/images/blocks_v2_EN.png)
- Bluetooth 4.0 or later
- Windows 10 build 10.0.15063 or later
- Microsoft Visual C++ 2015 Redistributable
- Download and install the latest version from Release.
- For Windows: s2microbit-ble_installer.exe
- Download and open a demo project (e.g., fly_EN.sb2) from 00scratch.
- For English blocks: Download and open s2microbit_EN.s2e from Scratch 2 Offline Editor to overwrite the original language (open "File" menu with
Shift
key pressed).
- For English blocks: Download and open s2microbit_EN.s2e from Scratch 2 Offline Editor to overwrite the original language (open "File" menu with
- Download a firmware hex file from this page and write it to your micro:bit.
- If the micro:bit has already been paired with the PC, Remove the pairing information.
- Move your micro:bit like a plane.
- Press A or B button for some change.
- More demo projects can be found in this page.
Many blocks are compatible with s2m by MrYsLab. Some projects with s2m blocks may work to some extent. However, the following difference should be noted.
- Intensity of the LEDs can only take binary values (ON or OFF).
- The value range of analog I/O pin is NOT 0-1023 but 0-255.
Some part of the following modules and codes are used or referred in this project.
- https://github.com/sandeepmistry/node-bbc-microbit
- https://github.com/jasongin/noble-uwp
- https://github.com/jaafreitas/scratch-microbit-extension
- https://github.com/MrYsLab/s2m
- English names of s2m-compatible blocks are the same as those in s2m by MrYsLab (Alan Yorinks).