问题标签 [mpu6050]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
303 浏览

arduino - 信号矢量幅度 - 加速度计 MPU6050

我正在使用 MPU6050 加速度计在手镯上创建一种计步器,为此我依赖以下代码https://github.com/Perseus14/Pedometer/blob/master/Pedometer.ino。我设法使代码工作,但我对算法中进行的以下计算有疑问:

int mag = sqrt (pow (x - angle_x, 2) + pow (y - angle_y, 2) + pow (z - angle_z, 2)); (一个)

在我输入的这行代码中,他计算了信号幅度的矢量,但是为了使这个计算 x、y 和 z 等价于之前已经获得的角度,并且 angle_x、angle_y、angle_z 平衡了当前的角度。我的问题与这个值的减法有关,因为计算符号大小向量的公式如下:

int mag = sqrt (pow (x, 2) + pow (y, 2) + pow (z, 2)); (乙)

谁能理解为什么在计算信号幅度向量之前在第一个公式 (A) 中减去这些值?

谢谢!

0 投票
0 回答
130 浏览

c++ - 如何使用 MPU9250 计算垂直速度?

我试图用这个传感器存档的是一个变差计。变差计的主要功能是告诉它上升或下降多少米/秒。

我有一个连接到 MPU9250 的 ESP32 开发模块。我使用了这个库(稍作修复),并确保传感器正常工作。虽然我从这个库中获得了各种不同的方法,但理解如何将它们放在一起以获得垂直速度只是压倒性的。

有一个名为 的项目prunkdump/arduino-variometer,这也构建了一个变量计。查看代码,我看到四元数与此有关。

如果我坚持使用sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library,我能以类似的方法获得垂直速度吗?

0 投票
2 回答
499 浏览

i2c - MPU-6050 突发读取自动增量

我正在尝试为 MPU-6050 编写驱动程序,但我对如何继续读取原始加速度计/陀螺仪/温度读数感到困惑。例如,MPU-6050 的加速度计 X 读数位于 2 个寄存器中:地址 0x3B 的 ACCEL_XOUT[15:8] 和地址 0x3C 的 ACCEL_XOUT[7:0]。当然,要读取原始值,我需要读取两个寄存器并将它们放在一起。

在寄存器的描述中(在寄存器映射和描述表中,https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf)它说保证来自同一采样时刻的读数 一旦检测到空闲 I2C 总线,我必须使用突发读取 b/c,传感器寄存器会用新采样时刻的新数据刷新。数据表片段显示了简单的 I2C 突发读取:

在此处输入图像描述

但是,如果支持自动增量,这种方法(据我所知)仅适用于从同一采样时刻读取 ACCEL_X 寄存器(这样上述序列中的第一个 DATA 将来自 ACCEL_XOUT[15:8] @ 地址 0x3B 和第二个数据将来自 ACCEL_XOUT[7:0] @ 地址 0x3C)。但是数据表(https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf)只提到 I2C 突发写入支持自动增量功能。如果 I2C 读取端没有自动增量,我将如何在保持相同采样时刻的同时读取两个不同的寄存器?

我也认识到我可以使用传感器的 FIFO 功能或中断来完成我所追求的,但是(出于我自己的好奇心)我想要一个不依赖于任何一个的解决方案。

0 投票
0 回答
268 浏览

arduino - MPU6050 FIFO溢出和冻结问题

我使用传感器 MPU6050 来控制我的机械臂的运动。当它是一个独立的程序时,代码可以正常工作,但是当代码被编译到主程序中时,我一直遇到“FIFO溢出”。这是我正在使用的代码。

有什么办法可以摆脱 FIFO 溢出?此外,当我尝试使用 Jeff Rowberg 的示例代码 MPU6050_DMP6 时,程序将在几秒钟后冻结。有什么解决办法吗?这些是我正在使用的示例代码。

0 投票
0 回答
88 浏览

python-3.x - 我无法用 Raspberry pi 计算°/s 数据 MPU6050

我的 MPU6050 陀螺仪和 Raspberry Pi 计算机有问题。我的项目有 MPU 的功能。我使用这段代码:

...我在终端中读取了这些数据:

为什么?我计算真实数据,如果 FS_SEL (0x1b) == 0。我把这个寄存器写为 0,但这不好。我测试,如果我删除计算,结果是什么。所以这是自然读取的数据。

如果分发这个 ~450、~200 和 ~35 这很好吗?我对所有新的解决方案持开放态度。在我的项目中,需要以°为单位的陀螺仪倾斜度(如果°/s 值好,这很容易)和加速度计数据(这很完美)。

谢谢!我的英语不是很完美,对不起。

0 投票
1 回答
78 浏览

mpu6050 - 设置 MPU6050 DMP 处理的俯仰和横滚初始值

当我的 MPU6050 断开并重置时,我想处理案例。不幸的是,在重新初始化 MPU6050 后,俯仰和横滚值显示为 0,并在大约 1-2 秒后以正确的值稳定下来。我想通过在重置之前写入最后读取的值来提示 DMP。它有任何接口吗?顺便说一句,无论我将 LPF 配置为 5 还是 188 - '问题' 仍然存在。

0 投票
1 回答
127 浏览

filter - mpu6050的卡尔曼滤波器F矩阵

所以我一直在尝试研究mpu6050的卡尔曼滤波器。我从这里使用了由 tkjelectronics/lauszus 制作的库。我已经了解了库本身的“大”行并且已经实现了它。但我仍然不知道他为什么会像这样使用 F 矩阵:
在此处输入图像描述

有人可以向我解释为什么吗?我试图用谷歌搜索,但我没有找到任何可以为我提供我一直在寻找的信息的东西。谢谢你。

0 投票
0 回答
44 浏览

mpu6050 - 使用 mpu6050 寻找方向(线性加速度)

我正在使用 mpu6050 模块。现在,当我在两侧(向前和向后)沿 Y 轴移动加速度计时,我只得到负值,难道我不应该在向前移动时得到正值,在向后移动时得到负值(反之亦然)。谢谢你

0 投票
0 回答
182 浏览

c++ - 使用 MPU6050 和 sim900a 进行跌倒检测

我正在尝试使用 MPU6050、SIM900a 和 Arduino Nano 进行跌倒检测。将代码上传到 Arduino 后,串行监视器向我显示: 串行监视器输出

这是我尝试过的代码,

MPU050的配置

串行监视器应该首先显示一些数字,而不是显示数字触发器 1 自动激活和停用,我什至没有触摸它。不管我扔多少 MPU6050,触发器 2 和 3 都没有激活。必须激活所有三个触发器才能使 sim900a 模块进行呼叫。

可能是什么原因 ?可能是代码或硬件连接。这是 MPU 位置的图片,以防万一出现问题。 MPU6050位置

编辑:我试过这段代码,但所有值都显示零值

可能是什么原因?

0 投票
1 回答
47 浏览

mpu6050 - MPU6050 设置?

有人对 gy-521 / MPU6050 有什么好的经验吗?我想使用加速度计部分来确定摆动物体的运动。

我想我需要一些高精度的设置,但对于我的生活来说,我还没有理解我发现的大部分内容,因为他们会用“他们的”语言交谈,而我只是迷路了。

我知道它可能只是数学计算,但我似乎没有从模块中获取数据,至少当我移动模块时,这些数字似乎没有像我认为的那样变化。

我不认为我需要小数点精度,只要我从模块中请求数据时,模块移动时就需要“高精度”。

我想我可以使用十进制数字,但就像我说的那样,我将只是即时阅读,并将跟踪我得到的任何数字,看看它是否大于或小于先前读取的数据。

可悲的是,如果我只是让模块静止在我的桌面上,大约每 4-5 秒,数字就会改变,而我没有对模块做任何事情。我很确定这是一个设置问题,因为我只是使用从我找到的一些示例脚本中提取的示例代码中的设置。

任何帮助将不胜感激。