PulseSensor 是一款用于心率测量、脉搏波形测量和 HRV 分析的光电反射式模拟传感器。将其佩戴于手指、耳垂等处,通过导线连接可将采集到的模拟信号传输给 Arduino、STM32 和 STC12C5A 等具有模拟采集功能的单片机并转换为数字信号,再通过单片机的简单计算后就可以得到心率数值,Pulse Sensor 是一款开源硬件,非常方便二次开发。形如:
正面(手指接触面) | 背面(非手指接触面) |
电路板直径:16mm
电路板厚度:1.2mm
LED 峰值波长:515nm(绿光)
供电电压:3.3~5v
检测信号类型:光反射信号(PPG)
输出信号类型:模拟信号
信号放大倍数:330 倍
输出信号范围:0~VCC
电流大小:~4ma(5v 下)
分辨率:1 bpm
采样率:500Hz(由程序设定)
传统的脉搏测量方法主要有三种:一是从心电信号中提取;二是从测量血压时压力传感器测到的波动来计算脉率;三是光电容积法。前两种方法提取信号都会限制病人的活动,如果长时间使用会增加病人生理和心理上的不舒适感。而光电容积法脉搏测量作为监护测量中最普遍的方法之一,其具有方法简单、佩戴方便、可靠性高等特点。
光电容积法的基本原理是利用人体组织在血管搏动时造成透光率不同来进行脉搏测量的。其使用的传感器由光源和光电变换器两部分组成,通过绑带或夹子固定在病人的手指或耳垂上。光源一般采用对动脉血中氧和血红蛋白有选择性的一定波长(500nm~700nm)的发光二极管。当光束透过人体外周血管,由于动脉搏动充血容积变化导致这束光的透光率发生改变,此时由光电变换器接收经人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此光电变换器的电信号变化周期就是脉搏率。
根据相关文献和实验结果,560nm波长左右的波可以反映皮肤浅部微动脉信息,适合用来提取脉搏信号。本传感器采用了峰值波长为515nm的绿光LED,型号为AM2520,而光接收器采用了APDS-9008,这是一款环境光感受器,感受峰值波长为565nm,两者的峰值波长相近,灵敏度较高。此外,由于脉搏信号的频带一般在0.05~200Hz之间,信号幅度均很小,一般在毫伏级水平,容易受到各种信号干扰。在传感器后面使用了低通滤波器和由运放MCP6001构成的放大器,将信号放大了330倍,同时采用分压电阻设置直流偏置电压为电源电压的1/2,使放大后的信号可以很好地被单片机的AD采集到。
整个心率传感器结构如下:
绿光Led ------> 光感受器 ------>滤波电路 ------> 放大电路 ,最终放大电路输出模拟信号。
背面结构如下:
可以看到在传感器的背面,引出了三个脚,即传感器的接口, 红框中的 3 根线,标有S的为模拟信号输出线(最左边);标有+的为电源输入线(中间);标有-的为地线(最右边)。总结一下:
S → 脉搏信号输出(要接单片机 AD 接口)
+ → 5v(或 3.3v)电源输入
- → GND 地
连接方式如下图,图中展示了Gokit4开发板与PluseSensor的连接方式。(由于收到的杜邦线是母对公的,所以使用母对母的杜邦线转接了。)
心率值准确、脉搏波形完好都与传感器和手指的接触程度有很大关系,为了获得良好的体验效果,应该注意以下几点:
a、保持指尖与传感器接触良好,没有汗水和污迹
b、不可太用力按传感器, 否则局部血液循环不畅会无法测量脉搏
c、保持镇静, 测量时身体不要过多移动,否则会影响测量结果准确性
d、不要用冰凉的手指进行测试,因为血液循环不好会让测量结果不准确
主要分享了PluseSensor传感器工作原理,连接方式以及使用过程中应该注意的事项。