|
楼主
查看: 6397回复: 0
发表于 2020-12-8 15:50:20
只看该作者
摘要
本系统以stm32 作为主控芯片,基于TI 模拟前端芯片ADS1292、温度传感器LMT70、设计制作无线运动传感器节点。该节点采用锂电池供电,保证了便携性,并通过对应传感器将使用者心电信息、体表温度和运动信息在LCD 屏上实时显示,同时可以上传节点传感数据到移动终端中,然后实现数据显示。另外在心电检测中使用了MATLAB 进行仿真滤波和算法的设计,保证了各项数值的准确性。
关键词:STM32 传感器物联网心电检测差分
1. 设计方案工作原理
1.1. 预期实现目标定位
根据题目要求,以STM32 芯片为控制和处理核心,制作一个无线运动传感器节点。产品可以实现实时测量使用者的心电信息、体表温度和运动信息并实时上传至移动终端。
1.2. 技术方案分析比较
(1)前端滤波模块
方案一:搭建硬件带通滤波器,实现滤波。前端滤波的目的是滤去心电检测中的杂波。但是本题使用的模块ADS1292 集成度较高,难以添加外部硬件模块,且硬件实现本题所需阶数滤波器的难度较大。
方案二:利用MATLAB 仿真设计161 阶FIR 数字滤波电路,实现通频带为5Hz~40Hz。该方法可以节省硬件资源,通过软件高效实现题目要求的带通滤波,得到相对准确的波形,有益于后续数据的处理。
综合考虑,本设计选用方案二。
(2)加速度计模块
方案一:JY-61 模块的是一种六轴模块,采用高精度陀螺加速度计MPU6050,且自带卡尔曼滤波模块,有效降噪,提高精度。
方案二:GY-521 模块是一种三轴模块,也采用MPU6050,但需要自己设计滤波模块,较为麻烦。
方案三:CJMCU-280 模块由于没有相关例程代码和滤波模块,难以调试。
综合考虑,本设计选用方案一。
1.3. 系统总体方案
(1) 系统总体结构如图1.1
本系统以STM32F103ZET6 作为主控芯片,主要由可充电锂电池、稳压电源模块、ADS1292 心电检测模块、LMT70 模块、ATK-MPU6050 六轴传感器模块和无线传输模块ESP-8266 等组成。
(2)工作原理
系统以7.4V 可充电锂电池经稳压电源模块供电,通过STM32 以SPI 控制三个传感器模块,收集到数据后进行计算,最后上传到上位机移动终端。本次我们使用ADS1292 模块采集心电信号,LMT70 模块测量体表温度,MPU6050 模块测量运动信息。此三个模块皆通过SPI 与MCU 通信。本次我们使用MATLAB 的FDATOOL 工具设计了161 阶数字带通滤波器来处理噪声干扰信号。此次测量主要的噪声干扰信号为0.05~2Hz 的基线漂移,30~2000Hz 的肌电干扰,以及50Hz 的工频干扰。
2、核心部件电路设计
心电模块ADS1292 原理图如图2.1 所示。
3、系统软件设计分析
本文软件系统主要由心电检测模块,加速度检测模块,温度检测模块和互联网模块四部分组成,通过按键在TFTLCD 显示屏上切换模式,实现对数据或者波形的高实时性动态显示。
3.1 心电模块
本文采取商家提供的ADS1292 模块采集心电信号,此模块首先对信号放大6倍,并进行滤波,通过500SPS 的高频AD 转化持续向stm32 单片机输送数字信号,单片机根据信号实时显示波形。
3.1.1 前端滤波设计
前端滤波设计如图3.1 所示,通频带为1.2~40Hz。
3.1.2 R 波检测算法
本文采用差分阈值法寻找R 峰,通过差分寻找到离散信号的极大值,再判断函数值是否满足阈值的条件,即波动幅度达到一定数值,来鉴定极大值是否就是R峰;根据QS 峰分布特性,在检测到R 峰之后,于附近50ms 寻找Q 峰和S 峰,计算RS 间期;根据R 峰200ms 不应期的特性,设置200ms 延时,再寻找后续R 峰,同时过滤T 波,标记R 峰,计算RR 间期,以此测算心率;倘若相邻两次RR 间期相差过大,开启蜂鸣器报警。
3.1.2 阈值的选取以及校正
程序最初采用经验阈值寻找R 峰,但此阈值未必适用于任何波形,在实际波形中存在基线漂移等状况导致阈值不合适,因此本文通过分析前5 秒的波形数据,计算合适的阈值,处理后续波形,直到心率,RR 间期等指标稳定。即便如此,此阈值不能完全满足实际波形的处理,还需要动态调整,本文采用
BP 神经网络反向误差传递的思想,根据R 峰和阈值的差值对原阈值进行略微的修正,实现阈值的动态修正。
3.1.3 R 峰的定向
在R 峰选取之前,必须先确定R 峰的朝向,不然会影响R 峰识别以及心率等指标。本文计算样本的最大值与最小值相对平均值的偏移量。倘若最大值偏离程度较大,则R 峰正向,否则R 峰反向。
3.2 温度模块、无线传输模块以及加速度计模块
本文采用LMT70 芯片采集温度,向单片机输出模拟信号,单片机通过ADC对信号进行实时监测并显示。实际监测过程中,温度跳动严重,我们通过添加软件滤波(递推均值滤波)实现示数稳定,流程如下图所示。加速度计模块采用MPU-6050 六轴传感模块,使用者手握传感器,单片机计算x、y 方向的加速度的测算,计步数并根据步数计算行走距离,同时采用简易软件滤波,完成数据的准确测算,流程图如下图所示。无线传输模块采用ESP-8266 模块,实现与上位机通信。
| | 图3.3 加速度模块流程图 | 图3.4 温度模块流程图 |
4、竞赛工作环境条件
4.1 设计分析软件环境
MATLAB, Keil-MDK5.23, Altium Designer
4.2 仪器设备硬件平台
万用表,示波器,电源,远程显示端
5、作品成效总结分析
心电检测基本在屏幕中间显示,RS 间期精度为1ms,测试值稳定在30ms 左
右,心率测试精度为1 次/min,测试值实时更新。温度模块精度为0.1℃,测量数
值相对稳定,加速度计测量的距离按每步60cm 来计算。
1 心电信息测量
1.1 心电信号波形测量结果
| | 图(a)心电信号模拟器测量结果 | (b) 实际人体测量结果 |
1.2 QRS 时间测量
测量次数 | RS 时间标准值
(ms)
| RS 时间实际测量值
(ms)
| 误差
(ms)
| 1 | 32 | 30 | -1 | 2 | 32 | 33 | 1 | 3 | 32 | 31 | -1 |
1.3 心率测量
测量次数 | 设置值(bpm) | 实际测量值(bpm) | 误差(%) | 1 | 80 | 80 | 0% | 2 | 90 | 89 | 1.11% | 3 | 100 | 100 | 0% |
1.4 超过20%是否报警?_____是________
2 温度测量
测量次数 | 水银温度计测量值(°C) | 系统测量值
(°C)
| 误差
(°C)
| 1 | 36.6 | 36.9 | 0.3 | 2 | 36.4 | 36.6 | 0.2 | 3 | 36.7 | 36.6 | -0.1 |
3 步长和距离测量
测试次数 | 实际行程 | 系统测量 | 值误差 | 步数 | 距离 | 步数 | 距离 | 步数 | 距离 | 1 | 10 | 5.9m | 10 | 5.5m | 0 | 0.4m | 2 | 102 | 63m | 104 | 57.2m | 2 | -5.8m | 3 | 447 | 250.2m | 463 | 254.65m | 16 | 4.45m | 4 远程显示界面
参考资料及文献
[1] 孙金平.基于LabVIEW 的远程心电监护系统设计[J].电子科技,2015,28( 10) : 173 - 175.
[2] 刘一,任占兵. 基于安卓手机的远程心电测量系统的设计[J]. 电子器件,2015( 1) : 194 - 197.
[3] 聂希芸. 基于差分绝对值的R 波检测算法研究[D]. 昆明: 云南大学,2011.
[4] 肖波. 浅议基于DSP 的心电信号检测系统[J]. 科技创新导报,2012( 27) : 139 - 139.
[5]彭保基. 基于蓝牙及Android 的便携式心电仪的设计与实现[D]. 长春: 吉林大学,2014.
[6] ADS1292、LMT70、ATK-MPU6050、ESP-8266 数据手册.
附件材料
A题-南京信息工程大学-无线运动传感器节点设计.pdf
(1022.86 KB, 下载次数: 4)
|
|