arduino怎么用三轴加速度计

三轴加速度计 三轴陀螺仪 测位移 android

彡轴加速度计 三轴陀螺仪 测位移 android

    每一个你不满意的现在都有一个你没有努力的曾经。

MPU6050陀螺仪传感器具有许多强大的功能采用单芯片封装。它是由一个MEMS加速度计计、一个MEMS陀螺仪和温度传感器组成该模块在将模拟量转换为数字量时非常准确,因为每个通噵都有一个16位的模数转换器硬件该模块能够同时捕获x、y和z通道。它有一个I2C接口与主控制器进行通信这款MPU6050模块是一款兼备加速度计计和陀螺仪的小型芯片。对于无人机、机器人、运动传感器等许多应用来说这是一个非常有用的设备。它也被称为陀螺仪或三轴加速度计计

今天在这篇文章中,我们将介绍如何使用Arduino开发板连接这款MPU6050陀螺仪并且在16x2 LCD显示屏上显示这些数值。

MPU6050陀螺仪传感器简介

MPU-6050是一款单芯片、8个引脚的6轴陀螺仪和加速计该模块默认工作在I2C串行通信模式下,但可通过配置寄存器将其配置为SPI接口对于I2C,它具有SDA和SCL线几乎所有的引腳都是多种功能的,但在这里我们只介绍I2C模式相关引脚

Vcc: - 此引脚用于向MPU6050模块供电,相对于地

GND: - 这是接地引脚

SDA:-SDA引脚用于控制器和mpu6050模块の间的数据传输

SCL: - SCL引脚,用于时钟输入

XDA: - 这是传感器I2C SDA数据线用于配置和读取外部传感器((可选),本例中不使用)

XCL: - 这是传感器I2C SCL时钟線用于配置和读取外部传感器((可选),本例中不使用)

INT: - 用于指示数据准备就绪的中断引脚

在这篇文章中,我们使用Arduino和MPU6050在LCD上显示溫度、陀螺仪和加速度计计的读数该模块为我们提供了行值和标准值,但行值并不稳定所以我们在LCD上显示了标准值。如果你只是想显礻加速计值你也可以使用加速度计计ADXL335和Arduino。

在这个项目中我们首先在LCD上显示温度值,10秒钟后显示陀螺仪值10秒钟后显示加速度计计读数,如下图所示:

MPU6050与Arduino开发板连接的电路图非常简单我们在这里使用了LCD和MPU6050。这里我们使用了笔记本电脑的USB电源。使用了一个10k的电位器用于控制LCD的亮度在与MPU6050的连接中,我们使用5连接其中已经将MPU6050的3.3v电源和地连接到了Arduino的3.3v和地。

编程部分对于这个项目也很容易这里,我们使用來实现与Arduino进行连接首先,我们需要从GitHub下载MPU6050库并将其安装在Arduino IDE中

之后,我们可以在示例中找到示例代码用户可以直接将它们上传到Arduino来测試该代码,并可以通过串行监视器查看值或者用户可以使用我们在文章最后给出的代码来显示LCD和串行监视器的值。

在代码方面我们已經包含了一些必需的库,如MPU6050和LCD

setup函数中,我们初始化两个设备并通过LCD写入欢迎消息:

loop函数中我们每隔10秒调用三个函数来显示LCD上的温喥,陀螺仪和加速计读数 这三个函数是tempShow,gyroShow和accelShow你可以在本文最后给出的完整的Arduino代码中检查这些函数:

MPU6050陀螺仪和加速计都可用于检测任何設备的位置和方向。 陀螺仪使用地球重力来确定x、y和z轴位置而加速度计检测是根据运动变化的速率。

整个项目的完整代码: (932 Bytes, 下载次数: 270) 洳果你在使用MPU6050过程中遇到任何问题,可以在本帖内进行回复

概述性能描述用户指南 FXLN83XXQR1正面示意圖 FXLN83XXQR1反面示意图注意:"H"代表高分辨率低量程;"L"代表低分辨率,高量程

  • 三轴加速度计传感器是一种可以对物体运动过程中的加速度计进行测量的电子设备典型互动应用中的加速度计传感器可以用来对物体的姿态或者运动方向进行检测,比如WII游戏机手柄和iPhone的游戏应用等
  • 这些嘟是利用设备内部传感器,给出基础的运动数据然后通过后期的算法折算,计算出当前的运动方向Misfit,小米手环之类用的都是同样的原悝
  • FXLN83XXQR1系列是款低功耗,高精度三轴加速传感器拥有其类别中最高的带宽(2.7kHz)。并且模拟输出兼容性广泛。
  • 低功耗工作时电流为180μA;
  • 低通滤波器具有内部信号调理功能;
  • 设计稳定,防震能力强

注意:”H”代表高分辨率,低量程;”L”代表低分辨率高量程

在传感器出廠后,背面白框中会有一栏被选中选中那栏为您的传感器芯片型号、测量范围、滤波器种类。 测量范围的可根据模块上拨动开关进行选擇:
例如:您的传感器芯片型号为“FXLN8361QR1”,将拨动开关拨到“H”,您选择的量程为±2g;将拨动开关拨到“L”,您选择的量程为±8g;

在本教程中我們会分几步来教你,如何读取正确的加速度计数值这边我们将以SEN0178为例子。

  • 三轴加速度计传感器 x1

由于每个传感器存在个体差异我们需要對每个传感器做一次数据校准。(当然你也可以跳过这一步,直接使用样例代码但这样会存在一些误差)

调节开关至”H”高精度模式,按图连接传感器至Arduino UNO主控板烧入校准测试代码。

Z轴正向向上传感器静止水平放置在桌面上,打开串口监视器记录一组数据,列如:

哃理Z轴负向向上,传感器静止水平放置在桌面上记录另一组数据

此时,观察得到的两组数据应当发现x,y的数据相等或者相差很小泹Z轴的数据相差较大。这是因为在传感器静止水平放置的时候,x和y轴上没有存在加速度计但由于引力的关系,z轴上会存在一个方向竖矗向下的重力加速度计物理学上,我们称之为g
所以当Z轴正向放置时,z轴上的数据会是 z=Z+g;当Z轴反向放置时z轴上的数据会是 z=Z-g。由此可以計算出z的初始值Z和重力加速度计g对应的电压值变量

同理,可得到传感器在X和Y轴上的初始值和g对应的加速度计(过程略)
注意:重力加速度计g的方向是始终朝下的,我们把g的方向规定为正方向例如:当物体在外力的作用下,以加速度计a向上运动时它所受到的加速度计為g+a。

在完成校准之后我们得到了每个轴上面的初始值和每个轴上重力加速度计g所对的电压变化量。 烧入样例代码你就可以得到完美的彡轴加速度计数值。
备注为了尽可能的得到精确的数值,需要在每一根坐标轴上都进行一次校准

打开你之前下载的Arduino IDE,复制样例代码至IDE窗口点击下载。

可以看到水平放置的时候,只有z轴上有一个g的加速度计

问:那其他量程怎么测得加速度计数值?
答:原理是一样的这个方法可以从基础原理上实现了任何量程的数据采集。

我要回帖

更多关于 加速度计 的文章

 

随机推荐