MPU6050初探

举报
ReCclay 发表于 2022/02/22 01:43:55 2022/02/22
【摘要】 文章目录 芯片介绍原理图PCB封装从重要的参数图理解原理陀螺仪加速度计加速度计与陀螺仪联合联合使用的缘由数据融合方法 参考链接 芯片介绍 以数字形式输出 6 轴...

芯片介绍

  • 以数字形式输出 6 轴或 9 轴(需外接磁传感器)的旋转矩阵、四元数
    (quaternion)、欧拉角格式的融合演算数据(需 DMP 支持)。

三轴陀螺仪,三轴加速度计,第二个I2C接口可连接其他数位运动处理器(DMP),比如加速器、磁力传感器。(故也有说6050是九轴传感器的说法)

  • 自带数字运动处理(DMP: Digital Motion Processing)引擎可减少 MCU 复杂
    的融合演算数据、感测器同步化、姿势感应等的负荷

  • 标准I2C协议、

  • 芯片内置LDO,供电3-5V都可以

  • 16bitAD转换器,16位数据输出

原理图

在这里插入图片描述

PCB封装

在这里插入图片描述

从重要的参数图理解原理

陀螺仪

陀螺仪直接输出的是角速度,角速度是指物体在单位时间内转过的角度大小。所以对角速度积分可以得到角度!

在这里插入图片描述

由于MPU6050采用的是16位带符号数作为陀螺仪测量数据输出,即数据类型是int16。所以以16进制来表示,最小的数是FFFF,由于最高位为符号位,所以相当于-7FFFF,即-32767;最大的数是7FFF,即32767。

综合上述的描述,我们可以得到,数字-32767对应-2000度每秒的陀螺仪角速度,32767对应2000度每秒的陀螺仪角速度。把32767除以2000,就可以得到16.40, 即我们说的灵敏度

把从陀螺仪读出的数字除以16.40,就可以换算成陀螺仪的角速度数值。

我们通常要把角度换算成弧度。我们知道2Pi代表360度,那么1度换算成弧度就是:2Pi/360=(2*3.1415926)/360=0.0174532。用倒数表示就是:1/57.30

通过上述分析,我们就可以知道,当采用量程为-2000到+2000的范围,把我们从陀螺仪获取的数据做如下处理,就可以用于四元数的姿态解算(用gyro_x来代表从陀螺仪读到的数据): gyro_x/(16.40*57.30)=gyro_x*0.001064,单位为弧度每秒。

加速度计

加速度计输出的是倾斜角

在这里插入图片描述

分析方法同以上的陀螺仪,当AFS_SEL=3时,数字-32767对应-16g,32767对应16g。把32767除以16,就可以得到2048, 即我们说的灵敏度。把从加速度计读出的数字除以2048,就可以换算成加速度的数值。举个例子,如果我们从加速度计读到的数字是1000,那么对应的加速度数据是1000/2048=0.49g。g为加速度的单位,重力加速度定义为1g, 等于9.8米每平方秒。

加速度计与陀螺仪联合

联合使用的缘由

简而言之就是,单独的陀螺仪使用有累计误差,而单独的加速度计使用有运动叠加误差。所以有了两者的共同作用,用加速计测量的数据来修正陀螺仪的数据。

数据融合方法

四元数法,互补滤波法,卡尔曼法等。通过调整合适的参数比例,把陀螺仪测量出来的物体角度和加速度计测量出来的角度进行互相修正。

参考链接

淘宝MPU6050的描述

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/82829280

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。