Quad X Type Multicopter

Dependencies:   IAP

Committer:
komaida424
Date:
Tue Feb 24 09:28:29 2015 +0000
Revision:
6:a50e6d3924f1
Parent:
4:4060309b9cc0
Child:
7:16bf0085d914
Release?revision 3.1

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 4:4060309b9cc0 27 #define AX2 CH[5]
komaida424 4:4060309b9cc0 28 #define AX3 CH[6]
komaida424 4:4060309b9cc0 29 #define AX4 CH[7]
komaida424 4:4060309b9cc0 30 #define AX5 CH[8]
komaida424 4:4060309b9cc0 31 #define HEIGHT 3
komaida424 0:cca1c4e84da4 32 #define _ITG3200 0x00
komaida424 0:cca1c4e84da4 33 #define _L3GD20 0x01
komaida424 2:59ac9df97701 34 #define TICK_TIME 0.05
komaida424 3:27407c4984cf 35 #define GYRO_ADJUST 2
komaida424 0:cca1c4e84da4 36
komaida424 6:a50e6d3924f1 37 enum PlaneType{Quad_X=0,Quad_VP,Quad_3D,Delta,Delta_TW,AirPlane};
komaida424 4:4060309b9cc0 38 enum JR{_THR=0,_AIL,_ELE,_RUD,_GYRO,_AUX1,_AUX2,_AUX3,_AUX4}; //JR 信号の順番
komaida424 4:4060309b9cc0 39 //enum Futaba{_AIL=0,_ELE,_THR,_RUD,_GYRO,_AUX1,_AUX2,_AUX3,_AUX4}; //Futaba 信号の順番
komaida424 4:4060309b9cc0 40 enum stknum{ROL=0,PIT,YAW,COL,GAIN,AUX2}; // Stick[]の順番
komaida424 4:4060309b9cc0 41 /*
komaida424 4:4060309b9cc0 42 struct pidinf {
komaida424 4:4060309b9cc0 43 float kp;
komaida424 4:4060309b9cc0 44 float ki;
komaida424 4:4060309b9cc0 45 float kd;
komaida424 4:4060309b9cc0 46 float limit;
komaida424 4:4060309b9cc0 47 float integral_limit;
komaida424 4:4060309b9cc0 48 float differential_limit;
komaida424 4:4060309b9cc0 49 };*/
komaida424 0:cca1c4e84da4 50 struct config {
komaida424 0:cca1c4e84da4 51 float Revision;
komaida424 0:cca1c4e84da4 52 int Struct_Size;
komaida424 2:59ac9df97701 53 char StartMode; //'c':config mode 'f':flight mode
komaida424 4:4060309b9cc0 54 char Model_Type; // 0x00:Quad-X 0x01:Quad-H-3D
komaida424 4:4060309b9cc0 55 signed char Gyro_Gain_Setting;
komaida424 6:a50e6d3924f1 56 int Stick_Ref[6]; //Stick Neutral Position
komaida424 0:cca1c4e84da4 57 float Stick_Mix[3]; //Mixing ratio of stick operation
komaida424 0:cca1c4e84da4 58 signed char Gyro_Dir[4];
komaida424 0:cca1c4e84da4 59 float Gyro_Gain[6];
komaida424 4:4060309b9cc0 60 signed char Servo_Dir[6];
komaida424 2:59ac9df97701 61 float Accel_Ref[3];
komaida424 4:4060309b9cc0 62 // float Accel_Gain[3];
komaida424 3:27407c4984cf 63 float PID_Interval;
komaida424 2:59ac9df97701 64 float Cutoff_Freq;
komaida424 2:59ac9df97701 65 int Flight_Time;
komaida424 0:cca1c4e84da4 66 int LCD_Contrast;
komaida424 0:cca1c4e84da4 67 int PWM_Mode;
komaida424 6:a50e6d3924f1 68 int Throttl_Trim;
komaida424 0:cca1c4e84da4 69 int PWM_Interval;
komaida424 4:4060309b9cc0 70 // pidinf pid[4];
komaida424 6:a50e6d3924f1 71 float Active_Gyro_Gain;
komaida424 4:4060309b9cc0 72 // float Gimbal_Gain;
komaida424 4:4060309b9cc0 73 // int Gimbal_Neutral_Width;
komaida424 4:4060309b9cc0 74 // int Gimbal_Dir;
komaida424 6:a50e6d3924f1 75 int Reverse_Point;
komaida424 6:a50e6d3924f1 76 float Thro_Limit_Val;
komaida424 6:a50e6d3924f1 77 float Thro_Limit_Rate;
komaida424 0:cca1c4e84da4 78 public:
komaida424 0:cca1c4e84da4 79 config() {
komaida424 6:a50e6d3924f1 80 Revision = 3.10;
komaida424 0:cca1c4e84da4 81 Struct_Size = sizeof(config);
komaida424 0:cca1c4e84da4 82 Stick_Ref[0] = 1500;
komaida424 0:cca1c4e84da4 83 Stick_Ref[1] = 1500;
komaida424 0:cca1c4e84da4 84 Stick_Ref[2] = 1500;
komaida424 6:a50e6d3924f1 85 Stick_Ref[3] = 1080;
komaida424 0:cca1c4e84da4 86 Stick_Ref[4] = 1500;
komaida424 6:a50e6d3924f1 87 Stick_Ref[5] = 1500;
komaida424 4:4060309b9cc0 88 Stick_Mix[0] = 0.4;
komaida424 4:4060309b9cc0 89 Stick_Mix[1] = 0.4;
komaida424 2:59ac9df97701 90 Stick_Mix[2] = 0.65;
komaida424 3:27407c4984cf 91 Gyro_Dir[0] = -1;
komaida424 3:27407c4984cf 92 Gyro_Dir[1] = -1;
komaida424 0:cca1c4e84da4 93 Gyro_Dir[2] = 1;
komaida424 0:cca1c4e84da4 94 Gyro_Dir[3] = -1;
komaida424 4:4060309b9cc0 95 Gyro_Gain[0] = 0.50;
komaida424 4:4060309b9cc0 96 Gyro_Gain[1] = 0.50;
komaida424 4:4060309b9cc0 97 Gyro_Gain[2] = 0.50;
komaida424 0:cca1c4e84da4 98 Gyro_Gain[3] = 0.00;
komaida424 0:cca1c4e84da4 99 Gyro_Gain[4] = 0.00;
komaida424 0:cca1c4e84da4 100 Gyro_Gain[5] = 0.00;
komaida424 4:4060309b9cc0 101 Servo_Dir[0] = 1;
komaida424 4:4060309b9cc0 102 Servo_Dir[1] = 1;
komaida424 4:4060309b9cc0 103 Servo_Dir[2] = 1;
komaida424 4:4060309b9cc0 104 Servo_Dir[3] = 1;
komaida424 6:a50e6d3924f1 105 Servo_Dir[4] = 1;
komaida424 6:a50e6d3924f1 106 Servo_Dir[5] = 1;
komaida424 2:59ac9df97701 107 Accel_Ref[0] = 0;
komaida424 2:59ac9df97701 108 Accel_Ref[1] = 0;
komaida424 2:59ac9df97701 109 Accel_Ref[2] = 0;
komaida424 4:4060309b9cc0 110 // Accel_Gain[0] = 0.50;
komaida424 4:4060309b9cc0 111 // Accel_Gain[1] = 0.50;
komaida424 4:4060309b9cc0 112 // Accel_Gain[2] = 0.50;
komaida424 4:4060309b9cc0 113 Model_Type = 0;
komaida424 0:cca1c4e84da4 114 Gyro_Gain_Setting = -1;
komaida424 2:59ac9df97701 115 Cutoff_Freq=0.15;
komaida424 2:59ac9df97701 116 Flight_Time=360;
komaida424 0:cca1c4e84da4 117 LCD_Contrast = 60;
komaida424 0:cca1c4e84da4 118 PWM_Mode = 1;
komaida424 6:a50e6d3924f1 119 Throttl_Trim = 0;
komaida424 6:a50e6d3924f1 120 PWM_Interval = 3000;
komaida424 0:cca1c4e84da4 121 StartMode = 'C';
komaida424 6:a50e6d3924f1 122 PID_Interval = 0.004;
komaida424 6:a50e6d3924f1 123 Active_Gyro_Gain = 0.6;
komaida424 6:a50e6d3924f1 124 Reverse_Point = 1500;
komaida424 6:a50e6d3924f1 125 Thro_Limit_Val = 100;
komaida424 6:a50e6d3924f1 126 Thro_Limit_Rate = 0.2;
komaida424 0:cca1c4e84da4 127 }
komaida424 0:cca1c4e84da4 128 };
komaida424 0:cca1c4e84da4 129 #endif
komaida424 0:cca1c4e84da4 130
komaida424 0:cca1c4e84da4 131
komaida424 0:cca1c4e84da4 132
komaida424 0:cca1c4e84da4 133
komaida424 0:cca1c4e84da4 134
komaida424 0:cca1c4e84da4 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
komaida424 2:59ac9df97701 156
komaida424 2:59ac9df97701 157
komaida424 2:59ac9df97701 158
komaida424 2:59ac9df97701 159
komaida424 2:59ac9df97701 160
komaida424 2:59ac9df97701 161
komaida424 2:59ac9df97701 162
komaida424 3:27407c4984cf 163
komaida424 3:27407c4984cf 164
komaida424 3:27407c4984cf 165
komaida424 3:27407c4984cf 166
komaida424 3:27407c4984cf 167
komaida424 3:27407c4984cf 168
komaida424 3:27407c4984cf 169
komaida424 4:4060309b9cc0 170
komaida424 4:4060309b9cc0 171
komaida424 4:4060309b9cc0 172
komaida424 4:4060309b9cc0 173
komaida424 4:4060309b9cc0 174
komaida424 4:4060309b9cc0 175
komaida424 4:4060309b9cc0 176
komaida424 4:4060309b9cc0 177
komaida424 4:4060309b9cc0 178
komaida424 4:4060309b9cc0 179
komaida424 4:4060309b9cc0 180
komaida424 6:a50e6d3924f1 181
komaida424 6:a50e6d3924f1 182