From 7c24307b161a78e99cfc17933a8f176acde252d2 Mon Sep 17 00:00:00 2001 From: kou029w Date: Thu, 30 Aug 2012 09:06:11 +0900 Subject: [PATCH] update --- arduino/catchrobo2012/catchrobo2012.ino | 37 +++++++++++++------------ 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/arduino/catchrobo2012/catchrobo2012.ino b/arduino/catchrobo2012/catchrobo2012.ino index 4b91e4f..5e7de7e 100644 --- a/arduino/catchrobo2012/catchrobo2012.ino +++ b/arduino/catchrobo2012/catchrobo2012.ino @@ -32,7 +32,7 @@ void setup(){ digitalWrite(PIN_PWR, HIGH); digitalWrite(PIN_GND, LOW); delay(100); - Serial.begin(19200); +// Serial.begin(19200); wiiNun.begin(); base.attach(PIN_SERVO_BASE); catcher.attach(PIN_SERVO_CATCHER); @@ -42,6 +42,7 @@ void setup(){ } void loop(){ + // ヌンチャクを読む wiiNun.get(); byte joyx = wiiNun.data[0]; byte joyy = wiiNun.data[1]; @@ -50,36 +51,38 @@ void loop(){ byte accz = wiiNun.data[4]; byte zbut = ((~wiiNun.data[5] >> 0) & 1); byte cbut = ((~wiiNun.data[5] >> 1) & 1); - if ((wiiNun.data[5] >> 2) & 1) accx += 2; - if ((wiiNun.data[5] >> 3) & 1) accx += 1; - if ((wiiNun.data[5] >> 4) & 1) accy += 2; - if ((wiiNun.data[5] >> 5) & 1) accy += 1; - if ((wiiNun.data[5] >> 6) & 1) accz += 2; - if ((wiiNun.data[5] >> 7) & 1) accz += 1; + if((wiiNun.data[5] >> 2) & 1) accx += 2; + if((wiiNun.data[5] >> 3) & 1) accx += 1; + if((wiiNun.data[5] >> 4) & 1) accy += 2; + if((wiiNun.data[5] >> 5) & 1) accy += 1; + if((wiiNun.data[5] >> 6) & 1) accz += 2; + if((wiiNun.data[5] >> 7) & 1) accz += 1; + // ヌンチャクおわり - char x = (char)(joyx-0x7F); - char y = (char)(joyy-0x7F); + char x = (char)(joyx-0x7F); // スティックの中心を0にする + char y = (char)(joyy-0x7F); // スティックの中心を0にする // char ax = (char)(accx-0x7F); - char ay = (char)(accy-0x7F); + char ay = (char)(accy-0x7F); // 水平状態を0にする - digitalWrite(PIN_LED, LOW); if(zbut){ // zボタン押しながら digitalWrite(PIN_LED, HIGH); if(y>0x1F) baseDeg = 180 - atan2(y, x)*180/PI; // 台座をスティックの角度にする if(baseDeg < 10) baseDeg = 10; else if(baseDeg > 170) baseDeg = 170; - }else{ + }else{ // zボタン離すと + digitalWrite(PIN_LED, LOW); horMotor.speed(y); baseDeg += x/32; // 台座をxに応じて相対移動 } - if(ay > +0x10) verMotor.speed(+0xCC); - if(ay < -0x10) verMotor.speed(-0xCC); - if(ay > +0x20) verMotor.mode(GO); - if(ay < -0x20) verMotor.mode(BACK); + if(0); + else if(ay > +0x20) verMotor.mode(GO); + else if(ay > +0x10) verMotor.speed(+0xCC); + else if(ay < -0x10) verMotor.speed(-0xCC); + else if(ay < -0x20) verMotor.mode(BACK); catcherDeg = 90; - if(cbut){ + if(cbut){ // cボタン押すとキャッチャーを離す catcherDeg = 15; }