ライントレースサンプルプログラム。左モータにてデジタル閾値GRAYの調整を可能とした。GRAY調整により、旋回の反応性・マーカの判別精度に変化が見られるか検証すること。
Dependencies: mbed AQM0802 CRotaryEncoder TB6612FNG
Revision 13:899b2842ef95, committed 2019-08-29
- 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 |
--- 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);