Merged with accelerometer. Started baro implementation, not working.

This commit is contained in:
Jonas Holmberg 2016-11-09 12:06:32 +01:00
parent 4fe18abcec
commit f49548d141
5 changed files with 26 additions and 28 deletions

View File

@ -14,7 +14,7 @@
#ifndef SYSTEM_VARIABLES_H_
#define SYSTEM_VARIABLES_H_
#define EEPROM_SYS_VERSION 107
#define EEPROM_SYS_VERSION 109
#define ADC_STATE
#include "stm32f4xx.h"

View File

@ -60,7 +60,7 @@ gyro_t gyroProfile = {0}; /*Struct profile for input data from senso
pt1Filter_t accelFilter[2] = {0};
float throttleRate = 0;
float throttleRate = 1;
float accRollFineTune = 0;
float accPitchFineTune = 0;
@ -112,7 +112,7 @@ void getCurrentValues(float sensorValues[3], uint8_t ID_profile)
break;
case PID_ID_BAROMETER:
sensorValues[0] = barometer_GetCurrentAveragedtAltitude();
break;
default:
@ -340,7 +340,8 @@ void pidRun(uint8_t ID)
break;
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;
}
@ -442,6 +443,10 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
PidProfile[ID].P[PITCH] = 135;
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[PITCH] = 95;
PidProfile[ID].D[YAW] = 50;
@ -457,16 +462,16 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
break;
case PID_ID_ACCELEROMETER:
PidProfile[ID].P[ROLL] = 90;
PidProfile[ID].P[PITCH] = 90;
PidProfile[ID].P[ROLL] = 120;
PidProfile[ID].P[PITCH] = 250;
PidProfile[ID].P[YAW] = 0;
PidProfile[ID].D[ROLL] = 40;
PidProfile[ID].D[PITCH] = 40;
PidProfile[ID].D[ROLL] = 0;
PidProfile[ID].D[PITCH] = 0;
PidProfile[ID].D[YAW] = 0;
PidProfile[ID].PIDweight[ROLL] = 2;
PidProfile[ID].PIDweight[PITCH] = 2;
PidProfile[ID].PIDweight[ROLL] = 4;
PidProfile[ID].PIDweight[PITCH] = 4;
PidProfile[ID].PIDweight[YAW] = 100;
PidProfile[ID].pidEnabled = true;
@ -477,27 +482,21 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
case PID_ID_COMPASS:
PidProfile[ID].P[ROLL] = 10;
PidProfile[ID].P[PITCH] = 10;
PidProfile[ID].P[YAW] = 10;
PidProfile[ID].PIDweight[ROLL] = 100;
PidProfile[ID].PIDweight[PITCH] = 100;
PidProfile[ID].PIDweight[YAW] = 100;
PidProfile[ID].pidEnabled = false;
break;
case PID_ID_BAROMETER:
PidProfile[ID].P[ROLL] = 10;
PidProfile[ID].P[PITCH] = 10;
PidProfile[ID].P[YAW] = 10;
PidProfile[ID].P[ROLL] = 1;
PidProfile[ID].PIDweight[ROLL] = 100;
PidProfile[ID].PIDweight[PITCH] = 100;
PidProfile[ID].PIDweight[YAW] = 100;
PidProfile[ID].pidEnabled = false;
PidProfile[ID].dterm_lpf = 90;
PidProfile[ID].pid_out_limit = 1000;
break;
default:
@ -528,9 +527,8 @@ void pidInit()
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;
PidProfileBuff[PID_ID_GYRO].dT = SystemTasks[TASK_GYROPID].desiredPeriod/1000; //<2F>NDRA TILL SEKUNDER inte ms

View File

@ -679,14 +679,14 @@ const cliCommandConfig_t commandTable[COMMAND_ID_COUNT] = {
},
//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}
},
//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

View File

@ -40,9 +40,9 @@ flags_Configuration_t flagConfigArr[FLAG_CONFIGURATION_COUNT] = {
.flagId = systemFlags_flightmode_acceleromter_id,
},
[FLAG_CONFIGURATION_FLIGHTMODE_BAROMETER] = {
.minRange = 0,
.maxRange = 0,
.channelNumber = 0,
.minRange = 1900,
.maxRange = 2100,
.channelNumber = 6,
.flagId = systemFlags_flightmode_barometer_id,
},
[FLAG_CONFIGURATION_FLIGHTMODE_COMPASS] = {

View File

@ -258,7 +258,7 @@ void systemTaskAltitude(void)
//double temperature = barometer_GetCurrentTemperature();
//double pressure = barometer_GetCurrentPreassure();
//float altitute = barometer_GetCurrentAltitude();
float altitute = barometer_GetCurrentAveragedtAltitude();
//float altitute = barometer_GetCurrentAveragedtAltitude();
//pid run, should probably be moved to systemTaskAltitude
pidRun(PID_ID_BAROMETER);