
ArduinoをScratchをつないで遊べる方法を調べてみると、MacのCatalina環境でぜんぜん動かなかった。現状できる方法も見つかったので、その内容をまとめてみる。
Scrattino(スクラッチーノ)
Scrattino(スクラッチーノ)はScratch(スクラッチ)でArduino(アルディーノ)を操作できるようにしたプログラミング環境です。公式のScratch3.0にあらかじめScrattino拡張機能を組み込んで、デスクトップアプリケーションにしてあります。
スクラッチーノ3をセットアップする
はじめにためしたのがScrattino。使い勝手も良くてすばらしいのだけど、僕のMac環境(Catallina 10.15.3)では動かなかった。

Arduino IDEだと、上記のように「/dev/cu.usbmodem14401」でArduinoとつながっているのがわかる。

Scrattinoだとデバイスが見つからない。ためしにScrattino2でも同じだった。Scrattino2だとPortが「/dev/tty.usbmodem14401」とパスが違っていたので、もしかしたらこれが問題かもしれない。
S4A
次に試したのがS4A。これもScrattinoと同じタイプのものだが、Catallinaでは動かないもよう。アプリの起動すらできない。
OneGPIO Scratch 3 Extensions
なんとかみつけたのがこの「OneGPIO Scratch 3 Extensions」。Arduinoだけでなく、RaspberryPiなども対応している。ただ、設定が結構たいへん。
- Pythonインストール
- pipインストール
- s3-extendインストール
- Arduino IDE: FirmataPlusインストール
- Arduino IDE: Ultrasonicインストール
- Arduino IDE: FirmataPlusをコンパイルしてArduinoにインストール
ここまできたら、ターミナルで以下を実行する。
$ s3a
backplane started
Websocket Gateway started
Arduino Gateway started.
Please wait 0 seconds for Arduino to initialize...
Arduino is initialized.
To exit this program, press Control-c
「Arduino is initialized.」と表示されればOneGPIOサーバが立ち上がり、ArduinoとScratchをつないでくれる。そしてオンライン・オフラインのどちらかを選んでScratchを立ち上げる。
- オンラインの場合はこちらをクリックする
- オフラインの場合はこちらをダウンロードしてindexhtmlをクリックする

そして、画面左下の拡張追加のボタンをクリックすると・・・

OneGpio Arduinoが出てくるので選択すれば・・・

Arduino操作用ブロックが登場する。

とりあえずこれで動かせたけど、Scratchの拡張機能には上記のデバイスのみが正式サポートされていて、残念ながらArduinoは入っていない。
ScrattinoやこのOneGPIOのようなつなぎかたもできるけど、あくまで個人の頑張りで動いているものなので、現段階ではScratchとArduinoの拡張に将来はなさそうなかんじ。
LEGOとかに乗り換えたほうがいいかもしれない。