攸米板学习八: 测试6轴传感器MPU6050

[复制链接]
4703|8
 楼主| quyifei 发表于 2013-11-11 14:44 | 显示全部楼层 |阅读模式
本帖最后由 quyifei 于 2013-11-11 14:52 编辑

攸米板的介绍请看 https://bbs.21ic.com/icview-560714-1-1.html

    对于运动控制方面的应用开发,往往需要对姿态进行动态的实时测量。 对于姿态的测量,往往需要6个参数,三个是三个方向的加速度,另外三个是三个轴的转动角速度。 MEMS加速度传感器用于测量加速度,MEMS陀螺仪用于测量角速度。 对于要求较高的飞行姿态控制, 还需要加入3个参数标明磁场方向,用于对方向的准确测量。

   世界上许多的半导体厂商都生产MEMS传感器,参数各不相同,适用于不同的场合。对于广大DIY爱好者,我认为MPU6050是比较适合的一款。 它是由美国Invensense公司生产的。为什么说它比较适合呢? 从我使用的经验来看,主要有以下几点。

    1. 首先面积非常小,只有4mm * 4mm。 现在的设备做的都越来越小,小的面积是一个非常大的优势。
    2. 灵敏度比较高。 MPU6050是16位的传感器,在检测范围配置成+-2g时,可以检测到0.00006g(4/2的16次方)的加速度,可以感知非常微小的动作。 我之前使用过官方的STM32F4 Discovery板,板上的3轴加速度传感器是8位的,对于非常细微的运动是无能为力的(我估计用于汽车上安全气囊的开启判断还是可以的)。
    3. 数据打包。 MPU6050的数据接口是I2C,通过配置它可以以100Hz或者400Hz的频率向主处理器发送加速度和角速度的数据。 除此以外,它可以通过另一组I2C接口连接其他的传感器,例如压力传感器,磁力传感器 ,MPU6050会把其他传感器的数据和自己的数据一起打包传到主处理器。 这样大大简化了系统设计。 硬件方面主处理器只需要消耗一个I2C接口,软件方面只需要管理一个I2C接口,而且一次就可以同时读出各个传感器的值,避免了不同时间读取传感器的值导致的误差。
   4. DMP功能。 什么是DMP? Dynamic Motion Processor,是Invensense公司的一个专利。 MPU6050芯片内部有一个大小4K的RAM,该RAM可以上载Invensense官方提供的DMP代码并运行,这样一些运动方面的参数可以计算后传到主处理器,可以显著减少主处理器的负荷并简化软件设计调试。
   5. 价格相对便宜。 一颗MPU6050在淘宝上十几块一个,MPU5060模块二三十一个。

    说了这么多的好处,眼见为实,先看一个视频吧,基于攸米板的MPU6050演示。
  
   

   代码是基于Invensense官方的DMP演示代码,我移植到了攸米板上。



 楼主| quyifei 发表于 2013-11-11 14:46 | 显示全部楼层
源代码还需要整理,2天后发布出来,稍等一下!
 楼主| quyifei 发表于 2013-11-13 10:49 | 显示全部楼层
源代码来了

YOCTO_MPU6050.zip

532.22 KB, 阅读权限: 10, 下载次数: 147

MPU6050攸米板测试代码

SLHSu37 发表于 2013-11-13 11:13 | 显示全部楼层
学习学习~~
伊泽瑞拉 发表于 2014-5-17 11:52 | 显示全部楼层
  同新手   没遇到这种问题
bioger 发表于 2015-4-16 09:37 | 显示全部楼层
好东西啊 学习学习   不过问一句  DMP代码是在哪里找到的呢
小班儿 发表于 2015-4-16 18:01 | 显示全部楼层
赞一个!!!
我思故我在12345 发表于 2015-4-16 20:54 | 显示全部楼层
对于运动控制方面的应用开发,往往需要对姿态进行动态的实时测量。 对
FireBat 发表于 2015-4-17 08:01 | 显示全部楼层
硬件iic啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:最小STM32开发板-攸米板淘宝: yifei-stm.taobao.com 博客: blog.sina.com.cn/yifeistm

29

主题

146

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部