chakokuのブログ(rev4)

日々のごった煮ブログです

Scratchでオリジナルの拡張ブロックを作る(リハーサルというか)

近々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


親子でできる!Scratch と AWS を使った "ものづくり" 体験 - 1. 準備 〜 疎通確認編 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

Scratch 3 Extension の作り方 - Qiita

Scratch 3.0でオリジナルブロックをつくろう - Qiita