回答

收藏

[项目提交] 《2025 DigiKey AI应用创意挑战赛》基于树莓派5的MAXREFDES117血氧与心率采集系统设计

2025 DigiKey AI应用创意挑战赛 2025 DigiKey AI应用创意挑战赛 122 人阅读 | 0 人回复 | 2026-01-20

本帖最后由 qintian0303 于 2026-1-20 09:46 编辑

项目名称
       基于树莓派5的MAXREFDES117血氧与心率采集系统设计
项目概述
       随着可穿戴医疗设备和家庭健康监测需求的快速增长,基于光电容积描记法(Photoplethysmography,PPG)的心率(Heart Rate,HR)与血氧饱和度(SpO₂)测量技术,因其非侵入、成本低、结构简单等优势,已被广泛应用于智能手环、血氧仪及远程医疗设备中。
       本项目基于 树莓派5(Raspberry Pi 5)作为核心计算与控制平台,结合MAXREFDES117参考设计模块(核心器件 MAX30102),实现了一套完整的生理信号采集、处理、分析与可视化系统。系统能够实时采集红光(RED)与红外光(IR)反射信号,通过软件实现信号调理、心率与血氧饱和度估计,并在手指佩戴与移除时具备智能状态识别和信号质量评估能力。
       项目最终实现了如下目标:
              实时采集并显示PPG波形
              稳定估算心率(HR)与血氧饱和度(SpO₂)
              自动识别手指是否佩戴
              提供SignalQuality(信号质量)指示
              在信号无效时抑制错误数据显示

项目背景
       PPG(光电容积描记)是一种通过检测组织对特定波长光的吸收变化,从而反映血容量变化的光学检测技术。当心脏搏动时,血管内血容量周期性变化,导致光的吸收率发生变化,通过光电传感器即可获得相应的时间序列信号。
相比传统的心电(ECG)测量方式,PPG具有如下优势:非侵入式,佩戴舒适;硬件结构简单,成本低;易于集成至嵌入式与可穿戴设备.PPG技术已成为当前心率和血氧监测的主流方案。
硬件减少
       本次用到传感器模块为MAXREFDES117,是Maxim Integrated(现 Analog Devices)推出的一款参考设计板,核心传感器为 MAX30102。该芯片集成了:双波长LED(红光660nm、红外光880nm);高灵敏度光电二极管;模拟前端(AFE);FIFO缓冲区;I²C通信接口。MAX30102 被广泛应用于商用血氧仪和智能穿戴设备,具有成熟的硬件性能基础,非常适合教学与科研使用。
       主控选择的是树莓派5,作为新一代ARM单板计算机,具备更强的CPU性能;稳定的Linux运行环境;丰富的GPIO / I²C 接口;良好的Python生态支持,相比传统 MCU,树莓派更适合进行算法验证、可视化显示和快速开发,非常适合作为信号处理与系统集成平台。主要因为本次选择的是显示屏就是树莓派出品的5寸触摸屏,用起来显示更方便。

系统总体介绍
       本系统整体分为硬件采集层、信号处理层、参数估计层、状态管理层和可视化显示层4个个部分,各模块之间解耦清晰,结构合理。
       系统工作流程如下:
              MAX30102通过I²C向树莓派传输原始RED/IR数据,软件驱动读取 FIFO 数据并进行初步解析;
              PPGProcessor对信号进行滤波、直流去除与质量评估;
              HRSpO2Estimator进行心率与血氧估计;
              主程序根据佩戴状态与信号质量进行显示控制;
       以上内容分别对应一个python文件
主要算法
1、PPG波形实时采集与显示
       系统能够以约100Hz的采样频率连续读取MAX30102 FIFO数据,并实时绘制:
              红光 AC 波形
              红外光 AC 波形
              RED 与 IR 差分波形
       通过动态Y轴缩放与惯性调节机制,保证波形显示稳定、不抖动,便于观察心搏特征。
2、心率(HR)估计
       心率估计基于红外光 AC 信号,主要步骤包括:
              峰值检测(基于自适应阈值)
              RR 间期计算
              移动平均与指数平滑
       系统对异常 RR 间期进行约束,防止由噪声引起的错误心率估计。
3、血氧饱和度(SpO₂)估计
       血氧估计采用经典的 Ratio-of-Ratios 方法:
              𝑆𝑝𝑂2=110−25×(𝐴𝐶𝑅𝐸𝐷/𝐷𝐶𝑅𝐸𝐷)(𝐴𝐶𝐼𝑅/𝐷𝐶𝐼𝑅)SpO2​=110−25×(ACIR​/DCIR​)(ACRED​/DCRED​)​
       系统对 AC / DC 分量进行最小阈值限制,并对结果进行区间约束(85%–100%),避免异常值输出。

4、手指佩戴自动识别
       系统通过红外光DC分量(IR_DC)判断手指是否佩戴:
              IR_DC低于阈值 → 判定为无手指
              IR_DC稳定且高于阈值 → 判定为已佩戴
       采用计数防抖机制,避免状态频繁切换。该方法在信号稳定阶段依然可靠,避免将“稳定佩戴”误判为“无手指”。
5、 Signal Quality(信号质量)评估
       为提高系统可靠性,引入信号质量评估机制,综合考虑IR DC强度以及IR AC能量(RMS),信号质量被分为三个等级:
              GOOD:信号稳定可靠
              FAIR:信号可用但存在轻微干扰
              POOR:信号不可靠
       当信号质量为POOR时,系统自动冻结HR/SpO₂显示。
6、状态机与显示策略
       系统采用状态机思想区分:
              无手指
              有手指但信号差
              有手指且信号好
       不同状态下显示策略不同,有效提升用户体验与系统可信度

物料清单            
名称
功能
树莓派5-8g
主要用于可视化显示控制以及基本驱动和数据处理
显示屏
可视化显示参数
MAXREFDES117
生理参数前端采集与处理
        

软件平台与系统架构
软件环境
       Python 3
       smbus2(I²C 通信)
       matplotlib(实时波形显示)
       Linux 用户态程序(装这个还是挺慢的)

软件模块划分
       采用模块化的方式继续设计
            
模块
文件
功能
传感器驱动
max30102_driver.py
I²C读写
信号调理
ppg_processor.py
滤波、质量评估
参数估计
hr_spo2_estimator.py
HR/SpO₂
主程序
main.py
状态管理与显示
        

作品实物图





演示视频
       视频地址:
       【基于树莓派5的MAXREFDES117血氧与心率采集系统设计】 https://www.bilibili.com/video/BV1oVk3BhEV2/?share_source=copy_web&vd_source=2a202874768d99b0acaa1aceb9a9b93e
项目文档及代码
       代码附件:
HR与SpO2采集代码.zip (2.72 KB, 下载次数: 0)

       项目文档附件:
《2025 DigiKey AI应用创意挑战赛》基于树莓派5的MAXREFDES117血氧与心率采集系统设计.zip (5.85 MB, 下载次数: 0)





分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条