Takuya Kobayashi / Mbed 2 deprecated mbed_linetrace_termC

Dependencies:   mbed

Revision:
2:47477c2b1925
Parent:
1:5c26d3744592
Child:
3:e8c29cd3ca22
diff -r 5c26d3744592 -r 47477c2b1925 main.cpp
--- a/main.cpp	Thu Nov 15 06:40:44 2018 +0000
+++ b/main.cpp	Fri Nov 16 07:12:57 2018 +0000
@@ -2,12 +2,12 @@
 
 #define KP 5.8  //Pゲイン
 #define CHG 1.0 //change_gray用の係数
-#define WHITE_CL 0.88   //初期値
-#define WHITE_CR 0.88    //初期値
-#define GRAY_CL 0.65    //初期値
-#define GRAY_CR 0.65     //初期値
-#define GRAY_L 0.26     //初期値
-#define GRAY_R 0.25     //初期値
+#define WHITE_CL 0.92   //初期値
+#define WHITE_CR 0.70    //初期値
+#define GRAY_CL 0.46    //初期値
+#define GRAY_CR 0.5     //初期値
+#define GRAY_L 0.28     //初期値
+#define GRAY_R 0.28     //初期値
 
 #define DEBUG
 
@@ -29,10 +29,10 @@
 
 float whiteCL[2], whiteCR[2], grayCL[2], grayCR[2]; //[1]が初期設定の基準値,[0]が変動する閾値
 float grayL[2], grayR[2];
-float blackCL = 0.12;   //閾値の跡地
+float blackCL = 0.18;   //閾値の跡地
 float blackCR = 0.3;   //↑と同じ
-float whiteL = 0.27, blackL = 0.22;
-float whiteR = 0.28, blackR = 0.22;
+float whiteL = 0.35, blackL = 0.23;
+float whiteR = 0.35, blackR = 0.23;
 float sensor[4];    //sensor[0]:sensorL ... sensor[3]:sensorR
 float pr, pl;
 
@@ -50,45 +50,45 @@
 }
 
 void go_straight_p(){   //P制御でトレース
-    Mrighti = 1;
+    Mrighti = 2;
     Mrightp = (KP * pr) * 1.0f;
-    Mlefti = 1;
+    Mlefti = 2;
     Mleftp = (KP * pl) * 1.0f;
     ledR = 1;
     ledL = 1;
 }
 
 void go_straight_CR(){  //CRのみでトレース
-    Mrighti = 1;
+    Mrighti = 2;
     Mrightp = (KP * pr + 0.3) * 1.0f;
-    Mlefti = 1;
+    Mlefti = 2;
     Mleftp = (1.3 - KP * pr) * 1.0f;
     ledRR = 0b11;
     ledLL = 0b10;
 }
 
 void go_straight_CL(){  //CLのみでトレース
-    Mrighti = 1;
+    Mrighti = 2;
     Mrightp = (1.3 - KP * pl) * 1.0f;
-    Mlefti = 1;
+    Mlefti = 2;
     Mleftp = (KP * pl + 0.3) * 1.0f;
     ledRR = 0b10;
     ledLL = 0b11;
 }
 
 void turn_right(){
-    Mrighti = 2;
+    Mrighti = 1;
     Mrightp = 0.05f;
-    Mlefti = 1;
+    Mlefti = 2;
     Mleftp = 0.1f;
     ledR = 1;
     ledL = 0;
 }
 
 void turn_left(){
-    Mrighti = 1;
+    Mrighti = 2;
     Mrightp = 0.1f;
-    Mlefti = 2;
+    Mlefti = 1;
     Mleftp = 0.05f;
     ledR = 0;
     ledL = 1;
@@ -121,16 +121,16 @@
 }
 
 void motor_check(){   //モータドライバの調子の確認用
-    Mrighti = 1;
+    Mrighti = 2;
     Mrightp = 1.0f;
-    Mlefti = 1;
+    Mlefti = 2;
     Mleftp = 1.0f;
 }
 
 void stop_point(){
-    Mrighti = 2;
+    Mrighti = 1;
     Mrightp = 1.0f;
-    Mlefti = 2;
+    Mlefti = 1;
     Mleftp = 1.0f;
     wait(0.05);
     Mrighti = 0;
@@ -182,7 +182,7 @@
     ledC = 1;
     set_threshold();
     motor_check();
-    wait(0.5);
+    wait(5.0);
     while(1) {
         sensor[0] = sensorL.read();
         sensor[1] = sensorCL.read();
@@ -214,4 +214,21 @@
             break;
         }
     }
-}
\ No newline at end of file
+}
+
+/*以下メモ
+・段差
+        if( sensor[0] > 閾値){
+            wait(0.5);  //片輪上がるまで待ちたい
+            sensor[2] = read.sensorCR;
+            go_straight_CR();
+        } else if( sensor[3] > 閾値){
+            wait(0.5)   //片輪上がるまで待ちたい
+            sensor[1] = read.sensorCL;
+            go_straight_CL();
+        }
+
+・プログラムの切り替え
+回転動作をしたら(完了したら)カウント
+⇒回転を一発で決める必要有
+*/