syouichi imamori
/
MulticopterQuadX
Quad X Type Multicopter
Diff: config.h
- 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 @@ + + + + + + + + + + +