MPU-6050资源介绍

2023-05-16

介绍

作用:测量三轴加速度和三轴角速度

测三轴加速度:加速度计

测三轴角速度:陀螺仪

加速度计具有静态稳定性,动态不稳定性

陀螺仪具有静态不稳定性,动态稳定性

需要互补滤波,得到动态,静态都稳定的姿态角

参数
  1. 16位ADC采集传感器:测量范围:-32768--32767

  1. 加速度计满量程选择:±2;±4;±8;±16(g)

  1. 陀螺仪满量程选择:±250;±500;±1000;±2000;(°/sec:每秒转多少度)

注意:满量程数据和范围测量数据对应,满量程数据越小,数据就越精确,线性关系

  1. 可以配置低通滤波:设置滤波值,低频部分可以通过,提高数据平滑

  1. 可以配置时钟源

  1. 可以配置采样分频

注意:时钟源和采样分频用来给设备提供时钟,控制采样速度

  1. i2c从机地址:1101000(AD0=0); 1101001(AD0=1)

寄存器

将采集到的数据通过ADC写入到SensorRegister(传感器寄存器)每个传感器都有自己单独的数据寄存器,不会数据覆盖;我们,设置好转换频率后,数据定时更新,i2c接口直接读取寄存器的值即可以获取六轴数据

数据通过i2c接口读写数据过程

  1. 采样分频寄存器

作用:设置采样速率,也就是数据刷新率

Gyroscope output rata:陀螺仪y轴的时钟频率

注意:其中陀螺仪输出速率= 8kHz时,DLPF(低通滤波器)是禁用的(DLPF_CFG = 0或7),为1kHz时,DLPF是启用的。

  1. 配置寄存器(主要是DLPF_CFG)

低通滤波器配置表:0:不用,和1上面对应,其余按需要选择

  1. 陀螺仪配置寄存器

bit5-bit7:陀螺仪自测使能寄存器

bit3-bit4:满量程选择位

  1. 加速度计配置寄存器

前五位和上个寄存器功能一样,后面三位是高通寄存器配置位

高通滤波器:通过高于设定频率的数据

  1. 运动检测阈值寄存器

当任何加速度计测量值的绝对值超过该运动检测阈值时,将检测运动。此条件增加运动检测持续时间计数器(寄存器32)。当运动检测计数器达到MOT_DUR(寄存器)中指定的时间计数时,运动检测中断被触发

  1. 运动检测时间寄存器

这个寄存器为运动中断生成配置持续时间计数器阈值。持续时间计数器以1 kHz滴答,因此MOT_DUR的单位为1 LSB = 1 ms。当任何加速度计测量值的绝对值超过运动检测阈值(寄存器MOT_DUR)时,运动检测持续时间计数器增加。当运动检测计数器达到该寄存器中指定的时间计数时,运动检测中断被触发。

  1. 零运动阈值检测寄存器(uint8_t)

这个寄存器为零运动中断的产生配置检测阈值。当加速度计测量的3个轴的绝对值都小于检测阈值时,检测到零运动。此条件增加零运动持续时间计数器(寄存器34)。当零运动持续时间计数器达到ZRMOT_DUR(寄存器34)中指定的时间计数时触发零运动中断。与自由落体或运动检测不同,零运动检测在首次检测到零运动和不再检测到零运动时触发中断。当检测到零运动事件时,将在MOT_DETECT_STATUS寄存器(寄存器97)中指示零运动状态。当检测到从运动到零运动的条件时,状态位设置为1。当检测到零运动到运动的条件时,状态位设置为0。

  1. 零运动检测时间寄存器

这个寄存器为零运动中断生成配置持续时间计数器阈值。持续时间计数器以16hz的频率跳动,因此ZRMOT_DUR的单位为1 LSB = 64 ms。当加速度计测量值的绝对值小于检测阈值(寄存器33)时,零运动持续时间计数器增加。当零运动持续时间计数器达到该寄存器中指定的时间计数时触发零运动中断。参数:ZRMOT_DUR8位无符号值。持续时间计数器阈值。单位1lsb = 64ms。

  1. 中断使能寄存器

要使用哪个中断中断源,使能即可

FF_EN:自由落体检测

MOT_EN:运动检测

ZMOT_EN:零运动检测

FIFO_OFLOW_EN:FIFO缓冲区溢出

I2C_MST_INT_EN:I2C主中断源生成中断

DATA_RDY_EN:Data Ready中断,每次完成对所有传感器寄存器的写入操作时,都会发生该中断。

  1. 中断状态寄存器

这个寄存器显示了每个中断产生源的中断状态。读取寄存器后,每一位都将被清除。与上面的中断使能寄存器一一对应,当产生某个中断时,对应位被置位。

  1. 加速度数据寄存器

每个数据分为高八位和低八位,想要什么数据直接读取即可,它以16位2的补码存储。

每个量程的灵敏度

12.温度传感器

用法同加速度数据传感器

  1. 陀螺仪传感器

用法同加速度数据传感器

  1. 运动状态寄存器

这个寄存器报告运动检测和零运动检测的状态。运动检测位,MOT_XNEG, MOT_XPOS, MOT_YNEG, MOT_YPOS, MOT_ZNEG和MOT_ZPOS,报告产生运动检测中断的运动轴和极性。当检测到零运动时,MOT_ZRMOT位被设置为1。读取这个寄存器清除运动检测位。然而,直到不再检测到零运动,MOT_ZRMOT位才会清除。

MOT_XNEG:当负X轴的运动产生运动检测中断时,该位自动设置为1

MOT_XPOS:当正X轴的运动产生运动检测中断时,该位自动设置为1

MOT_YNEG:当负Y轴的运动产生运动检测中断时,该位自动设置为1

MOT_YPOS:当正Y轴上的运动产生运动检测中断时,该位自动设置为1

MOT_ZNEG:当负Z轴的运动产生运动检测中断时,该位自动设置为1

MOT_ZPOS:当正Z轴的运动产生运动检测中断时,该位自动设置为1

MOT_ZRMOT:该位自动设置为1时,零运动检测中断产生

13.电源管理寄存器1

BIT7:写1复位

BIT6:睡眠

BIT5:循环模式:过一段时间启动一次,唤醒频率由电源管理寄存器2的高2位决定;

BIT3:写1禁用内部温度传感器

BIT0-BIT3:系统时钟来源选择;推荐陀螺仪晶振,更加精确

14.电源管理寄存器2

前两位配置电源管理寄存器1的唤醒频率

后面六位用于配置让那些轴工作,哪些轴不工作,十分省电。

15.设备id寄存器(不可更改)

始终都是0x68

注意

上电所有寄存器值都是0x00,除了下面这两个:

一个是电源管理寄存器1:默认上电为睡眠(操作寄存器时要解除睡眠)

第二是地址寄存器,始终为0x68(它不是i2c地址)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPU-6050资源介绍 的相关文章

随机推荐

  • TCP协议

    1 TCP协议的可靠传输 我们知道TCP协议的特点有 有连接 可靠传输 面向字节流 全双工 其中连接 面向字节流和全双工在 网络编程 该文章中详细说明了 而要深入了解TCP协议 了解可靠传输也是重中之重 可靠传输也是TCP协议的一大特点 那
  • c/c++程序运行不出结果?

    1 xff0c 条件语句未执行 在运行过程中 xff0c 用到if或while等条件语句 xff0c 条件之后的语句没有执行就结束了 xff0c 且输出变量也未初始化 xff0c 当然就输出不了任何东西了 xff1b 2 xff0c 变量未
  • 【解救ROS】关于ros机器人(小车)动态调试PID参数

    1 打开终端 xff0c 连接树莓派 ssh clbrobot 64 clbrobt 2 打开底盘节点 roslaunch clbrobot bringup launch 3 再打开一个终端 ssh clbrobot 64 clbrobt
  • 十进制转十六进制(C语言)

    首先要注意输入非负整数的范围 xff1a 这里用long表示 xff1b long 取值 2147483648 2147483647 include lt stdio h gt int main long n int i 61 0 j ch
  • C语言之数组的定义及其使用方法

    作者 xff1a 从未止步 博客主页 xff1a 从未止步的博客 专栏 xff1a 和我一起学C 语录 xff1a Every day is a second chance 行动是理想最高贵的表达 xff0c 给大家介绍一款超牛的斩获大厂o
  • python之常量的定义

    常量 xff1a 与C语言不同的是 xff0c python中并没有用来修饰常量的修饰符 xff0c 在python中可以通过自定义实现常量 xff0c 要求常量的标识符必须全是大写字母 xff0c 且该值不能被修改 举例 xff1a PI
  • C语言之根据摄氏温度求华氏温度

    求摄氏温度26 C对应的华氏温度 计算公式 xff1a f 61 9 c 5 43 32 xff0c 式中 xff1a c表示摄氏温度 xff0c f表示华氏温度 输入输出示例 xff1a celsius 61 26 fahr 61 78
  • python文件的操作和异常之异常

    异常 xff1a python使用称为异常的特殊类对象来管理程序执行期间发生的错误 xff0c 每当发生让python不知所措的错误时 xff0c 他都会创建一个异常的对象 如果你编写了处理该异常的代码 xff0c 程序将继续进行 xff0
  • Java---抽象类和接口

    抽象类 xff1a 抽象类的基本概念 xff1a 在面向对象的概念中 xff0c 所有的对象都是通过类来描述并创建的 xff0c 但是有一种特殊的类 xff0c 并不能用完整的信息来描述一个具体的对象 xff0c 这样的类就是抽象类 xff
  • 通过基于注解的声明式事务实现事务功能~

    编程式事务 xff1a 事务功能的相关操作全部通过自己编写代码来实现 xff1a span class token class name Connection span conn span class token operator 61 s
  • 《DRM 专栏》| 彻底入门 DRM 驱动

    https cloud tencent com developer article 2021477 前面的 DRM 应用程序系列文章中 xff0c 我们学习了如何使用 libdrm 接口编写 DRM 应用程序 本篇我们将进入一个全新的世界
  • 声明式事务的属性~

    说明 xff1a 本篇文章的代码是基于上篇文章之上的 xff0c 如有需要 xff0c 请移至这篇文章 声明式事务的属性 xff1a 只读 xff0c 超时 xff0c 回滚策略 xff1a 事务属性 xff1a 只读 对一个查询操作来说
  • 配置SpringMVC的前端控制器DispatcherServlet时,<url-pattern>中“/“和“/*“的区别

    span class token comment lt 表示所匹配的请求可以是login或 html或 js或 css方式的请求路径 xff0c 但是 不能匹配 jsp请求路径的请求 xff0c 因此就可以避免在访问jsp页面时 xff0c
  • 解决在idea中构建项目出现不能创建java类,只能创建文件的问题~

    注意 xff1a 一定要根据箭头的指向顺序进行 修改完成 xff0c 如下所示 xff1a
  • 解决在idea中构建项目时,出现的java:错误:不支持发行版本 5

    错误描述 xff0c 如下所示 xff1a 错误原因 xff1a idea中默认配置中有几个地方的jdk版本与实际不一致 解决办法 xff1a 第一步 xff1a 第二步 xff1a 第三步 xff1a 第四步 xff1a 第五步 xff1
  • 【C++】搭建HTTP服务器

    目录 项目介绍 网络协议栈介绍 协议分层 数据的封装与分用 HTTP相关知识介绍 HTTP的特点 URL格式 URI URL URN HTTP的协议格式 HTTP的请求方法 HTTP的状态码 HTTP常见的Header CGI机制介绍 CG
  • vscode 出现“未定义标识符cout”

    1 检查是否有 xff1a include lt iostream gt using namespace std 2 若有 xff0c 可以修改一下vscode的设置 xff1a 将C Cpp intelli Sense Engine的 D
  • FreeRtos.STM32f103c8t6调用vTaskDelay时间不准问题

    1 选择晶振要选择正确 2 内核选择的主频要和实际一致 define configCPU CLOCK HZ unsigned long 72000000 系统主频 define configTICK RATE HZ TickType t 1
  • FreeRtos外部中断使用

    首先是config文件里的宏 ARM Cortex M 架构自身允许最多 256 个不同的优先级 xff08 最多有 8 个 优先级位 xff0c 因此从 0 到 0xff 的优先级都是可能的 xff09 xff0c 但绝大多数使用 ARM
  • MPU-6050资源介绍

    介绍 作用 xff1a 测量三轴加速度和三轴角速度 测三轴加速度 xff1a 加速度计 测三轴角速度 xff1a 陀螺仪 加速度计具有静态稳定性 xff0c 动态不稳定性 陀螺仪具有静态不稳定性 xff0c 动态稳定性 需要互补滤波 xff