TouchDesignerのSerial OutでArduinoのLチカをやってみます。
Arduino
まずは配線をしてしまいます。
以下の様にLED1個の基本的な配線です。
ちなみに上の図は**Fritzing**というアプリケーションを使用しています。
FritzingはIDEもついているのでコードを書いてArduinoにアップロードまでできます。(アップロード自体は本家Arduino IDE経由っぽいです)
Arduinoのコード
int flag;
void setup(){
//LED_BUILTINは13番ピン
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0){
//シリアル通信で送られてくる値を読み取り変数flagに格納
flag = Serial.read();
//flagが1だったら光らせる処理
if(flag == 1){
digitalWrite(LED_BUILTIN, HIGH);
}else{
digitalWrite(LED_BUILTIN, LOW);
}
}
}
TouchDesigner
ネットワーク
ネットワークはこんな感じです。
>Button COMP、Panel Execute DAT、Serial DAT
Button COMP
Button TypeをMomentaryにしています。ボタンを押している間のValueが「1」、押さないとValueが「0」になります。
Panel Execute DAT
ターゲットのパネルにButton COMPを指定します。
また今回は値が変化するたびにシリアル通信を行うためValue ChangeをOnにしています。
また、実際のコードではonValueChange内を以下の様に記述します。
こうすることで値が変化するたびにSerial DATを通じてButton COMPのValueがSerial OUTされます。
sendBytesに関しては**公式ドキュメント**に詳細が載っています。
def onValueChange(panelValue):
op("serial1").sendBytes(panelValue)
return
Serial DAT
ここではPortにArduinoを接続しているUSB Portを指定しています。(環境毎に異なります。)
これで、Button COMPをActiveにしてクリックすればLチカ完成です😃