Skip to content

加速度传感器和陀螺仪

更新: 6/13/2025 字数: 0 字 时长: 0 分钟

我们可以在手机上用指南针应用得知当前的方向,或者用观星软件显示不同位置的星座,这是因为手机中装载了加速度传感器。

加速度传感器是一种用于测量物体加速度(包括静态重力加速度和动态运动加速度)的电子器件,广泛应用于消费电子、汽车、工业控制、医疗设备等领域。它的核心功能是检测物体在三维空间(X/Y/Z轴)中的运动状态,并将加速度信号转换为电信号输出。

陀螺仪是一种用于测量物体角速度(即旋转速率)的传感器,能够检测物体绕 X/Y/Z 轴 的旋转运动。

准备

硬件

硬件说明图片
创意盒平台My Image
MPU6050加速度传感器模块淘宝购买链接My Image
杜邦线淘宝购买链接,请选择公对母类型

软件

软件链接说明
加速度传感器应用链接官方前端应用,可直接通过控制台加载和使用。

连接

My Image
连接
MPU6050的VCC引脚和平台的3.3V电源连接。
MPU6050的GND引脚和平台的GND连接。
MPU6050的I2C总线SDA引脚和平台的任意引脚连接,上图为引脚0。
MPU6050的I2C总线SCL引脚和平台引脚连接,这里平台引脚需要为SDA引脚的下一个,以便加速度传感器应用得到正确的I2C总线引脚。

使用

提示

以下的步骤截图自手机浏览器,以方便展示每个步骤。

因为数据量大,在手机网页端无法达到最好的图形显示效果。

建议电脑浏览器来使用加速度传感器应用,同样的步骤即可。

创意盒控制台加载应用选择引脚编号和量程点击开始按钮并晃动MPU6050得到加速度和角速度在X,Y,Z轴的读数,停止请按结束按钮

原理

加速度传感器可以测量静态或动态加速度。静态加速度是作用在物体上的恒定力,如重力或摩擦力。这些力在很大程度上是可预测和均匀的。例如,重力导致的加速度在地球上的每个点几乎都是恒定的,约为9.8米/秒。

而动态加速度力是不均匀的。车祸是动态加速度的绝佳例子。发生车祸时,加速度的变化是突然的。加速度传感器的工作原理是它们可以检测加速度并将其转换为电信号。

MPU6050

MPU6050 可以监测加速度!它是一款集成了3轴加速度计和3轴陀螺仪的6轴惯性测量单元(IMU),能够同时测量线性加速度和角速度。

参数名称MPU6050
I2C地址0x68(默认)或0x69
量程可选2g,4g,8g或16g

参考数据手册下载

数据手册下载链接
MPU6050数据手册链接
MPU6050寄存器链接

I2C通信

主控平台通过I2C总线和MPU6050交互,通过读写MPU6050中不同寄存器进行配置并读取加速度和角速度的值。

下面的图示(数据手册第35页)展示了如何进行I2C写操作。平台首先发送开始位,然后是MPU6050的地址以及写操作位,然后MPU6050会拉低数据线进行ACK。之后平台分别发送寄存器的地址和要写入的数据。

My Image

下面的图示(数据手册地36页)展示了如何进行I2C读操作。需要先写入需要读取的寄存器地址,然后再进行读操作。

My Image

读取加速度和角速度值

加速度和角速度的值会保存在寄存器59到72中,先通过平台读取这14个寄存器的值,然后再进行运算得到加速度x,y,z轴和角速度x,y,z轴的读数。每个读数为16位。

下面的截图(MPU6050寄存器手册第29页)罗列出加速度寄存器的信息。

My Image

下面是通过平台读取加速度,温度和角速度的请求,即从寄存器59开始,依次读取14个数据:

json
{
  "event":"now",
  "actions":[["i2c",0,"write",0,1,100,104,-1,-1,1,59],["i2c",0,"read",0,1,100,104,-1,-1,14]]
}

返回值如下,通过计算得到加速度的X,Y,Z轴的值分别为-192,-3544,14968。角速度X,Y,Z轴的值分别为-134,329,-186。

json
{
  "errorcode":0,
  "result":[[1],[255,64,242,40,58,120,242,192,255,122,1,73,255,70]]
}

选择合适的量程

您需要预先判断加速度和角速度可能达到的最大值,以便选择合适的量程。MPU6050提供了4种量程选择,分别是2g,4g,8g和16g。

量程选择大则测量的准确度变低而测量范围变广,量程选择小则测量的准确度变高而测量范围变窄。

通过加速度和角速度配置寄存器进行量程选择(下面的截图来自数据手册第15页)。您可以在加速度传感器应用选择合适的量程。

My Image

下面是通过平台修改加速度和角速度量程寄存器的请求,分别将加速度量程和角速度量程设置为2g:

json
{
  "event":"now",
  "actions":[["i2c",0,"write",0,1,100,104,27,-1,1,0],["i2c",0,"write",0,1,100,104,28,-1,1,0]]
}

选择合适的加速度传感器

在选择加速度传感器时,除了通用的功耗和通信接口外,还需要考虑力的测量范围,和一些附加功能。

大多数加速度计都具有可选择的力测量范围。这些范围可以从±1g变化到±250g。通常情况下,范围越小,加速度计的读数越敏感。例如,要测量桌面上的小振动,使用小范围的加速度计将提供比使用250g范围更详细的数据(250g范围更适用于火箭等应用)。

一些加速度传感器包括诸如敲击检测(对低功耗应用很有用)、自由落体检测(用于主动硬盘保护)、温度补偿(以增加在无GPS情况下的准确性)和0g范围感应等功能。在购买加速度传感器时,还需要考虑是否需要这些功能。

还有一些IMU(惯性测量单元)可用,它们可以将加速度传感器、陀螺仪甚至偶尔的磁强计集成到单个IC封装中。这些常用于运动跟踪应用和无人机导航系统。