Quadrotor stabi

Dependencies:   ESC HMC5883L MPU6050 MadgwickAHRS MemLog Servo mbed ms5611

Committer:
Decimus
Date:
Mon May 30 08:16:04 2016 +0000
Revision:
1:4a8469635592
Parent:
0:05cb0f94324f
[+]

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Decimus 0:05cb0f94324f 1 // modes
Decimus 0:05cb0f94324f 2 #define MODE_ON 1
Decimus 0:05cb0f94324f 3 #define MODE_MANUAL 2
Decimus 0:05cb0f94324f 4 #define MODE_READY 4
Decimus 0:05cb0f94324f 5 #define MODE_TAKEOFF 8
Decimus 0:05cb0f94324f 6 #define MODE_STAB_ALT 16
Decimus 0:05cb0f94324f 7 #define MODE_STAB_PRY 32
Decimus 0:05cb0f94324f 8
Decimus 0:05cb0f94324f 9 #define ALT_METER 0.1202 //hPa per meter, t=15C
Decimus 0:05cb0f94324f 10 //#define ALT_METER 0.1268 //hPa per meter, t=0C
Decimus 0:05cb0f94324f 11 #define ALT_TRUST_ACC 40
Decimus 0:05cb0f94324f 12 #define ALT_P (1.0f/ALT_TRUST_ACC) // estimated altitude correction (default 0.05), 100 - due to m->cm conversion
Decimus 0:05cb0f94324f 13 #define ALT_ACC_I 0.0001f // ACC zero calibration (default 0.0001)
Decimus 0:05cb0f94324f 14 #define ALT_VEL_P 0.1f // velocity correction (default 0.1)
Decimus 0:05cb0f94324f 15
Decimus 0:05cb0f94324f 16 #define CMD_I2C_OFF 0xA0
Decimus 0:05cb0f94324f 17 #define CMD_I2C_ON 0xA1
Decimus 0:05cb0f94324f 18 #define CMD_I2C_MANUAL 0xA2
Decimus 0:05cb0f94324f 19 #define CMD_I2C_AUTO 0xA3
Decimus 0:05cb0f94324f 20 #define CMD_I2C_CTRL 0xA4
Decimus 0:05cb0f94324f 21
Decimus 0:05cb0f94324f 22 #define BAUD_RATE 19200
Decimus 0:05cb0f94324f 23
Decimus 0:05cb0f94324f 24 // nu
Decimus 0:05cb0f94324f 25 #define THRUST_THRESH 0.05
Decimus 0:05cb0f94324f 26
Decimus 0:05cb0f94324f 27 // delays
Decimus 0:05cb0f94324f 28 #define INCL_DELAY 0.002
Decimus 0:05cb0f94324f 29 #define CTRL_DELAY 0.02
Decimus 0:05cb0f94324f 30 #define MAG_DELAY 0.015
Decimus 0:05cb0f94324f 31 #define BAR_DELAY 0.02
Decimus 0:05cb0f94324f 32
Decimus 0:05cb0f94324f 33 #define TAKEOFF_SPEED 0.05*CTRL_DELAY // 12.5% per sec
Decimus 0:05cb0f94324f 34 #define TAKEOFF_LEV_ALT 0.05 // in meters
Decimus 0:05cb0f94324f 35 #define TAKEOFF_CLIMB_ALT 1.0 // in meters
Decimus 0:05cb0f94324f 36
Decimus 0:05cb0f94324f 37 // PID scales
Decimus 0:05cb0f94324f 38 #define ROLL_SCALE 0.01
Decimus 0:05cb0f94324f 39 #define PITCH_SCALE 0.01
Decimus 0:05cb0f94324f 40 #define YAW_SCALE 0.01
Decimus 0:05cb0f94324f 41 #define ALT_SCALE 0.01
Decimus 0:05cb0f94324f 42
Decimus 0:05cb0f94324f 43 // CTRL constraints
Decimus 0:05cb0f94324f 44 #define CTRL_DIA 511.0
Decimus 0:05cb0f94324f 45 #define ROLL_MAX 45.0
Decimus 0:05cb0f94324f 46 #define PITCH_MAX 45.0
Decimus 0:05cb0f94324f 47 #define YAW_MAX 90.0
Decimus 0:05cb0f94324f 48 #define THR_MAX 45.0
Decimus 0:05cb0f94324f 49 #define ALT_MAX 0.500
Decimus 0:05cb0f94324f 50
Decimus 0:05cb0f94324f 51 // altitude control blind diap
Decimus 0:05cb0f94324f 52 #define ALT_SPD_PE 0.005
Decimus 0:05cb0f94324f 53 #define ALT_SPD_NE -0.005
Decimus 0:05cb0f94324f 54
Decimus 0:05cb0f94324f 55 // sensors
Decimus 0:05cb0f94324f 56 #define ACC_G 9.806
Decimus 0:05cb0f94324f 57 #define ACC_SENS 256.0
Decimus 0:05cb0f94324f 58 #define ACC_SENS_INV 0.00390625
Decimus 0:05cb0f94324f 59 #define ACC_GS 0.0383046875
Decimus 0:05cb0f94324f 60 #define ACC_DEADBAND 0.3
Decimus 0:05cb0f94324f 61
Decimus 0:05cb0f94324f 62 #define GYR_SENS 0.0175
Decimus 0:05cb0f94324f 63
Decimus 0:05cb0f94324f 64 #define MAG_DECL 14.28
Decimus 0:05cb0f94324f 65
Decimus 0:05cb0f94324f 66 #define BAR_TABLE_SIZE 21
Decimus 0:05cb0f94324f 67
Decimus 0:05cb0f94324f 68 //hs battop
Decimus 0:05cb0f94324f 69 #define MAG_OFF {346.769036, -181.590063, -125.126453}
Decimus 0:05cb0f94324f 70 #define MAG_CAL {{1.924164, 0.076278, 0.027597},{0.076278, 1.997178, -0.001175},{0.027597,-0.001175,1.753297}}
Decimus 0:05cb0f94324f 71
Decimus 0:05cb0f94324f 72 // filters
Decimus 0:05cb0f94324f 73 #define LPFC_BAR 0.4
Decimus 0:05cb0f94324f 74 #define LPFC_ACC 0.02
Decimus 0:05cb0f94324f 75 #define LPFC_ALT 0.02
Decimus 0:05cb0f94324f 76
Decimus 0:05cb0f94324f 77 // pid roll, pitch, yaw, alt
Decimus 0:05cb0f94324f 78 #define PIDK {{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
Decimus 0:05cb0f94324f 79
Decimus 0:05cb0f94324f 80 #define X 0
Decimus 0:05cb0f94324f 81 #define Y 1
Decimus 0:05cb0f94324f 82 #define Z 2
Decimus 0:05cb0f94324f 83
Decimus 0:05cb0f94324f 84 // roll, pitch, yaw
Decimus 0:05cb0f94324f 85 #define ROLL 0
Decimus 0:05cb0f94324f 86 #define PITCH 1
Decimus 0:05cb0f94324f 87 #define YAW 2
Decimus 0:05cb0f94324f 88 #define ALT 3
Decimus 0:05cb0f94324f 89
Decimus 0:05cb0f94324f 90 // yaw compensation direction
Decimus 0:05cb0f94324f 91 #define YAW_PID_DIR -1
Decimus 0:05cb0f94324f 92
Decimus 0:05cb0f94324f 93 //median filter
Decimus 0:05cb0f94324f 94 //#define M_FILTER