Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed YKNCT_Movement SBDBT BNO055 YKNCT_MD YKNCT_I2C
Diff: main.cpp
- 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);