2020_TeamA / Mbed 2 deprecated somaomuni2

Dependencies:   mbed YKNCT_Movement SBDBT BNO055 YKNCT_MD YKNCT_I2C

Revision:
12:1daa4d490a12
Parent:
11:80b1daeb243f
Child:
13:e4de7896f808
--- a/main.cpp	Mon Mar 23 07:39:52 2020 +0000
+++ b/main.cpp	Tue Mar 24 07:22:31 2020 +0000
@@ -185,12 +185,65 @@
                     if(UB) auto_mode++;
                     break;
 
-                /* 〇〇の処理 */
+                /* 〇〇の処理(青ゾーン) */
                 case 1:
-                    /* 〇〇の時次のステップに */
-                    if(omuni_control(1000, 1000, 360, 100) == 1) auto_mode++;
+                    if(omuni_control(1950, 1250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 2:
+                    if(omuni_control(1950, 2750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 3:
+                    if(omuni_control(510, 2750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 4:
+                    if(omuni_control(510, 4250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 5:
+                    if(omuni_control(1950, 4250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 6:
+                    if(omuni_control(1950, 5750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 7:
+                    if(omuni_control(1210, 5750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 8:
+                    if(omuni_control(1210, 9000, 0, 100) == 1) auto_mode++;
+                    break;
+                case 9:
+                    if(omuni_control(5515, 9000, 0, 100) == 1) auto_mode++;
                     break;
 
+                /* 〇〇の処理(赤ゾーン) */
+                /*case 1:
+                    if(omuni_control(-1950, 1250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 2:
+                    if(omuni_control(-1950, 2750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 3:
+                    if(omuni_control(-510, 2750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 4:
+                    if(omuni_control(-510, 4250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 5:
+                    if(omuni_control(-1950, 4250, 0, 100) == 1) auto_mode++;
+                    break;
+                case 6:
+                    if(omuni_control(-1950, 5750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 7:
+                    if(omuni_control(-1210, 5750, 0, 100) == 1) auto_mode++;
+                    break;
+                case 8:
+                    if(omuni_control(-1210, 9000, 0, 100) == 1) auto_mode++;
+                    break;
+                case 9:
+                    if(omuni_control(-5515, 9000, 0, 100) == 1) auto_mode++;
+                    break;
+                    */
+
                 /* 終了処理 */
                 default:
                     auto_mode=0;
@@ -334,7 +387,7 @@
  * @引数   tar_x    :目標のx座標
  * @引数   tar_y    :目標のy座標
  * @引数   tar_theta:目標角
- * @引数   error    :次ステップに進む基準とする距離 
+ * @引数   error    :次ステップに進む基準とする距離
  * @返り値 0(継続) 1(移動完了)
 *******************************************************************************/
 int omuni_control(int tar_x, int tar_y, int tar_theta, int error)
@@ -363,8 +416,8 @@
         dis_flag=1;
     }
 
-    int x_val = 0, x_acc_val = 0, x_dec_val = 0, Px = 0;
-    int y_val = 0, y_acc_val = 0, y_dec_val = 0, Py = 0;
+    int x_val = 0, /*x_acc_val = 0,*/ x_dec_val = 0, Px = 0;
+    int y_val = 0, /*y_acc_val = 0,*/ y_dec_val = 0, Py = 0;
     int t_val = 0;
     int P_dis = 0, r = 0;
     int Max[2] = {0}, Min[2] = {0}, x = 0, y = 0;
@@ -405,14 +458,14 @@
             }
         }
     }
-    /* x=定数の式(縦の直線)になった時 */ 
+    /* x=定数の式(縦の直線)になった時 */
     else {
         r = sqrt(pow(NowAcc.X,2)+pow(NowAcc.Y,2)) * 1.5;
         /* 半径の最大を設定 */
         r = Rest(r, 100);
         for(y=Min[1]; y<=Max[1]; y++) {
             P_dis = y;
-            
+
             Px = tar_x;
             if(P_dis == r && ABS(tar_y - y) < ABS(tar_y - NowLoc.Y)) {
                 Py = y;
@@ -425,11 +478,13 @@
     x_dec_val = ABS((Px - NowLoc.X) * 0.06);
     y_dec_val = ABS((Py - NowLoc.Y) * 0.06);
     /* 加速処理の値代入 */
-    x_acc_val=ABS((int)Acc_time.read_ms() * 0.15);
-    y_acc_val=ABS((int)Acc_time.read_ms() * 0.15);
+    /*x_acc_val=ABS((int)Acc_time.read_ms() * 0.15);
+    y_acc_val=ABS((int)Acc_time.read_ms() * 0.15);*/
     /* 低い方の値代入 */
-    x_val = M_MIN(x_acc_val, x_dec_val);
-    y_val = M_MIN(y_acc_val, y_dec_val);
+    /*x_val = M_MIN(x_acc_val, x_dec_val);
+    y_val = M_MIN(y_acc_val, y_dec_val);*/
+    x_val = x_dec_val;
+    y_val = y_dec_val;
 
     /* 最低を決める */
     x_val = M_MAX(x_val, 20);