oooga

Dependencies:   HMC6352 Servo TextLCD mbed

Committer:
OGA
Date:
Wed Sep 11 05:21:06 2013 +0000
Revision:
0:e0e1b495278b
ooo

Who changed what in which revision?

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