最近做了一个小设备,核心功能是用 MAX30100 采集血氧,用两路压力信号判断状态,再把数据放到一块OLED。把采集、显示、交互、报警和无线发送这些能力,压进同一个系统里。
前端是一块SSD1315 的 OLED,主界面只保留最关键的信息,直接显示血氧值,下面两条曲线对应两路压力信号,底部再给出两路距离换算后的结果。。另一页则是参数设置页,可以直接调两路距离报警阈值和血氧报警阈值,按键切换、修改,掉电之后参数还能保留。
1、主控电路设计
我的这版方案选的是 STM32F411,它在性能、资源和开发熟悉度之间,刚好卡在一个我很喜欢的位置。算力足够,外设也够用,I2C、ADC、串口这些接口拉出来之后,带血氧模块、OLED、两路模拟量采集,再顺手做按键和报警灯控制,基本不会有明显的资源焦虑。
2、应变片电路
系统里的压力信号采集,我最后用的是桥式差分思路,具体来说是单臂电桥方案,再配 INA333 做前级放大。这样做的好处其实很明确,应变片本身出来的是非常小的变化量,如果直接去采,信号既弱又容易被噪声淹掉,实用性很差。用电桥先把微小变化组织成差分输出,再交给 INA333 这种仪表放大器去放大,整个链路就会干净很多。INA333 本身的优势也很适合这种场景,失调低、漂移小、共模抑制能力也不错,拿来处理应变片这种微弱信号,属于很顺手的一类器件。
应变片采用120欧标准单臂电桥。同时这个电路还有个好处就是可以方便的改为分压电路,H2不接的话仪表放大器的负端接地,R11,R13构成分压电路,也方便临时换电路。
3、电源设计
整机供电我用的是 Type-C 口接入,先通过 TP4056 给锂电池充电,再由XC6206P332MR-G提供 3.3V 电源输出,给整套系统供电。Type-C 解决的是接入便利性,TP4056 负责把充电,而 XC6206P332MR-G 则把后级电压统一拉到 3.3V,方便 STM32、MAX30100、OLED 以及前端模拟电路共用同一套逻辑电平。对这种便携式小设备来说,电源设计不一定要多复杂,关键是路径要顺,器件要稳,后面所有采集、显示和无线发送,才能建立在一个靠谱的基础上。
4、屏幕显示
显示我用的是一块基于 SSD1315 的 OLED,小屏幕的好处就在这,信息密度可以做得很高,它存在的意义就是让使用者在最短时间内看懂当前状态。所以主界面只保留了血氧值、两路压力曲线和两路距离结果,尽量不塞多余信息。交互部分则配了几颗按键,用来完成页面切换和参数设置,另外再配合几颗指示灯承担报警提示。
5、无线通讯
这版设计里我预留了蓝牙串口通信,它可以很自然地接到手机、上位机,或者别的无线采集链路里去。当前发送的内容主要是原始血氧值和两路原始信号,这样做不是为了把界面上的结果再重复一遍,而是为了把最底层的数据留给后面的分析和处理。很多时候,真正有价值的不是屏幕上那个已经整理过的数字,而是这些还带着现场细节的原始信息,它们决定了你后面还能把这个系统继续做多深。
总结
对我来说,硬件设计里最有意思的地方也正在这。不是参数堆得多高,不是模块接得多满,而是你能不能用一套清楚、彼此配合的结构,把一个想法真正落成一个能工作的东西。至少在这一版里,我觉得它已经开始长出那个样子了。
304