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用のエクステンションを教えていただきました。

この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の普及を促進できるのではないかと企んでいます。

こちらも参考

4/23にアトリエアルデバランでScratchとPepperをつないでみるというワークショップを開催した。
この記事を書いた人

この記事を書いた人

中畑隆拓

日本ピー・アイ株式会社
照明制御が得意です。
Node-REDを使ってIoT機器の情報を読み込み、DALI-APIを叩いて制御しています。

今後、設備の制御はNode-REDのようなソフトウェアが中心になると実感していて、いろんなところで講演してます。

講演予定・実績一覧

DALIだけでなくKNXやModbus、Lonworksなど、設備制御について意見交換を行うSlackを作りました。参加希望の方は問い合わせフォームより連絡ください。

お問い合わせ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする