2

Dependencies:   AQM0802A HMC6352 PID Servo mbed

Committer:
ryuna
Date:
Tue Mar 03 02:36:28 2015 +0000
Revision:
4:f7946508daa8
Parent:
3:0c994b3a882e
Child:
5:dace4f3b6e4a
??

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryuna 3:0c994b3a882e 1
ryuna 3:0c994b3a882e 2 /*PID処理*/
ryuna 4:f7946508daa8 3 #define RATE 0.052//52
ryuna 4:f7946508daa8 4 #define PID_BIAS 0.1
ryuna 3:0c994b3a882e 5 #define REFERENCE 180.0
ryuna 3:0c994b3a882e 6 #define MINIMUM 0.1
ryuna 3:0c994b3a882e 7 #define MAXIMUM 360.0
ryuna 3:0c994b3a882e 8 #define P_GAIN 1.8//1.4 //0.78
ryuna 3:0c994b3a882e 9 #define I_GAIN 0.0 //0.0
ryuna 4:f7946508daa8 10 #define D_GAIN 0.03 //0.009
ryuna 3:0c994b3a882e 11 #define OUT_LIMIT 50.0
ryuna 3:0c994b3a882e 12 #define MAX_POW 100
ryuna 3:0c994b3a882e 13 #define MIN_POW -100
ryuna 3:0c994b3a882e 14
ryuna 3:0c994b3a882e 15 /*回り込みの計算用*/
ryuna 3:0c994b3a882e 16 #define PI 3.1415926
ryuna 3:0c994b3a882e 17
ryuna 3:0c994b3a882e 18 /*LPC1114 I2C Slave Address*/
ryuna 3:0c994b3a882e 19 #define ADDRESS_R 0xAA
ryuna 3:0c994b3a882e 20 #define ADDRESS_L 0xAC
ryuna 3:0c994b3a882e 21
ryuna 3:0c994b3a882e 22 /*BusIn sw 入力値*/
ryuna 3:0c994b3a882e 23 #define StartS 0x01
ryuna 3:0c994b3a882e 24 #define Debug1 0x02
ryuna 3:0c994b3a882e 25 #define Debug2 0x04
ryuna 3:0c994b3a882e 26 #define Debug3 0x06
ryuna 3:0c994b3a882e 27 #define Kicker 0x08
ryuna 3:0c994b3a882e 28 #define Calibration 0x10
ryuna 3:0c994b3a882e 29
ryuna 3:0c994b3a882e 30
ryuna 3:0c994b3a882e 31 #define CW 1
ryuna 3:0c994b3a882e 32 #define CCW -1
ryuna 4:f7946508daa8 33 #define ENTER 0
ryuna 4:f7946508daa8 34 #define EXIT 1
ryuna 4:f7946508daa8 35
ryuna 3:0c994b3a882e 36
ryuna 3:0c994b3a882e 37 BusIn Sw(p22,p23,p24,p25,p26);
ryuna 3:0c994b3a882e 38 BusIn Line(p5,p6,p7,p8);//No reading line → 0b1111 ,not pull up
ryuna 3:0c994b3a882e 39 DigitalOut Led[4] = {LED1,LED2,LED3,LED4};
ryuna 3:0c994b3a882e 40 DigitalOut Kick(p29);
ryuna 3:0c994b3a882e 41
ryuna 3:0c994b3a882e 42 Servo S555(p21);
ryuna 3:0c994b3a882e 43 I2C Sensor(p9,p10);//sda,scl
ryuna 3:0c994b3a882e 44 HMC6352 hmc6352(p9,p10);//sda,scl
ryuna 3:0c994b3a882e 45 AQM0802A Lcd(p28,p27);//sda,scl
ryuna 3:0c994b3a882e 46 Serial Motor(p13,p14);//tx,rx
ryuna 3:0c994b3a882e 47 Serial pc(USBTX,USBRX);
ryuna 3:0c994b3a882e 48
ryuna 3:0c994b3a882e 49 /*Compass PID SetUp*/
ryuna 3:0c994b3a882e 50 PID pid(P_GAIN,I_GAIN,D_GAIN, RATE);
ryuna 3:0c994b3a882e 51
ryuna 3:0c994b3a882e 52 extern string StringFIN;
ryuna 3:0c994b3a882e 53 extern void array(int,int,int,int);
ryuna 3:0c994b3a882e 54
ryuna 3:0c994b3a882e 55 int speed[4] = {0};
ryuna 3:0c994b3a882e 56 typedef enum {FRONT = 1, RIGHT, BACK, LEFT, NA} Direction;
ryuna 3:0c994b3a882e 57 enum {SONIC = 0x01, BALL};
ryuna 3:0c994b3a882e 58
ryuna 0:dfe81bdcb486 59
ryuna 0:dfe81bdcb486 60 int TargetCoordinates[12][2][2] = {
ryuna 0:dfe81bdcb486 61 {{0,1},{0,1}},//p,q+6
ryuna 0:dfe81bdcb486 62 {{0,1},{0,1}},//p,q+5
ryuna 0:dfe81bdcb486 63 {{0,1},{0,1}},//p,q+4
ryuna 0:dfe81bdcb486 64 {{0,1},{0,1}},//p,q+3
ryuna 0:dfe81bdcb486 65 {{0,1},{0,1}},//p,q+2
ryuna 0:dfe81bdcb486 66 {{0,1},{0,1}},//p,q+1
ryuna 0:dfe81bdcb486 67 {{0,1},{0,1}},//p,q
ryuna 0:dfe81bdcb486 68 {{0,1},{0,1}},//p-1,q
ryuna 0:dfe81bdcb486 69 {{0,1},{0,1}},//p-2,q
ryuna 0:dfe81bdcb486 70 {{0,1},{0,1}},//p-3,q
ryuna 0:dfe81bdcb486 71 {{0,1},{0,1}},//p-4,q
ryuna 0:dfe81bdcb486 72 {{0,1},{0,1}},//0,q
ryuna 0:dfe81bdcb486 73 };
ryuna 0:dfe81bdcb486 74
ryuna 0:dfe81bdcb486 75 /*
ryuna 0:dfe81bdcb486 76 | |
ryuna 0:dfe81bdcb486 77 | |
ryuna 0:dfe81bdcb486 78 | o |
ryuna 0:dfe81bdcb486 79 | |
ryuna 0:dfe81bdcb486 80 | |
ryuna 0:dfe81bdcb486 81 |---------------p,q
ryuna 0:dfe81bdcb486 82
ryuna 0:dfe81bdcb486 83
ryuna 0:dfe81bdcb486 84 */