driver

Dependencies:   HMC6352 PID mbed

Fork of ver3_1_0 by ryo seki

Revision:
1:3b61675573b1
Parent:
0:bde8ed56b164
--- a/main.h	Wed Jun 19 08:42:55 2013 +0000
+++ b/main.h	Fri Jan 24 06:27:03 2014 +0000
@@ -29,9 +29,9 @@
 
 #define PID_CYCLE   0.06    //s
 
-#define P_GAIN  0.75    //0.78   
+#define P_GAIN  0.65    //0.78   
 #define I_GAIN  0.0     //0.0
-#define D_GAIN  0.006   //0.009
+#define D_GAIN  0.009   //0.009
     
 #define OUT_LIMIT   30.0
 #define MAX_POW     100
@@ -53,14 +53,20 @@
 PID pid(P_GAIN,I_GAIN,D_GAIN, RATE);      //battery is low power version 30.0 0.58 1.0 0.015    battery is high power version   30.0 0.42, 1.0, 0.013   power is low but perfect 20.0 0.45, 0.0, 0.010
 Ticker pidUpdata;
 Ticker irDistanceUpdata;
+Ticker underIR;
 Timer timer1;
 Timer Survtimer;
+Timer lasttimer;
 LocalFileSystem local("local");  // マウントポイントを定義(ディレクトリパスになる)
 
 enum{
-    NORMAL,
+    XNORMAL,
     LEFT_OUT,
     RIGHT_OUT,
+};
+
+enum{
+    YNORMAL,
     FRONT_OUT,
     BACK_OUT,
 };
@@ -72,6 +78,13 @@
     HOLD,
 };
 
+enum{
+    NONE,
+    ATTACK,
+    SNAKE,
+    SEARCH
+};
+
 PinName adc_num[6] = {
     p15,
     p16,
@@ -80,16 +93,25 @@
     p19,
     p20,
 };
+
+int under_val[6] = {0};
+
+int whiteout_flag = 0;
+
 double standTu = 0;
 int speed[MOT_NUM] = {0};
 uint8_t hold_flag = 0;
 uint8_t state = HOME_WAIT;
-uint8_t lineState = NORMAL;
+uint8_t lineStateY = YNORMAL;
+uint8_t lineStateX = XNORMAL;
 
 double inputPID = 180.0;
 static double standard;
 double compassPID = 0.0;
 
+int whiteout;
+int whitevalue;
+
 extern int diff;
 
 extern string StringFIN;
@@ -116,3 +138,44 @@
 #define LEFT_SONIC  ultrasonicVal[3]    
 
 
+double ball_sankaku[16][2] = {
+    {0     , 1    },
+    {0.390 , 0.920},
+    {0.866 , 0.500},
+    {0.927 , 0.374},
+    {1     , 0    },
+    {0.920 ,-0.390},
+    {0.707 ,-0.707},
+    {0.374 ,-0.927},
+    {0     ,-1    },
+    {-0.390,-0.920},
+    {-0.707,-0.707},
+    {-0.927,-0.374},
+    {-1    , 0    },
+    {-0.920, 0.390},
+    {-0.866, 0.500},
+    {-0.374, 0.927}
+};
+
+double turn_sankaku[16][2] = {
+    { 0    ,0      },
+    /*{ 1    ,0      },*/{ 0.920,-0.390 },
+    { 0.707,-0.707 }, //{ 0.500,-0.866 },
+    { 0.374,-0.927 },
+    { 0    ,-0.8   },
+    {-0.390,-0.920 },
+    {-0.707,-0.707 },
+    {-0.927,-0.374 },
+    {-0.927,-0.374 },
+    {0.920 ,-0.390 },
+    {0.707 ,-0.707 },
+    {0.374 ,-0.927 },
+    {0     ,-0.8   },
+    {-0.390,-0.920 },
+    {-0.707,-0.707 }, //{-0.500,-0.866 },
+    /*{-1    ,0      }*/{-0.927,-0.374 }
+};
+
+
+
+