ryo seki
/
ver2_0_5
final
main.h@0:fb6510639aa4, 2013-05-01 (annotated)
- Committer:
- akudohune
- Date:
- Wed May 01 08:47:59 2013 +0000
- Revision:
- 0:fb6510639aa4
aa
Who changed what in which revision?
User | Revision | Line number | New 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 |