🆕 Smalruby 独自 — upstream に存在しない、Smalruby のために新規追加された拡張機能(Yengawa Lab の microbit-more との連携実装)
- Smalruby ランタイム対応: ❌(smalruby3 gem は未対応。BLE / Web Serial を使うためブラウザ専用)
- デフォルト表示: ✅(拡張機能ライブラリにデフォルトで表示される)
micro:bit More(マイクロビット モア)は、標準の Scratch micro:bit 拡張機能に対して大幅に機能を拡張した拡張機能。upstream の microbit 拡張がボタン・LED マトリクス・加速度の基本機能のみなのに対し、More は以下を追加:
- 詳細なセンサ: 温度、明るさ、磁気、コンパス方位、ピッチ・ロール、音レベル
- ジェスチャ: 振る、ロゴタッチ、傾きなど多数
- ピン I/O: デジタル / アナログの入出力、プルアップ/ダウン、サーボ、PWM
- 音楽: トーン再生
- テキスト表示: 文字列の流し表示
接続方式は BLE (Bluetooth Low Energy) と Web Serial の両対応。
カスタムファームウェア (microbit-more 公式) を micro:bit に書き込んだ上で利用する。ファームウェア書き込みは別ツールまたは本拡張内のフラッシャから実行できる。
- micro:bit を持っている小学生・中学生として、加速度や温度センサを使ったプログラムを Smalruby で書きたい
- 教師として、micro:bit の全センサとピンを Smalruby から使えるようにしたい
- メイカーとして、micro:bit + 各種センサ・モーターで作品を作りたい
- 理科教育として、温度・明るさ・磁気を測定する実験を Smalruby から制御したい
- ファームウェア書き込み: micro:bit More 用の HEX を micro:bit に書き込む(標準 micro:bit ファームウェアからの差し替え)
- ブロックパレットの「拡張機能を追加」から micro:bit More を選ぶ
- 接続モーダルで BLE または Web Serial を選択
- ペアリング後、各種センサ・I/O ブロックを使う
packages/scratch-gui/src/lib/libraries/extensions/microbitMore/— 拡張機能登録(アイコン、descriptions、collaborator: 'Yengawa Lab')packages/scratch-gui/src/lib/microbit-more-update.js— micro:bit More ファームウェア更新(DAPjs + microbit-universal-hex)packages/scratch-gui/src/lib/microbit-update.js— 標準 micro:bit ファームウェア更新(参考)packages/scratch-gui/src/lib/ruby-generator/microbit_more.js— microbit-more ブロック → Ruby 変換
packages/scratch-vm/src/extensions/microbitMore/index.js— 拡張機能本体packages/scratch-vm/src/extensions/microbitMore/ble-llk.js— BLE 通信packages/scratch-vm/src/extensions/microbitMore/serial-web.js— Web Serial 通信packages/scratch-vm/src/extensions/microbitMore/translations.json— i18n
なし。
| opcode | 説明 |
|---|---|
whenButtonEvent / isButtonPressed |
ボタンイベント |
whenGesture |
ジェスチャ Hat |
whenTouchEvent / isPinTouched |
タッチ |
| opcode | 説明 |
|---|---|
displayMatrix |
LED マトリクス |
display, displayClear |
アイコン表示・クリア |
displayText |
文字列流し表示 |
| opcode | 説明 |
|---|---|
whenTilted / isTilted / getTiltAngle |
傾き検出 |
getPitch, getRoll |
ピッチ・ロール |
getAcceleration |
加速度 |
| opcode | 説明 |
|---|---|
getLightLevel |
明るさ |
getTemperature |
温度 |
getCompassHeading |
コンパス方位 |
getMagneticForce |
磁気 |
getSoundLevel |
音レベル |
| opcode | 説明 |
|---|---|
whenPinConnected |
ピン接続 Hat |
whenConnectionChanged |
接続状態変化 Hat |
setPullMode |
プルアップ/ダウン設定 |
isPinHigh, getAnalogValue |
ピン状態取得 |
setDigitalOut, setAnalogOut, setServo |
デジタル/アナログ/サーボ出力 |
playTone |
トーン再生 |
各ブロックの Ruby 表現は
docs/smalruby-language-spec-extensions.ja.mdを参照。
なし。
- 対応ブラウザ:
- BLE: Chrome / Edge (Web Bluetooth サポート)
- Web Serial: Chrome / Edge
- 必須: micro:bit More カスタムファームウェアを micro:bit に書き込んでおくこと
- 本拡張は Yengawa Lab の microbit-more プロジェクト由来
- ブロック定義の collaborator として "Yengawa Lab" を表示
- 上流: microbit-more (Yengawa Lab)
docs/extension-microbit/— upstream の標準 micro:bit 拡張 (準備中)docs/device-connection/— connection-modal 共通基盤 (準備中)
主要 PR は履歴を参照(feat:.*microbit_more|microbitMore で grep)。
