TouchDesigner用外部入力デバイスの作成
はじめに
インタラクティブなコンテンツを作りたいと思い,TouchDesignerを始めました.
センサやスイッチ類がまとまったデバイスがあれば,プロトタイピングに便利なのでは?と思い,TouchDesigner用の外部入力デバイスを作成しました.
入力デバイスと通信方式
以下のセンサ,スイッチを使用します.
- ボリューム
- プッシュスイッチ
- ジョイスティック
- 圧力センサ
- 温度/湿度センサ
(家にあった使えそうなものを集めました)
これらのセンサ類をArduinoに接続し,取得した値をTouchDesignerへ送ります.
シリアル通信やMIDIで送信しようかな,と考えていましたが,調べてみるとFirmataというプロトコルが便利そうなので,今回はFirmataで通信します.
デバイスの作成
作成したデバイスのブロック図を以下に示します.
デバイスのブロック図
センサ類はArduinoの入力ピンに接続します.
スイッチにはチャタリング防止のため,抵抗とコンデンサによる遅延回路とシュミットトリガインバータを接続してあります.
作成したデバイス
MDF板に取り付けてハードウェアは完成です.
Arduinoプログラム
Arduino IDEにFirmataライブラリを追加し,スケッチ例からFirmata->StandardFirmata.ino
を書き込みます.
TouchDesignerでの動作確認
ArduinoをUSBでPCに接続し,TouchDesignerにて動作確認を行います.
TouchDesignerのPaletteウィンドウにある,Derivative->Tools->firmata
を画面に配置します.
Firmataを配置
PortにArduinoが接続されているポート番号を指定します.
ActiveをOnにして,しばらくするとFirmata Type
とFirmata Version
が表示されます.
次に,Pin Modes
タブから,Arduinoに接続したスイッチ類の入出力設定を行います.
Pin Modesの設定
プッシュスイッチやデジタル信号はInput (1 Bit)
に,アナログ信号はAnalog (10 Bit)
に設定します.
未使用ピンは,誤作動防止のためPullup (1 Bit)
に設定しておきます.
最後に,Pin Values
タブで動作確認を行います.
Enable Reporting
をOnにすると,各ポートの状態が表示されます.
デジタルピンの確認
スイッチを押すと,PinのOn/Offが切り替わることが確認できました.
同様に,アナログピンも信号の取得ができます.
アナログピンの確認
まとめ
スイッチなどの入力を簡単にTouchDesignerで読み取ることができました.
複数のセンサを接続する場合は,OSCが便利そうなので,今後試してみたいと思います.
参考
Discussion