Micro:bit 20 心率计数

2017-10-041.8万
AI 快速预览详细 收起
本项目介绍了如何使用Micro:bit和BOSON造物粒子心率传感器实现自动心率计数。心率传感器采用PPG光电容积脉搏波描记法测量心率,模块直接兼容Arduino主控器。项目中使用了两块Micro:bit板子,一块用于检测记录心率,另一块用于无线连接显示结果。通过编程实现了自动计数功能,解决了手动计数的痛点。该项目适用于STEM教育场景,适合青少年科创比赛。
     Ash腻大师漂来的BOSON造物粒子micro:bit扩展包中有一个很好的东东,心率传感器。    这东东不常见,还挺贵,要好好用用。

     我想做个心率计数器,自动计数,不用按脉搏数心跳次数,是不是很牛逼。
     查下心率传感器的资料:https://www.dfrobot.com.cn/goods-1339.html
     DFRobot正式推出超小型心率传感器,只有拇指大小,却可以检测人体心率变化。

   模块直接兼容Arduino主控器,自带Gravity 3-Pin接口,即插即用,使用非常便利。传感器采用PPG光电容积脉搏波描记法(PhotoPlethysmoGraphy)测量心率。这是一种低成本光学技术,通过检测皮下毛细血管内的血氧量变化量来检测对应的人体心率。该技术拥有响应性快,性能稳定,适应性强等特点。

   传感器配有两个安装孔,可以佩戴于手指,手腕,耳垂等皮肤直接接触处。

   模块拥有方波和脉搏波两种信号输出模式,可以通过板载开关去自由切换输出信号。脉搏波将输出一个连续的心率波形,而方波将根据心率的变化输出对应的方波。

  


     编程中却是遇到难题,我们在群中有过热烈的讨论。狄老师把讨论过程和他的探索都写在他的帖子里了,感兴趣可以移步趣玩DF Boson Micro:bit造物粒子之心率传感器

https://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=28169&fromuid=727937。

    我也想寻求更好的方案,在群里请教了不少老师,韩强老师,红棉曾老师等等都给出过很好的建议。
    正如狄老师所探究的,心率传感器会输出一长串的1和0。
    如何滤波呢,狄老师用了延时,我想用除法,编程计出1的数目然后除以它,在米思齐显示那长长的一串0和1来,数一数,不过不同的人数目是不同的,同一个人心率也在变化的,这个0和1的数目不能确定,只是一个参考。还是不精确。
    后来在群中讨论,韩老师提供了很多资料和建议。
Micro:bit 20 心率计数图1

     于是,我开始大胆尝试。中间遇到的曲折不一一描述,最后得到了了一个挺简单的程序。
     为了记录和和反复显示一分钟计时结束时心跳次数,我用一块(A板)检测记录心率,第二块(B板)无线连接,两块板子就是好玩。  
   A板程序。
   开机时,设置分组1。
Micro:bit 20 心率计数图2

   心率传感接P1,因为心率检测输出稳定方波信号要有一段时间,所等一会再按A按钮开始计时计数。60秒后,发送数字,并显示。
Micro:bit 20 心率计数图3

   计数程序。
Micro:bit 20 心率计数图4
     B板程序。

Micro:bit 20 心率计数图5Micro:bit 20 心率计数图6Micro:bit 20 心率计数图7

   不有很多不完善的地方,发群里讨论,听听大家的建议。
   例如不能自动选择时机计时,程序的计时器功能还没找到等等。


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
咸鱼坤
咸鱼坤
为什么你跳出来的数字不是上百上千啊!!!
你应该是做了什么计算样的东西吧
rzyzzxw
rzyzzxw
作者
回复咸鱼坤
因为图片显示时有延时的效果啊。
gada888
gada888
学一下
空军一号
空军一号
可以用控制里面的引脚变化来计数。
在您发的这个程序里我发现了一个问题,按键A、B的按下后的处理程序里的延时程序不占用CPU,也就是说不影响无限循环里的程序的运行。很有意思
zsc990338
zsc990338
如果能测出10秒的心跳数乘6,就可以更快的测出1分钟的心律
rzyzzxw
rzyzzxw
作者
回复zsc990338
这个就是玩玩,df李工出的有高级版的。
rzyzzxw
rzyzzxw
作者
群里大侠给出的指导建议。


rzyzzxw
rzyzzxw
作者

请指导。
rzyzzxw
rzyzzxw
作者

这是一个利用计时器 每隔五秒跳一下心脏的代码
- 没有更多了 -