zhxh0123 发表于 2026-1-12 22:45:40

基于MAX30102与MAX78000的便携式心率血氧监测设备

感谢与非网和得捷电子提供的这次机会。本设计实现了一款便携式、低功耗、实时的心率与血氧饱和度监测设备。系统以MAX78000为主控,通过I2C接口驱动MAX30102光学传感器采集红外和红光PPG信号,利用开源心率血氧算法进行实时处理,最终在SSD1306 OLED显示屏上直观显示心率与血氧数值。项目代码结构清晰,模块化设计良好,具备完整的硬件驱动、信号处理与人机交互功能。

---

### 一、系统架构

#### 1. 硬件组成

* ​**主控芯片**​:MAX78000(基于Arm Cortex-M4F),具备低功耗与高性能信号处理能力
!(https://www.eefocus.com/forum/data/attachment/forum/202601/12/210453f99gqumcj7jhgjm3.jpg)
* ​**光学传感器**​:MAX30102,集成红外与红光LED、光电探测器及18位ADC
!(https://www.eefocus.com/forum/data/attachment/forum/202601/12/210512c06f60fy0e2y156p.jpg)
* ​**显示屏**​:SSD1306 OLED(128×64像素,I2C接口)
!(https://www.eefocus.com/forum/data/attachment/forum/202601/12/210525ansylymeerr9y2sl.jpg)
* ​**通信接口**​:I2C(用于传感器与屏幕通信)

#### 2. 软件模块

* ​**算法核心**​:`algorithm.c` – 心率与血氧计算算法
* ​**传感器驱动**​:`main.c` – MAX30102初始化、数据采集与FIFO读取
* ​**显示驱动**​:`ssd1306.c` – OLED初始化、图形缓冲、字体显示
* ​**系统主循环**​:数据采集→算法处理→结果显示

---

### 二、核心算法与实现

#### 1. 信号预处理

* 直流分量去除
* 四点滑动平均滤波
* 差分信号计算
* 汉明窗口加权(提升波峰检测精度)

#### 2. 心率计算

* 基于差分信号的波峰检测(`maxim_find_peaks`)
* 峰间期平均计算心率(BPM)
* 有效心率范围校验(40–180 BPM)

#### 3. 血氧计算

* 红光与红外信号AC/DC分量提取
* 比值计算与查表映射(`uch_spo2_table`)
* 基于多个脉搏周期的中值滤波提升鲁棒性

---

### 三、系统工作流程

1. **初始化阶段**
   * I2C、MAX30102、SSD1306初始化
   * 校验传感器ID(0x15)
2. **数据采集阶段**
   * 以100Hz采样率读取FIFO(18位数据)
   * 存储至长度为800的环形缓冲区(`BUFFER_SIZE = FS * 8`)
3. **算法处理阶段**
   * 缓冲区满后调用 `maxim_heart_rate_and_oxygen_saturation()`
   * 输出心率与血氧值及有效标志
4. **结果显示阶段**
   * OLED显示实时心率(BPM)与血氧(SpO2%)
   * 无效数据时显示“---”

---

### 四、代码特点与优化

1. **模块化设计**
   * 传感器、算法、显示三层分离,便于调试与扩展
   * 全局缓冲区与查表通过extern声明,避免重复定义
2. **资源优化**
   * 使用整数运算,避免浮点,适合嵌入式平台
   * 字体与波形表使用常量数组,节省RAM
3. **鲁棒性增强**
   * 信号有效性多重判断(峰值数量、比值范围、幅度阈值)
   * I2C通信加入重试与错误处理

---

### 五、应用场景与拓展

* ​**个人健康监测**​:日常心率、血氧跟踪
* ​**运动健康管理**​:运动时实时生理参数监控
* ​**远程医疗辅助**​:可通过无线模块上传数据至云端
* ​**低功耗穿戴设备**​:MAX78000的休眠模式可进一步降低功耗

---

### 六、总结

本项目成功实现了一套完整的便携式心率血氧监测系统,具备以下亮点:

* ✅ 基于MAX78000的高效信号处理与低功耗特性
* ✅ MAX30102高精度光学传感与嵌入式算法结合
* ✅ 实时显示与良好的人机交互体验
* ✅ 代码结构化强,易于二次开发与移植

未来可进一步集成蓝牙传输、数据存储、异常报警等功能,提升产品的实用性与智能化水平。
以下是相当代码的演示视频:


页: [1]
查看完整版本: 基于MAX30102与MAX78000的便携式心率血氧监测设备