final

Committer:
akudohune
Date:
Wed May 01 08:47:59 2013 +0000
Revision:
0:fb6510639aa4
aa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akudohune 0:fb6510639aa4 1
akudohune 0:fb6510639aa4 2
akudohune 0:fb6510639aa4 3 #define RATE 0.052
akudohune 0:fb6510639aa4 4 #define Long 1.0
akudohune 0:fb6510639aa4 5 #define ENTER 0
akudohune 0:fb6510639aa4 6 #define EXIT 1
akudohune 0:fb6510639aa4 7 #define MOT_NUM 4
akudohune 0:fb6510639aa4 8 #define MOTDRIVER_WAIT 300 //ms
akudohune 0:fb6510639aa4 9 #define BAUD_RATE 115200
akudohune 0:fb6510639aa4 10 #define BAUD_RATE2 19200
akudohune 0:fb6510639aa4 11 #define BUT_WAIT 0.3 //s
akudohune 0:fb6510639aa4 12 #define ON 1
akudohune 0:fb6510639aa4 13 #define OFF 0
akudohune 0:fb6510639aa4 14
akudohune 0:fb6510639aa4 15 #define PING_ERROR 0xFFFF
akudohune 0:fb6510639aa4 16
akudohune 0:fb6510639aa4 17 #define MOT1 1.0
akudohune 0:fb6510639aa4 18 #define MOT2 1.0
akudohune 0:fb6510639aa4 19 #define MOT3 1.0
akudohune 0:fb6510639aa4 20 #define MOT4 1.0
akudohune 0:fb6510639aa4 21
akudohune 0:fb6510639aa4 22 #define PID_BIAS 0.0
akudohune 0:fb6510639aa4 23 #define REFERENCE 180.0
akudohune 0:fb6510639aa4 24 #define MINIMUM 0.0
akudohune 0:fb6510639aa4 25 #define MAXIMUM 360.0
akudohune 0:fb6510639aa4 26
akudohune 0:fb6510639aa4 27 #define PID_CYCLE 0.06 //s
akudohune 0:fb6510639aa4 28
akudohune 0:fb6510639aa4 29 #define P_GAIN 0.60
akudohune 0:fb6510639aa4 30 #define I_GAIN 0.0
akudohune 0:fb6510639aa4 31 #define D_GAIN 0.010
akudohune 0:fb6510639aa4 32
akudohune 0:fb6510639aa4 33 #define OUT_LIMIT 30.0
akudohune 0:fb6510639aa4 34 #define MAX_POW 100
akudohune 0:fb6510639aa4 35 #define MIN_POW -100
akudohune 0:fb6510639aa4 36
akudohune 0:fb6510639aa4 37 DigitalOut led1(LED1);
akudohune 0:fb6510639aa4 38 DigitalOut led2(LED2);
akudohune 0:fb6510639aa4 39 DigitalOut led3(LED3);
akudohune 0:fb6510639aa4 40 DigitalOut led4(LED4);
akudohune 0:fb6510639aa4 41 BusOut mbedleds(LED4,LED3,LED2,LED1);
akudohune 0:fb6510639aa4 42 HMC6352 compass(p9, p10);
akudohune 0:fb6510639aa4 43 Serial driver(p28, p27); // tx, rx
akudohune 0:fb6510639aa4 44 Serial device2(p13, p14); // tx, rx
akudohune 0:fb6510639aa4 45 Serial pc(USBTX, USBRX); // tx, rx
akudohune 0:fb6510639aa4 46 DigitalIn StartButton(p21);
akudohune 0:fb6510639aa4 47 DigitalIn CalibEnterButton(p22);
akudohune 0:fb6510639aa4 48 DigitalIn CalibExitButton(p23);
akudohune 0:fb6510639aa4 49 DigitalIn EEPROMButton(p24);
akudohune 0:fb6510639aa4 50 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
akudohune 0:fb6510639aa4 51 Ticker pidUpdata;
akudohune 0:fb6510639aa4 52 Timer timer1;
akudohune 0:fb6510639aa4 53 Timer Survtimer;
akudohune 0:fb6510639aa4 54 LocalFileSystem local("local"); // マウントポイントを定義(ディレクトリパスになる)
akudohune 0:fb6510639aa4 55
akudohune 0:fb6510639aa4 56 enum{
akudohune 0:fb6510639aa4 57 HOME_WAIT,
akudohune 0:fb6510639aa4 58 DIFFENCE,
akudohune 0:fb6510639aa4 59 WARNING,
akudohune 0:fb6510639aa4 60 HOLD,
akudohune 0:fb6510639aa4 61 };
akudohune 0:fb6510639aa4 62
akudohune 0:fb6510639aa4 63
akudohune 0:fb6510639aa4 64 double standTu = 0;
akudohune 0:fb6510639aa4 65 int speed[MOT_NUM] = {0};
akudohune 0:fb6510639aa4 66 uint8_t hold_flag = 0;
akudohune 0:fb6510639aa4 67 uint8_t state = HOME_WAIT;
akudohune 0:fb6510639aa4 68
akudohune 0:fb6510639aa4 69 float inputPID = 180.0;
akudohune 0:fb6510639aa4 70 static double standard;
akudohune 0:fb6510639aa4 71 float compassPID = 0.0;
akudohune 0:fb6510639aa4 72
akudohune 0:fb6510639aa4 73 extern int diff;
akudohune 0:fb6510639aa4 74
akudohune 0:fb6510639aa4 75 extern string StringFIN;
akudohune 0:fb6510639aa4 76
akudohune 0:fb6510639aa4 77 extern uint8_t direction;
akudohune 0:fb6510639aa4 78 extern uint8_t Distance;
akudohune 0:fb6510639aa4 79 extern uint8_t IR_found;
akudohune 0:fb6510639aa4 80 extern uint8_t xbee;
akudohune 0:fb6510639aa4 81
akudohune 0:fb6510639aa4 82 extern void array(int,int,int,int);
akudohune 0:fb6510639aa4 83
akudohune 0:fb6510639aa4 84 extern void dev_rx(void);
akudohune 0:fb6510639aa4 85 extern void dev_tx(void);
akudohune 0:fb6510639aa4 86
akudohune 0:fb6510639aa4 87 extern uint16_t ultrasonicVal[4];
akudohune 0:fb6510639aa4 88
akudohune 0:fb6510639aa4 89 #define FRONT_SONIC ultrasonicVal[0]
akudohune 0:fb6510639aa4 90 #define BACK_SONIC ultrasonicVal[2]
akudohune 0:fb6510639aa4 91 #define RIGHT_SONIC ultrasonicVal[1]
akudohune 0:fb6510639aa4 92 #define LEFT_SONIC ultrasonicVal[3]
akudohune 0:fb6510639aa4 93
akudohune 0:fb6510639aa4 94