serial
TouchDesigner
Control
microbit

TouchDesignerとmicro:bitの連携

BBC micro:bitにはデフォルトでセンサーが組み込まれています。

他のArduino等の基盤と比べ、比較的容易に色々なアプリケーションと連携することができます。(過去Unityとの連携の記事を書きました。)

今回はmicro:bitをコントローラーとしてTouchDesignerで配置した3Dモデルを動かしてみます。


micro:bit

まずはmicro:bitのプログラムですが、2台のmicro:bitを使います。

1台はUSBでPCに接続しレシーバーとして使います。もう1台を電池につなぎコントローラーとします。


コントローラー

sender.png

内容はとても簡素です。

最初に2台のmicro:bitを通信させるためのグループの設定をします。(番号はなんでも大丈夫です)

そして入力部品から傾斜の部品を2つエディターに追加し、それぞれピッチロールとします。その2つの部品を文字列として繋げ、変数に格納し、最後にその変数を、ずっと送信する様にブロックを繋げます。

この、入力部品を文字列に繋げるあたりはこちらの記事Heart for micro:bit and Processingを参考にしました。


レシーバー

reciever.png

PCに繋いだレシーバーはもっと単純です。

最初にコントローラーと同じグループの設定をし、無線で文字列を受信したらシリアルでそのままその文字列を書き出す様にします。

これでmicro:bit側は準備完了で、それぞれのプログラムをmicro:bitにインストールします。


TouchDesigner

スクリーンショット 2018-10-23 11.21.36.png

ネットワークは上図の様になっています。右側のSOPは動かす3Dモデルで、今回の連携には左側のDAT群が必要になります。


Serial DAT

スクリーンショット 2018-10-23 11.21.52.png

ここで設定しなくてはいけないのがPortBaud Rateです。

Portは各端末ごとに変わりますが、micro:bitを挿しているUSBのポートを指定します。Baud Rateは115200を指定します。

スクリーンショット 2018-10-23 11.22.02.png

それとReceived DataタブのMaximum Linesはデフォルトで10になっていますが、micro:bitでは毎フレーム1行の書き出しになるので合わせて1にします。


Convert DAT

Serial DATで取得した文字列を分割してテーブルデータにします。

Serial DATではピッチ/ロールという形式で「/(スラッシュ)」で繋いでいるので「/」で分割しテーブルデータに変換します。

スクリーンショット 2018-10-23 11.22.13.png

Split Cells atのデフォルトが「\(バックスラッシュ)t」となっていますが、これを「/(スラッシュ)t」と変更します。そうするとOPのなかが2行2列のテーブルになると思います。


Select DAT

Convert DATから2つのSelect DATを繋いでピッチとロールのデータに分けます。

スクリーンショット 2018-10-23 11.22.22.png

ここではStart Row Index/End Row Index(行)、Start Col Index/End Col Index(列)の値を変更して、それぞれ使用する値を選択します。

Convert DATのテーブルでは0行目は項目名なのでピッチ/ロール共にStart Row Index/End Row Indexは実データのある1行目を指定します。

またピッチは0列目ロールは1列目なので各DATで適切な数値にします。


DAT to CHOP

スクリーンショット 2018-10-23 11.22.39.png

ここで変更したのはFirst Row IsFirst Column Isの部分をValueにしたところです。データによっては項目になっているセルがあるので無視(Ignore)を選択しますが、今回はSelect DATが実データのみなので両方Valueになっています。


Transform SOP

スクリーンショット 2018-10-23 11.22.53.png

最後Transform SOPのRotateにピッチとロールの各DAT to CHOPの参照を入れて完成です。rzは逆方向に傾いてしまうのでマイナスにしています。(ryに180と入っていますが、用意した3Dモデルが元々後ろ向きだったので向きを変えるために入れている数値です)

これでTouchDesignerを外部からコントロールできるようになって、作るものの幅が広がりそうですね:raised_hands:

IMAGE ALT TEXT HERE