Quad X Type Multicopter

Dependencies:   IAP

Committer:
komaida424
Date:
Fri Nov 15 20:53:36 2013 +0000
Revision:
2:59ac9df97701
Parent:
0:cca1c4e84da4
Child:
3:27407c4984cf
ver.1.25

Who changed what in which revision?

UserRevisionLine numberNew contents of line
komaida424 0:cca1c4e84da4 1 #ifndef CONFIG_H
komaida424 0:cca1c4e84da4 2 #define CONFIG_H
komaida424 0:cca1c4e84da4 3
komaida424 2:59ac9df97701 4 //#define SERIAL_LCD
komaida424 2:59ac9df97701 5 //#define SOFT_PWM
komaida424 0:cca1c4e84da4 6 //#define LPCXpresso
komaida424 0:cca1c4e84da4 7 //#define LocalFileOut
komaida424 0:cca1c4e84da4 8
komaida424 0:cca1c4e84da4 9 #define TX_TYPE 0 // 0:FM 1:IR
komaida424 2:59ac9df97701 10 #define Thro_Zero 30
komaida424 0:cca1c4e84da4 11 #define Thro_Lo 75
komaida424 0:cca1c4e84da4 12 #define Thro_Hi 950
komaida424 0:cca1c4e84da4 13 #define Pulse_Min 1000
komaida424 0:cca1c4e84da4 14 #define Pulse_Max 2000
komaida424 2:59ac9df97701 15 #define Stick_Limit 350
komaida424 0:cca1c4e84da4 16 #define M1 M[0]
komaida424 0:cca1c4e84da4 17 #define M2 M[1]
komaida424 0:cca1c4e84da4 18 #define M3 M[2]
komaida424 0:cca1c4e84da4 19 #define M4 M[3]
komaida424 0:cca1c4e84da4 20 #define M5 M[4]
komaida424 0:cca1c4e84da4 21 #define M6 M[5]
komaida424 0:cca1c4e84da4 22 #define THR CH[0]
komaida424 0:cca1c4e84da4 23 #define AIL CH[1]
komaida424 0:cca1c4e84da4 24 #define ELE CH[2]
komaida424 0:cca1c4e84da4 25 #define RUD CH[3]
komaida424 0:cca1c4e84da4 26 #define AUX CH[4]
komaida424 0:cca1c4e84da4 27 #define _ITG3200 0x00
komaida424 0:cca1c4e84da4 28 #define _L3GD20 0x01
komaida424 2:59ac9df97701 29 #define TICK_TIME 0.05
komaida424 2:59ac9df97701 30 #define GYRO_ADJUST 3
komaida424 0:cca1c4e84da4 31
komaida424 0:cca1c4e84da4 32 //enum PortNum{Port_THR=1,Port_AIL=3,Port_ELE=5,Port_RUD=7,Port_AUX=6};
komaida424 0:cca1c4e84da4 33 enum IRNum{IR_THR=1,IR_AIL,IR_ELE,IR_RUD,IR_AUX}; //Input Pulse Sequence
komaida424 0:cca1c4e84da4 34 enum channel{ROL=0,PIT,YAW,COL,GAIN};
komaida424 0:cca1c4e84da4 35
komaida424 0:cca1c4e84da4 36 struct config {
komaida424 0:cca1c4e84da4 37 float Revision;
komaida424 0:cca1c4e84da4 38 int Struct_Size;
komaida424 2:59ac9df97701 39 char StartMode; //'c':config mode 'f':flight mode
komaida424 0:cca1c4e84da4 40 int Stick_Ref[5]; //Stick Neutral Position
komaida424 0:cca1c4e84da4 41 float Stick_Mix[3]; //Mixing ratio of stick operation
komaida424 0:cca1c4e84da4 42 signed char Gyro_Dir[4];
komaida424 0:cca1c4e84da4 43 float Gyro_Gain[6];
komaida424 0:cca1c4e84da4 44 signed char Accel_Dir[4];
komaida424 2:59ac9df97701 45 float Accel_Ref[3];
komaida424 0:cca1c4e84da4 46 float Accel_Gain[3];
komaida424 0:cca1c4e84da4 47 int Gyro_Gain_Setting;
komaida424 2:59ac9df97701 48 float Control_Exchange_Angle;
komaida424 2:59ac9df97701 49 float Cutoff_Freq;
komaida424 2:59ac9df97701 50 int Flight_Time;
komaida424 0:cca1c4e84da4 51 int LCD_Contrast;
komaida424 0:cca1c4e84da4 52 int PWM_Mode;
komaida424 2:59ac9df97701 53 int ESC_Low;
komaida424 0:cca1c4e84da4 54 int PWM_Interval;
komaida424 0:cca1c4e84da4 55 // int Accel_Rang;
komaida424 0:cca1c4e84da4 56 // int Accel_Rate;
komaida424 0:cca1c4e84da4 57 // int PWM_Resolution;
komaida424 2:59ac9df97701 58 char Angle_Control;
komaida424 2:59ac9df97701 59 float kp[3];
komaida424 2:59ac9df97701 60 float ki[3];
komaida424 2:59ac9df97701 61 float kd[3];
komaida424 2:59ac9df97701 62 float PID_Limit;
komaida424 2:59ac9df97701 63 float Integral_Limit;
komaida424 0:cca1c4e84da4 64 public:
komaida424 0:cca1c4e84da4 65 config() {
komaida424 2:59ac9df97701 66 Revision = 1.25;
komaida424 0:cca1c4e84da4 67 Struct_Size = sizeof(config);
komaida424 0:cca1c4e84da4 68 Stick_Ref[0] = 1500;
komaida424 0:cca1c4e84da4 69 Stick_Ref[1] = 1500;
komaida424 0:cca1c4e84da4 70 Stick_Ref[2] = 1500;
komaida424 0:cca1c4e84da4 71 Stick_Ref[3] = 1100;
komaida424 0:cca1c4e84da4 72 Stick_Ref[4] = 1500;
komaida424 2:59ac9df97701 73 Stick_Mix[0] = 0.3;
komaida424 2:59ac9df97701 74 Stick_Mix[1] = 0.3;
komaida424 2:59ac9df97701 75 Stick_Mix[2] = 0.65;
komaida424 0:cca1c4e84da4 76 Gyro_Dir[0] = 1;
komaida424 0:cca1c4e84da4 77 Gyro_Dir[1] = 1;
komaida424 0:cca1c4e84da4 78 Gyro_Dir[2] = 1;
komaida424 0:cca1c4e84da4 79 Gyro_Dir[3] = -1;
komaida424 0:cca1c4e84da4 80 Gyro_Gain[0] = 0.40;
komaida424 0:cca1c4e84da4 81 Gyro_Gain[1] = 0.40;
komaida424 0:cca1c4e84da4 82 Gyro_Gain[2] = 0.40;
komaida424 0:cca1c4e84da4 83 Gyro_Gain[3] = 0.00;
komaida424 0:cca1c4e84da4 84 Gyro_Gain[4] = 0.00;
komaida424 0:cca1c4e84da4 85 Gyro_Gain[5] = 0.00;
komaida424 0:cca1c4e84da4 86 Accel_Dir[0] = 1;
komaida424 0:cca1c4e84da4 87 Accel_Dir[1] = 1;
komaida424 0:cca1c4e84da4 88 Accel_Dir[2] = 1;
komaida424 0:cca1c4e84da4 89 Accel_Dir[3] = 1;
komaida424 2:59ac9df97701 90 Accel_Ref[0] = 0;
komaida424 2:59ac9df97701 91 Accel_Ref[1] = 0;
komaida424 2:59ac9df97701 92 Accel_Ref[2] = 0;
komaida424 0:cca1c4e84da4 93 Accel_Gain[0] = 0.50;
komaida424 0:cca1c4e84da4 94 Accel_Gain[1] = 0.50;
komaida424 0:cca1c4e84da4 95 Accel_Gain[2] = 0.50;
komaida424 0:cca1c4e84da4 96 Gyro_Gain_Setting = -1;
komaida424 2:59ac9df97701 97 Cutoff_Freq=0.15;
komaida424 2:59ac9df97701 98 Flight_Time=360;
komaida424 0:cca1c4e84da4 99 LCD_Contrast = 60;
komaida424 0:cca1c4e84da4 100 PWM_Mode = 1;
komaida424 2:59ac9df97701 101 ESC_Low= 1025;
komaida424 0:cca1c4e84da4 102 PWM_Interval = 3000;
komaida424 0:cca1c4e84da4 103 // Accel_Rang = 2;
komaida424 0:cca1c4e84da4 104 // Accel_Rate = 14;
komaida424 0:cca1c4e84da4 105 // PWM_Resolution = 0;
komaida424 0:cca1c4e84da4 106 StartMode = 'C';
komaida424 2:59ac9df97701 107 Angle_Control = 'H'; // H:horizn A:angle
komaida424 2:59ac9df97701 108 kp[0] = 1.5;
komaida424 2:59ac9df97701 109 kp[1] = 1.5;
komaida424 2:59ac9df97701 110 kp[2] = 1.5;
komaida424 2:59ac9df97701 111 ki[0] = 0.7;
komaida424 2:59ac9df97701 112 ki[1] = 0.7;
komaida424 2:59ac9df97701 113 ki[2] = 0.7;
komaida424 2:59ac9df97701 114 kd[0] = 1.2;
komaida424 2:59ac9df97701 115 kd[1] = 1.2;
komaida424 2:59ac9df97701 116 kd[2] = 1.2;
komaida424 2:59ac9df97701 117 PID_Limit = 300;
komaida424 2:59ac9df97701 118 Integral_Limit = 30;
komaida424 2:59ac9df97701 119 Control_Exchange_Angle = 15;
komaida424 0:cca1c4e84da4 120 }
komaida424 0:cca1c4e84da4 121 };
komaida424 0:cca1c4e84da4 122 #endif
komaida424 0:cca1c4e84da4 123
komaida424 0:cca1c4e84da4 124
komaida424 0:cca1c4e84da4 125
komaida424 0:cca1c4e84da4 126
komaida424 0:cca1c4e84da4 127
komaida424 0:cca1c4e84da4 128
komaida424 2:59ac9df97701 129
komaida424 2:59ac9df97701 130
komaida424 2:59ac9df97701 131
komaida424 2:59ac9df97701 132
komaida424 2:59ac9df97701 133
komaida424 2:59ac9df97701 134
komaida424 2:59ac9df97701 135
komaida424 2:59ac9df97701 136
komaida424 2:59ac9df97701 137
komaida424 2:59ac9df97701 138
komaida424 2:59ac9df97701 139
komaida424 2:59ac9df97701 140
komaida424 2:59ac9df97701 141
komaida424 2:59ac9df97701 142
komaida424 2:59ac9df97701 143
komaida424 2:59ac9df97701 144
komaida424 2:59ac9df97701 145
komaida424 2:59ac9df97701 146
komaida424 2:59ac9df97701 147
komaida424 2:59ac9df97701 148
komaida424 2:59ac9df97701 149
komaida424 2:59ac9df97701 150
komaida424 2:59ac9df97701 151
komaida424 2:59ac9df97701 152
komaida424 2:59ac9df97701 153
komaida424 2:59ac9df97701 154
komaida424 2:59ac9df97701 155