项目简介
本项目是基于C++编程语言构建的智能PPE(个人防护设备)设备固件系统。该系统利用嵌入式技术,借助各类传感器,可实现对呼吸率、心率、温度等健康数据的监测与记录,为个人防护和健康管理提供有力支持。
项目的主要特性和功能
- 硬件接口管理:运用SPI和I2C接口与多种传感器(如Si7051、LPS22HB)进行通信,保障数据采集的稳定。
- 传感器数据处理:采用滤波器(如巴特沃斯滤波器)对传感器数据进行处理,去除噪音干扰,提取有效信号。
- 健康数据监测:通过分析传感器采集的气压、温度等数据,实现对呼吸率和心率的精准监测。
- 日志记录功能:配备日志系统,可记录设备运行状态和传感器数据,支持SWO和UART两种日志输出方式。
- 蓝牙通信支持:支持蓝牙通信,方便与智能设备进行数据同步。
- 电源管理优化:借助BusControl类对FRAM、磁力计、气压计、IMU等外围设备的电源进行管理,实现节能降耗。
安装使用步骤
环境准备
- 确保计算机已安装Git,可参考Git - Installing Git进行安装。
- 安装VS Code(也可使用其他偏好的IDE),下载地址为Visual Studio Code - Code Editing. Redefined。
- 安装Mbed CLI及其依赖,参考Overview - Build tools | Mbed OS 6 Documentation。
- 安装GNU Arm Embedded Toolchain,下载地址为GNU Toolchain | GNU Arm Embedded Toolchain Downloads - Arm Developer,并将其路径配置好。
- 下载JLink Software and Documentation Pack,记录安装路径。
- 准备所需硬件,包括Smart PPE板、JLINK调试器(如J-Link EDU Mini)、Micro USB线、7.9mm (W) x 5.4mm (H) 氧化银电池或专用电源。
项目搭建
- 将项目仓库复制到本地文件夹:
bash git clone https://gitlab.com/ka-moamoa/smart-ppe/embedded-firmware.git
- 切换到
embedded-firmware
目录:bash cd embedded-firmware/
- 初始化mbed仓库:
bash mbed deploy
- 若为首次设置,可能需进入
mbed-os
目录并运行pip install -r requirements.txt --user
(Mac用户建议添加--user
标志),完成后返回项目根目录。 - 复制bluetooth features snippets page的内容,覆盖
embedded-firmware/mbed-os/connectivity/FEATURE_BLE/mbed_lib.json
文件。 - 编译代码:
bash mbed compile -t GCC_ARM -m SMARTPPE
VS Code配置
- 在VS Code中打开
embedded firmware
文件夹。 - 按下
F1
,输入configure default build task
并选择,然后选择other
,将以下内容粘贴到弹出的tasks.json
文件中:json { "version": "2.0.0", "tasks": [ { "label": "build-debug", "type": "shell", "command": "mbed compile -t GCC_ARM -m SMARTPPE --profile debug", "problemMatcher": "$gcc", "group": { "kind": "build", "isDefault": true } }, { "label": "build-develop", "type": "shell", "command": "mbed compile -t GCC_ARM -m SMARTPPE --profile develop", "problemMatcher": "$gcc", "group": "build" } ] }
- 可通过按下
F1
选择Tasks: Run Build Task
或使用快捷键(Mac默认cmd-shift-B
,Windows默认ctrl-shift-B
)进行代码构建。
调试配置
VSCode调试
- 点击侧边栏的“Run”按钮,选择“create a launch.json file”,选择任意选项后删除默认配置,将以下内容复制到
launch.json
文件中:json { "version": "0.2.0", "configurations": [ { "name": "debug", "type": "cortex-debug", "request": "launch", "servertype": "jlink", "serverpath": "/Applications/SEGGER/JLink_V692/JLinkGDBServerCLExe", "interface": "swd", "cwd": "${workspaceRoot}", "runToMain": true, "executable": "${workspaceRoot}/BUILD/SMARTPPE/GCC_ARM-DEBUG/${workspaceRootFolderName}.elf", "device": "nrf52", "svdFile": "${workspaceRoot}/nrf52.svd", "armToolchainPath": "/Applications/ARM/bin/", "swoConfig": { "enabled": true, "cpuFrequency": 64000000, "swoFrequency": 40000000, "source": "probe", "decoders": [ { "type": "console", "label": "SMART-PPE", "port": 0 } ] } }, { "name": "debug-develop", "type": "cortex-debug", "request": "launch", "servertype": "jlink", "serverpath": "/Applications/SEGGER/JLink_V692/JLinkGDBServerCLExe", "interface": "swd", "cwd": "${workspaceRoot}", "runToMain": true, "executable": "${workspaceRoot}/BUILD/SMARTPPE/GCC_ARM-DEVELOP/${workspaceRootFolderName}.elf", "device": "nrf52", "svdFile": "${workspaceRoot}/nrf52.svd", "armToolchainPath": "/Applications/ARM/bin/", "swoConfig": { "enabled": true, "cpuFrequency": 64000000, "swoFrequency": 40000000, "source": "probe", "decoders": [ { "type": "console", "label": "SMART-PPE", "port": 0 } ] } } ] }
注意调整serverpath
、executable
和armToolchainPath
等文件路径。 - 保存后,点击“run”按钮,再点击面板顶部的绿色箭头即可开始调试。若要获取SWO输出,在VSCode下载代码到板卡并等待“start”时,在底部面板的
Output
中,将Tasks
切换为SWO: SMART-PPE
。
Ozone调试
- 通过USB将J-Link(或开发套件)连接到计算机,用 ribbon 电缆将其连接到Smart PPE板的调试头,确保红色线在J-Link标记为(1)的一侧。
- 下载Ozone。
- 打开Ozone,选择
Create New Project
。 - 设置目标设备:
- Device:
nRF52832_xxAA
- Register Set:
Cortex-M4 (with FPU)
- Peripherals: 输入系统中
nrf52.svd
文件的路径。
- Device:
- 点击下一步,设置连接参数:
- Target Interface:
SWD
- Target Interface Speed:
8 MHz
- Host Interface:
USB
- Serial No: 保持自动填充的连接设备序列号。
- Target Interface:
- 点击下一步,输入
.elf
文件的系统路径,从项目根目录起路径为embedded-firmware/BUILD/SMARTPPE/GCC_ARM-DEBUG/embedded-firmware.elf
(需先在VSCode中成功构建软件)。 - 点击完成,应能看到
main.cpp
文件。 - 点击屏幕左上角的绿色电源按钮,若Smart PPE板已供电,Ozone将连接并下载程序。
- 在菜单栏中选择
Tools->Trace Settings
,在Trace Source
下选择SWO
,点击Save to Project
以启用SWO printf,SWO消息将显示在“Terminal”窗口中。 - 点击
File->Save Project As
将调试配置保存到项目文件夹。 - 后续可正常进行调试,当代码重新构建后,Ozone会自动检测
.elf
文件的变化并询问是否重新加载。
测试
在硬件上测试设备的运行情况,确保所有功能正常。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】