春节期间正忙于会客,忽然接到一个标注为“XX国际货运代理公司”的电话,我想这骗子也太唬人了,改天我还去注册一个“宇宙开发公司”,比你的“国际代理公司”要更气派的多呢,立马挂断了电话。第二天这个电话又来了,出于礼貌我接通了电话:“您好!”对方说:“您是H先生吗?”得到我的确定并核实了我的名字后说:“您有一个从菲律宾寄来的包裹,请问你的详细住址,我们将通过XX快递寄给您。”这时我忽然想起在去年末曾经申请过一个血氧心率检测芯片的评测,之后就一直没有音讯,我还以为此事不了了之呢。 不多久就接到快递送来的包裹,这是一个20多厘米见方的纸箱(见下图),箱子外边还附着几张发货装箱单,猜想大概是海关通关需要的吧。
开箱后映入眼帘的是几个大小不一的静电包装袋。
还有一份与箱外类似的发货装箱单,另外还有几张彩页。 从粉红色的防震包装袋里取出一个精制的硬纸盒,打开纸盒后在空空如也的海绵垫中间插了一块1厘米见方的小芯片,这就是本次评测的主角(见下图)。
下图就是芯片的特写,是一块有8个焊盘的小PCB板,大约1厘米见方,仔细查看和分析后才知道左右两个焊盘分别是电源及地线,上下的6个焊盘是分别连通的,实际上就是芯片的中断INT引脚和I2C通讯用的SCL和SDA引脚。
从另外一个小的静电包装袋里取出了一个用乳胶制品,开始还不知道用途,看完说明书之后才知道这是一个卡片袋,可以用来存放银行卡或身份证。
另外还有一支精制的圆珠笔(见下图)。
还有一个厚实的静电包装袋,我起初以为里面是开发用的器材或资料,打开后才发现是一本笔记本。不过这个笔记本也非常精制,不光有封口的松紧带和作书签用的丝带,里面印刷的不象我们常用的横格,而是横竖交错的方格,方便绘图定位。
拆开最后一个静电包装袋,里面是十根带鳄鱼夹的测试线。在这些小礼品中,我认为这个是最实用的了。
整个包装箱里没有找到我所需要的技术手册或使用说明等资料,好在宣传彩页上印有网址,可以去官网下载资料。
从美信官网下载的全是英文资料,这可难倒了我这个“文盲”,全靠百度翻译才勉强了解了一点皮毛,但始终没有找到对芯片引脚作用的描述和如何使用的说明。经过反复阅读程序后才知道INT引脚是芯片提供信号,以便主机开始读取I2C总线上的检测数据,SCL和SDA显然是I2C总线通讯用的。 官方提供的例程主要是后缀为cpp的文件,开始我还按网上说的将其后缀名改为.c后再进行编译,后来才知道根本不用修改后缀名,完全可以正常编译的。 官方提供的文件主要有:1、MAX30102.cpp(初始化芯片和读写数据);2、algorithm.cpp(算法);3、main.cpp(主函数),其他引脚设置和I2C驱动则在mbed文件夹中,在mbed里面除了头文件外都是编译过的.o文件。 我开始准备用现有的GD32E230开发板的驱动,可是无法成功与检测芯片建立起I2C通讯,之后换用STM32F103最小系统板也没有成功,检测芯片的LED灯始终没有亮起,以致于我都怀疑芯片是不是已经损坏了。为了判定准备模拟I2C使用的引脚是否正常,我还用逻辑分析仪来检测相关引脚的功能,看是否能正常控制(见下图)。
后来我从网上找到一个基于STM32F103C8T6 MCU的应用,下载后由于其没有包含关键的mbed文件夹内容,编译一直通不过,而我又不知道该到哪里去找这些文件。最后又在另一个论坛里找到同样基于STM32F103C8T6的项目包,这个压缩包资料完整,解压后编译顺利通过了,不仅成功地驱动了检测芯片,而且通过串口通讯在电脑上可以得到检测数据(参见下图)。
芯片驱动成功后,我开始着手LCD显示功能,看似简单的事情,可就在固件库的选择上走了弯路。开始我使用的是标准库,编译总是出错,最后反复查看代码和文件夹中的文件才发现这个项目中使用的是HAL库,修改相应的代码后才完成了在LCD显示屏上显示数据的功能。 为了测试方便,我用洞洞板焊接了一块扩展板,用鼠标线来连接扩展板与检测芯片,同时LCD屏也可以直接插在扩展板上(参见下图)。这样可以避免杜邦线的杂乱和松动引起接触不良。
为了使用方便,我找了一个塑料瓶盖,将检测芯片缝在瓶盖内,正好可以套在手指上,这样仅方便使用,检测时还可以减少杂光影响。
接下来准备在LCD上显示脉搏的动态图形,在选择数据源上又费了一番周折。开始我使用的是从检测芯片读入的数据,但显示效果不理想,后来改用驱动PWM发光管的变量。在显示方式上开始用的是曲线,因为我的LCD显示屏分辨率太低,显示效果不好,后来改为用竖线组成黑色区域显示,效果才好上一点(参见下图)。
至此,这个项目算是基本完成了。从使用的情况看,因为在程序中采用了存储500组数据后再计算,因此明显存在滞后现象,开始使用时要稳定几秒后才逐步显示正常数据,而且在检测过程中稍有活动,数据便不正常,血氧数值相对波动不大,但心率波动时最大甚至超过200次/秒。另外在使用过程中偶尔还出现过芯片死锁现象,复位单片机都无效,一定要断电重新加载才恢复正常。
下一步的测试计划是添加蓝牙模块,同时开发一个安卓APP,将检测数据发送到手机上显示,以便让心率波形显示更美观,取得更好的体验效果。
这是我从网上找到的基于STM32F103C8T6文件包
|