在孩童时代,科学博览会上的陀螺仪总是让我们惊叹不已,因为它们以奇怪的方式移动,甚至似乎可以抵抗重力。它们独特的特性使它们在从小型遥控直升机到航天飞机上的高级导航系统的一切事物中都至关重要。
近年来,巧妙的工程师成功地开发了微机电陀螺仪。这些MEMS(微机电系统)陀螺仪为一系列全新的创新应用铺平了道路,包括手势识别、增强游戏、增强现实、全景照片捕捉、车辆导航和健身监测等。
毫无疑问,陀螺仪和加速度计各有千秋。 然而,当我们将它们放在一起时,我们可以获得关于物体方向的极其精确的数据。 这就是MPU6050发挥作用的地方。MPU6050包括一个陀螺仪和一个加速度计,使我们能够测量沿所有三个轴的旋转、重力引起的静态加速度和运动引起的动态加速度。
在我们的 Arduino 项目中使用 MPU6050 之前,最好了解加速度计和陀螺仪的工作原理。
加速度计如何工作? 要了解加速度计的工作原理,请想象一个位于3D立方体中的小球。
假设立方体在外太空,那里的一切都是失重的,球会简单地漂浮在立方体的中心。
现在,假设每面墙代表一个特定的轴。
如果我们突然以1g的加速度向左移动盒子(单个G力1g相当于重力加速度9.8m/s2),球无疑会撞到墙壁X。如果我们测量球对墙壁X施加的力 ,我们可以获得沿X轴的1g的输出值。
让我们看看当把这个立方体放在地球上时会发生什么。 球将简单地落在墙Z上,施加1g的力,如下图所示:
在这种情况下,盒子没有移动,但我们仍然在Z轴上得到1g的读数。 这是因为重力(实际上是加速度的一种形式)以1g的力向下拉球。
虽然此模型并不完全代表真实世界的加速度计传感器是如何构建的,但它通常有助于理解为什么加速度计的输出信号通常以±g为单位指定,或者为什么加速度计在静止时在z轴上读数为1g,或者您可以在不同方向上获得什么样的加速度计读数。
在现实世界中,加速度计基于微机电系统(MEMS 制造技术)。 那么,让我们了解MEMS加速度计的工作原理。
MEMS加速度计如何工作? MEMS(微机电系统)加速度计是一种建立在硅晶片顶部的微机械结构。
该结构由多晶硅弹簧悬挂。 它允许结构在沿 X、Y 和/或 Z 轴加速时偏转。
由于偏转,固定板和连接到悬挂结构的板之间的电容发生变化。 这种电容变化与沿该轴的加速度成正比。传感器处理这种电容变化并将其转换为模拟输出电压。
陀螺仪是如何工作的? 加速度计测量线性加速度,而陀螺仪测量角旋转。 为此,他们测量了科里奥利效应产生的力。
科里奥利效应 科里奥利效应(Coriolis Effect)指出,当质量 (m) 以速度 (v) 沿特定方向移动并施加外部角速率 (Ω)(红色箭头)时,科里奥利效应会产生一个力(黄色箭头),导致质量垂直移动。 该位移的值与应用的角速率直接相关。
考虑以恒定频率沿相反方向振荡的两个质量。 当施加角速率时,每个质量块产生的科里奥利效应方向相反,导致质量块之间的电容成比例变化。 通过测量这种电容变化,可以计算出角速率。
MEMS陀螺仪如何工作? MEMS 传感器由一个质量块(由 M1、M2、M3 和 M4四个部分组成)组成,该质量块保持连续振荡运动,以便对科里奥利效应做出响应。 它们在水平面上同时向内和向外移动。
当我们开始旋转结构时,作用在移动质量块上的科里奥利力会导致振动从水平方向变为垂直方向。
根据应用角度旋转的轴,存在三种模式。
滚动模式(Roll Mode): 当沿 X 轴施加角速率时,由于科里奥利效应,M1和M3将在平面外上下移动。 这会导致滚动角度发生变化,因此称为滚动模式。
俯仰模式(Pitch Mode): 当沿Y轴施加角速率时,M2和M4将在平面外上下移动。 这会导致俯仰角发生变化,因此称为俯仰模式。
偏航模式(Yaw Mode): 当沿 Z 轴施加角速率时,M2和M4将沿相反方向水平移动。 这会导致偏航角发生变化,因此称为偏航模式。
每当检测到科里奥利效应时,驱动块的恒定运动将引起电容 (ΔC) 的变化,该变化由传感结构检测并转换为电压信号。
供您参考,以下就是3轴数字陀螺仪的MEMS结构芯片的外观。 感谢Adam McCombs分享这张拆开的L3GD20HTR MEMS陀螺仪图片。
MPU6050模块硬件概述 该模块的核心是一个低功耗、低成本的6轴运动跟踪芯片 – MPU6050, 将3轴陀螺仪、3轴加速度计和数字运动处理器 (DMP) 集成到一个4mm x 4mm 的微型芯片中。
它可以测量沿所有三个轴的角动量或旋转、重力引起的静态加速度以及运动、冲击或振动引起的动态加速度。
该模块包括一个板载LD3985 3.3V稳压器,因此您可以安全地将它与Arduino等5V逻辑微控制器一起使用。
MPU6050 在测量期间消耗的电流小于 3.6mA,闲置时仅为 5μA。 由于其低功耗,可用于电池供电设备。
此外,该模块有一个电源LED,当模块通电时会亮起。
测量加速度 MPU6050有一个片上加速度计,可以在±2g、±4g、±8g 和 ±16g四个可编程满量程范围内测量加速度。
MPU6050配备三个16位模数转换器,可同时对三个运动轴(沿 X、Y 和 Z 轴)进行采样。
测量旋转 MPU6050有一个片上陀螺仪,可以在±250°/s、±500°/s、±1000°/s 和 ±2000°/s的四个可编程满量程范围内测量角旋转。
MPU6050 配备了三个 16 位模数转换器,可同时对三个旋转轴(沿 X、Y 和 Z 轴)进行采样。 采样率可以在每秒3.9到8000个样本之间调整。
测量温度 MPU6050包括一个嵌入式温度传感器,可以以 ±1°C 的精度测量 -40 至 85°C 的温度。
请注意,此温度测量是硅芯片本身的温度,而不是环境温度。 这些测量通常用于补偿加速度计和陀螺仪校准或检测温度变化,而不是测量绝对温度。
I2C接口 该模块通过I2C接口与Arduino通信。 它支持两种不同的I2C地址:0x68H和0x69H。这允许两个MPU6050在同一总线上使用或避免与总线上的其他设备发生地址冲突。
ADO引脚决定模块的 I2C 地址。 该引脚通过4.7K电阻下拉。 因此,当您不连接ADO引脚时,默认I2C地址为0x68H; 当你将它连接到3.3V时,线路被拉高,I2C地址变为0x69H。
|