Quad X Type Multicopter

Dependencies:   IAP

Revision:
4:4060309b9cc0
Parent:
3:27407c4984cf
Child:
6:a50e6d3924f1
--- a/config.h	Thu Feb 13 16:07:07 2014 +0000
+++ b/config.h	Tue Oct 14 08:15:03 2014 +0000
@@ -24,27 +24,42 @@
 #define ELE CH[2]
 #define RUD CH[3]
 #define AUX CH[4]
+#define AX2 CH[5]
+#define AX3 CH[6]
+#define AX4 CH[7]
+#define AX5 CH[8]
+#define HEIGHT 3
 #define _ITG3200  0x00
 #define _L3GD20   0x01
 #define TICK_TIME 0.05
 #define GYRO_ADJUST 2
 
-//enum PortNum{Port_THR=1,Port_AIL=3,Port_ELE=5,Port_RUD=7,Port_AUX=6};
-enum IRNum{IR_THR=1,IR_AIL,IR_ELE,IR_RUD,IR_AUX};       //Input Pulse Sequence
-enum channel{ROL=0,PIT,YAW,COL,GAIN};
-
+enum PlaneType{Quad_X=0,Quad_H,Delta,Delta_TW,AirPlane};
+enum JR{_THR=0,_AIL,_ELE,_RUD,_GYRO,_AUX1,_AUX2,_AUX3,_AUX4};       //JR 信号の順番
+//enum Futaba{_AIL=0,_ELE,_THR,_RUD,_GYRO,_AUX1,_AUX2,_AUX3,_AUX4};       //Futaba 信号の順番
+enum stknum{ROL=0,PIT,YAW,COL,GAIN,AUX2};       // Stick[]の順番
+/*
+struct pidinf {
+    float kp;
+    float ki;
+    float kd;
+    float limit;
+    float integral_limit;
+    float differential_limit;
+};*/
 struct config {
     float Revision;
     int Struct_Size;
     char StartMode;              //'c':config mode  'f':flight mode
+    char Model_Type;             // 0x00:Quad-X  0x01:Quad-H-3D
+    signed char Gyro_Gain_Setting;
     int Stick_Ref[5];            //Stick Neutral Position
     float Stick_Mix[3];               //Mixing ratio of stick operation
     signed char Gyro_Dir[4];
     float Gyro_Gain[6];
-    signed char Accel_Dir[4];
+    signed char Servo_Dir[6];
     float Accel_Ref[3];
-    float Accel_Gain[3];
-    int Gyro_Gain_Setting;
+//    float Accel_Gain[3];
     float PID_Interval;
     float Cutoff_Freq;
     int Flight_Time;
@@ -52,71 +67,54 @@
     int PWM_Mode;
     int ESC_Low;
     int PWM_Interval; 
-//    int Accel_Rang;
-//    int Accel_Rate;
-//    int PWM_Resolution;
-    char Angle_Control;
-    float kp[3];
-    float ki[3];
-    float kd[3];
-    float PID_Limit;
-    float Differential_Limit;
+//    pidinf pid[4];
+    float Active_Jyro_Gain;
+//    float Gimbal_Gain;
+//    int Gimbal_Neutral_Width;
+//    int Gimbal_Dir;
 public:
     config() {
-        Revision = 1.30;
+        Revision = 2.10;
         Struct_Size = sizeof(config);
         Stick_Ref[0] = 1500;
         Stick_Ref[1] = 1500;
         Stick_Ref[2] = 1500;
         Stick_Ref[3] = 1100;
         Stick_Ref[4] = 1500;
-        Stick_Mix[0] = 0.3;
-        Stick_Mix[1] = 0.3;
+        Stick_Mix[0] = 0.4;
+        Stick_Mix[1] = 0.4;
         Stick_Mix[2] = 0.65;
         Gyro_Dir[0] = -1;
         Gyro_Dir[1] = -1;
         Gyro_Dir[2] = 1;
         Gyro_Dir[3] = -1;
-        Gyro_Gain[0] = 0.40;
-        Gyro_Gain[1] = 0.40;
-        Gyro_Gain[2] = 0.40;
+        Gyro_Gain[0] = 0.50;
+        Gyro_Gain[1] = 0.50;
+        Gyro_Gain[2] = 0.50;
         Gyro_Gain[3] = 0.00;
         Gyro_Gain[4] = 0.00;
         Gyro_Gain[5] = 0.00;
-        Accel_Dir[0] = 1;
-        Accel_Dir[1] = 1;
-        Accel_Dir[2] = 1;
-        Accel_Dir[3] = 1;
+        Servo_Dir[0] = 1;
+        Servo_Dir[1] = 1;
+        Servo_Dir[2] = 1;
+        Servo_Dir[3] = 1;
         Accel_Ref[0] = 0;
         Accel_Ref[1] = 0;
         Accel_Ref[2] = 0;
-        Accel_Gain[0] = 0.50;
-        Accel_Gain[1] = 0.50;
-        Accel_Gain[2] = 0.50;
+//        Accel_Gain[0] = 0.50;
+//        Accel_Gain[1] = 0.50;
+//        Accel_Gain[2] = 0.50;
+        Model_Type = 0;
         Gyro_Gain_Setting = -1;
         Cutoff_Freq=0.15;
         Flight_Time=360;
         LCD_Contrast = 60;
         PWM_Mode = 1;
         ESC_Low= 1080;
-        PWM_Interval = 2200; 
-//        Accel_Rang = 2;
-//        Accel_Rate = 14;
-//        PWM_Resolution = 0;
+        PWM_Interval = 5000; 
         StartMode = 'C';
-        Angle_Control = 'H';    // H:horizn  A:angle
-        kp[0] = 1.5;
-        kp[1] = 1.5;
-        kp[2] = 1.5;
-        ki[0] = 0.0;
-        ki[1] = 0.0;
-        ki[2] = 0.0;
-        kd[0] = 0.8;
-        kd[1] = 0.8;
-        kd[2] = 0.8;
-        PID_Limit = 350;
-        Differential_Limit = 200;
-        PID_Interval = 0.003;
+        PID_Interval = 0.005;
+        Active_Jyro_Gain = 0.5; 
     }
 };
 #endif
@@ -160,3 +158,14 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
+