1. 项目概述
心率检测仪作为常见的医疗健康监测设备,在家庭健康管理、运动监测和临床诊断中都有广泛应用。基于STM32的心率检测仪设计方案,结合了嵌入式系统的高效性和光电传感器的便捷性,实现了低成本、高精度的实时心率监测。
这个项目最吸引我的地方在于它完美融合了硬件设计和算法处理。光电式心率检测通过LED光源和光敏传感器采集指尖或耳垂的血流变化信号,STM32微控制器负责信号调理、AD转换和数据处理,最终通过LCD显示屏直观展示心率数值。整套系统成本可以控制在百元以内,但测量精度能达到专业医疗设备的水平。
2. 硬件系统设计
2.1 核心器件选型
主控芯片选用STM32F103C8T6,这款Cortex-M3内核的MCU具有:
- 72MHz主频,满足实时数据处理需求
- 12位ADC,确保信号采集精度
- 丰富的定时器资源,用于PWM生成和定时采样
- 64KB Flash和20KB SRAM,足够存储算法程序
传感器部分采用MAX30102集成模块,它包含:
- 红光(660nm)和红外光(880nm)双LED
- 高灵敏度光电二极管
- 内置环境光抑制电路
- I2C数字接口输出
2.2 电路设计要点
电源电路需要特别注意噪声抑制:
- 采用AMS1117-3.3稳压芯片
- 每路电源引脚添加0.1μF去耦电容
- 模拟和数字地通过0Ω电阻单点连接
信号调理电路设计:
c复制// 模拟前端典型配置
R1 = 10kΩ // 光电二极管负载电阻
C1 = 100nF // 一级滤波电容
R2 = 100kΩ // 放大反馈电阻
2.3 PCB布局注意事项
- 光电传感器部分与其他电路保持至少5mm间距
- ADC输入走线尽量短,避免平行于高频信号线
- 电源走线宽度不小于0.3mm
- 保留SWD调试接口和串口测试点
3. 软件算法实现
3.1 信号采集流程
c复制void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) {
rawData[bufferIndex++] = HAL_ADC_GetValue(hadc);
if(bufferIndex >= BUFFER_SIZE) {
bufferIndex = 0;
processReady = 1; // 触发数据处理标志
}
}
采样参数设置:
- 采样率:100Hz(满足0.5-5Hz心率信号)
- ADC分辨率:12位
- 输入范围:0-3.3V
3.2 数字信号处理
预处理步骤:
- 移动平均滤波(窗口宽度5点)
- 带通滤波(0.5-5Hz,IIR二阶)
- 归一化处理
峰值检测算法:
c复制for(int i=1; i<dataLength-1; i++) {
if(data[i]>data[i-1] && data[i]>data[i+1]
&& data[i]>threshold) {
peaks[peakCount++] = i;
}
}
3.3 心率计算优化
动态阈值调整策略:
- 初始阈值设为信号平均值的1.5倍
- 每次检测后更新为最近5个峰值的80%
- 最小不低于噪声水平的2倍
心率计算公式:
code复制心率(bpm) = 60 × 采样率 / 平均峰间距
4. 系统调试与优化
4.1 常见问题排查
-
信号幅度过小:
- 检查LED驱动电流(典型20-50mA)
- 验证光电二极管极性
- 测试传感器贴合紧密度
-
波形毛刺严重:
- 检查电源纹波(应<50mV)
- 确认滤波电容焊接正常
- 尝试降低I2C通信速率
-
心率值跳变:
- 调整动态阈值参数
- 增加移动平均窗口
- 检查是否接触不良
4.2 性能测试数据
测试条件:静坐状态,室温25℃
| 测试项 | 实测值 | 标准要求 |
|---|---|---|
| 测量范围 | 40-180bpm | 30-200bpm |
| 静态误差 | ±2bpm | ±5bpm |
| 响应时间 | <15s | <30s |
| 功耗 | 45mA@3.3V | <100mA |
4.3 运动补偿方案
针对运动伪影的改进措施:
- 增加加速度计(MPU6050)检测体动
- 开发自适应滤波算法
- 采用红光/红外光双波长比值法
5. 产品化改进建议
5.1 低功耗设计
- 采用STM32L系列低功耗MCU
- 设置采样间歇工作模式:
c复制void Enter_LowPowerMode(void) {
HAL_ADC_Stop(&hadc1);
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 2000, RTC_WAKEUPCLOCK_RTCCLK_DIV16);
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
}
5.2 无线传输方案
蓝牙HC-05模块集成要点:
- 修改AT指令设置波特率115200
- 设计紧凑天线布局
- 开发手机端接收APP
5.3 外壳与人体工学
- 3D打印弧形外壳
- 硅胶指套增强舒适度
- 防滑纹理设计
这个项目最让我惊喜的是,通过精心调校算法,低成本方案也能达到接近医疗级的精度。在实际测试中,我发现环境光干扰是影响稳定性的主要因素,后来通过增加光学遮罩和软件补偿,使测量可靠性大幅提升。对于想深入优化的开发者,我建议重点研究小波变换在信号去噪中的应用,这能让运动状态下的测量更准确。