ライントレースサンプルプログラム。左モータにてデジタル閾値GRAYの調整を可能とした。GRAY調整により、旋回の反応性・マーカの判別精度に変化が見られるか検証すること。

Dependencies:   mbed AQM0802 CRotaryEncoder TB6612FNG

Files at this revision

API Documentation at this revision

Comitter:
GGU
Date:
Thu Aug 29 04:33:39 2019 +0000
Parent:
12:dc4c569248d7
Commit message:
test;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r dc4c569248d7 -r 899b2842ef95 main.cpp
--- a/main.cpp	Thu Aug 29 00:59:01 2019 +0000
+++ b/main.cpp	Thu Aug 29 04:33:39 2019 +0000
@@ -6,13 +6,13 @@
 
 
 //☆★☆★各種パラメータ調整箇所☆★☆★☆★
-#define     DEFAULT_SPEED   800     //1走目の基本速度[mm/sec]
+#define     DEFAULT_SPEED   950     //1走目の基本速度[mm/sec]
 #define     TURN_POWER      0.5     //コースアウト時の旋回力
-#define     PULSE_TO_UM     30      //エンコーダ1パルス当たりのタイヤ移動距離[um]
+#define     PULSE_TO_UM     28      //エンコーダ1パルス当たりのタイヤ移動距離[um]
 #define     INTERRUPT_TIME  1000    //割りこみ周期[us]
 #define     DEFAULT_GRAY    0.5f    //フォトリフレクタデジタル入力の閾値
                                     //シリアル通信でSensor_Digital値を確認し調整する。
-#define     MARKER_WIDTH    15      //マーカ幅[mm](ビニルテープ幅19[mm]以内)
+#define     MARKER_WIDTH    11000      //マーカ幅[um](ビニルテープ幅19000[um]以内)
                                     //コースの傷によってマーカ誤検知する場合は値を大きくする。
 #define     CROSS_JUDGE     4       //ラインセンサいくつ以上白線検知で交差点認識するか設定。
 //モータ速度のゲイン関連(むやみに調整しない)
@@ -21,12 +21,12 @@
 
 //フォトリフレクタのゲイン(外側に行くにつれ値を何倍させたいか調整する。)
 #define     S_K1            1.0f    //float演算させる値には必ずfを付ける
-#define     S_K2            2.0f    //2倍
-#define     S_K3            4.0f    //4倍
+#define     S_K2            2.4f    //2倍
+#define     S_K3            4.7f    //4倍
 
 //ラインセンサ各種制御成分
-#define     S_KP            0.5f    //ラインセンサ比例成分。大きいほど曲がりやすい
-#define     S_KD            0.3f    //ラインセンサ微分成分。大きいほど急なラインずれに強くなる。
+#define     S_KP            1.2f    //ラインセンサ比例成分。大きいほど曲がりやすい
+#define     S_KD            0.5f    //ラインセンサ微分成分。大きいほど急なラインずれに強くなる。
 //////////☆★☆★☆★☆★☆★//////////////
 
 
@@ -311,7 +311,7 @@
     while(1){
         Old_Sw_Ptn=Sw_Ptn;  //過去のスイッチ入力情報を退避
         Sw_Ptn=push_sw;     //現在のスイッチ入力情報の取得
-        if((!(Old_Machine_Status&=STOP))&&(Machine_Status&=STOP)){//走行終了時
+        if((!(Old_Machine_Status&STOP))&&(Machine_Status&STOP)){//走行終了時
             lcd.locate(0,0);
             lcd.print("     ");
             lcd.locate(0,0);