Merged with accelerometer. Started baro implementation, not working.
This commit is contained in:
parent
4fe18abcec
commit
f49548d141
@ -14,7 +14,7 @@
|
|||||||
#ifndef SYSTEM_VARIABLES_H_
|
#ifndef SYSTEM_VARIABLES_H_
|
||||||
#define SYSTEM_VARIABLES_H_
|
#define SYSTEM_VARIABLES_H_
|
||||||
|
|
||||||
#define EEPROM_SYS_VERSION 107
|
#define EEPROM_SYS_VERSION 109
|
||||||
|
|
||||||
#define ADC_STATE
|
#define ADC_STATE
|
||||||
#include "stm32f4xx.h"
|
#include "stm32f4xx.h"
|
||||||
|
@ -60,7 +60,7 @@ gyro_t gyroProfile = {0}; /*Struct profile for input data from senso
|
|||||||
|
|
||||||
pt1Filter_t accelFilter[2] = {0};
|
pt1Filter_t accelFilter[2] = {0};
|
||||||
|
|
||||||
float throttleRate = 0;
|
float throttleRate = 1;
|
||||||
float accRollFineTune = 0;
|
float accRollFineTune = 0;
|
||||||
float accPitchFineTune = 0;
|
float accPitchFineTune = 0;
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ void getCurrentValues(float sensorValues[3], uint8_t ID_profile)
|
|||||||
break;
|
break;
|
||||||
case PID_ID_BAROMETER:
|
case PID_ID_BAROMETER:
|
||||||
|
|
||||||
|
sensorValues[0] = barometer_GetCurrentAveragedtAltitude();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
||||||
@ -340,7 +340,8 @@ void pidRun(uint8_t ID)
|
|||||||
break;
|
break;
|
||||||
case PID_ID_BAROMETER:
|
case PID_ID_BAROMETER:
|
||||||
|
|
||||||
if (!PidProfile[PID_ID_BAROMETER].pidEnabled && flags_IsSet_ID(systemFlags_flightmode_barometer_id))
|
|
||||||
|
if (!(PidProfile[PID_ID_BAROMETER].pidEnabled && flags_IsSet_ID(systemFlags_flightmode_barometer_id)))
|
||||||
{
|
{
|
||||||
PidProfile[PID_ID_BAROMETER].PID_Out[0] = rc_input.Throttle*throttleRate;
|
PidProfile[PID_ID_BAROMETER].PID_Out[0] = rc_input.Throttle*throttleRate;
|
||||||
}
|
}
|
||||||
@ -442,6 +443,10 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
|||||||
PidProfile[ID].P[PITCH] = 135;
|
PidProfile[ID].P[PITCH] = 135;
|
||||||
PidProfile[ID].P[YAW] = 150;
|
PidProfile[ID].P[YAW] = 150;
|
||||||
|
|
||||||
|
PidProfile[ID].I[ROLL] = 50;
|
||||||
|
PidProfile[ID].I[PITCH] = 50;
|
||||||
|
PidProfile[ID].I[YAW] = 50;
|
||||||
|
|
||||||
PidProfile[ID].D[ROLL] = 75;
|
PidProfile[ID].D[ROLL] = 75;
|
||||||
PidProfile[ID].D[PITCH] = 95;
|
PidProfile[ID].D[PITCH] = 95;
|
||||||
PidProfile[ID].D[YAW] = 50;
|
PidProfile[ID].D[YAW] = 50;
|
||||||
@ -457,16 +462,16 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
|||||||
break;
|
break;
|
||||||
case PID_ID_ACCELEROMETER:
|
case PID_ID_ACCELEROMETER:
|
||||||
|
|
||||||
PidProfile[ID].P[ROLL] = 90;
|
PidProfile[ID].P[ROLL] = 120;
|
||||||
PidProfile[ID].P[PITCH] = 90;
|
PidProfile[ID].P[PITCH] = 250;
|
||||||
PidProfile[ID].P[YAW] = 0;
|
PidProfile[ID].P[YAW] = 0;
|
||||||
|
|
||||||
PidProfile[ID].D[ROLL] = 40;
|
PidProfile[ID].D[ROLL] = 0;
|
||||||
PidProfile[ID].D[PITCH] = 40;
|
PidProfile[ID].D[PITCH] = 0;
|
||||||
PidProfile[ID].D[YAW] = 0;
|
PidProfile[ID].D[YAW] = 0;
|
||||||
|
|
||||||
PidProfile[ID].PIDweight[ROLL] = 2;
|
PidProfile[ID].PIDweight[ROLL] = 4;
|
||||||
PidProfile[ID].PIDweight[PITCH] = 2;
|
PidProfile[ID].PIDweight[PITCH] = 4;
|
||||||
PidProfile[ID].PIDweight[YAW] = 100;
|
PidProfile[ID].PIDweight[YAW] = 100;
|
||||||
|
|
||||||
PidProfile[ID].pidEnabled = true;
|
PidProfile[ID].pidEnabled = true;
|
||||||
@ -477,27 +482,21 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
|||||||
case PID_ID_COMPASS:
|
case PID_ID_COMPASS:
|
||||||
|
|
||||||
PidProfile[ID].P[ROLL] = 10;
|
PidProfile[ID].P[ROLL] = 10;
|
||||||
PidProfile[ID].P[PITCH] = 10;
|
|
||||||
PidProfile[ID].P[YAW] = 10;
|
|
||||||
|
|
||||||
PidProfile[ID].PIDweight[ROLL] = 100;
|
PidProfile[ID].PIDweight[ROLL] = 100;
|
||||||
PidProfile[ID].PIDweight[PITCH] = 100;
|
|
||||||
PidProfile[ID].PIDweight[YAW] = 100;
|
|
||||||
|
|
||||||
PidProfile[ID].pidEnabled = false;
|
PidProfile[ID].pidEnabled = false;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PID_ID_BAROMETER:
|
case PID_ID_BAROMETER:
|
||||||
|
|
||||||
PidProfile[ID].P[ROLL] = 10;
|
PidProfile[ID].P[ROLL] = 1;
|
||||||
PidProfile[ID].P[PITCH] = 10;
|
|
||||||
PidProfile[ID].P[YAW] = 10;
|
|
||||||
|
|
||||||
PidProfile[ID].PIDweight[ROLL] = 100;
|
PidProfile[ID].PIDweight[ROLL] = 100;
|
||||||
PidProfile[ID].PIDweight[PITCH] = 100;
|
|
||||||
PidProfile[ID].PIDweight[YAW] = 100;
|
|
||||||
|
|
||||||
PidProfile[ID].pidEnabled = false;
|
PidProfile[ID].pidEnabled = false;
|
||||||
|
PidProfile[ID].dterm_lpf = 90;
|
||||||
|
PidProfile[ID].pid_out_limit = 1000;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -528,9 +527,8 @@ void pidInit()
|
|||||||
|
|
||||||
void pidEproom(void)
|
void pidEproom(void)
|
||||||
{
|
{
|
||||||
|
PidProfile[PID_ID_BAROMETER].PIDweight[ROLL] = 200;
|
||||||
|
|
||||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[ROLL] = 4;
|
|
||||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[PITCH] = 4;
|
|
||||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[YAW] = 100;
|
PidProfile[PID_ID_ACCELEROMETER].PIDweight[YAW] = 100;
|
||||||
|
|
||||||
PidProfileBuff[PID_ID_GYRO].dT = SystemTasks[TASK_GYROPID].desiredPeriod/1000; //<2F>NDRA TILL SEKUNDER inte ms
|
PidProfileBuff[PID_ID_GYRO].dT = SystemTasks[TASK_GYROPID].desiredPeriod/1000; //<2F>NDRA TILL SEKUNDER inte ms
|
||||||
|
@ -679,14 +679,14 @@ const cliCommandConfig_t commandTable[COMMAND_ID_COUNT] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
//BARO I
|
//BARO I
|
||||||
[COMMAND_ID_PID_ACCEL_I_PITCH] =
|
[COMMAND_ID_PID_BARO_I_HEIGHT] =
|
||||||
{
|
{
|
||||||
"pid_baro_i_height", COMMAND_ID_PID_BARO_I_HEIGHT, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 8, VAL_UINT_8, .valueRange = {0, 255}
|
"pid_baro_i_height", COMMAND_ID_PID_BARO_I_HEIGHT, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 8, VAL_UINT_8, .valueRange = {0, 255}
|
||||||
},
|
},
|
||||||
//BARO D
|
//BARO D
|
||||||
[COMMAND_ID_PID_ACCEL_D_PITCH] =
|
[COMMAND_ID_PID_BARO_D_HEIGHT] =
|
||||||
{
|
{
|
||||||
"pid_baro_d_height", COMMAND_ID_PID_ACCEL_D_PITCH, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 11, VAL_UINT_8, .valueRange = {0, 255}
|
"pid_baro_d_height", COMMAND_ID_PID_BARO_D_HEIGHT, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 11, VAL_UINT_8, .valueRange = {0, 255}
|
||||||
},
|
},
|
||||||
|
|
||||||
//BARO Filters and limits
|
//BARO Filters and limits
|
||||||
|
@ -40,9 +40,9 @@ flags_Configuration_t flagConfigArr[FLAG_CONFIGURATION_COUNT] = {
|
|||||||
.flagId = systemFlags_flightmode_acceleromter_id,
|
.flagId = systemFlags_flightmode_acceleromter_id,
|
||||||
},
|
},
|
||||||
[FLAG_CONFIGURATION_FLIGHTMODE_BAROMETER] = {
|
[FLAG_CONFIGURATION_FLIGHTMODE_BAROMETER] = {
|
||||||
.minRange = 0,
|
.minRange = 1900,
|
||||||
.maxRange = 0,
|
.maxRange = 2100,
|
||||||
.channelNumber = 0,
|
.channelNumber = 6,
|
||||||
.flagId = systemFlags_flightmode_barometer_id,
|
.flagId = systemFlags_flightmode_barometer_id,
|
||||||
},
|
},
|
||||||
[FLAG_CONFIGURATION_FLIGHTMODE_COMPASS] = {
|
[FLAG_CONFIGURATION_FLIGHTMODE_COMPASS] = {
|
||||||
|
@ -258,7 +258,7 @@ void systemTaskAltitude(void)
|
|||||||
//double temperature = barometer_GetCurrentTemperature();
|
//double temperature = barometer_GetCurrentTemperature();
|
||||||
//double pressure = barometer_GetCurrentPreassure();
|
//double pressure = barometer_GetCurrentPreassure();
|
||||||
//float altitute = barometer_GetCurrentAltitude();
|
//float altitute = barometer_GetCurrentAltitude();
|
||||||
float altitute = barometer_GetCurrentAveragedtAltitude();
|
//float altitute = barometer_GetCurrentAveragedtAltitude();
|
||||||
|
|
||||||
//pid run, should probably be moved to systemTaskAltitude
|
//pid run, should probably be moved to systemTaskAltitude
|
||||||
pidRun(PID_ID_BAROMETER);
|
pidRun(PID_ID_BAROMETER);
|
||||||
|
Reference in New Issue
Block a user