2015 robotic contest arakawa A / Mbed 2 deprecated Nucleo_PS3_Jikken_new

Dependencies:   mbed

Fork of Nucleo_PS3_Jikken_XBEE by 2015 robotic contest arakawa A

Files at this revision

API Documentation at this revision

Comitter:
nodoame
Date:
Tue Nov 10 10:10:23 2015 +0000
Parent:
31:d9c70bcdb54e
Child:
33:8de2776497da
Commit message:
????????; ?????; 20151110

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Nov 09 10:33:14 2015 +0000
+++ b/main.cpp	Tue Nov 10 10:10:23 2015 +0000
@@ -24,8 +24,6 @@
 #define debugFlag 0
 #define stopCount 33
 #define shotWait 0.5
-#define isXBOX true
-#define XBOXrate 19200
 
 Serial pc(SERIAL_TX, SERIAL_RX);
 //Serial Dev(D8,D2);//コントローラー
@@ -34,7 +32,7 @@
 I2C i2c(D14,D15);//sda,scl
 //const int airAddr=0x20;
 const int airAddr=0xd0;
-const int airAddr2=0xf0;
+const int airAddr2=0xc0;
 const int airReg=10;
 const int valveAddr=0xC0;
 BusOut dI2c(PC_0,PC_1,PC_2,PC_3);//i2cデバッグ
@@ -94,7 +92,7 @@
         dev=360;
     //printf("X:%lfY:%lfDev:%lf\r\n",tempX,tempY,dev); 
     else
-        dev=atan2(tempX,(isXBOX)?(tempY):(-tempY))/M_PI*180;//軸を逆にして代入、Y軸反転
+        dev=atan2(tempX,-tempY)/M_PI*180;//軸を逆にして代入、Y軸反転
     return ((dev<0)?(dev+360):(dev))/devide;//分割
 }
 
@@ -228,16 +226,14 @@
 
 int main() { 
     pc.baud(230400);
-    //Dev.baud(921600);//PS3
-    //Dev.baud(57600);//XBOX
-    Dev.baud((isXBOX)?(XBOXrate):(921600));
+    Dev.baud(921600);//PS3
+    //Dev.baud(115200);//XBOX
     Mechanum.baud(230400);
     DigitalIn bt(USER_BUTTON);
     Dev.attach(num,Serial::RxIrq);//受信割り込み設定
     Green=0;Blue=0;Red=0;
     double gValue=0,bValue=0,rValue=0;
     DigitalOut l(PB_2);
-    DigitalOut l2(PB_1);
     int sqf=0;
     double deg=32;
     int val;
@@ -247,35 +243,25 @@
 
     while(true)
     {           
-       /* //ポール検出モード
-        if(getBt(btTri)&&getBt(btSph)){
-            if(deg>devideNum-1);
-            else if(deg<17){
-                //pc.printf("R\r\n");
-                detFinF=detectPole(TNR);
-            }
-            else{
-                //pc.printf("L\r\n");
-                detFinF=detectPole(TNL);
-            }
-        }*/
-        
         do{
             bool l=getBt(btL),r=getBt(btR),t=getBt(btTri);
             if(!l&&!r&&!t)
                 pushF=false;
-            if(pushF||!obonFlag)
+            if(pushF||!obonFlag){
+                kRed=shotToDenziben(airReg,1,1,airAddr2);
+                wait(0.01);
                 break;
+            }
                 
             //射出
             if(l){
                 //pc.printf("L\r\n");
                 pushF=true;
+                kRed=shotToDenziben(airReg,2,1,airAddr2);
+                wait(0.2);
                 kRed=shotToDenziben(airReg,1,1,airAddr);
                 wait(shotWait);
                 kRed=shotToDenziben(airReg,0,1,airAddr);
-                /*wait(0.1);
-                kRed=shotToDenziben(airReg,2,1,airAddr2);*/
                 kRed=0;
             }
             
@@ -290,17 +276,6 @@
                 //i2c.write(airAddr,cmd,2);
                 kRed=0;
             }
-            
-            /*//射出
-            else if(t){
-                //pc.printf("T\r\n");
-                pushF=true;
-                kRed=shotToDenziben(airReg,4,1,airAddr);
-                wait(shotWait);
-                kRed=shotToDenziben(airReg,0,1,airAddr);
-                kRed=0;
-            }*/
-                
         }while(false);
         
         //レーザーポインタ
@@ -315,12 +290,10 @@
         //タッチセンサ
         if(((int)DATA[1]&12)==12&&!touchSF){
             touchSF=true;
-            l2=1;
             gValue=0.5;
         }
         else if(!(((int)DATA[1]&12)==12)){
             touchSF=false;
-            l2=0;
             gValue=0;
         }
         //お盆回し
@@ -340,7 +313,7 @@
             wait(0.2);
         }         
         
-        deg=devidePoint((double)DATA[3],(double)DATA[2],30,360/devideNum);
+        deg=devidePoint((double)DATA[3],(double)DATA[2],15,360/devideNum);
         
         if(getPress(btSel)||(detFinF&&deg!=devideNum)){
             detFinF=false;
@@ -349,6 +322,7 @@
         }
         else {
             val=valueForMechanum(deg,devideNum,getBt(trigL),getBt(trigR),getBt(btSph));
+            //pc.printf("%lf\r\n",deg);
         }
         
         
@@ -367,7 +341,8 @@
             //pc.printf("%d\r\n",DATA[6]);
             //if(getPress(btSel))
             //    pc.printf("up\r\n");
-            //pc.printf("deg:%d\r\n",deg);
+            pc.printf("val:%d\r\n",val);
+            pc.printf("a");
             //printf("%lf:%d:%d\r\n",deg,(int)DATA[3],(int)DATA[2]);
             //printf("%d\r\n",(int)DATA[0]);
             //pc.printf("DATA[1]%d\r\n",(int)(DATA[1]&0x02));