包含的噪声太多(因为待测物运动时会产生加速度,电机运行时振动会产生加速度等),不能直接使用;陀螺仪对外界振动影响小,精度高,通过对角速度积分可以得到倾角,但是会产生累积误差。所以,不能单独使用 MPU6050 的加速度计或陀螺仪来得到倾角,需要互补。使用一阶互补滤波
//一阶互补滤波
float K1 =0.1; // 对加速度计取值的权重
float dt=0.001;//注意:dt的取值为滤波器采样时间
float angle;
angle_ax=atan(ax/az)*57.3; //加速度得到的角度
gy=(float)gyo[1]/7510.0; //陀螺仪得到的角速度
Pitch = yijiehubu(angle_axgy);
float yijiehubu(float angle_m float gyro_m)//采集后计算的角度和角加速度
{
angle = K1 * angle_m + (1-K1) * (angle + gyro_m * dt);
return angle;
}