Scratch Microbit More

Microbit Moreとは

子供向けのプログラミング環境Scratch(スクラッチ)でmicro:bitを使えるようにする拡張機能です。Scratchに付属するmicro:bit拡張よりも高機能で、micro:bitに備わっているセンサーや出力の機能をすべて利用できます。

micro:bit側に入れるファームウェアはLLKによる「標準のmicro:bit拡張」と互換性を保つようにつくりました。そのため、Microbit More用ファームウェアをmicro:bitにダウンロードしたあとでもそのまま書き換えることなく「標準のmicro:bit拡張」も使うことができます。

明るさの値の使用例

拡張ブロック

Microbit More拡張では、以下のブロックが利用できます。

すべてのブロック
  • 明るさ (Light Intensity)
    表示LEDマトリクスに当たる光の強さ(0.0から100.0)を計測できる。
  • 北からの角度 (Angle from the North)
    北を基準として時計回りの方位角(0から359)を計測できる。
  • 温度 (Temperature)
    CUPに内蔵された温度センサーの値(℃)を計測できる。
  • ピッチ (Pitch)
    前後の回転の角度(-179から180)を計測できる。
  • ロール (Roll)
    左右の回転の角度(-180から179)を計測できる。
  • 磁力(Magnetic Force)
    X/Y/Z方向の磁力とその大きさの絶対値(μT)を計測できる。
  • 加速度(Acceleration)
    X/Y/Z方向の加速度とその大きさの絶対値(milli-g : 重力加速度の1/1000)を計測できる。
  • 電源電圧(Power voltage)
    micro:bitの電源(USBや電池)の電圧を計測できる。
  • アナログレベル(Analog input)
    ピン0,1,2にかかる電圧0.0V-電源電圧(3V前後)を1024段階に分けた電圧レベル(0.0から100.0)で計測できる。
  • デジタル出力 (Digital output)
    最大8ピンのデジタル出力を指定できる。
  • デジタル入力 (Digital input)
    最大8ピンの入力状態を[プルアップ/プルダウン/開放]に指定してデジタル入力を計測できる。
  • アナログ出力(PWM)
    最大8ピンに電圧0.0V-電源電圧を1024段階で指定して出力できる。
  • サーボモーター(Servo motor)
    最大8ピンに一般的な小型サーボモーター(SG-90など)をつないで角度を指定できる。
  • イベント (Event)
    最大8ピンでパルスタイプ/エッジタイプのイベントを受け取り、パルス長/エッジ発生タイムスタンプを利用できる。
  • 共有データ(Shared data)
    4つの整数値(-32768から32767)をmicro:bitとScratchの両方で共有できる。
  • micro:bitとの接続/切断
    接続したとき/切断したときのタイミングでコードを実行できる。

使い方

  1. ファームウェア
    MakeCodeエディターを開いてファームウェアを micro:bit へダウンロードする。
    MakeCodeエディター: https://makecode.microbit.org/_iXhFjt5b3gdJ
    (コンパイル済ファイル: microbit-pxt-scratch-microbit-more-v050.hex )
    ダウンロードした直後に方位磁針の調整をするようにLED画面に「TILT TO FILL SCREEN」と表示されることがある。このときは、 micro:bit を傾けてすべてのLEDが光っている状態にする。この調整を完了しないとスクラッチをつなぐことはできない。
    (ファームウェアのダウンロードは最初の1回だけで、以降はPC側の操作のみでつなぐことができる)
  2. PC上で Scratch Link を起動しておく。
    (Chromebook や Mac の Chrome や Windows の Edge などWeb Bluetooth API対応のブラウザでウェブ版を使うときは、Scratch Linkを起動する必要はない。)
  3. ウェブ版は以下のリンクを開く。
    https://yokobond.github.io/scratch-microbit-more/
    デスクトップ版は以下のリンクからダウンロードし、適当なディレクトリへ展開して起動する。
    Windows: scratch_microbit_more-0_5_0-win.zip
    Mac: MicrobitMore.Desktop.3.17.1.dmg
  4. ‘micro:bit more’ カテゴリのコネクトボタンを押す。
  5. micro:bit の名前がリストに出るのを待ち、つなぎたいmicro:bitをクリックする。
  6. 目的の micro:bit と接続されたことを 「♡」を表示させたりして確認する。

使用例

超音波センサー

超音波距離センサー HC-SR04 で距離を測る例で、デジタル出力とパルスイベントを使っています。

使い方の紹介記事

11人のピーターパンによるコーディング芋煮会 – TGABOOK – BOOTH
猪股直規「micro:bitのすべての機能をScratchと連携しよう! 」にインストール方法やSlotの使い方などが載っています。

コインを振り分ける機械

Scratchとmicro:bitでコイン選別AIロボットを作る – ネコマ製作所
Making a coin sorting AI robot with Scratch and micro: bit – ネコマ製作所
機械学習の拡張機能と組み合わせてコインを振り分ける機械を試作しています。

検温システム

来場者非接触検温装置 micro:bit+Scratch – Qiita
i2c接続の外付けセンサーの値をSlotを使ってScratchで利用しています。

変更履歴

v0.5.0

Scratch拡張機能: Release v0.5.0 · yokobond/scratch-microbit-more
Pxt拡張機能: Release v0.5.0 · yokobond/pxt-scratch-microbit-more

明るさブロックの値を最大値255に対するパーセンテージに変更した。

アナログ入力レベルの値を電源電圧に対するパーセンテージに変更した。

電源電圧ブロックを追加した。

Web Bluetooth API に対応しているブラウザで使うと、Scratch Linkを必要とせずにmicro:bit と接続できる。(Windows や Macの Chrome と Edge、Chromebook のブラウザ、iPadOSのBluefyなど)

v0.4.3

Scratch拡張機能: Release v0.4.3 · yokobond/scratch-microbit-more
(v0.4.2のままでもpxt-scratch-microbit-more v0.4.3のmicro:bitを使えます。)
Pxt拡張機能: Release v0.4.3 · yokobond/pxt-scratch-microbit-more

テキスト表示を繰り返してもクラッシュしないようにした。
Crash by repeatedly execution of ‘display text’ · Issue #4 · yokobond/pxt-scratch-microbit-more

MakecodeのバージョンアップのためにMakecode上でピン指定したコードが動かなくなっていたのを修正。
Makecode pin in/out block does not work. · Issue #3 · yokobond/pxt-scratch-microbit-more

Makecodeのバージョンアップのためにピンイベントが動かなくなっていたのを修正。
‘catch event’ block does not work. · Issue #6 · yokobond/pxt-scratch-microbit-more

接続時にGPIOピン(P8, P13, P14, P15, P16)をプルアップに設定しないようにした。
Configuration of general purpose pins is canceled at Scratch connected · Issue #5 · yokobond/pxt-scratch-microbit-more

接続時にmicro:bitのLEDディスプレイにファームウェアのバージョンを表示するようにした。

スクラッチの拡張機能の名前にバージョンを入れた。

v0.4.2

Scratch拡張機能: Release v0.4.2 · yokobond/scratch-microbit-more
Pxt拡張機能: Release v0.4.2 · yokobond/pxt-scratch-microbit-more

共有データをScratch側から変更できるように修正した。

v0.4.1

Scratch拡張機能: Release v0.4.1 · yokobond/scratch-microbit-more
Pxt拡張機能: Release v0.4.1 · yokobond/pxt-scratch-microbit-more

開発リポジトリを yokobond/scratch-microbit-more へ変更し、VM/GUI/Desktopの各コードを統合した。

通信プロトコルを大幅に変更して、センサー値の更新速度を速くした(約 20 ms 毎)。

連続して振られている間に「動いたとき」ブロックが繰り返し実行されるように修正した。

ブロックの変更

  • 「磁力[X/Y/Z]」を追加
  • 「加速度[大きさ]」を追加
  • 「ピッチ」を追加
  • 「ロール」を追加
  • 「温度」を追加
  • 「[開放/プルアップ/プルダウン]入力」を追加
  • 「[パルスタイプ/エッジタイプ]イベント」を追加
  • 「micro:bitと[つながった/切れた]とき」を追加
  • 「スロット」の名前を「共有データ」へ変更

v0.3

ブロックの追加

  • 磁力
  • 加速度
  • Slot値の書き込み

翻訳の追加

  • 日本語 (ja)
  • ひらがな (ja-Hira)

ファームウエアの改善

pxt-scratch-more v0.3.2

  • 10分くらいで通信が切れるのを修正。
  • データを10ミリ秒間隔で1フォーマットずつ送るように変更。(これまでは100ミリ秒間隔で3フォーマット連続して送っていた)

pxt-scratch-more v0.3.1

  • slotをMicro:bit側から書き込めるように修正。

pxt-scratch-more v0.3.0

  • コンパスのキャリブレーション時の障害を回避
  • デバイス名の表示を自動化
  • Slotの値を取得するブロックを追加

V0.1

ブロックの追加

  • ピンの接続判定
  • 明るさ
  • 方位磁針
  • デジタル入出力
  • アナログ入出力
  • サーボモーター
  • スロット値の取得

開発情報

コードレポジトリ

Scratch 拡張機能: yokobond/scratch-microbit-more

PXT 拡張機能: yokobond/pxt-scratch-microbit-more