Arduino监控和可视化心率脉搏
硬件
工作原理
光学心率传感器在理论上非常容易理解。如果您曾经通过指尖照过手电筒并且看到了心跳脉冲,那么您就可以很好地掌握光学心率脉搏传感器的理论。
脉搏传感器或任何光学心率传感器都可以通过在手指上发出绿光(约550nm)并使用光电传感器测量反射光的量来工作。
这种通过光进行脉冲检测的方法称为光电容积描记图。
动脉血中的氧化血红蛋白具有吸收绿光的特性。 血液越红(血红蛋白越高),吸收的绿光就越多。 当每次心跳将血液泵送通过手指时,反射光量会发生变化,从而在光电传感器的输出端产生变化的波形。
随着您继续发光并获取光电传感器读数,您很快就会开始获得心跳脉冲读数。
来自光电传感器的信号通常很小且有噪声,因此,该信号会通过R / C滤波器网络传递,然后使用运算放大器进行放大,以产生更大,更干净且更易于检测的信号。
引脚
接线Arduino
以下是使用脉冲传感器进行的实验的连接:
库文件
示例代码
代码分解
问题解决
如果您看不到心跳,请执行以下操作。
如果过分用力握住传感器,则手指上的所有血液都会被挤压,并且没有任何信号! 如果握得太轻,则会从运动和环境光中发出噪音。 脉冲传感器上的汗斑压力(不要太硬,不要太软)将提供良好的清洁信号。
压力的变化会导致血液在手指中的流动不同,从而导致传感器读数不稳定。使用橡皮筋或其他拧紧装置将传感器固定在手指上,以尝试施加恒定的压力。
在身体上有毛细血管组织的其他部位(例如耳垂或下唇)尝试使用传感器。
尝试调整阈值。 该阈值告诉Arduino何时找到有效的脉冲。 阈值可以是0到1023之间的任何数字,但请尝试以5或10步进行调整。 降低阈值可提高灵敏度,反之亦然。 查看是否可以找到比默认值更好的手指范围。
心跳图
感受手腕上的脉搏,并观看它模仿斑点。
测量心率
上传sketch后,请保持手指尽可能稳定,并等待几秒钟以使读数有意义。您将看到这样的结果。
Processing可视
该软件显示Arduino从Pulse Sensor接收的所有数据。 它实时绘制用户脉搏图。 它还绘制了一段时间内的BPM(每分钟节拍数)和IBI(节拍间隔)。
此Processing sketch不执行任何计算! 它们都在Arduino板上完成,该软件仅读取串行端口并可视化其接收的数据。
上传sketch
Sketch将启动,并提示您选择与Arduino开发板关联的USB端口。如果您没有看到Arduino,请使用“刷新串行端口”按钮更新端口列表。
选择正确的端口后,您将开始看到心跳数据!
sketch运行时,您可以执行以下两项很酷的操作:
按“ s”以获取程序窗口的屏幕截图。图像将以.jpg格式保存在sketch文件夹中
按“ r”将数据窗口重置为零