Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

setting/def.h

Committer:
lilac0112_1
Date:
2016-02-25
Revision:
45:c23f25c00d0d
Parent:
42:02aaa806d929

File content as of revision 45:c23f25c00d0d:

#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

//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 RELEASE_VAL 150

//思考パターン
#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[2];
    //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;
    int32_t mouse[2];//0...x,1...y//1cm nearlyeq 1000count
    //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 color[3];
    //uint8_t lcdpoint[2];//0...x,1...y
    uint8_t strategy;
    uint8_t init_point_flag;
    uint8_t stopflag;
} Record;

#endif