首先大致看一下这个图,这是mpu6050内部设置低通滤波的寄存器,用三个 2进制 位来设置,十进制数字就是 0 - 6 。 十进制7这个数字是厂家保留位不要设置成7。
(内部滤波寄存器的其中三个二进制位。)
实验开始。
实验一: 设置的外界数据更新频率200hz,内部低通滤波器设置如下。(截止频率20hz)陀螺仪1K内部采样率(设置4级滤波效果)
实验结果(图片点开放大看)(注意看y轴的比例)
实验二:设置的外界数据更新频率200hz,内部低通滤波器设置如下。(截止频率98hz)陀螺仪1K内部采样率(设置2级滤波效果)
实验结果(图片点开放大看)(注意看y轴的比例)
实验三:设置的外界数据更新频率200hz,内部低通滤波器设置如下。(截止频率260hz)陀螺仪8K内部采样率(设置0级滤波效果)
实验结果(图片点开放大看)(注意看y轴的比例)
结论:对于高频振动,MPU6050内部的低通滤波会影响输出数据的振幅,而且影响非常大。调大内部低通滤波效果可以有效减少输出振幅。但是数据延后也会更多。
猜测:理论上来说,低通滤波不应该影响振幅,难道高频部分都是振幅高的?猜测是设置内部低通滤波时候,模块进行ADC转换获取传感器数据时候,用了个窗口时间取平均得到ADC数据。 设置低通滤波效果越好这个窗口时间越长,设置低通效果越差这个窗口时间越狭窄。
和最上面的图片一样,内部滤波寄存器的其中三个二进制位。