本帖最后由 Taven 于 2017-3-18 14:40 编辑
我看论坛搞MPU6050之类的模块的人还是蛮多的,但或多或少都有问题,特别是在使用MPU6050时同时读取HMC5883L,成功的经验贴不多。正好最近也在玩GY_86这个模块,单片机使用的STM32F103C8T6最小系统版。也是摸索了一段时间,好在成功同时读取了MPU6050和HMC5883L的数据,当然MS5611也是可以同时读取的,这部分程序还没完全写好,在转换高度的环节还有些问题。
STM32F103C8T6-IMU-0302.rar
(4.02 MB, 下载次数: 1108)
2017-3-16 16:43 上传
点击文件名下载附件
截图中:angle是罗盘的数据,其他的Pitch,Roll,Yaw,分别是MPU6050的横滚,俯仰,航向,由于使用的是DMP库,所以没有加滤波函数,时间久一点Yaw确实有轻微的飘,上点初始化时各轴是校准0度的,图中可见Yaw已经飘了2度了
。
2017/3/18:更新MS5611气压计
STM32F103C8T6-IMU-0318.rar
(4.24 MB, 下载次数: 778)
2017-3-18 14:06 上传
点击文件名下载附件
这次MS5611里气压转换高度用的是PIX飞控里的公式,效果还是比较好的,当然强烈建议MS5611上要盖海绵,最好是黑 {MOD}的,避免光照和气流影响,这样的读数才会平缓些,截图中Pressure为当前的气压读数(单位pa),altitude为当前的高度(单位m),Temperature为当前气压计的温度读数(扩大了100倍,单位为℃)。每次程序初始化都会把高度自动校准为0的。(初始化时建议平放MPU6050,否则DMP容易初始化失败)
截图中黑 {MOD}背景的两张就是PIX的气压转高度公式。
恩恩,mpu6050的DMP自带滤波的,然后MS5611自己加个一介滤波就可以了,磁力计的话我看数据还好。
一周热门 更多>