aa

Dependencies:   HMC6352 PID mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.h Source File

main.h

00001 
00002 
00003 #define RATE    0.052
00004 #define Long    1.0
00005 #define ENTER   0
00006 #define EXIT    1
00007 #define X       0
00008 #define Y       1
00009 #define MOT_NUM 4
00010 #define MOTDRIVER_WAIT  300 //ms
00011 #define BAUD_RATE       115200
00012 #define BAUD_RATE2      19200
00013 #define BUT_WAIT        0.3 //s
00014 #define ON      1
00015 #define OFF     0
00016 
00017 #define PING_ERROR  0xFFFF
00018 #define PI          3.14159265
00019 
00020 #define MOT1    1.0
00021 #define MOT2    1.0
00022 #define MOT3    1.0
00023 #define MOT4    1.0
00024 
00025 #define PID_BIAS    0.0
00026 #define REFERENCE   180.0
00027 #define MINIMUM     0.0
00028 #define MAXIMUM     360.0
00029 
00030 #define PID_CYCLE   0.06    //s
00031 
00032 #define P_GAIN  0.80    //0.78   
00033 #define I_GAIN  0.0     //0.0
00034 #define D_GAIN  0.0095   //0.009
00035     
00036 #define OUT_LIMIT   40.0
00037 #define MAX_POW     100
00038 #define MIN_POW     -100
00039 
00040 DigitalOut led1(LED1); 
00041 DigitalOut led2(LED2);
00042 DigitalOut led3(LED3);
00043 DigitalOut led4(LED4);
00044 BusOut mbedleds(LED4,LED3,LED2,LED1); 
00045 HMC6352 compass(p9, p10);
00046 Serial driver(p28, p27);    // tx, rx 
00047 Serial device2(p13, p14);   // tx, rx
00048 Serial pc(USBTX, USBRX);    // tx, rx 
00049 DigitalIn StartButton(p21);
00050 DigitalIn CalibEnterButton(p22);
00051 DigitalIn CalibExitButton(p23);
00052 DigitalIn EEPROMButton(p24);
00053 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
00054 Ticker pidUpdata;
00055 Ticker irDistanceUpdata;
00056 Timer timer1;
00057 Timer Survtimer;
00058 LocalFileSystem local("local");  // マウントポイントを定義(ディレクトリパスになる)
00059 
00060 enum{
00061     NORMAL,
00062     LEFT_OUT,
00063     RIGHT_OUT,
00064     FRONT_OUT,
00065     BACK_OUT,
00066 };
00067 
00068 enum{
00069     HOME_WAIT,
00070     DIFFENCE,
00071     WARNING,
00072     HOLD,
00073 };
00074 
00075 PinName adc_num[6] = {
00076     p15,
00077     p16,
00078     p17,
00079     p18,
00080     p19,
00081     p20,
00082 };
00083 double standTu = 0;
00084 int speed[MOT_NUM] = {0};
00085 uint8_t hold_flag = 0;
00086 uint8_t state = HOME_WAIT;
00087 uint8_t lineState = NORMAL;
00088 
00089 double inputPID = 180.0;
00090 static double standard;
00091 double compassPID = 0.0;
00092 
00093 extern int diff;
00094 
00095 extern string StringFIN;
00096 
00097 extern uint8_t direction;
00098 extern uint8_t Distance;
00099 extern uint8_t IR_found;
00100 extern uint8_t xbee;
00101 extern int irDistance[6];
00102 
00103 extern void array(int,int,int,int);
00104 
00105 extern void dev_rx(void);
00106 extern void dev_tx(void);
00107 
00108 extern uint16_t ultrasonicVal[4];
00109 
00110 int stand[6];
00111 uint8_t compFlag = 0;
00112 
00113 #define FRONT_SONIC ultrasonicVal[0]
00114 #define BACK_SONIC  ultrasonicVal[2]
00115 #define RIGHT_SONIC ultrasonicVal[1]
00116 #define LEFT_SONIC  ultrasonicVal[3]    
00117 
00118