toio Do(v1.3)をRaspberry Piで動かす

#はじめに

　え？ toio Advent Calender 2021 5日目と同じじゃないかって？

https://qiita.com/kenichih/items/dd9918f71e469d4caef1

　いえいえ、今回は2021年12月7日に公開となった「toio Do バージョン1.3」ですよ。なんとWeb bluetooth API対応となりscratch-linkなしでもうごくとか。
　なにはともあれさっそく動かしてみましょう。

# 動作環境
　scratch-link([pyscrlink](https://github.com/kawasaki/pyscrlink))なしで動かすための要件としては、Web bluetoothが使えること、なのでChrome(Chromium)ブラウザまたはEdgeブラウザのどちらかでなければなりません。
　Raspberry Piで動くOSで使えるのはChrome(正確にはChromium)だけなのでChromiumブラウザ一択ですね。(PC UbuntuではChromium以外にgoogle-chrome、microsoft-edgeが使えます)

# 動作手順
　Chromeブラウザを起動してtoio Doのページを開き、toio core cubeと接続...あれ？接続しない。
　と思ったら、scratch linkを使う版の時にクリックしていたtoio core cubeアイコンではなく、ブロック側にあるオレンジ色の「！」アイコンの方をつかうんですね。

<img alt="[Screenshot from 2021-12-02 21-32-15.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/cb91ea58-ff71-f575-dacb-2655e42b545f.png" width= 80%/>

　こちらに超ていねいな解説がありますのでまず読みましょう。

https://toio.io/blog/detail/toio-do_web-bluetooth_how-to.html

　それでもやっぱり接続しない、というか「ペア設定を求めています」ダイアログが出ない。

<img alt="[Screenshot from 2021-12-02 21-32-47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/122ca459-dc6a-89c3-9924-85159602c5a7.png" width=50% />


　この場合は、この呪文を唱える必要があります。

```
chrome://flags/#enable-experimental-web-platform-features
```
　このURLをchromiumブラウザのURL入力欄に入れてアクセスするとchromiumブラウザの設定画面になるので、「Experimental Web Platform features」を「Enabled」に変更します。変更すると、左下に「Relaunch」ボタンが出るので、クリックしてchromiumブラウザを再起動します。
<img alt="[Screenshot from 2021-12-02 21-34-04.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/44ad9c57-8033-0d80-d208-6f8c3c56e96a.png" width=50% />
<img alt="[Screenshot from 2021-12-02 21-34-14.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/8e725c01-f219-bb4c-9950-f4ae22cca2b8.png" width=50% />

　これでWeb bluetoothが使えるようになるので、toio Doのページの左側のtoio core cubeのブロックの上にあるオレンジ色の「！」アイコンのクリックで、「ペア設定を要求しています」ダイアログが出るようになります。つなぎたいtoio core cubeを選んで「ペア設定」ボタンをクリックすると接続されましたダイアログが出ます。

<img alt=[Screenshot from 2021-12-08 20-04-04.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/ed798d84-a8c5-4bf4-0735-85e82027164d.png" width=50% />
<img alt=[Screenshot from 2021-12-08 20-04-15.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/e52e6c2a-a474-ef56-196f-45896314fc94.png" width=50% />

　これでtoio Doからtoio core cubeを動かせるようになります。toio core cubeブロックのところのオレンジ色の「！」アイコンが緑色の「チェック」アイコンになっていればOKです。

<img alt="[Screenshot from 2021-12-08 20-11-00.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/094b2dc8-d66e-3181-39b5-934e2678ca96.png" width=75% />

　toio Doのサンプルを動かす場合、「プログラムを見る」を選んだ場合は、そのままtoio core cubeブロックのところのオレンジ色の「！」アイコンをクリックすればよいですが、「あそぶ」を選んだ場合、画面右上の「全画面解除」ボタンをクリックしてプログラムを表示させてtoio core cubeブロックのところのオレンジ色の「！」アイコンをクリックします。

<img alt="[Screenshot from 2021-12-08 20-14-04.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/4c5a23dd-a20f-04b8-46ad-267c79ad7308.png" width=50% />
<img alt="[Screenshot from 2021-12-08 20-18-48.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/38b07b4a-001e-51f1-fd83-aba309b48571.png" width=50% />
<img alt="[Screenshot from 2021-12-08 20-19-31.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/355e39df-c2c0-8b73-9bbb-7026395524ed.png" width=50% />

# こいつ、動くぞ
動作確認環境

- Raspberry Pi 400 4GB Raspbery Pi OS 64bit版(2021-11-03)　のChromeブラウザ
- Raspberry Pi 400 4GB Ubuntu20.04　のChromeブラウザ
- Raspberry Pi 400 4GB [Chromium OS](https://github.com/FydeOS/chromium_os-raspberry_pi/releases)　のChromeブラウザ
- Raspberry Pi 4Bはまだ試していませんが、Pi 400と同様に動くと思います。
- Jetson Xavier NX開発者キット Jetpack 4.6　のChromeブラウザ
- PC(Ryzen5-2600) + USB-Bluetoothドングル(CSR8510 A10) Ubuntu 18.04 x86_64
    - Chromiumブラウザ
    - [Google Chrome](https://www.google.com/chrome/?platform=linux)
    - [Microsoft Edge](https://www.microsoftedgeinsider.com/ja-jp/download/?platform=linux-deb)
- ASUS Zenfone6 Android 11 のChromeブラウザ

　AndroidスマートフォンのZenfone6のChromeブラウザは「Experimental Web Platform features」を「Enabled」に変更しなくてもそのままで使えました。
　それ以外、というかLinux向けのChromium、Chrome、EdgeブラウザはデフォルトではWeb bluetoothが使えず、「chrome://flags/#enable-experimental-web-platform-features」のURLからExperimental Web Platform features」を「Enabled」に変更する必要がありました。

# おわりに
　なんといってもChrome系ブラウザが動けばどの環境でもtoio Doを動かせるというのはありがたいですね。Androidスマートフォンで動かせるのも良いです。ちょっと思いついたネタをすぐtoio core cubeを動かして試してみるのに重宝しそうです。