ジャパンオープン用のメインプログラム

Dependencies:   mbed AQM1602 HMC6352 PID

Revision:
0:ea35c18c85fc
Child:
1:3e013ae7900d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/setting/def.h	Sat Feb 27 09:14:37 2016 +0000
@@ -0,0 +1,161 @@
+#ifndef _DEF_H_
+#define _DEF_H_
+
+//BT(BlueTooth)
+#define DATA_NUM 8+2//2byte→KEYCODE(拝啓)とCHECKCODE(敬具) 8byte→やりとりするデータ
+#define TX_KEYCODE 0xAA//あちらのKEYCODE
+#define RX_KEYCODE 0xAA//こちらのKEYCODE
+#define KEY 0//KEYCODEは配列の最初
+#define CHECK DATA_NUM-1//CHECKCODEは配列の最後
+
+
+//Switch 入力値
+#define NONE    0
+#define UP      1
+#define DOWN    2
+#define RIGHT   3
+#define LEFT    4
+
+//Lcd 設定値
+#define BUFSIZE 10
+#define STATE_NUM_X 0x04
+#define STATE_NUM_Y 0x10
+//繰り返し割り込み
+#define DUTY_NUM 1
+
+#define DUTY_SW     0
+#define DUTY_GYRO   1
+#define DUTY_PING   2
+#define DUTY_COLOR  3
+#define DUTY_MOUSE  4
+
+/*PID処理*/
+#define RATE    0.052//52
+#define PID_BIAS    1.0
+#define REFERENCE   180.0
+#define MINIMUM     0.0
+#define MAXIMUM     359.9
+#define P_GAIN  1.3//1.25//0.8    //0.78   
+#define I_GAIN  0.0     //0.0
+#define D_GAIN  0.01//0.01  //0.009
+#define OUT_LIMIT   30.0
+#define MAX_POW     100
+#define MIN_POW     -100
+#define PID_CYCLE   0.05   //s
+
+//ir 
+#define IR_X 0
+#define IR_Y 1
+#define IR_SHORT 0
+#define IR_LONG 1
+
+#define X_AXIS 0
+#define Y_AXIS 1
+
+//ping
+#define L_PING 0
+#define R_PING 1
+#define F_PING 2
+#define B_PING 3
+
+//0,1...main
+//2,3...debug board
+
+//line
+#define A_SPOT 0
+#define B_SPOT 1
+#define C_SPOT 2
+#define AB_SPOT 3
+
+#define LINE_RF 5
+#define LINE_DELAY 0.5
+
+//思考パターン
+#define STRATEGY_NUM 12
+
+//計算
+#define ROUND(x) ((x > 0) ? (x + 0.5) : (x - 0.5))//x...整数
+#define PI  3.14159265358979323846
+#define DEG2RAD(deg)  (PI*(deg)/180.0)
+#define RAD2DEG(rad)  (180.0(rad)/PI)
+
+//データ
+typedef struct {//ir,line,gyro,mouse,ping
+    //ping
+    uint8_t ping[4];
+    //ir
+    uint8_t irKey;
+    uint8_t irNotice;
+    uint8_t irSpot[2];
+    uint8_t irPosition;
+    uint8_t IrFlag;
+    //line
+    uint8_t lnFlag[3];
+    uint8_t ball;
+    uint8_t KickOffFlag;
+    //uint8_t LineBind[4];//宣言すると動かない⇒構造体の限界
+    uint8_t KickFlag;
+    //motor 
+    int32_t motorlog[2];
+    uint8_t MotorFlag;
+    double s_pow;
+    double l_pow;
+    //cmps&pid
+    uint8_t PidFlag;
+    double cmps, CmpsInitialValue, CmpsDiff, FrontDeg;//0<x<360
+    double InputPID;//<<gyrosensor
+    int16_t OutputPID;//>>motor
+    uint8_t strategy;
+    uint8_t init_point_flag;
+    uint8_t stopflag;
+} Record;
+//NewStruct
+typedef struct {
+    //cmps&pid
+    double cmps, CmpsInitialValue, CmpsDiff, FrontDeg;//0<x<360
+    double InputPID;//<<gyrosensor
+    int16_t OutputPID;//>>motor
+} CompassVal;
+typedef struct {
+    //ping
+    uint8_t ping[4];
+    //line
+    uint8_t lineSpot[3];
+    //ir(spi)
+    uint8_t irKey;//2bit
+    uint8_t irValPhaseS;//3bit
+    uint8_t irValPhaseL;//3bit
+    uint8_t irSpot[2];//4*2bit
+    //ir(playing)
+    uint8_t irNotice;
+    uint8_t irPosition;
+    //ball
+    uint8_t ball;
+} SensorVal;
+typedef struct {
+    //line
+    uint8_t lnFlag[3];
+    uint8_t Flag[3];
+    uint8_t Priority[3];
+    uint8_t Bind[3];
+} LineVal;
+typedef struct {
+    //system,flag
+    uint8_t strategy;
+    //uint8_t init_point_flag;
+    uint8_t jump_flag;//0<=x<=STATE_NUM_Y
+    uint8_t stopflag;
+    uint8_t KickOffFlag;
+    uint8_t DribbleFlag;
+    uint8_t KickFlag;
+    uint8_t MotorFlag;
+    uint8_t IrFlag;
+    uint8_t UswFlag;
+    uint8_t UswFlag_2;
+    uint8_t PidFlag;
+    //motor 
+    double s_pow;
+    double l_pow;
+    int8_t dri_pow;
+} SystemVal;
+#endif
\ No newline at end of file