亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

如何将 IMU (惯性测量单元) 传感器与 Arduino 对接

发布时间:2021-07-03
分享到:

如何将 IMU (惯性测量单元) 传感器与 Arduino 对接

发布时间:2021-07-03
分享到:

本文主要研究如何将IMU (惯性测量单元) 传感器与 Arduino 对接,使用的 IMU 传感器模块是以 MPU-6050 传感器为中心,MPU-6050 设备结合了同一硅模具上的 3 轴陀螺仪和 3 轴加速度计,以及处理复杂 6 轴运动输液算法的机载数字运动处理器™ (DMP ™)。

这些 MotionTracking 设备专为智能手机、平板电脑和可穿戴传感器的低功耗、低成本和高性能要求而设计。

硬件部件:

软件:

通信协议:

此 IMU 传感器使用I2C 总线协议与 Arduino 通信。

连接图:

如遇到上述的问题,仔细检查以下连接引脚配置文件:

  • 将 5V [IMU MPU-6050]    连接到  VCC [Arduino]
  • 将 SDA [IMU MPU-6050] 连接到  模拟 IN (A4) [Arduino]
  • 将 SCL [IMU MPU-6050]  连接到  模拟 IN (A5) [Arduino]
  • 将 GND [MPU-6050]        连接到  GND [Arduino]
  • 将输入[IMU MPU-6050]   连接到  引脚2(数字PWM引脚) [Arduino]

如MPU 6050模块有一个5V引脚,则需将其与 Arduino 的5v引脚相连。否则,必须将其连接到 3.3V 引脚,以避免过压问题。

编程(Arduino)

  • 测试 MPU 6050:下载 MPU 6050 的 Arduino 库,有一个名为"MPU6050.zip"的拉链文件夹,下载文件夹并提取其内容。复制库文件夹"MPU6050",并将其粘贴到 Arduino 的库文件夹中。(转到 Arduino 的"库"文件夹的位置,将此"MPU6050"文件夹粘贴到其中)
  • 下载另一个名为"I2Cdev.zip"(如果不是以前安装的)的库,并将其粘贴到Arduino的库中。
  • 在 Arduino 的文件夹中,有两给新的文件,如下所示:

  • 单击Arduino IDE,查看新加的库是否可见

  • 将这些库包含在草图中之前,需要获取 MPU6050 的代码,(文件->MPU6050->示例->示例-> MPU6050_DMP6),单击此"MPU6050_DMP6"文件。

  •  代码中包含"I2Cdev"和"MPU6050"两个库

  • 如果窗口的右下角,消息显示"Arduino/Genuino Uno on COM1",请确保其正确性。现在不可单击串行监视器,只有在上传文件后,才能进入下一步。每次连接Arduino时,必须确保分配正确的端口。

串行监视器:

步骤:工具>串行监视器或快捷方式键(Ctrl + 换档 + M)

当选择了正确的端口,在上传文件时还是遇到问题的解决方法:

  • Windows 用户:单击此链接
  •  Mac 用户:请参阅指南
  • Linux 用户:请参阅此网页以获得指导

上传代码后,打开串行监视器并将"baud 速率"更改为 115200。如果选择其他的bad率,那么将会看到垃圾评论,因为这些不会同步。

注:8MHz或较慢的主机处理器,如青少年@3.3v或Ardunio Pro Mini在3.3v运行,不能可靠地处理此baud速率,因为baud计时与处理器刻度太不对齐。在这种情况下,必须使用 38400 或更慢,或为 UART 定时器使用某种外部单独的晶体溶液。

如果没有看到此语句"初始化I2C设备..."在屏幕上,需按重置按钮。

附:

1、看到"发送任何字符开始DMP编程和演示:",什么是DMP??

答:DMP代表数字运动处理,MPU 6050有一个内置的运动处理器。它处理加速度计和陀螺仪的值,为我们提供准确的3D值:ie偏航、俯仰和滚转。

2、传感器和Arduino之间的通信是基于I2C总线协议,在该项目中也包括了一个I2C库。你知道I2C代表什么吗?

答: I2C 总线是物理上由 2 根活动电线和地面连接组成。活动线称为 SDA 和 SCL,都是双向的,SDA 是串行数据数据线,SCL 是串行锁定线。连接到总线的每个设备都有自己独特的地址,无论是 MCU、LCD 驱动程序、内存还是 ASIC。根据功能,每个芯片都可以充当接收器和/或发射机。显然,LCD 驱动程序只是接收器,而内存或 I/O 芯片可以同时是发射器和接收器。I2C 总线是多主总线。这意味着可以连接到多个能够启动数据传输的 IC。I2C 协议规范规定,在总线上启动数据传输的 IC 被视为总线大师。因此,在那个时候,所有其他的IC都被认为是巴士 Slaves.As 巴士大师通常是微控制器。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论