新手入门
- 积分
- 4
- 金钱
- 4
- 注册时间
- 2017-8-31
- 在线时间
- 1 小时
|
1金钱
本帖最后由 电子之旅 于 2017-9-2 10:27 编辑
抛飞的原理:检测加速度传感器为自由落体后,立即切换四轴为定高模式飞行。
自由落体检测的代码如下(anomal_detect.c中):
/*异常检测*/
void anomalDetec(const sensorData_t *sensorData, const state_t *state, const control_t *control)
{
if(control->flipDir != CENTER) return;
if(getCommanderAltholdMode() != true) return;
#if defined(DETEC_ENABLED)
float accMAG = (sensorData->acc.x*sensorData->acc.x) +
(sensorData->acc.y*sensorData->acc.y) +
(sensorData->acc.z*sensorData->acc.z);
if(detecFreeFall(state->acc.z, accMAG) ==true)/*自由落体检测*/
{
setCommanderKeyFlight(true);
}
else if(detecTumbled(state)==true)/*碰撞检测*/
{
setCommanderKeyFlight(false);
setCommanderKeyland(false);
}
#endif
}
|
|