风筝
发表于: 2018-12-14 14:10:17 | 显示全部楼层

如果你是第二次世界大战(WWII )的飞机或那个时代的其他类似机器的粉丝,就会发现陀螺仪的用处。在当时,M-7陀螺仪是现代技术的奇迹,但它个头比较大。这些陀螺仪的尺寸大小与内燃机类似。


70多年后,这些设备经历了令人难以置信的小型化。你会发现陀螺仪、加速度计,甚至是内置在单个芯片中的温度传感器 - 称为惯性测量单元(IMU) - 甚至比你的指甲还要小。这其中一个非常受欢迎的加速度计是InvenSense的MPU-6050,您可以同扩展板一同购买,以及需要使用的所有组件,大约一美元。


该芯片使用微机电系统(MEMS)技术根据外力改变内部电容值。虽然其内部工作非常吸引人,但芯片可以接收所有传感数据。将它产生的值输入到Arduino开发板或您选择的任何其他计算系统。更加方便的是,芯片以I2C格式输出这些数据,允许它使用两条线和一个中断引脚来检测:

●    加速数据

●    陀螺仪数据

●    温度数据


Arduino开发板连接加速度计

下载.png


在本篇文章中,我们将使用带有MPU-6050芯片的GY-521模块,将数据传输到Arduino Uno开发板。各种开发板和计算系统都与I2C标准兼容,因此即使您使用不同的特定引脚和库,您也应该能够在许多情况下应用这些概念。

accelerometer-and-arduino-tutorial_image-1.jpg


首先,我们将根据以下方式连接GY-521板:

●    VCC:+ 5V

●    GND:GND

●    SCL:A5

●    SDA:A4

●    XDA:未连接

●    XCL:未连接

●    AD0:GND

●    INT:DIO 2


我们还在SCL和地之间连接了一个4.7kΩ电阻,在SDA和地之间连接了另一个电阻。您可以找到不使用外部电阻的示例,因此对于每个应用可能都不需要。


原始数据

以下是获取原始数据的基本步骤:

1.   连接完所有内容后,在Arduino开发板上加载“Short Example Sketch”

2.    打开串行监视器并将其设置为9600波特率。


然后,您将看到以下值:

●    AcX:X方向的加速度计读数

●    AcY:加速度计在Y方向读数

●    AcZ:Z方向的加速度计读数

●    Tmp:温度读数

●    GyX:关于X轴的陀螺仪读数

●    GyY:关于Y轴的陀螺仪读数

●    GyZ:关于Z轴的陀螺仪读数


我们在下面的草图中说明了这些轴及其方向。每个值都应在设备移动时响应。当芯片上的字朝上放置时,Z轴将读为正,表示重力方向。如果X轴或Y轴朝上,它们将产生类似的读数。每个轴的曲线将指示滚动值。


关于滚动方向的注释:它遵循我们在物理学中遇到的“右手规则”。如果右拇指指向与轴相同的方向,则手指将沿正旋转方向弯曲。

Raw data.png


传感器融合

您可以在许多应用程序中使用这些原始值,但MPU-6050还有另一个技巧:数字运动处理器(DMP)。该处理器可以融合加速度计和陀螺仪值,以获得更高的精度。


InvenSense在很大程度上对如何使用这些数据表示不满,但Jeff Rowberg广泛的I2C设备库(i2cdevlib)可以利用DMP的功能,使用巧妙的逆向工程工作。根据Rowberg的说法,此时代码需要一些更新,但他使用MPU6050库和附带的MPU6050_DMP6示例代码来生成偏航、俯仰和滚动的值。您还可以取消注释代码中的多个选项,以根据需要生成不同的输出。


加载代码后,请按照下列步骤操作:

1.    打开串行监视器,确保将其设置为115200波特。

2.    输入一个字符。


你会看到输出被列为偏航、俯仰和滚转的“ypr”,芯片上的X方向对应于飞机的前部。滚动和偏航的方向与您对我们之前讨论的原始值的预期方向相同。当理论飞机的机头指向下方时,俯仰会减小,但当机头指向上方时,其俯仰值会增加。用这种方式表达事物在飞行环境中是有意义的;告诉你“减少你的俯仰角”起飞的教练肯定会引起混乱 - 或者更糟。


无论您是制造模型飞机,还是设计新的游戏控制器,或者您只是想确保您的手机能够正常自动旋转,微型IMU芯片都可以实现这一切。凭借其低成本和预先编写的Arduino库,定制应用程序只需插入一些导线和编写代码即可。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1483



手机版|

GMT+8, 2024-5-14 14:58 , Processed in 0.052761 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表