toioをtoio.jsで動かしてみる

toioを動かすにはいくつかの手段がありますが、最も簡単なのはiPadのアプリをインストールして使うScratchの拡張機能としてtoioが使えるtoio Doを使うこと。toio Doはブラウザ経由でも動きますが、まだベータ版なので保存機能とかが無いようでiPadアプリを使うのが一番確実。

さらには、Node.js用のライブラリにtoio.jsというのがあって、

https://github.com/toio/toio.js

このGitHubにはサンプルプログラムもあって簡単に動作確認できます。動作環境はmacbook Air apple silicon M1/Ventura 13です。

上記リンクにサンプルプログラムの動かし方があるので、そのままやってみました。

いくつかサンプルありますが、動画で動かしているのは、

% yarn example:keyboard-control

になります。

async function main() {
  // start a scanner to find nearest cube
  const cube = await new NearestScanner().start()

  // connect to the cube
  await cube.connect()

上のコードはサンプルコードからの切り出しですが、cubeへの接続は専用の機能NearestScanner()が用意されて、電源の入っている一番近くのcudeに接続されるようになっています。package.jsonにある”@toio/scanner”: “^1.0.0″にNearestScanner()も含まれていることになります。

 

admin

micro:bitもtoioもScratch Linkで接続できると言うことは、

技術情報が公開されていて色々弄れそうなのでtoioを購入、まだ手元には届いていませんが、toioをScratchから使う時にはパソコンとの接続にはScratch Linkを使う(Web Bluetooth API)と言う記述がありました。したがってmicro:bitもコマンドが公開されてるだろうと思って調べてみると、

https://qiita.com/youtoy/items/c98c0996458a21fc1e67

と言う事例がありました。2021年の記事なのでmicro:bit V1向けかどうかは微妙なのでV2では多少変更が必要(少なくともUUIDは別物になる)かもしれませんが。まあ元々ScratchやMakeCodeはどちらもブラウザ上で動作して、ブラウザとmicro:bit間の通信手段はScratch Linkなので中を通るデータは変わってもtoioでも使えるのでしょう。

上記のサンプルはパソコン側での受信なので、パソコンからの送信は、

https://qiita.com/yagshi/items/abfb3717fb978d031b7e

があります。

いずれにしてもbluetoothとのブラウザからの接続はWeb Bluetooth APIを使いますが、ブラウザが限定でChromeがメジャーブラウザです。

過去記事:https://isehara-3lv.sakura.ne.jp/blog/2021/04/01/microbitでbluetooth通信/

C/C++で低レベルでの接続には、

https://tech.microbit.org/software/runtime/

が関連ドキュメントになりそうですがmicro:bit V2はCODALというハードウェアの抽象化手段があるようです。

 

admin