
开源协议
:Public Domain
描述
项目说明
1. 利用OLED显示各种信息
2.利用光电信号来计算血氧浓度
3.设计合适的电源
4.利用按键切换显示
开源协议
利用ST公司的CUBEMX软件生成HAL库进行编程
项目相关功能
- 使用彩屏显示脉搏波形
- 测量并显示心率
- 测量出的心率可以记录
- 需要拥有2个用户操作按键按键与屏幕多级菜单设计进行人机交互选择
- 总体测量精度误差不超过±1%
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
设计原理
1.血氧仪的原理
指夹式血氧仪采用透射式算法,其将两束波长分别为660nm的红光和940nm的近红外光通过传感器照射到人体的指尖区域,接收端的光电二极管会产生一个跟随脉搏变化的微弱光电流,把光电流转换、滤波、放大后得到脉搏波形,根据波峰间距可得到脉搏频率。携带氧气的血红蛋白称为氧合血红蛋白,空载状态的血红蛋白称为还原血红蛋白。因为血液中的氧合血红蛋白和还原血红蛋白对红光和红外光线的吸收能力不同,光敏二极管接受到信号,再转化为电信号,根据红光和红外光的电流比例,经过处理器一系列算法运算后可得到血氧饱和度的值。这里我们尝试了两种方式去测量,一种是透射式另外一种是反射式,最后实际上我们使用了反射式的方案。

2.主要的测量指标
血氧仪主要测量指标分别为血氧饱和度、脉率、灌注指数(PI)。
2.1 血氧饱和度
血氧饱和度是表征血液中氧何血红蛋白比例的参数。人体所消耗的氧主要来源于血红蛋白(在正常的血液中存在四种血红蛋白:氧合血红蛋白(HbO2)、还原血红蛋白(Hb)、碳氧血红蛋白(CoHb)、高铁血红蛋白(MetHb)。其中与氧气做可逆性结合的是还原血红蛋白,与氧气不相结合的是碳氧血红蛋白和高铁血红蛋白。)血液中的有效氧分子,通过与还原血红蛋白(Hb)结合后形成氧合血红蛋白(HbO2)。血氧饱和度是衡量人体血液携带氧能力的重要参数。通过对血氧饱和度测量,可及时了解患者的血氧含量,具有极其重要的临床价值。正常人体动脉血的血氧饱和度为98%,静脉血为75%。它是反映机体内氧状况的重要指标,一般认为血氧饱度正常值应不低于94%,在94%以下被视为供氧不足。
影响血氧饱和度的精度测量因素:
A.不正确的位置可能导致不正确的结果。比如指夹式血氧仪,夹在手指上。要是夹在耳朵上,可能导致测量不准。
B.测量时脉动的因素,当脉动降低到一定极限,就无法进行测量。如下列情况发生:休克、体温过低、服用于血管的药物。
C.光线干扰会影响测量精度。强光将影响光线透过皮肤组织,而且指甲光泽、指甲油也会影响测量精度。
D.人为移动也可能干扰测量精度,因为它和脉动具有相同的频率范围。所以建议在人体安静状态下测量血氧饱和度。
2.2 脉率
脉率是每分钟的脉搏数,脉搏就是指浅表动脉的搏动,正常人的脉搏和心跳是一致的。心率是心脏跳动的频率。一般人在每分钟60-90次之间。但是人在运动和紧张等情况下,会出现心跳加快的情况。
2.3 灌注指数(PI)
PI血流灌注指数(Perfusion Index,PI)作为一个参数指标,能反映出被检测者的肢体灌注状况,表明机器的检测精度。即在低灌注和弱灌注的条件下仍能检测。通过PI的显示,能表明被检测者本身的肢体状况问题。出现低灌注时,表明被检测者是否有其本身原因造成的如心脏问题、休克等情况,同时也能反映出是否有外部因素等造成的原因如天冷、末梢循环较差等情况。
3.原理图设计
3.1 STM32最小系统
时钟、复位、电源,烧录方式为SWD。

3.2 LED发射电路
利用二选一的模拟开关和STM32的PWM来控制不同波长的LED的光强。

3.3 信号处理电路
运放芯片为四路运放,两路为电压跟随器模拟DAC输出,一路为光电转换电路,即将光信号转换为电信号,也叫跨导电路。最后一路为信号调理电路,将初级信号中的交流分量提取出来。这里我采用了两种方案,一种是透射光;另外一种是利用max30102血氧仪模块测出血氧信号。


3.4 人机交互
利用屏幕显示相关的测量参数,同时设计了数字温度传感器感知环境温度或者人体温度,屏幕采用0.96寸的OLED成品模块。

3.5 电源
使用了锂电池充电芯片、sepic电路和LDO,LDO为整个系统供电,speic电路适用于不同输入电压下输出相同的输出电压,适用于具有锂电池的应用场景。

4.绘制的PCB

软件说明
提示:软件可以使用代码块来进行嵌套放置,无需全部软件部分说明,只需说明重要部分即可
1.软件开发我使用的是CUBEMX+KEIL,HAL库用起来很方便,有利于开发。
开发进度:
1.移植了官方FFT库,正常运行。
2.目前也初始化MAX30102模块完成,可以计算出心率数据等数据,详见代码算法部分。从keil中使用脚本将读取的红光的血氧波形提取出来,在excel中变成折线图如下图所示:

3.测试了光电转换电路的信号调理电路的DC输出端采样并绘图得到如下图所示,AC端输出的信号还未使用。这里使用了TIM+ADC中断的方式来采样信号,TIM比较寄存器触发ADC中断,相当于定时去采样该信号,采样频率为500HZ。
将该原始数据利用MATLAB来设计FIR滤波器,截止频率设置5HZ,由于原始数据的交流信号幅度比较小在10左右的峰峰值,需要对滤波后的数据减去平均值,得到滤波后的数据如下图所示,并将滤波器移植到keil中。

利用STM32的DSP库,移植该库得到的数据如图所示,数据利用脚本文件导出利用excel绘制图片,基本上与max30102的数据一致。

实物展示

设计注意事项
1.SEPIC电路中电容电感选型还是比较重要的,一开始我选取的值为22uf,输出电压一直不理想,在4.5V左右,根据问题找原因,可能是电容电感的取值问题导致,后证实也确实如此,C10根据计算公式得出在输出5V的情况下,取值为10uF,计算公式百度即可。

2.分别测试各个模块的功能是否正常,依次测试了sepic电路、LDO线性电源、单片机的最小系统、OLED屏幕等功能。需要注意的是在焊接过程中可能铺铜面积过大,导致一些小的封装焊接不可靠,我在过程中焊接不可靠的地方:SGM2019线性电源。可在设计中将多余的铜去掉,由于其焊盘较小,焊烙铁的温度尽量小,有利于保护焊盘,温度过高会使得焊盘脱落。经过测试sepic电路输出5V,SGM2019-3.3V也是输出正常,我移植了OLED屏幕的程序,能够正常显示,并且还调试了PWM,为下步就是调试LED和ADC作准备,测试结果如下图所示。


3.经测试TC4056电路正常工作。
其他
附件为立创EDA的原理图和PCB,工程中的BOM表器件的选型并不完全,实际使用的BOM表在附件中!
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论