driver
Dependencies: HMC6352 PID mbed
Fork of ver3_1_0 by
main.h
- Committer:
- yusuke_robocup
- Date:
- 2014-01-24
- Revision:
- 1:3b61675573b1
- Parent:
- 0:bde8ed56b164
File content as of revision 1:3b61675573b1:
#define RATE 0.052 #define Long 1.0 #define ENTER 0 #define EXIT 1 #define X 0 #define Y 1 #define MOT_NUM 4 #define MOTDRIVER_WAIT 300 //ms #define BAUD_RATE 115200 #define BAUD_RATE2 19200 #define BUT_WAIT 0.3 //s #define ON 1 #define OFF 0 #define PING_ERROR 0xFFFF #define PI 3.14159265 #define MOT1 1.0 #define MOT2 1.0 #define MOT3 1.0 #define MOT4 1.0 #define PID_BIAS 0.0 #define REFERENCE 180.0 #define MINIMUM 0.0 #define MAXIMUM 360.0 #define PID_CYCLE 0.06 //s #define P_GAIN 0.65 //0.78 #define I_GAIN 0.0 //0.0 #define D_GAIN 0.009 //0.009 #define OUT_LIMIT 30.0 #define MAX_POW 100 #define MIN_POW -100 DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); BusOut mbedleds(LED4,LED3,LED2,LED1); HMC6352 compass(p9, p10); Serial driver(p28, p27); // tx, rx Serial device2(p13, p14); // tx, rx Serial pc(USBTX, USBRX); // tx, rx DigitalIn StartButton(p21); DigitalIn CalibEnterButton(p22); DigitalIn CalibExitButton(p23); DigitalIn EEPROMButton(p24); 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{ XNORMAL, LEFT_OUT, RIGHT_OUT, }; enum{ YNORMAL, FRONT_OUT, BACK_OUT, }; enum{ HOME_WAIT, DIFFENCE, WARNING, HOLD, }; enum{ NONE, ATTACK, SNAKE, SEARCH }; PinName adc_num[6] = { p15, p16, p17, p18, 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 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; extern uint8_t direction; extern uint8_t Distance; extern uint8_t IR_found; extern uint8_t xbee; extern int irDistance[6]; extern void array(int,int,int,int); extern void dev_rx(void); extern void dev_tx(void); extern uint16_t ultrasonicVal[4]; int stand[6]; uint8_t compFlag = 0; #define FRONT_SONIC ultrasonicVal[0] #define BACK_SONIC ultrasonicVal[2] #define RIGHT_SONIC ultrasonicVal[1] #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 } };