Help us understand the problem. What is going on with this article?

TouchDesignerとmicro:bitの連携

More than 1 year has passed since last update.

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

atsonic
株式会社 たき工房 テックラボ所属 ディレクター。 https://www.instagram.com/takagimao/ https://twitter.com/atsonic
https://atsonic.jp
taki-mex
株式会社たき工房の開発部署、TechLabです。
https://lab.taki.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away