aa

Dependencies:   HMC6352 QEI Servo mbed

Fork of walkROBO by Ryo Ogata

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.h Source File

main.h

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