原创深度 | 牛人手把手:教你设计可穿戴心率监测器

近年来可穿戴设备在多个市场呈现爆炸性增长,这很大程度上是因为它们提供的便利性以及大量的相关信息。运动跟踪器(比如三星的Gear Fit 2)、医疗设备(比如Qardio® Arm血压剂)以及Under Armor(安德玛公司)推出的UA SpeedForm® Gemini 3智能跑鞋就是其中一些例子。这些设备能够为用户提供各种反馈信息,包括睡眠质量、VO2水平、运动水平、步行和跑步节奏等数据点。

“”

设计可穿戴设备需要添加外围设备来感应和显示各类数据,同时需要在云端存储和检索数据。以下介绍的项目采用Maxim Integrated推出的Pegasus Rapid开发平台,开发板上搭配700-MAXREFDES117#心率监测器参考设计中集成了关键的外围设备,大大简化了开发流程。此外还采用了Mbed操作系统用于云编程,Ubidots用于提供云服务以及Android Studio软件来实现云接口。

如果你是一名设计师(或“DIY爱好者”),这些集成的功能部件、参考设计和云编程工具会让你在起跑线上领先一步。下面的内容标注了必需的项目材料、帮助你为设备编程、组装开发板、编译和下载安卓App、将数据传输到云服务。

1、项目材料和资源

建议大家在开始此项目前准备好以下材料和资源:

1、项目材料清单(BOM)

在mouser.com官网上查看项目的BOM,包括下列各种组件:

  • Maxim 700-MAX32630FTHR#开发平台,集成了MAX32630 Arm® Cortex®-M4F微控制器和MAX14690 PMIC电池充电管理器件

  • Maxim 700-MAXREFDES117#心率监测器,集成了心率/脉搏监测传感器、降压型DC/DC转换器和逻辑电平转换器

  • 锂聚合物电池

2、项目代码

Mouser HRM Mbed代码库:
https://os.mbed.com/users/Brakkion/code/BLEHeartRateMon/

请扫码访问

“”

Mouser HRM GitHub代码库:
https://github.com/Mouser-Electronics/Maxim-HR-BLE

请扫码访问

“”

3、硬件

  • 电烙铁
  • 跳线或普通导线

  • 助焊剂

  • 接头引脚

  • 面包板

  • 数字万用表(可选)

  • 示波器(可选)

  • 外围扩展设备(可选)

4、帐号和软件

  • Ubidots云服务帐号
  • Mbed.org帐号

  • Android Studio软件

2、项目技术概述

这是一个高级开发项目,主要面向有编程和焊接经验的工程师和DIY爱好者,设计这个项目我们采用了如下技术:

Maxim MAX32630FTHR Pegasus开发平台

驱动这个项目的是Maxim新推出的MAX32630FTHR Pegasus开发平台(图1)。这个平台搭载MAX32630 Arm® Cortex®-M4F微控制器以及MAX14690 PMIC电池充电管理器件,能协助工程师快速设计原型。这个功能丰富的开发板包含多个集成外设,比如加速度计/陀螺仪、双模蓝牙以及SPI、I²C、UART、66个GPIO接口等。MAX32630FTHR小巧的外观尺寸与几款现成的扩展板以及标准面包板相兼容,这带来了无限的可能性。如果你对某些选项好奇,我们提供了扩展外设的介绍链接。

“图1:Maxim
图1:Maxim MAX32630FTHR# Pegasus开发平台

Maxim MAXREFDES117#心率模块参考设计

MAXREFDES117#心率模块参考设计(图2)非常的小巧,它集成了MaximMAX30102心率/脉搏、血氧传感器、MAX1921降压型DC/DC转换器以及MAX14595 逻辑电平转换器。这种多功能设计可以用于Arduino和Mbed平台实现快速集成。示例固件就适合这两种平台,给用户提供了非常基本的算法,用来确定心率、SpO²等参数,帮助他们快速实现原型设计。

“图2:Maxim广受欢迎的MAXREFDES117#心率模块参考设计外型小巧,集成了脉搏/血氧传感器、降压型DC-DC转换器以及逻辑电平转换器”
图2:Maxim广受欢迎的MAXREFDES117#心率模块参考设计外型小巧,集成了脉搏/血氧传感器、降压型DC-DC转换器以及逻辑电平转换器

Mbed OS用于云编程

Mbed OS提供了一个方便的云编程工具,有助于简化和加速创建物联网(IoT)平台。Mbed提供的工具可帮助实现代码协作、提交和发布软件,同时帮助维护详细的修订历史记录。使用Mbed非常简单,创建帐号、查找并选择期望使用的硬件即可。如果你已经拥有了帐号,就可以去Mbed代码库将提供的代码导入你的编译器从而开始你的项目。

Ubidots提供云服务

Ubidots为所有想要开展IoT或云项目的开发人员提供了很好的起点。除了有多种开发平台的教程外,Ubidots还提供了有关在服务和Android Studio中创建的安卓App之间搭建接口的教程。信用系统能够让你以简单经济的方式开发和维护你的项目,并且提供了多种用来获得更多信用值的方法。

Android Studio实现云接口

你需要相应的接口将数据从Maxim开发板和传感器传输到云端,这可以通过一个移动设备(比如平板电脑或智能手机)来实现。对于这个项目,我们使用的是安卓框架,并且借助Android Studio来创建App,用来显示传感器提供的信息。

3、开发心率监测器

使用Mbed

如果你已经拥有Mbed帐号,可使用贸泽HRM Mbed代码库 (https://os.mbed.com/users/Brakkion/code/BLEHeartRateMon/)并将其中的代码导入到你的编译器。

对于新手用户:

  • 访问Mbed.org网站。

  • 点击Mbed OS链接转至开发者页面。

  • 点击“Log in/Sign up”,输入相关信息进行登录/注册。

注册后你可以选择高亮显示的“Compiler”链接来开始新项目,或者访问Mouser HRM Mbed代码库链接将其中的代码导入你的编译器。通过点击编译器右上角的按钮你可以选择、查看、添加或者更改目标平台。你会发现其他几种Maxim产品和软件示例在Mbed中也是支持的。

连接开发板和参考设计

将MAX32630FTHR和MAXREFDES117连接起来只需要很少的连接线,使用面包板会更加简单,为此请遵循如下步骤:

  • 将心率传感器的SCL和SDA引脚连接到MAX32630FTHR的P3_5和P3_4引脚,将INT引脚连接到P3_0(图3)。

  • 心率传感器的VIN引脚需要2.5至5.5V 的输入电压,但我建议从3.3V或电池的SYS引脚引入电源,在尝试使用5V时我已经遇到了多个问题。

  • 连接地线。

“图3:Maxim
图3:Maxim MAX32630FTHR#数据手册中提供的引脚布局

对开发板进行编程

对开发板进行编程就像将文件从一个文件夹拖放到另一个文件夹那样简单。MAX32630FTHR模块还提供了调试接口,用于将代码上传到开发板。

我们按如下步骤开始:

  • 用极化的10引脚连接器将接口板与MAX32630FTHR相连接,如果连接没被盖住,要特别注意引脚1。

  • 将标记有HDK(在接口板上)的micro USB连接器连到PC的USB端口上,此时会自动安装驱动程序。根据你使用的DAPLINK模块的不同,它可能有多个接口或者只有一个接口(见图4图5)。当驱动程序完成安装后,在电脑文件资源管理器中会显示标记为DAPLINK的新驱动器。

  • 通过micro USB或者JST电源连接器为MAX32630FTHR模块供电。

“图4:具有多个输入接口的DAPLINK
图4:具有多个输入接口的DAPLINK

“图5:只有一个输入接口的DAPLINK”
图5:只有一个输入接口的DAPLINK

一旦与开发板建立了连接,你就需要编译代码来生成对MAX32630FTHR进行编程所需的.bin文件。从Mbed编译器屏幕上的工具栏:

  • 点击“Compile”或者使用下拉菜单选择你要使用的选项。一段时间后软件就会在Downloads文件夹内生成.bin文件。

  • 打开Downloads文件夹找到.bin文件。

  • 打开一个新的资源管理器窗口,在这个窗口内你会看到一个新的DAPLINK驱动器盘符,这就是你的接口板。

  • 将新创建的.bin文件从其下载位置拖动或者复制到DAPLINK文件夹,开始对接口板进行编程。

在编程时,DAPLINK板上的LED灯应该会快速闪烁,完成后LED灯会熄灭或者保持缓慢而稳定的闪烁。

按下MAX32630FTHR上的复位按钮以启动程序代码。

MAX32630FTHR板复位后,两个板上的红色LED灯都会亮起并且保持稳定。

登录后你会发现打开的是控制面板 (Dashboard) 页面,有很多选项供你选择,比如查看所创建的设备、查看可用的事件、查看个人配置文件、查看你的账户有多少信用值。需要注意的是,对于任何项目来说有些内容都是必需的,比如API token、设备和变量ID。

查看API Token

想要查看API token,需要在页面的右上方点击“Profile”图标,然后选择“API Credentials”,此时会在左侧下拉菜单显示所有的API token信息。对于每个用户来说,API token都是唯一的,这是在创建账户时生成的,是为了防止你设备上的数据发送给错误的账户。

添加设备

在添加变量时会为每个新设备创建变量ID,首先我们从添加设备开始:

  • 确认当前处于“Devices”页面(图6)。

  • 点击页面右上角带加号的黄色圆圈。

  • 给设备重命名,从“My Data Source”改为任何你想要的名字。

  • 点击页面的任意位置完成设备的添加,此时会弹出一条消息提示创建成功。

“图6:从“Devices”页面开始”
图6:从“Devices”页面开始

“设备”代表你的项目,一个帐号下支持多个项目。“变量ID”用来帮助每个设备来识别特定的传感器、数据输入源以及所处的位置。这有利于我们维护多个项目以及独立的传感器或设备间共享的传感器。

创建变量ID

创建变量ID与创建设备非常的相似:

  • 点击“New Device”图标,这时会打开此设备的详细页面,允许我们创建个人的变量。

  • 点击页面右上方带加号的黄色圆圈以创建新的变量。

  • 对变量进行重命名。

  • 点击页面的任何位置,会弹出一条消息提示你成功创建了ID。 

点击这个新的图标会弹出“Created Variable”页面(图7),在左侧会显示多条信息。你可以编辑左侧大部分信息,其中包括API标签、允许的范围、测量单位和相似度(重要的一项就是ID,它用来标识你的程序数据应该放在的位置)。

“图7:Ubidots的“Variable”页面”
图7:Ubidots的“Variable”页面

我强烈建议大家查看教程文档,当鼠标放在“Profile”图标上时会出现下拉菜单,其中就包含教程文档。这些文档提供了非常有用的信息,涉及MQTT、HTTP API接口和其他物联网设备等主题。

Android Studio

我们需要接口才能将数据从Maxim开发板和传感器传输到云端。这可以借助平板电脑、智能手机之类的移动设备来完成。对于这个项目我们采用的是安卓框架,使用Android Studio创建App,并显示心率传感器提供的数据。

为了节省时间,我使用BluetoothLeGatt这个示例App进行演示。通过这个应用,我们可以浏览可用的蓝牙设备,连接这些设备并查看有哪些可用的资源。这对于创建自己的蓝牙应用有非常好的借鉴作用(如果你选择设计相关应用的话)。Ubidots还提供了相关教程来说明如何通过App连接和发送数据到云服务,我建议大家查看API token和变量token的相关说明。

导入代码

1.从贸泽的GitHub (https://github.com/Mouser-Electronics/Maxim-HR-BLE)下载BLEHR.7z文件,要将代码导入到Android Studio,必需该文件。由于文件大小的限制,这个项目的源代码分成了两部分,你需要将它们分别解压。

2. 通过在主启动页面点击“Open an existing Android Studio project”或者点击“File Open”菜单就可以将代码导入到Android Studio。下面你可以看到我如何更改和实现Ubidots的API(图8)。

(注意:请按照前面的说明,在编译程序前修改token密钥。如果编译前没有更新该密钥,你的数据将不会显示在Ubidots上。)

“图8:Android
图8:Android Studio Ubidots API token代码

编译App

为了测试和调试代码,你可以进行如下操作:

  • 编译App并下载到设备中。如果你不想在更新API token和变量token后修改代码,可以使用此方法。 

  • 使用“Developer” 模式。这种模式支持USB调试,你可以将手机或者平板电脑作为虚拟测试平台,将其与你的开发PC直接相连。借助网络搜索或者Android Studio的教程,你可以找到有关如何进入开发者模式的说明。

如果你决定使用一个设备作为开发工具,那么只需要点击菜单栏的“Run”按钮,然后选择你的设备开始编译和运行App。一旦加载完成,App就会在你选择的设备上运行起来。(注意:不能在虚拟设备上运行这个App,因为虚拟设备不支持蓝牙。)

如果你只是打算简单地进行sideload刷机,则需要先编译代码,方法是先选择“Build”,然后再选择“Build APK(s)”。这会创建一个新的文件,你可以将其拷贝到自己选择的设备上进行安装。

虽然就算你不打算更改软件,刷新App也是一个很好的选择,但我还是建议您选择一个设备作为测试平台。在“USB debug mode”模式下你可以更新、重编译、重复执行代码,这对于编程和调试非常有用。

4、进行系统组装

当你完成App的加载并且启动后,在界面的右上方你会看到“Scan”图标,点击它可以扫描查看附近范围内的所有蓝牙设备。如果你对MAX32630FTHR和MAXREFDES117进行了正确的连接和编程,当设备启动后你会在弹出的设备列表中看到一个标有HRM的设备。

准备好查看结果了吗?

  • 确保开启了位置访问权限。如果你不确定此选项的位置,请参阅设备的在线帮助或者文档。

  • 选择HRM打开一个新窗口。你会看到一些数据:设备地址、当前状态、数据输出。

  • 点击右上方的“Connect”按钮可以连接到这个设备,在下拉菜单中你可以看到对应的服务列表。

  • 最后选择“Heart Rate Measurement”,你会看到界面上开始显示数据(图9)。

“图9:当你选择“Heart
图9:当你选择“Heart Rate Measurement”选项时,你会看到屏幕上开始显示数据

如果你更新了代码以包含正确的API token和变量token,那么你现在应该能够登录你的Ubidots账户,通过点击“Device”选项卡查看该设备上的可用数据。

现在你可以创建一个控制面板,根据你的要求按照不同的格式来快速查看信息(图10)。Ubidots最近推出了一个beta版本的Android App,你可以选择在智能手机或者平板电脑上进行安装来查看你的控制面板和设备(图11)。

“图10:Ubidots安卓App控制面板”
图10:Ubidots安卓App控制面板

“图11:Ubidots网站控制面板”
图11:Ubidots网站控制面板

5、结论

可穿戴设备是非常有用的工具,可以为我们的日常生活增加很多的便利。这些设备能够提供给用户各种反馈数据,比如睡眠质量、最大摄氧量(VO2)、运动水平、步行和跑步节奏等数据。此外,它们还可以帮助你监测身体健康情况,并且可以将你的信息(比如每日血压、血糖水平)发送给医疗机构进行诊断。

设计可穿戴设备需要添加外围设备来感应、显示、存储和检索数据。Pegasus Rapid开发平台集成了关键的外围设备,大大简化了系统开发,700-MAXREFDES117#心率监测器参考设计也可以提供直接的借鉴作用。Mbed OS、Ubidots和Android Studio软件分别针对云编程、云服务和云接口等技术进行了完善。

更多MAX32630FTHR Pegasus快速开发平台详情,请扫码访问:

“”

“作者:Joseph
作者:Joseph Downing

Joseph Downing已经在贸泽电子 (Mouser Electronics) 在2011年加入贸泽作为技术支持专家,后来转为技术内容专家。Joseph在电子行业有20多年的从业经验,曾在很多公司任职,比如Intel、Radisys和Planar等。作为一名酷爱技术的创客,Joseph帮助管理Mouser.com网站上的“应用和技术”模块,并且为这个模块和贸易展览会提供技术项目和材料支持。

该发布文章为独家原创文章,转载请注明来源。对于未经许可的复制和不符合要求的转载我们将保留依法追究法律责任的权利。

推荐阅读