LoginSignup
20
9

More than 5 years have passed since last update.

TouchDesigner × Arduinoでインタラクティブな炎をつくる(2/2)

Last updated at Posted at 2017-08-10

次にArduinoで息の吹きかけをセンシングして、TouchDesignerの炎と連携させます。

Arduinoで息の吹きかけをセンシング

今回、センサーは気圧センサーLPS25Hを使用しています。
回路の組み立てとスケッチの作成は、以下を参考にしました。
http://skomo.o.oo7.jp/f47/hp47_51.htm

TouchDesignerとArduinoを連携する

Serial DATを使うと、ArduinoとTouchDesignerをシリアル通信させることができます。
スクリーンショット 2017-08-08 17.37.32.png

▶︎serial1
Connectページ > Port:Arduinoで指定したシリアルポートを選択
Received Dataページ > Maximum Lines:1

インタラクティブに炎を揺らがせる

気圧センサーに息を吹きかけると、気圧の値が変化します。
これを使って、炎を揺らがせるようにノードを組んでいきたいと思います。

まず、息を吹きかけたかをConvert DAT, Select DAT, DAT to CHOP, Math CHOP, Logic CHOPを使って0,1で判定します。

スクリーンショット 2017-08-08 17.56.24.png

▶︎convert1
Split Cells at: = (※半角スペースと=)
▶︎select1
Selectページ > Select Cols:by Index
Selectページ > Start Col Index:1
Selectページ > End Col Index:1
▶︎datto1
DAT toページ > First Row is:Ignored
DAT toページ > First Column is:Values
▶︎math1
Mult-Addページ > Multiply:100
▶︎logic1
Logicページ > Convert Input:Off When Outside Bounds
Logicページ > Combine CHOPs:Not Or
Logicページ > Bounds:適当な閾値(常気圧と息吹きかけ時の気圧の間くらい)

math1では、気圧センサーから得られる値の変化が小さすぎるので100倍しています。
logic1では、指定した閾値を超えた値を取得した時1を返し、閾値の範囲内では0を返します。

続いて、logic1のトリガーに応じてparticle1の動きを変化させます。
スクリーンショット 2017-08-08 22.33.42.png

▶︎math2
Mult-Addページ > Multiply:5
Mult-Addページ > Post-Add:3
▶︎math3
Mult-Addページ > Multiply:2

null1, null2を上の写真のようにparticle1のWind,Turbulenceにエクスポートします。

最後に、炎に少し動きを加えます。
スクリーンショット 2017-08-10 23.06.29.png

lfo1を追加し、以下のようにパラメータを設定してparticle1のTurb Periodにエクスポートします。

▶︎lfo1
LFOページ > Type:Gaussian
LFOページ > Amplitude:0.4

これで、息を吹きかけた時に炎が揺らぐようになりました。
fire7.gif

まとめ

最終的なノード構成は以下のようになります。
スクリーンショット 2017-08-10 23.11.16.png

まだTouchDesignerの経験が浅いため、理解の間違っている点などありましたらご指摘いただけると幸いです。

20
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
9