6520|14

52

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

GY-521 学习小结 [复制链接]

名称:MPU-6050模块(三轴陀螺仪 + 三轴加速度)
使用芯片:MPU-6050
供电电源:3-5 V
通信方式:I2c
芯片内置温度传感器和16位AD转换器。
陀螺仪可测范围为±250,±500,±1000,±2000°/(dps)。
加速度计可测范围为±2,±4,±8,±16g。
此帖出自stm32/stm8论坛

最新回复

楼主太及时了,呵呵,昨天刚买了一个这个模块,现在正在路上,预计明天就拿到手了  详情 回复 发表于 2015-1-14 14:59

赞赏

1

查看全部赞赏

点赞 关注(2)
 

回复
举报

52

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

此帖出自stm32/stm8论坛
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
Arduino 控制MPU-6050获得数据的程序

此帖出自stm32/stm8论坛
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

4
 
STM32f429 控制MPU-6050的获得数据部分程序

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

5
 
有兴趣的童鞋跟我要完整版滴程序,嘿嘿。

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

6
 
我用GY-521模块只是做个简单的计步器,以后可以考虑做个四轴飞行器。

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

7
 
现在介绍下计步算法:
复杂算法  
数字滤波器:首先,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如下图,当然,可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

8
 
动态阈值和动态精度:系统持续更新3轴加速度的最大值和最小值,每采样50次更新一次。平均值(Max + Min)/2称为“动态阈值”。接下来的50次采样利用此阈值判断个体是否迈出步伐。
利用一个线性移位寄存器和动态阈值判断个体是否有效地迈出一步。该线性移位寄存器含有2个寄存器:sample_new寄存器和sample_old寄存器。这些寄存器中的数据分别称为sample_new和sample_old。当新采样数据到来时,sample_new无条件移入sample_old寄存器。然而,sample_result是否移入sample_new寄存器取决于下述条件:如果加速度变化大于预定义精度,则最新的采样结果sample_result移入sample_new寄存器,否则sample_new寄存器保持不变。因此,移位寄存器组可以消除高频噪声,从而保证结果更加精确。


此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

9
 
步伐迈出的条件定义为:当加速度曲线跨过动态阈值下方时,加速度曲线的斜率为负值(sample_new < sample_old)。
峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数。如果加速度变化太小,步伐计数器将忽略。
步伐计数器利用此算法可以很好地工作,但有时显得太敏感。当计步器因为步行或跑步之外的原因而非常迅速或非常缓慢地振动时,步伐计数器也会认为它是步伐。为了找到真正的有节奏的步伐,必须排除这种无效振动。利用“时间窗口”和“计数规则”可以解决这个问题。
“时间窗口”用于排除无效振动。假设人们最快的跑步速度为每秒5步,最慢的步行速度为每2秒1步。这样,两个有效步伐的时间间隔在时间窗口[0.2 s - 2.0 s]之内,时间间隔超出该时间窗口的所有步伐都应被排除。
此算法使用50 Hz数据速率(20 ms)。如果间隔值在10与100之间,则说明两步之间的时间在有效窗口之内;否则,时间间隔在时间窗口之外,步伐无效。
“计数规则”用于确定步伐是否是一个节奏模式的一部分。步伐计数器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作。假设经过四个连续有效步伐之后,发现存在某种规则,那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式。在这种模式下工作时,每经过一个有效步伐,步伐计数器就会更新一次。但是,如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式,重新搜索四个连续有效步伐。


此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

10
 
这个算法精准但稍复杂。下面我介绍一种粗略简单的算法。

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

11
 
简单算法
因为用户在运动中可能将设备拿在手上或戴在手腕上或者置于口袋中,所以设备的放置方向不定,为此我们通过计算三个加速度的矢量长度,获得一条步行运动的正弦曲线轨迹。
第二步是峰值检测,我们记录了上次矢量长度和运动方向,通过矢量长度的变化,可以判断目前加速度的方向,并和上一次保存的加速度方向进行比较,如果是相反的,即是刚过峰值状态,则进入计步逻辑进行计步,否则舍弃。通过对峰值的次数累加可得到用户步行步伐。
这只是一个简单通用的算法,楼主也简单测试了一下虽然有误差但还是可以大概计算出步伐参数的。

此帖出自stm32/stm8论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

12
 
楼主介绍完毕,有在做这方面研究的小伙伴可以互相交流哦。。

快来顶贴!!!!!!

此帖出自stm32/stm8论坛
 
 
 

回复

1万

帖子

25

TA的资源

版主

13
 
支持一下。
此帖出自stm32/stm8论坛
 
 
 

回复

1976

帖子

0

TA的资源

五彩晶圆(初级)

14
 
来帮顶一下,楼主写得不错
此帖出自stm32/stm8论坛
 
 
 

回复

2165

帖子

8

TA的资源

五彩晶圆(初级)

15
 
楼主太及时了,呵呵,昨天刚买了一个这个模块,现在正在路上,预计明天就拿到手了
此帖出自stm32/stm8论坛
 
个人签名坐而言不如起而行
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表