本帖最后由 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演示代码,我移植到了攸米板上。
|