基于RSL10的心率检测BLE设备
作者: yilonglucky
一、作品简介
心率检测服务是蓝牙协议族中标准一套子协议。本项目基于RSL10,将心率检测结果通过分析计算后,通过BLE传输给手机设备。心率检测模块使用pulse sensor,心脏的跳动信号通过pulse sensor模块可以转换为0到3.3v之间的模拟电压信号。主控制器通过ADC采集该电压信号后,可以通过计算波峰之间的时间间隔从而得出心率值。
二、系统框图
整个系统的硬件实现框图如下:
由于RSL10的ADC通道只能检测0到2V之间的范围,因此通过电阻分压原理将心率检测模块的0到3.3v之间的信号调整到0到2v之间。
三、各部分功能说明
首先是RSL10的底层硬件连接功能。
前文提到心率原始波形为0到3.3v之间震荡的波形,如图:
经过分压电阻后将信号传递给RSL10,调整之后的波形如图:
这样ADC的输入条件即满足。
其次是ADC波形的采样,为了实现固定间隔采样ADC电平,需设置一个2ms中断,在中断回调函数中采样ADC数值以便分析。
经调试,2ms的中断信号可以被捕捉到,如图:
至此,RSL10即可实现以2ms固定间隔采样ADC数据。组合后的波形如图:
信号处理妥当后,经过软件计算出结果,再将结果通过HRP服务传递给手机。
手机使用Android系统中的“BLE调试宝”App。
三、作品源码
见附件
ble_peripheral_server_hrp.rar
(867.8 KB, 下载次数: 11)
四、作品功能演示视频
见跟帖内容,也可点此>>观看
五、项目总结
见跟帖内容
整个项目的日程安排主要浪费在了前期环境搭建与基础设施的熟悉。
第一步:开发环境搭建。
第二步:安装必要的软件包
第三步:熟悉硬件
第四步:熟悉软件开发流程
第五步:定制应用
RSL10资料汇总分享交流
https://bbs.eeworld.com.cn/thread-1153342-1-1.html
六、其他
两个月的时间眨眼间就过完了。首先非常感谢eeworld和安富利、安森美提供此次试验的机会。
很惭愧没有开发出完整的更为复杂的功能。我认为比赛结果是其次了,通过最近的摸索,能够认识接触一个新的开发平台已然是一笔宝贵的财富。
其实最初是想利用5.0的特性开发功能,但是开发进度遇到几次瓶颈,只好先一次次的降低需求难度。
另外本文中描述的功能基本可以实现,但是可能由于2ms的中断时间过密,抢占了蓝牙协议栈部分的时间片,所以系统稳定性上面可能还需要进一步调试。
但是DIO的使用,timer的使用,ADC的使用等基本操作还算在计划目标覆盖下。
最后,再次感谢各方的帮助!
|