OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5518|回复: 10

MPU6050 计算相对位移

[复制链接]

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
发表于 2017-10-20 19:05:44 | 显示全部楼层 |阅读模式
5金钱
我现在一个MPU6050 模块,怎么计算这个模块每s内 3个轴的相对位移, 这个模块不一定水平放置。

最佳答案

查看完整内容[请看2#楼]

s=vt,时间用定时器得到,问题在求解v。6050可以得出三轴加速度,也就是a。设定初始条件下6050是静止的,v=v0+at,v0是0,v就是at,楼主可以得到每一次6050数据刷新后的加速度数据后就可以计算此时的速度,加上之前每一段的位移,就是总的位移。(位移的分段是按照6050刷新时间来定的)。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2016-5-30
在线时间
26 小时
发表于 2017-10-20 19:05:45 | 显示全部楼层
s=vt,时间用定时器得到,问题在求解v。6050可以得出三轴加速度,也就是a。设定初始条件下6050是静止的,v=v0+at,v0是0,v就是at,楼主可以得到每一次6050数据刷新后的加速度数据后就可以计算此时的速度,加上之前每一段的位移,就是总的位移。(位移的分段是按照6050刷新时间来定的)。
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
 楼主| 发表于 2017-10-21 08:47:33 | 显示全部楼层
启朴 发表于 2017-10-20 19:52
s=vt,时间用定时器得到,问题在求解v。6050可以得出三轴加速度,也就是a。设定初始条件下6050是静止的,v= ...

懂了,那还想请教下,怎么确定我的模块是静止还是运动的?
回复

使用道具 举报

4

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2016-5-30
在线时间
26 小时
发表于 2017-10-21 09:39:04 | 显示全部楼层
huishun1314 发表于 2017-10-21 08:47
懂了,那还想请教下,怎么确定我的模块是静止还是运动的?

6050只能得到加速度,匀速直线加速度为零,静止加速度也为零。这样就要约束一个初始速度(建议为0),速度的变化可以通过加速度和时间算出来。有了初始速度和加速度还有时间就能算出最终速度。
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
 楼主| 发表于 2017-10-21 10:15:34 | 显示全部楼层
本帖最后由 huishun1314 于 2017-10-21 10:17 编辑
启朴 发表于 2017-10-21 09:39
6050只能得到加速度,匀速直线加速度为零,静止加速度也为零。这样就要约束一个初始速度(建议为0),速度 ...

现在的情况是,mup6050的初始状态是不确定的,放置方向也不确定,现在我单纯的读取它的数据能知道他是运动还是静止的吗?我看了数据动的时候数据变化大。静止的时候数据变化小。我要怎么处理这个数据? 我可以不需要知道他的位移量大小,但是我要知道他有没有发生位移
回复

使用道具 举报

4

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2016-5-30
在线时间
26 小时
发表于 2017-10-22 07:59:26 | 显示全部楼层
没有初始速度只有加速度是不能求出当前速度的。
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
 楼主| 发表于 2017-10-23 18:17:05 | 显示全部楼层
启朴 发表于 2017-10-22 07:59
没有初始速度只有加速度是不能求出当前速度的。

不要知道速度,只要知道有没有动
回复

使用道具 举报

4

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2016-5-30
在线时间
26 小时
发表于 2017-10-24 21:30:23 | 显示全部楼层
实际情况下6050也可以,比搜集一组数据进行对比,不等则动,但是没有办法判别匀速直线运动。这个方法不严谨
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
 楼主| 发表于 2017-10-25 08:33:01 | 显示全部楼层
启朴 发表于 2017-10-24 21:30
实际情况下6050也可以,比搜集一组数据进行对比,不等则动,但是没有办法判别匀速直线运动。这个方法不严谨

现在我就是这样做的,我只要判断有没有运动就行了,不用知道速度是多少
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2018-2-26
在线时间
23 小时
发表于 2018-3-12 19:47:36 | 显示全部楼层
可以理解  每个一定时间读取到的速度 Vn = Vn-1 + at 吗 ?  第一次速度为V0 = 0   那么 V1 = at;   V2 = V1 + at 对吗?  但是这样做 速度值会不断累加.....
回复

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2012-9-21
在线时间
55 小时
发表于 2018-7-24 11:46:00 | 显示全部楼层
要判断是否运动其实很简单,MPU6050本身就是一个运动传感器,你只要设定加速度中断模块,然后设定中断产生频率,产生中断的阈值即可,也就是,当有中断来了,说明运动了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 19:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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