近々IoT勉強会でScratchを簡単に説明する予定。機器制御のためScratchでWebAPIを叩くのだがそのためのオリジナルブロックが必要。以前手順を理解するために一度作ったのだが、最新状況はどうなっているのかを確認。オリジナルの拡張ブロックを作るための手順を確立する(結果、Scratch3.0では前回の試作から特に変化はなかった)。
考えてみたら、ポイントとしてはWebAPIを叩ければいいので、、そんなブロックだれか作ってるのでは??とも思えるのだが。。
ちょっと調べただけだが、、WebAPIを叩くためのブロックは標準では提供されておらず、やはりソースに手を入れて(CLONEして)作らないといけないようだ。まあしょうがないか。
Wikiより引用 (ソースをクローンして、npm i でパッケージインストール。。)(linkはシンボリックリンクらしい)
$ git clone --depth 1 https://github.com/llk/scratch-vm.git $ git clone --depth 1 https://github.com/llk/scratch-gui.git $ cd scratch-vm $ npm i $ sudo npm link $ cd ../scratch-gui $ npm i $ npm link scratch-vm
上記を生徒用フォルダで実施しているのだが、、/usr/local/xxxの方がいいのだろうか。
だとすると、root権限が必要になるのであった。
(linkオプション実行時はroot権限が必要になった)
DLしたソースに対して、scratch-vm, scratch-guiで拡張ブロックのためのコードを追加する(サンプルが提供されているのでまずはサンプル通りに打ち込む)。途中、typeミス等もあったが、サンプル通りの拡張ブロックまではできた。これをベースに、IoT家電制御ができるように修正する(ECHONET-LiteのWebAPIを叩くように改修)
■参考にした記事
Scratch3.0 Wiki、オリジナルブロックを作るページ(基本的にはこの手順でみんな作ってると思う)
Scratch 3.0の拡張機能を作ってみよう - Japanese Scratch-Wiki