一、陀螺仪校准方案
延续 crazyfile2 陀螺仪校准方案,在初次上电时,计算陀螺仪三个轴的方差与平均值。
- 使用一个最大长度为 1024 的环形缓冲区,存储最新的 1024 组陀螺仪测量值
- 通过计算陀螺仪输出值方差,确认飞机已经放置平稳并且陀螺仪工作正常。
- 确认第 2 步正常后,计算静止时 1024 组陀螺仪输出值的平均值,作为陀螺仪的校准值
陀螺仪偏差计算源代码:
/**
* Adds a new value to the variance buffer and if it is full
* replaces the oldest one. Thus a circular buffer.
*/
static void sensorsAddBiasValue(BiasObj* bias, int16_t x, int16_t y, int16_t z)
{
bias->bufHead->x = x;
bias->bufHead->y = y;
bias->bufHead->z = z;
bias->bufHead++;
if (bias->bufHead >= &bias->buffe