相关内容:
1)MPU6050的简介
2)MPU6050的封装
3)MPU6050的陀螺仪、加速度计、磁力计介绍
4)自检(Self Test)
5)系统结构图
6)姿态角
7)如何得到姿态角
8)MPU6050与单片机的通信
一、MPU6050的简介
MPU6050是全球首例6轴运动处理器,它集成了3轴陀螺仪,3轴加速度计,以及一个可扩展的数字运动处理器DMP。可通过IIC接口连接一个第三方数字传感器(比如磁力计),构成9轴的MPU6050,扩展之后就可通过IIC接口输出一个9轴的信号,也可通过其IIC接口连接非惯性数字传感器,比如压力传感器,另外片上还内嵌了一个温度传感器,可测MPU6050自身的温度。
MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500, ±1000, ±2000°/秒( dps),加速度计可测范围为±2,±4,±8,±16g。
MPU6050与所有的设备寄存器之间的通信采用400KHz的IIC接口。
二、MPU6050的封装
芯片尺寸4×4×0.9mm,采用QFN封装(无引线方形封装),可承受最大 10000g的冲
击:
引脚定义:
CLKIN:可选的外部时钟输入,如果不用可连接到GND
AUX_DA:IIC主串行数据,用于外接传感器,比如磁力计
AUX_CL:IIC主串行时钟,用于外接传感器
VLOGIC:为数字I/O口提供电压
AD0:IIC从机地址的最低位,接GND时,从机地址最低位为0,接VDD时,从机地址最低位为1;
REGOUT:校准滤波电容连接
FSYNC:帧同步数字输入
INT:中断数字输入
VDD:电源电压、为数字I/O口供电
GND:电源地
RESV:保留引脚,不接
CPOUT:连接电荷泵电容
SCL:IIC串行时钟引脚,用于和其它设备寄存器之间的通信
SDA:IIC串行数据引脚
三、MPU6050的陀螺仪、加速度计、磁力计
1、陀螺仪
陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出旋转方向和角度。传感器MPU6050实际上是一个结构非常精密的芯片,内部包含超微小的陀螺,陀螺仪是测试角速度的传感器,也有人把角速度说成角速率,说的是一样的物理量。拿电机做例子,当我们说一个电机10转每秒。一转是360度,那么它的主轴在一秒内转过3600度,体现了绕轴转动的快慢。也就是说这个电机在转动时的角速度是3600dps.dps 就是dergee per second 度每秒(或者写成 deg/s).
MPU6050 集成了三轴的陀螺仪.角速度全格感测范围为±250、±500、±1000与±
2000°/sec (dps).可以准确追踪快速与慢速动作。当选择量程为±250dps的时候,将会得到分辩率为131LSB/(º/s),根据65536/2/250计算所得.也就是当载体在X+轴转动1dps时,ADC将输出131.
陀螺仪的量程可通过MPU6050的GYRO_CONFIG(陀螺仪配置寄存器)来设置:
这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围的,其中FS_SEL[1:0]用来开启/关闭陀螺仪3个轴的自检,FS_SEL用来设置陀螺仪的量程,FS_SEL[1:0]取值和量程的对应关系如下:
2、加速度计
加速度计顾名思义,就是测量加速度的,能够反映物体的受力情况,我们知道,物体在空间受的力可以分解到X、Y、Z坐标轴上,而用3轴的加速度计,通过三个坐标轴的所受的惯性力,就可以得到三个轴的加速度,并将这个得到的加速度值用于角度的计算。
MPU6050集成了3轴的加速度计,加速度全格感测范围为±2g, ±4g, ±8g 和±16g (1g=9.8米/ S ^ 2 ),当量程选择±2g时,对应的灵敏度= 16384 LSB/ G ,即如果Z轴的加速度为1g时,则ADC输出16384。
MPU6050加速度计的量程可以通过ACCEL_CONFIG(加速度配置寄存器)进行设置:
其中XA_ST,YA_ST、、ZA_ST用来开启/关闭X轴、Y轴、Z轴的自检,AFS_SEL[1:0]用来设置加速度计的量程:
3、磁力计
陀螺仪的强项在于测量自身的旋转运动,对自身的运动更擅长,但不能确定设备的方位。加速度计在于测量设备的受力情况,对设备相对于外部参考系的运动更擅长,也不能确定方位。所以,如果对方位有比较高的要求,可以用IIC接口外接一个磁力计,这也是解决航向角(yaw)漂移的办法。
磁力计用于感受地磁向量以解算出模块与北的夹角,磁力计这个功能类似于指南针,所以也称之为电子指南针,或者电子罗盘。如果MPU6050扩展了磁力计,就能够确定设备的方位。
四、自检(Self Test)
MPU6050的陀螺仪和加速计都带有自检的功能,四旋翼中陀螺仪需要开启自检,加速度计不用开启自检。
陀螺仪自检:陀螺仪不开启自检时,如果在上电之前,四旋翼会以自身的放置状态建立坐标系,如果它的放置不是与地面平行的,而是与地面成一定的角度,那它所建的坐标系就会与地面成一定的夹角,也会在起飞和飞行过程中一直保持这个夹角,即它不能与地面平行的飞行,相对于上电之前建立的坐标系飞行,而不是地面坐标系。利用陀螺仪的自检就可以避免这个问题,开启自检功能,上电时自检的数据(与地面的夹角)会被送到MPU6050的DMP储存起来。如果上电前,在X轴方向四旋翼与地面的夹角为1°,飞行时,X轴上与地面的夹角为2°,DMP在处理时会减去自检的角度1°,得到的角度就是相对于地面坐标系的角度值了。
加速度计自检:因为加速度计测量的是相对于地面坐标系的运动,在静止时,只有垂直向下的重力加速度,而这个重力加速度的正方向默认是Z- ,与怎样放置没有关系,但是如果开启了自检,而且四旋翼上电之前也不是水平放置的话,那么重力加速度的正方向也就不是Z-了,为了让重力加速度的正方向一直是是默认的Z- 方向,就只能不开启加速度计的自检了。
五、系统结构图
从这个图中可以清晰的看到MPU6050的绝大部分资源,也能看到数据的走向,所以这个图也不防多看几遍。
六、姿态角
姿态角(Euler)是俯仰角(pitch)、滚转角(Roll)、偏航角(Yaw)三个角的统称,以下面MPU6050芯片的坐标系为例,绕X轴旋转的姿态角是俯仰角,绕Y轴旋转的姿态角是滚转角,绕Z轴旋转的姿态角是偏航角,姿态角的正负也可根据图中X轴、Y轴、Z轴的交投来判断,箭头所指方向为正。也可用右手定则来判断,右手握住坐标轴,大拇指指向坐标轴的正方向,则四指所指方向为正。
七、如何得到姿态角
MPU6050的陀螺仪和加速度计会产生6个原始数据,着6个原始数据经过姿态融合后就可以得到Pitch、Roll、Yaw。
姿态融合算法就是融合多种运动传感器的算法,有四元数法、一阶互补滤波算法、卡尔曼滤波算法等。
我们四旋翼中用的是四元数的算法,而且是借助MPU6050自带的数字运动处理器DMP并结合InvenSense 的DMP库来得到这个四元数,最后四元数经过几行公式的转换就可以得到需要的Pitch、Roll、Yaw了。
八、MPU6050与单片机的通信
我们看MPU的引脚定义的时候会发现,有一个INT引脚,这个脚很有用,当DMP处理完原始数据时,就会在INT引脚产生一个中断信号,单片机检测到这个中断信号,就会通过IIC接口读取DMP产生的四元数。
今天就写这些了。
能力有限,如果有写的不合适的地方,欢迎大家多多指正。如果有兴趣,也可以一起交流,互相学习。 (微信号 :c18093458455)
文章评论(0条评论)
登录后参与讨论