返回 登录
16

开源可穿戴开发套件 Hexiwear —— 为痴呆症患者和老年人建立健康追踪系统(一)

技术越来越融入人们的生活,给诸多领域带来了翻天覆地的改变,其中就有医疗领域。近年来,健康设备发展得如火如荼,各种健康/健身追踪器、空气污染监测器、睡眠追踪器、血糖仪、便携式心电图仪、脑电图仪等层出不穷。以前只有医院才有这些,现在自己就能 DIY 便携式的。是的,你没听错。DesignSpark 推出了 Hexiwear 试用项目,我有幸被选中,打算用 Hexiwear 建立一个健康追踪系统。这篇文章将详述建立过程。

健康追踪系统为何重要?

健康追踪系统用处多多,在此只列举一二。一台心率测量仪可收集诸多心脏数据,可在患重大疾病前即测出征兆。再举个例子,痴呆症患者,特别是老年人需有人陪伴,否则极易走失;病症发作也需紧急救助,否则有生命危险。有了健康追踪系统,他们晕倒时可及时通知急救人员,使病人得到及时治疗。

Hexiwear 是什么?

由 MikroElektronika 开发的 Hexiwear 是一款开源的可穿戴开发套件,曾在 KickStarter 上成功众筹。它内置多个传感器,如 3D 加速器、三轴式数字陀螺仪、压力传感器、心率传感器等。NXP 开发的 ARM 驱动型 Kinetis K64x MCU 可通过低功耗蓝牙连接其他设备,1.1 英寸的彩色 OLED 显示屏显示信息。

Hexiwear 硬件构造 —— 来源:Hexiwear – MikroElektronika

系统如何运作?

病人晕倒时,追踪系统会迅速告知急救人员其具体地理位置。要做到这一点,要先对晕厥做出判断。晕厥最常见原因当属心率突然增快或减慢(来源:MedicineNet)。虽然 Hexiwear 有优质的心率感应器,但主要靠手动操作;要实现手腕测心率,需要更复杂的算法。Hexiwear 的加速器和陀螺仪可收集身体动作的数据。若突然出现大幅度移动,随后毫无动静的话,很可能是病人晕倒了。判断晕厥后,要告知急救人员,其低功耗蓝牙几乎能连接所有智能手机,一个简易的 Android 程序即可接收信号,将病人的地理位置发送给急救人员和监护人。程序也可增加服药提醒功能、急救按钮、启动/关闭选项等等。

建立追踪系统之步骤

基于云端的 mbed 平台无需下载开发环境,让程序编写更简单,而且还跟 Hexiwear 兼容。mbed Hexiwear 代码库(Hexiwear Code Repository)有很多程序,我下载了串行接口程序并稍作改良。出于习惯,我用串行接口仅为调试代码,系统能正常工作后即可删除。该程序如下所示:

Serial.c 项目的 main 函数

main函数包括 printf 指令,将数据输出到串行端口,并通过线程更改 RGB LED 状态。我的 Github 主页上有完整程序和其他资源,该程序是以 serial.c 保存的。代码结果如下:


Hexiwear 通过串行端口发送数据,LED 灯闪动

现在正式进入下一阶段。Hexiwear 无法绕过手动操作直接测量心率,但可以充分利用加速器和陀螺仪。不得不说,判断病人跌倒比我想象的难。之前我太专注于追踪系统的好处,而忽略了其执行力。初期的实验结果说明需要拓宽研究和测试范围,于是我打算先建立一个简单的跌倒判断机制。若对此感兴趣,可参考列在最后的第 3-5 条参考文献。首先要对 Hexiwear 稍作改进,提高计算精准度。算法会用加速器和陀螺仪数据计算出均方根值,若超过阈值,Hexiwear 会考虑跌倒的可能性;几秒种后再判定病人的状态,若结果跟之前一致,即判断病人跌倒。

再继续代码的部分。对加速器和陀螺仪分别添加库文件 FXOS8700.h 和 FXAS21002.h,在建立分析两者数据的线程。均方根值比较简单,即收集数据的算术平均值的平方根;但确定阈值比较麻烦,我把 Hexiwear 戴在腰上,收集了走路时,静坐时的数据,以及 Hexiwear 放在桌面上和从 50-60 厘米高度跌落下来的数据。

Hexiwear 戴在腰上时收集的不同动作的加速器和陀螺仪数据

Hexiwear 从 50-60 厘米高度跌落下来的数据

根据以上数据:正常状态下,加速度不超过 0.75m/s2,角运动稳定在 30 °/s;非正常状态下,加速度可达 1.32m/s2,角运动可达三位数。我决定将加速器上限设为 1,陀螺仪上限设为 100,均远远高于正常值,Hexiwear 也更容易判断病人晕倒了。测量数据大于阈值,程序会等待 5 秒钟,再次检测,若身体有动静,则为假警报;若无,则判断病人晕倒。

faintDetection.c(判断晕厥)程序主体部分

该程序附上链接。我的 GitHub 主页上有原始数据。DesignSpark 试用项目中,健康追踪系统初步完成;后续还会添加蓝牙连接,运行 OLED 屏幕等更多功能。

参考资源:

  1. Fainting (Syncope)
  2. Heart Rate Inaccuracy
  3. Detecting Human Falls with a 3-Axis Digital Accelerometer
  4. On Developing a Real-Time Fall Detecting and Protecting System Using Mobile Device
  5. Detecting Falls with Wearable Sensors Using Machine Learning Techniques

评论