ブログ

Scratch XからDALIの照明を制御する方法メモ

OSScafeで僕は発展途上技術者の石原淳也さんにScratchから他の機器につなげる方法を教えていただいたのでメモしておきます。

方法

  1. Scratch Xを利用する
  2. Scratch Xに自作した拡張ファイルを読み込む
  3. パラメーターをScratch Xで設定する

Scratch X

ScratchX

Scratch X

普通のScratchではなくScratchXであれば、自作の拡張(JS)をいれられる。

下記URLはテキストを読み上げる拡張をしているScratch

Text to Speech

ScratchX

クリックするとこのような警告がでるが、自己責任ということを理解したという緑のボタンをクリックする。

これで、他の人がつくったText to Speechという拡張機能を利用したScratchが利用できる。

ScratchXに自分でつくった拡張ファイルを読み込んで利用する方法

ScratchX

「Open Extension URL」の部分をクリックします。

ScratchX

自作(もしくは他作)のExtensionファイルのURLを入力します。

このURLはどこでもよいわけではなく、githubのURLだと読み込んでくれるそうです。

今回は石原さんがScratch XからiPad用のVRアプリにつなげるscratch X用のエクステンションを教えていただきました。

https://champierre.github.io/scratch2arkit/extension/scratch2arkit.js

このURLを先程の「paste URL」にコピペします。

ScratchX

自己責任だということを理解したという緑のボタンを押します。

ScratchX

無事に石原さんが開発した拡張ファイル(Scratch2ARKit)の読み込みができました。

パラメーターをScratchXで設定する

ScratchからDALI-APIを叩く場合、ゲートウェイのIPアドレスを登録することとDALIコマンドを文字列で送ることが必要になります。

以下はScratch内部で値を設定し、WebSocketでデータを送る時のメモです。

ScratchX

石原さんの拡張ファイルはiPadのアプリにScratchからつなげるのですがiPadのipアドレスを入力できるノードと、アプリで挿入するブロックの色の値を入力するノードがあります。

  var descriptor = {
    blocks: [
      [' ', locale[lang].set_ip, 'set_ip', ip],
      [' ', locale[lang].set_cube, 'set_cube', 0.01, 0.01, 0.01],
      [' ', locale[lang].set_color, 'set_color', 255, 255, 255],
      [' ', locale[lang].reset, 'reset']
    ]
  };

ノードは上記の部分で作っているようですが、Scratch Xに読み込むノードのjsファイルの書き方は下記の記事で開設されています。

ScratchX の Extension をローカルで開発する環境を整える

iPadアプリへのScratchXからのデータ送信はWebSocketを使ってやっています。以下のコードです。

  ext.set_color = function(r, g, b) {
    if (!connected) {
      ws = new WebSocket('ws://' + ip + ':3000');
    } else {
      ws.send("set_color:" + r + ":" + g + ":" + b);
    }
    ws.onopen = function(){ connected = true; ws.send("set_color:" + r + ":" + g + ":" + b); };
    ws.onclose = function(){ connected = false; };
  }

以上、石原さんのJSのコードを参照すれば、DALIのゲートウェイにDALIコマンドデータを送れそうな感じです。

まとめ

備忘録として石原さんからきいた内容をメモしました。

次回はこの内容をもとに、Scratch XからDALI-APIを使って設備としての照明を制御する検証をします。

そうすれば、子供のプログラミング用として敷居の低いScratchを使って、現実世界の設備としての照明を制御することができ、DALIの普及を促進できるのではないかと企んでいます。

こちらも参考

https://medium.com/@naoji.taniguchi/scratch-x-pepper-%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%83%E3%83%97%E3%82%92%E3%82%84%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F-f2a57bf89a8a

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です