「しゃみーず」への道 (5)
システム完成
2013年6月 長嶋洋一
ここまでの制作風景
5月30日
6月11日
6月12日
6月13日
6月13日1106制作風景・6月14日
回路図
ソフトウェア関係
- zipアーカイブ
- 「タッチセンサ → XBee送信」 Arduinoプログラム "Xbee_005.pde"
// XBee_005.pde // Arduino-XBee for Lee KyungHoon int value; int timer=0; int old_0,old_1,old_2,old_3,old_4,old_5; void setup() { Serial.begin(19200); old_0=old_1=old_2=old_3=old_4=old_5=0; } void loop() { if (Serial.available() > 0) { String stringOne = String(Serial.read(), HEX); String stringTwo = String("g=" + stringOne); Serial.println(stringTwo); } timer++; if(timer > 50){ timer = 0; value = analogRead(A0)/4; if(value != old_0){ String stringOne = String(value, HEX); String stringTwo = String("a=" + stringOne); Serial.println(stringTwo); old_0 = value; } value = analogRead(A1)/4; if(value != old_1){ String stringOne = String(value, HEX); String stringTwo = String("b=" + stringOne); Serial.println(stringTwo); old_1 = value; } value = analogRead(A2)/4; if(value != old_2){ String stringOne = String(value, HEX); String stringTwo = String("c=" + stringOne); Serial.println(stringTwo); old_2 = value; } value = analogRead(A3)/4; if(value != old_3){ String stringOne = String(value, HEX); String stringTwo = String("d=" + stringOne); Serial.println(stringTwo); old_3 = value; } value = analogRead(A4)/4; if(value != old_4){ String stringOne = String(value, HEX); String stringTwo = String("e=" + stringOne); Serial.println(stringTwo); old_4 = value; } value = analogRead(A5)/4; if(value != old_5){ String stringOne = String(value, HEX); String stringTwo = String("f=" + stringOne); Serial.println(stringTwo); old_5 = value; } } }- 「タッチセンサ → XBee送信」 受信確認用Max6プログラム "XBee_005.maxpat"
- 「XBee受信 → Gainer駆動」 Arduinoプログラム "Xbee_006.ino"
// XBee_006.pde // Arduino-XBee for Shami-zu int phase, ch, first_byte; void setup() { pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); Serial.begin(19200); } void loop(){ if (Serial.available() > 0) { serial_check(); } } void serial_check() { int dd; dd = Serial.read(); if (dd == 10){ phase = 0; return; } switch (phase) { case 0: phase = 1; switch (dd) { case 'a': ch = 9; return; case 'b': ch = 10; return; case 'c': ch = 11; return; default: ch = 0; return; } case 1: phase = 2; return; case 2: phase = 3; first_byte = hex_conv(dd); return; case 3: phase = 0; if (ch != 0){ if (dd == 13){ analogWrite(ch, first_byte); } else{ analogWrite(ch, 16*first_byte + hex_conv(dd)); } } return; } } int hex_conv(int data){ switch (data) { case '0': return(0); case '1': return(1); case '2': return(2); case '3': return(3); case '4': return(4); case '5': return(5); case '6': return(6); case '7': return(7); case '8': return(8); case '9': return(9); case 'a': return(10); case 'b': return(11); case 'c': return(12); case 'd': return(13); case 'e': return(14); case 'f': return(15); } }- 「XBee受信 → Gainer駆動」 Gainer確認用Max6プログラム "Shami_test.maxpat"
Arduino資料