🎛️

TouchDesigner用外部入力デバイスの作成

2022/11/17に公開

はじめに

インタラクティブなコンテンツを作りたいと思い,TouchDesignerを始めました.
センサやスイッチ類がまとまったデバイスがあれば,プロトタイピングに便利なのでは?と思い,TouchDesigner用の外部入力デバイスを作成しました.

入力デバイスと通信方式

以下のセンサ,スイッチを使用します.

  • ボリューム
  • プッシュスイッチ
  • ジョイスティック
  • 圧力センサ
  • 温度/湿度センサ
    (家にあった使えそうなものを集めました)

これらのセンサ類をArduinoに接続し,取得した値をTouchDesignerへ送ります.
シリアル通信やMIDIで送信しようかな,と考えていましたが,調べてみるとFirmataというプロトコルが便利そうなので,今回はFirmataで通信します.
http://firmata.org/wiki/Main_Page

デバイスの作成

作成したデバイスのブロック図を以下に示します.
デバイスのブロック図
デバイスのブロック図
センサ類はArduinoの入力ピンに接続します.
スイッチにはチャタリング防止のため,抵抗とコンデンサによる遅延回路とシュミットトリガインバータを接続してあります.

作成したデバイス
作成したデバイス
MDF板に取り付けてハードウェアは完成です.

Arduinoプログラム

Arduino IDEにFirmataライブラリを追加し,スケッチ例からFirmata->StandardFirmata.inoを書き込みます.

TouchDesignerでの動作確認

ArduinoをUSBでPCに接続し,TouchDesignerにて動作確認を行います.
TouchDesignerのPaletteウィンドウにある,Derivative->Tools->firmataを画面に配置します.
Firmataを配置
Firmataを配置
PortにArduinoが接続されているポート番号を指定します.
ActiveをOnにして,しばらくするとFirmata TypeFirmata Versionが表示されます.

次に,Pin Modesタブから,Arduinoに接続したスイッチ類の入出力設定を行います.
Pin Modesの設定
Pin Modesの設定
プッシュスイッチやデジタル信号はInput (1 Bit)に,アナログ信号はAnalog (10 Bit)に設定します.
未使用ピンは,誤作動防止のためPullup (1 Bit)に設定しておきます.

最後に,Pin Valuesタブで動作確認を行います.
Enable ReportingをOnにすると,各ポートの状態が表示されます.
デジタルピンの確認
デジタルピンの確認
スイッチを押すと,PinのOn/Offが切り替わることが確認できました.
同様に,アナログピンも信号の取得ができます.
アナログピンの確認
アナログピンの確認

まとめ

スイッチなどの入力を簡単にTouchDesignerで読み取ることができました.
複数のセンサを接続する場合は,OSCが便利そうなので,今後試してみたいと思います.

参考

http://satoruhiga.com/TDWS2018/day19/
https://magazine.halake.com/entry/arduino-firmarta-patlite

Discussion