MPU6050的数据获取、分析与处理
来源:互联网 发布:几个淘宝号刷一天挣40 编辑:程序博客网 时间:2024/05/21 18:32
一、基本思路
1、初始化I2C
2、将数据写入MPU6050
3、读出数据
二、 MPU6050的数据格式
我们感兴趣的数据位于0x3B到0x48这14个字节的寄存器中。这些数据会被动态更新,更新频率最高可达1000HZ。下面列出相关寄存器的地址,数据的名称。注意,每个数据都是2个字节。
0x3B,加速度计的X轴分量ACC_X
0x3D,加速度计的Y轴分量ACC_Y
0x3F,加速度计的Z轴分量ACC_Z
0x41,当前温度TEMP
0x43,绕X轴旋转的角速度GYR_X
0x45,绕Y轴旋转的角速度GYR_Y
0x47,绕Z轴旋转的角速度GYR_Z
MPU6050芯片的座标系是这样定义的:令芯片表面朝向自己,将其表面文字转至正确角度,此时,以芯片内部中心为原点,水平向右的为X轴,竖直向上的为Y轴,指向自己的为Z轴。 我们只关心加速度计和角速度计数据的含义,下面分别介绍。
2.1加速度计
加速度计的三轴分量ACC_X、ACC_Y和ACC_Z均为16位有符号整数,分别表示器件在三个轴向上的加速度,取负值时加速度沿座标轴负向,取正值时沿正向。
三个加速度分量均以重力加速度g的倍数为单位,能够表示的加速度范围,即倍率可以统一设定,有4个可选倍率:2g、4g、8g、16g。以ACC_X为例,若倍率设定为2g(默认),则意味着ACC_X取最小值-32768时,当前加速度为沿X轴正方向2倍的重力加速度;若设定为4g,取-32768时表示沿X轴正方向4倍的重力加速度,以此类推。显然,倍率越低精度越好,倍率越高表示的范围越大,这要根据具体的应用来设定。
以ACC_X为例,若当前设定的加速度倍率为4g,那么将ACC_X读数换算为加速度的公式为:a_x=4g\times \text{ACC_X}/32768,g可取当地重力加速度。
2.2 角速度计
绕X、Y和Z三个座标轴旋转的角速度分量GYR_X、GYR_Y和GYR_Z均为16位有符号整数。从原点向旋转轴方向看去,取正值时为顺时针旋转,取负值时为逆时针旋转。
三个角速度分量均以“度/秒”为单位,能够表示的角速度范围,即倍率可统一设定,有4个可选倍率:250度/秒、500度/秒、1000度/秒、2000度/秒。以GYR_X为例,若倍率设定为250度/秒,则意味着GYR取正最大值32768时,当前角速度为顺时针250度/秒;若设定为500度/秒,取32768时表示当前角速度为顺时针500度/秒。显然,倍率越低精度越好,倍率越高表示的范围越大。
以GYR_X为例,若当前设定的角速度倍率为1000度/秒,那么将GRY_X读数换算为角速度(顺时针)的公式为:g_x=1000\times \text{GYR_X} / 32768。
- MPU6050的数据获取、分析与处理
- MPU6050的数据获取、分析与处理
- MPU6050的数据获取、分析与处理
- Arduino教程:MPU6050的数据获取、分析与处理
- MPU6050数据分析
- MPU6050开发 -- 数据分析
- 5-MPU6050采集的数据
- Python金融大数据分析-数据获取与简单处理
- MPU6050数据轻松分析-基于arduino
- mpu6050寄存器得到的原始数据处理
- 关于MPU6050陀螺仪模块的测量误差分析
- mpu6050的安卓驱动分析
- FMRI数据分析与处理
- 大数据分析与处理
- 大数据分析与处理
- 大数据分析与处理
- 大数据分析与处理
- 【ML项目】基于网络爬虫和数据挖掘算法的web招聘数据分析(一)——数据获取与处理
- Centos7+svn+jenkins+maven+nexus+SonarQube+docker持续集成安装(二)
- Sort Sort Sort
- Cows POJ
- 实验一:顺序表
- Java + TestNG + Appium 实现单机多个Android终端并发测试
- MPU6050的数据获取、分析与处理
- 站在线程角度看Android Handler 机制
- 数据结构 2 算法
- Codeforces Round #436 div 2 A B C D 题解
- Mysql Mac osX 下安装及初始设置和问题解决
- 为什么设置了jackson2序列化方式hash的get方法不能反序列化对象
- vs2012设置查看内存
- 脚本化HTTP——AJax
- 内容提供器总结