MPU9150的开发记录(1)

一、器件&结果

采用单片机为:stm32f103c8t6,陀螺仪为:mpu9150
mpu9150实际上为:mpu6050和AK8975C
测量结果实际效果图

二、开发记录

MPU6050开发用了4天,期间主要做了:
(1)基于互补滤波的陀螺仪和加速度的融合,参考了Mahony互补滤波、四轴飞行器DIY。
Mahony
(2)基于北航全权的多旋翼飞行器设计与控制校准了陀螺仪
(3)参考飞行器入门、电子酷、DR_CAN做了卡尔曼的融合
AK8975的开发了近三天:
MPU6050的原始数据获取直接调库很容易,AK8975的程序则比较少,大多基于DMP库,或者ST的库,看了半天也不知道写的啥。 没有办法有点强迫症,开始翻MPU9150A,8975C的技术手册,从IIC到每个寄存器的作用都看了一遍。能够用上的直接上图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以看出寄存器的地址完全一样
在这里插入图片描述
在这里插入图片描述
(1)单次测量模式下,每一次测量数据的输出后,发送模式自动进入Power_DOWN(所有内部电路的电源已关闭,除保险丝ROM外,所有寄存器均可在电源关闭模式下访问,存储在读/写寄存器中的数据被保留),意味着ADC采集不能使用,所以必须单次测量后要进入CNTL寄存器重新设置0x01,重新单次测量。

(2)这里要吐槽一下,单次测量看了几个不同的demo,后面才明白,测量一次相当于XYZ三个方向全部测量出,不需要每读一次数据,重新测量一遍哈哈,直接被那份51的历程带翻车了。

(3)不同的代码,IIC都一样好久没看底层的我详细的看了一下,都一样,标准的MUP6050的地址0x68(接地,或者挂空),有几份直接写成0xD0 ;AK8975的标准地址为:ox0c,有的也会出现0x18这种情况。这用问题,大多与IIC的写法相关。
(4)最后,一直得不到AK8975数据的原因找到了,要配置MPU6050, z真的没想到;

三 、后续

代码开源!最近没想法了,后续接着做融合算法,还有滤波。 D0915

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学习记录之stmf103c8t6最小系统板驱动mpu6050: stmf103c8t6是一款非常流行的ARM Cortex-M3微控制器,是许多嵌入式系统和嵌入式设备的首选控制器,同时mpu6050是一款集成了三轴陀螺仪和三轴加速度计的传感器模块,广泛应用于许多嵌入式设备中。在这个过程中,我们将学习如何将这两个芯片配合使用,以实现一个完整的运动控制系统。 首先,我们需要学习如何将mp6050模块连接到stmf103c8t6微控制器上。我们需要通过I2C接口连接两个设备。I2C总线是一种在嵌入式系统中常用的通信标准,可以轻松地连接多个设备。通过I2C接口读取mpu6050模块的数据,我们可以读取模块的角速度、线性加速度和温度等信息。 其次,我们需要学习如何使用stmf103c8t6微控制器来处理mpu6050模块的数据。通过读取传感器模块的数据并处理,我们可以分析实时的角速度和线性加速度等信息,并根据用户需要进行相应的运动控制。在此过程中,我们需要学习如何使用定时器、中断和其他许多嵌入式技术,以确保系统的稳定和准确。 最后,我们需要学习如何将处理过的数据传送给其他设备或显示设备,例如LED灯、LCD显示屏等。在此过程中,我们需要学习如何用C/C++语言编写代码以及硬件开发相关的知识。 总之,学习如何驱动mpu6050模块,需要我们掌握I2C通信、数据处理和其他嵌入式技术,以实现更完整和适用的嵌入式系统和控制设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值