2015_robocon_bteam / Mbed 2 deprecated 2015robot_main

Dependencies:   PID QEI mbed

Fork of 2015robot_main by Naoto Deguchi

Files at this revision

API Documentation at this revision

Comitter:
DeguNaoto
Date:
Tue Oct 27 07:49:43 2015 +0000
Parent:
113:ba121edf2588
Commit message:
??????????; ????ver

Changed in this revision

autoMode.h Show annotated file Show diff for this revision Revisions of this file
communicate.h Show annotated file Show diff for this revision Revisions of this file
machine_ps3.h Show annotated file Show diff for this revision Revisions of this file
main_ps3.cpp Show annotated file Show diff for this revision Revisions of this file
manualMode.h Show annotated file Show diff for this revision Revisions of this file
--- a/autoMode.h	Fri Oct 23 21:58:39 2015 +0000
+++ b/autoMode.h	Tue Oct 27 07:49:43 2015 +0000
@@ -39,7 +39,9 @@
             spcount=0.0;
 //            targ_velocity=speed;
 #ifdef BLUE
-            sendData(5,69); //right
+//            sendData(5,69); //right
+//            sendData(5,70); //right
+            sendData(5,71); //right
             wait(0.05);
             sendData(4,69); //left
             stateR = 69;
@@ -74,8 +76,8 @@
             sendData(5,59); //right
             wait(0.05);
             sendData(4,59); //left
-            stateR = 61;
-            stateL = 60;
+            stateR = 59;
+            stateL = 59;
 #endif
             wait(0.05);
             step   = 5;
@@ -115,32 +117,6 @@
 //            OpStart.attach(&OpponentsStart,2.0);
         }
     }
-    /***Disturb***/
-    /*else if(b==9){
-        if(edge9){
-            edge9=0;
-            resetState();
-            flagf=1;
-            spcount=0.0;
-//            targ_velocity=speed;
-#ifdef BLUE
-            sendData(5,70); //right
-            wait(0.05);
-            sendData(4,70); //left
-            stateR = 70;
-            stateL = 70;
-#else       
-            sendData(5,70); //right
-            wait(0.05);
-            sendData(4,70); //left
-            stateR = 70;
-            stateL = 70;
-#endif
-            wait(0.05);
-            step   = 50;
-            flaga  = 1;
-        }
-    }*/
     else if(b==1){  /*L down*/
         if(edge1){
             edge1=0;
@@ -193,104 +169,128 @@
             autoflag=0;
             Indicator4=0;
             IndicatorAuto=1;
-            flaga  = 0;
+            flaga=0;
+            Move_l(0.0);
+            Move_r(0.0);
         }
     }
-    else if(up){  /*start*/
-        if(edge_up){
-            edge_up=0;
+    else if(triangle){  /*start*/
+        if(edge_triangle){
+            edge_triangle=0;
             resetState();
             flagf=1;
-            targ_velocity=speed;
-//            sendData(7,70);
-            sendData(5,68);
-            wait(0.1);
-            sendData(4,68);
+            spcount=0.0;
+//            targ_velocity=speed;
+#ifdef BLUE
+//            sendData(5,69); //right
+            sendData(5,71); //right
+            wait(0.05);
+            sendData(4,69); //left
             stateR = 69;
             stateL = 69;
+#else
+            sendData(5,69); //right
+            wait(0.05);
+            sendData(4,69); //left
+            stateR = 69;
+            stateL = 69;
+#endif
+            wait(0.05);
             step   = 0;
             CStep  = 1;
             flaga  = 1;
         }
     }
-    else if(right){  /*middle start*/
-        if(edge_right){
-            edge_right=0;
+    else if(square){  /*middle start*/
+        if(edge_square){
+            edge_square=0;
             resetState();
             flagf = 1;
-            targ_velocity=speed;
-            sendData(7,61);
-            /*sendData(4,61);
-            wait(0.1);
-            sendData(5,58);*/
+            spcount=0.0;
+//            targ_velocity=speed;
+#ifdef BLUE
+            sendData(5,60); //right
+            wait(0.05);
+            sendData(4,60); //left
+            stateR = 60;
+            stateL = 61;
+#else
+            sendData(5,59); //right
+            wait(0.05);
+            sendData(4,59); //left
             stateR = 61;
-            stateL = 61;
+            stateL = 60;
+#endif
+            wait(0.05);
             step   = 5;
-            CStep  = 6;
+            CStep  = 7;
             flaga  = 1;
         }
     }
-    else if(down){   /*opponents start*/
-        if(edge_down){
-            edge_down=0;
+    else if(cross){   /*opponents start*/
+        if(edge_cross){
+            edge_cross=0;
             resetState();
-            flagf = 1;
-            targ_velocity = speed;
-            sendData(7,70);
-            stateR = 70;
-            stateL = 70;
-            step   = 15;
-            CStep  = 15;
-            flaga  = 1;
+//            targ_velocity = speed;
+#ifdef BLUE
+            sendData(5,69); //right
+            wait(0.05);
+            sendData(4,69); //left
+            stateR = 71;
+            stateL = 71;
+#else
+            /*sendData(5,66); //right
+            wait(0.05);
+            sendData(4,66); //left*/
+            /*sendData(4,71); //left
+            wait(0.05);
+            sendData(5,71); //right*/
+            sendData(4,73); //left
+            wait(0.05);
+            sendData(5,73); //right
+
+            stateR = 71;
+            stateL = 72;
+#endif
+            wait(0.05);
+            step=114;
+            CStep=114;
+            OpStart.attach(&OpponentsStart,2.2);
+//            OpStart.attach(&OpponentsStart,2.0);
         }
     }
-    else if(square){ /*reset*/
-        sendData(7,255);
-    }
-    else if(cross){  /*stop*/
-        Motor_swing=0;
-//        sita=PI/4.0,x=0.0,y=0.0;
-        targ_velocity=0.0;
-#ifdef BLUE
-        targ_sita=PI/4.0;
-#else   
-        targ_sita=-PI/4.0;
-#endif
-        velocity_controller.reset();
-        direction_controller.reset();
-    }
     else if(l1){  /*L up*/
         if(edge_l1){
             edge_l1=0;
-            if(stateL!=1) stateL--;
+            if(stateL!=92) stateL++;
             sendData(4,stateL);
         }
     }
     else if(l2){  /*L down*/
         if(edge_l2){
             edge_l2=0;
-            if(stateL!=MAX_VALUE) stateL++;
+            if(stateL!=1) stateL--;
             sendData(4,stateL);
         }
     }
     else if(r1){  /*R up*/
         if(edge_r1){
             edge_r1=0;
-            if(stateR!=1) stateR--;
+            if(stateR!=92) stateR++;
             sendData(5,stateR);
         }
     }
     else if(r2){  /*R down*/
         if(edge_r2){
             edge_r2=0;
-            if(stateR!=MAX_VALUE) stateR++;
+            if(stateR!=1) stateR--;
             sendData(5,stateR);
         }
     }
-    if(triangle){
+    if(up){
         skip = 1;
     }
-    else if(!triangle){
+    else if(!up){
         skip = 0;
     }
 }
@@ -353,10 +353,12 @@
         }
     }
     
-    if( abs(Vr) < 0.2 ) Vr = 0.0;
-    if( abs(Vl) < 0.2 ) Vl = 0.0;
+//    if( abs(Vr) < 0.2 ) Vr = 0.0;
+    if((Vr<0.2)&&(Vr>-0.2)) Vr = 0.0;
+//    if( abs(Vl) < 0.2 ) Vl = 0.0;
+    if((Vl<0.2)&&(Vl>-0.2)) Vl = 0.0;
     Move_r( ( float ) Vr );
     Move_l( ( float ) Vl );
 }
 
-#endif /*autoMode.h*/
\ No newline at end of file
+#endif /*autoMode.h*/
--- a/communicate.h	Fri Oct 23 21:58:39 2015 +0000
+++ b/communicate.h	Tue Oct 27 07:49:43 2015 +0000
@@ -218,6 +218,7 @@
 short edge_left         = 0;
 short edge_up           = 0;
 short edge_down         = 0;
+short edge_cross        = 0;
 short square            = 0;
 short triangle          = 0;
 short circle            = 0;
@@ -277,6 +278,7 @@
     if(!up) edge_up=1;
     if(!square) edge_square=1;
     if(!down) edge_down=1;
+    if(!cross) edge_cross=1;
 }
 ///interrupt SBDBT RX.
 inline void SBDBT_interrupt()
@@ -299,4 +301,4 @@
     SBDBT.format(8, Serial::None, 1);
     SBDBT.attach(SBDBT_interrupt, Serial::RxIrq);
 }
-#endif
\ No newline at end of file
+#endif
--- a/machine_ps3.h	Fri Oct 23 21:58:39 2015 +0000
+++ b/machine_ps3.h	Tue Oct 27 07:49:43 2015 +0000
@@ -51,7 +51,7 @@
     if(speed1<0) {
         Move_r_Motor_CCW    = 1;
         Move_r_Motor_CW     = 0;
-        Move_r_Motor_PWM    = abs(speed1);
+        Move_r_Motor_PWM    = -speed1;
     } else {
         Move_r_Motor_CCW    = 0;
         Move_r_Motor_CW     = 1;
@@ -64,7 +64,7 @@
     if(speed2<0) {
         Move_l_Motor_CCW    = 1;
         Move_l_Motor_CW     = 0;
-        Move_l_Motor_PWM    = abs(speed2);
+        Move_l_Motor_PWM    = -speed2;
     } else {
         Move_l_Motor_CCW    = 0;
         Move_l_Motor_CW     = 1;
@@ -113,4 +113,4 @@
     direction_controller.reset();
 }
 
-#endif /*machine.h*/
\ No newline at end of file
+#endif /*machine.h*/
--- a/main_ps3.cpp	Fri Oct 23 21:58:39 2015 +0000
+++ b/main_ps3.cpp	Tue Oct 27 07:49:43 2015 +0000
@@ -16,6 +16,8 @@
 //相手妨害モードいらない new!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 //赤チームモード、相手チーム側の射出位置調整
 
+short swingf=0;
+
 /***コース選択***/
 //#define BLUE
 #define RED
@@ -123,11 +125,13 @@
                 if(!skip) sendData(1,2);
                 CStep=4;
             }
-            if((x<6650.0+deff)&&(CStep==4)) {
+//            if((x<6650.0+deff)&&(CStep==4)) {
+            if((x<6580.0+deff)&&(CStep==4)) {
                 if(!skip) sendData(1,5);
                 CStep=5;
             }
-            if((x<6170.0+deff)&&(CStep==5)) {
+//            if((x<6170.0+deff)&&(CStep==5)) {
+            if((x<6100.0+deff)&&(CStep==5)) {
                 if(!skip) sendData(1,4);
                 CStep=6;
             }
@@ -327,8 +331,8 @@
             /////////////////////////////////////////////////////////////////////////
             /*****************************Opponents Mode****************************/
             if((step==15)&&((5700.0>x)&&(x>50.0))) {
-                targ_sita=-0.035;
-//                targ_sita=-0.055;
+//                targ_sita=-0.035;
+                targ_sita=-0.025;
                 step=16;
             }
 //            if((step==16)&&(x>2800.0+deff)){
@@ -348,13 +352,13 @@
                 step=114;
             }
             
-            if((x>1350.0+deff)&&(CStep==15)){
-//            if((x>1440.0+deff)&&(CStep==15)){
+//            if((x>1350.0+deff)&&(CStep==15)){
+            if((x>1400.0+deff)&&(CStep==15)){
                 sendData(1,4);
                 CStep=16;
             }
-//            if((x>2750.0+deff)&&(CStep==16)){
-            if((x>2650.0+deff)&&(CStep==16)){
+            if((x>2700.0+deff)&&(CStep==16)){
+//            if((x>2650.0+deff)&&(CStep==16)){
 //            if((x>2850.0+deff)&&(CStep==16)){
                 sendData(1,5);
                 CStep=17;
@@ -398,7 +402,7 @@
             manualPS3();       /*PS3 button*/
 #endif
             //Swing
-            swingFollowing();
+            if(swingf) swingFollowing();
             flaga=0;
 #ifdef MESURE
             if(down){
@@ -420,4 +424,4 @@
 //        pc.printf("A2 = %d, X = %d, Y = %d, B = %d, dead = %d\r\n", a2, X, Y, b, deadflag);
 //        pc.printf("%f %f %f\r\n",cont,swingRadVelocity, (double)SwingSens.getPulses());
     }
-}
\ No newline at end of file
+}
--- a/manualMode.h	Fri Oct 23 21:58:39 2015 +0000
+++ b/manualMode.h	Tue Oct 27 07:49:43 2015 +0000
@@ -1,12 +1,15 @@
 #ifndef MANUALMODE_H
 #define MANUALMODE_H
 
+//赤修正
+
 #ifdef IM920
 void manualMoveIM920()
 {
+#ifdef BLUE
     if(Y<2) {
-        Move_l(-0.65);
-        Move_r(0.63);
+        Move_l(-0.6);
+        Move_r(0.6);
     } 
     else if(Y>6) {
         Move_l(0.6);
@@ -15,15 +18,37 @@
     else {
         if(X<2) {
             Move_l(0.6);
-            Move_r(0.63);
+            Move_r(0.6);
         } else if(X>6) {
-            Move_l(-0.65);
+            Move_l(-0.6);
             Move_r(-0.6);
         } else {
             Move_l(0.0);
             Move_r(0.0);
         }
     }
+#else
+    if(Y<2) {
+        Move_l(0.6);
+        Move_r(-0.6);
+    }
+    else if(Y>6) {
+        Move_l(-0.6);
+        Move_r(0.6);
+    }
+    else {
+        if(X<2) {
+            Move_l(-0.6);
+            Move_r(-0.6);
+        } else if(X>6) {
+            Move_l(0.6);
+            Move_r(0.6);
+        } else {
+            Move_l(0.0);
+            Move_r(0.0);
+        }
+    }
+#endif
 }
 void manualIM920()
 {
@@ -47,6 +72,7 @@
             edge5=0;
             resetSwingSpeed = 1;
             interruptSwingSpeed.attach(&countSwingSpeed, 0.05);
+            swingf=1;
 //            targSwingRadVelocity = swingspeed;
             /*for(float i=0.0;i<0.6;i+=0.01){
                 Motor_swing=i;
@@ -65,7 +91,8 @@
         interruptSwingSpeed.detach();
         targSwingRadVelocity = 0.0;
         contSwing.reset();
-//        Motor_swing = 0.0;
+        swingf=0;
+        Motor_swing = 0.0;
     }
     else if(b==1){  /*L down*/
         if(edge1){
@@ -107,6 +134,7 @@
 #else
 void manualMovePS3()
 {
+#ifdef BLUE
     if(analog_ly>50) {
         Move_l(-0.4);
         Move_r(0.4);
@@ -127,6 +155,28 @@
             Move_r(0.0);
         }
     }
+#else
+    if(analog_ly>50) {
+        Move_l(0.4);
+        Move_r(-0.4);
+    }
+    else if(analog_ly<-50) {
+        Move_l(-0.4);
+        Move_r(0.4);
+    }
+    else {
+        if(analog_lx>50) {
+            Move_l(-0.6);
+            Move_r(-0.6);
+        } else if(analog_lx<-50) {
+            Move_l(0.6);
+            Move_r(0.6);
+        } else {
+            Move_l(0.0);
+            Move_r(0.0);
+        }
+    }
+#endif
 }
 void manualPS3(){
     if(circle){  /*mode change*/
@@ -135,18 +185,29 @@
             autoflag=1;
             Indicator4=1;
             IndicatorAuto=0;
+            Move_l(0.0);
+            Move_r(0.0);
             resetState();
+            flaga=0;
+            step=114;
+            CStep=114;
+            spcount=speed;
         }
     }
     else if(triangle){
         if(edge_triangle){
             edge_triangle=0;
-            targSwingRadVelocity = swingspeed;
+            resetSwingSpeed = 1;
+            interruptSwingSpeed.attach(&countSwingSpeed, 0.05);
+            swingf=1;
         }
     }
     else if(cross){
+        interruptSwingSpeed.detach();
         targSwingRadVelocity = 0.0;
         contSwing.reset();
+        swingf=0;
+        Motor_swing = 0.0;
     }
     else if(square){
         if(edge_square){
@@ -163,31 +224,31 @@
     else if(l1){  /*L up*/
         if(edge_l1){
             edge_l1=0;
-            if(stateL!=1) stateL--;
+            if(stateL!=92) stateL++;
             sendData(4,stateL);
         }
     }
     else if(l2){  /*L down*/
         if(edge_l2){
             edge_l2=0;
-            if(stateL!=MAX_VALUE) stateL++;
+            if(stateL!=1) stateL--;
             sendData(4,stateL);
         }
     }
     else if(r1){  /*R up*/
         if(edge_r1){
             edge_r1=0;
-            if(stateR!=1) stateR--;
+            if(stateR!=92) stateR++;
             sendData(5,stateR);
         }
     }
     else if(r2){  /*R down*/
         if(edge_r2){
             edge_r2=0;
-            if(stateR!=MAX_VALUE) stateR++;
+            if(stateR!=1) stateR--;
             sendData(5,stateR);
         }
     }
 }
 #endif 
-#endif /*manualMode.h*/
\ No newline at end of file
+#endif /*manualMode.h*/