学习笔记5-MPU6050模块
目录
- 一、相关介绍
- 二、相关图解
- 2.1模块电路图
- 2.2系统结构图
- 三、MPU6050初始化
- 四、寄存器配置
- 1、电源管理寄存器1(0x6B)
- 2、电源管理寄存器2(0x6C)
- 3、陀螺仪配置寄存器(0X1B)
- 4、加速度传感器配置寄存器(0X1C)
- 5、FIFO使能寄存器(0X23)
- 6、陀螺仪采样率分频寄存器(0X19)
- 7、配置寄存器(0X1A)
- 8、加速度传感器数据输出寄存器(0X3B~0X40)
- 9、陀螺仪数据输出寄存器(0X43~0X48)
- 10、温度传感器数据输出寄存器(0X41~0X42)
- 总结
一、相关介绍
MPU-60X0是世界上第一款集成 6 轴MotionTracking设备。它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器 DMP( DigitalMotion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其 I2C或SPI接口输出一个9轴的信号( SPI接口仅在MPU-6000可用)。 MPU-60X0也可以通过其I2C接口连接非惯性的数字传感器,比如压力传感器。
二、相关图解
2.1模块电路图
2.2系统结构图
三、MPU6050初始化
初始化I2C接口。
复位MPU6050(电源管理寄存器1-0x6B)。
设置角速度传感器和加速度传感器的满量程范围(陀螺仪采样率——采样率分频寄存器0x19;设置数字低通滤波器——配置寄存器0x1A)。
设置系统时钟(电源管理寄存器1-0x6B)。
使能角速度传感器(陀螺仪)和加速度传感器(电源管理寄存器2-0x6C)。
四、寄存器配置
1、电源管理寄存器1(0x6B)
DEVICE_RESE=1,复位MPU6050,复位完成后,自动清零
。
SLEEP=1,进入睡眠模式;SLEEP=0,正常工作模式。
TEMP_DIS,用于设置是否使能温度传感器,设置为0,则使能CLKSEL[2:0],用于选择系统时钟源。
2、电源管理寄存器2(0x6C)
该寄存器的LP_WAKE_CTRL用于控制低功耗时的唤醒频率剩下的6位,分别控制加速度和陀螺仪的x/y/z轴是否进入待机模式,全部设置为:0 (全部都不进入待机模式)。
3、陀螺仪配置寄存器(0X1B)
只需要关心FS_SEL[1:0]这两个位;一般设置为3(即±2000°/S),因为陀螺仪的ADC为16位分辨率,所以得到灵敏度为:65536/4000=16.4LSB/(°/S)。
4、加速度传感器配置寄存器(0X1C)
只关心AFS_SEL[1:0]这两个位;一般设置为0(即±2g),因为加速度传感器的ADC也是16位,所以得到灵敏度为:65536
(2^16)/4000
(2000*2)=16384LSB/g。
5、FIFO使能寄存器(0X23)
该寄存器用于控制FIFO使能,在简单读取传感器数据的时候,可以不用FIFO,设置对应位为:0,即可禁止FIFO,设置为1,则使能FIFO。
注意:加速度传感器的3个轴,全由1个位(ACCEL_FIFO_EN)控制,只要该位置1,则加速度传感器的三个通道都开启FIFO。陀螺仪的各自控制(位4-6)。
6、陀螺仪采样率分频寄存器(0X19)
该寄存器用于设置MPU6050的陀螺仪采样频率,计算公式为:
采样频率 = 陀螺仪输出频率 / (1+SMPLRT_DIV)
这里陀螺仪的输出频率,是1KHz或者8KHz,与数字低通滤波器(DLPF)的设置有关,当DLPF_CFG=0/7的时候,频率为8KHz,其他情况是1KHz。而且DLPF滤波频率一般设置为采样率的一半。采样率,我们假定设置为50Hz,那么:SMPLRT_DIV=1000/50-1=19。
7、配置寄存器(0X1A)
重点看数字低通滤波器(DLPF)的设置位,即:DLPF_CFG[2:0],加速度计和陀螺仪,都是根据这三个位的配置进行过滤的,如下表:
设置:带宽=1/2采样率
DLPF_CFG为4时较为合理。
8、加速度传感器数据输出寄存器(0X3B~0X40)
该寄存器总共由6个寄存器组成,输出X/Y/Z三个轴的加速度传感器值,高字节在前,低字节在后。
9、陀螺仪数据输出寄存器(0X43~0X48)
该寄存器总共由6个寄存器组成,输出X/Y/Z三个轴的陀螺仪传感器数据,高字节在前,低字节在后。
10、温度传感器数据输出寄存器(0X41~0X42)
通过读取0X41(高8位)和0X42(低8位)寄存器得到,温度换算公式为:
Temperature = 36.53 + regval/340
其中,Temperature为计算得到的温度值,单位为℃,regval为从0X41和0X42读到的温度传感器值。
参考自1、。
总结
学习笔记5-MPU6050模块相关推荐
- 好程序员web前端分享Nodejs学习笔记之Stream模块
好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...
- node.js学习笔记5——核心模块1
node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...
- python学习笔记4(模块
python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...
- STM32F407学习笔记——MG90S舵机模块(基本控制)
STM32F407学习笔记--MG90S舵机模块(基本控制) 一.基本原理: 通过改变PWM占空比来实现舵机进行不同角度转动,下面给出旋转角度与脉冲时间及对应占空比的关系(时基脉冲=20ms). 旋转 ...
- Apollo学习笔记3-定位模块配置
Apollo学习笔记3-定位模块配置 环境介绍 导航设备参数配置 导航设备配置 (1)杆臂配置 (2)GNSS 航向配置 (3)导航模式配置 (4) USB 接口输出设置 (5)网口配置 (6) PP ...
- Python学习笔记__5章 模块
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为 ...
- Webpack4 学习笔记二 CSS模块转换
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...
- python3常用模块_Python学习笔记三(常用模块)
Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...
- CANoe学习笔记(9) 发送模块CAN IG图解
参考官方教程,整理的个人自学笔记,方便日后查阅. CANoe是德国Vector公司出的一款总线开发环境,全称叫CAN open environment,主要用于汽车总线的开发而设计的.CANoe的前期 ...
- libgdx 学习笔记七 Libgdx模块概述
简介 LibGDX 包括几个模块,对每一个典型的游戏架构步骤提供服务. Input - 对所有平台提供一个统一的输入模块并处理.支持键盘,触摸屏,传感器,鼠标等 Graphics - 开启屏幕上图像的 ...
最新文章
- linux smart服务,RAKsmart Linux美国服务器常用信息命令
- python3 性能提升_整理下Python性能语法,非常有效的提高性能的tips
- js的with语句使用方法
- 2016年4月 TIOBE 编程语言排行榜
- MyBatis:事务回滚
- laravel mysql视图_php-动态更新Laravel视图
- 跟 05 后拼年龄?算了,11 岁的他都成比特币专家了
- python交换两个值原理_python交换两个变量的值方法
- mysql 5.7.26 linux安装_mysql-5.7.28 在Linux下的安装教程图解
- 云课堂让职业院校软件开发教学更简单
- 与iPhone5国行A1429的故事:越狱、降级刷机、完美电信3G、不完美电信4G、撸油管
- 深度linux如何装win系统,在深度deepin系统中使用deepin-wine自定义安装win程序的方法...
- L2范数-欧几里得范数
- S3C2440-GPIO和jlink配置
- 跨境物流的主要操作流程是怎样的?
- msys2在windows10系统的安装
- 电子商务网站:SEO优化的15个基本技巧!
- 外观数列(Look-and-say sequence)
- 在vue中使用element-ui 里面的按钮点击后显示加载中,防止重复提交
- SpringBoot报错Field userService in XXTestController required a bean of type 'XX' that could not be...