基于STM32的“智能可穿戴设备”课程实验教学平台设计

2021.09.02

教育教学论坛

引言

随着社会技术以及医疗技术的发展,自上世纪50年代兴起了一门以电子学、现代计算机技术、微电子学等基础学科为基础,在与医学技术结合的学科——生物医学工程。我校生物医学工程专业设立于2017年,为了让学生更好地学习人体生理参数测量的原理及方法,我们设计了一款能够测量人体生理参数并且能够二次开发的学习平台。

本文主要对光电容积法测脉搏原理进行介绍,通过生理参数传感器对人体的血氧含量以及脉搏进行测量;利用加速度传感器测量人体运动参数并计算相应的运动消耗[1]。此外考虑了开发平台应具有的可扩展性与开放性,预留了蓝牙接口与IO口,便于实现人机交互及功能拓展[2]

.系统方案

作为人体生理参数检测开发平台,既要考虑人体生理参数测量,又要考虑到二次开发和学习,便于生物医学工程学习人员的应用与扩展。在设计时,开发平台应有以下功能[3]

1.心率血氧测量

2.实时计步

3.实时显示时间、空气温湿度

4.可扩展性与开放性



如图1所示为人体生理参数开发平台整体原理框图,硬件部分由主控、传感器、OLED显示屏、USB下载电路以及外围电路组成。

(一)血氧测量硬件方案

血氧检测模块主要用来收集人体的血氧信息以及心率信息。在本设计中,选择血氧传感器时应考虑提高测量精度和数据读取存储方便。

MAX30102传感器集成了脉搏血氧以及心率监测功能。其内部集成了红光LED、红外光LED、光电检测器、光器件,采用1.8v逻辑电源以及5.0v内部LED电源,具有标准的IIC通信接口。此外,该芯片还可以通过软件来控制关断模块,功耗低,体积小,符合本设计要求。

(二)运动测量硬件方案

计步通过利用重力加速度计进行运动状态数据采集,通过采集的向量值进行数值分析。

在本设计中,综合测量精度及性价比等因素,选择了MPU-6050作为重力加速度传感器。作为六轴运动处理组件,MPU-6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec(dps),可准确追踪快速与慢速动作。同时具有丰富的通用I/O接口,并可在多种不同电压下工作。

(三)扩展性设计

本实验平台(如图2所示)为了方便测试与二次开发,预留了IO口资源、串口外部接口以及下载串口。

.算法原理

(一)光电容积脉搏波描记法

当光照射进皮肤时,皮肤对光产生不同的吸收作用,而且人体血氧蛋白中的氧饱和程度也决定了光吸收量的多少[4]。我们用光敏传感器将反射回的光转换成相应的电信号。把其中的交流信号提取出来,就能反映出血液流动的特点。下图是通过传感器获取的心电PPG信号。



通过对原始PPG信号进行滤波处理,得到一定时间内的波峰个数,然后经过计算可以得到相应的心率。心率计算公式如下: 

通过动态差分阈值峰值检测法来检测心率信号的峰值,然后算出心率,步骤如下:

1.选取一定长度的PPG信号数据并将其分为5段,检测出每段PPG信号中的差分值和幅度的峰值并去除峰值数据,并求平均值记作

2.利用初始阈值开始查询第一个PPG信号峰值点,设点的幅值分别为,如果满足:


则点应为PPG信号上升段的一点。从点后开始寻找差分过零的点,即为对应PPG信号的一个峰值点,设点后任意相邻的4个点为,如果满足:

为一个心率图的可能峰值点,其幅度记为。若满足下式:


则确定为一个峰值点;否则,继续检测。

3.在信号时间序列中检测到新的峰值点之后更新阈值,并且根据过程(2)中的算法检测下一个新的心率波信号峰值点。

4.基于在特定时间段内检测到的峰值点的数量来计算心率。

通过上述动态差分阈值峰值检测法来检测心率信号的峰值,编写动态差分峰值阈值检测脉搏算法处理传感器输出的数据。

(二)步态测量算法

人们在水平步行运动过程中,垂直和水平方向会有两个方向的加速度,并且因为行走时两只脚来回交替运动,可以化简为一个周期运动。在一个行走运动周期中总加速度总会有一个相应的峰值。通过检测运动峰值和正常运动阈值的判别进而实现人们运动状态的计算与计量。


步态测量的程序流程图如图4,并根据此流程图编写相应的程序算法。

平台采用了两种方法来减少人为甩动带来的计步误差。

1.“时间窗口”法,滤除人为的快速摇动数据。假设两个有效步伐的时间间隔在时间窗口之内,应排除时间间隔超出此事件窗口的所有步伐。

2.在间隔时间规定范围内,连续检测PPG信号3个波峰,才能够计算为3步。

三.系统测试

(一) 运动计量测试

下面对步行和跑步两种运动行为进行试验测试,并加入快速抖动实验。识别率大于95%则认为符合要求。

1 步行、跑步、抖动测试结果

项目

实验人员

实际步数

测量步数

步数识别率

平均识别率

步行测试

52

50

0.961

0.968

100

97

0.97

52

51

0.981

100

96

0.96

跑步测试

50

50

1

0.993

100

99

0.99

50

49

0.98

100

100

1

快速抖动测试

60

2

0.967

0.957

100

5

0.95

60

3

0.95

100

4

0.96

由表1数据,我们发现步行、跑步和抖动测试的准确率均在95%以上,满足本平台设计要求。还可以发现,步行步伐大的人的准确率较高,跑步速度较快时测试结果受干扰最小。

(二)心率测量

对手指、耳垂、手腕等部位进行心率的实验测量,并用听诊仪同步测量结果作为基准值,将比较结果作为正确识别率。

2 耳垂、手腕、手指心率测试结果

项目

实验人员

实际心率

(次/分)

测量步数

心率识别率

平均准确率

耳垂心率测试

72

70

0.97

0.98

68

67

0.99

78

76

0.97

75

74

0.99

手腕心率测试

74

78

0.95

0.92

70

76

0.91

77

82

0.94

76

85

0.88

手指心率测试

74

72

0.97

0.97

70

67

0.96

77

76

0.99

76

74

0.97

由表2数据,我们发现对于毛细血管比较多的耳垂测量最为准确,对于腕部测量效果较差,手指部位测量较为准确,但是相对于耳垂部位稍有欠缺。

四.结语

本文设计了一款人体生理参数检测开发平台,可实现基本的心率测量及计步测量,同时预留了足够的IO口资源,方便生物医学工程等专业学生进行二次开发。

经试验测试,该平台已经实现了预期功能,但仍存在以下的不足:现程序是直接在裸机上运行的,并没有搭载操作系统,可以加载UC/OS-II操作系统,以便于软件任务的管理。