So easy!Zephyr操作系统+Arduino开发板变成一款心率监测器

2017-05-19 14:09:00 来源:EEFOCUS
分享到:
标签:

“大健康”概念提出以后,作为医院外补充医疗的可穿戴设备掀起一股发展热潮,心率监测仪作为一款常见的监测设备很受欢迎。它不仅价格便宜,而且体积小携带方便,随时随地都能测试,并给用户提供实时监测结果,让用户及时了解健康状况并采取合适的治疗方式。那么对于开发者来说,如何快速开发一款心率监测仪?今天,我们就手把手教你采用Zephy操作系统在Arduino 101开发板上搭建一款心率监测仪。

先来了解一下心率检测仪的组成部分,一般包括硬件部分和软件部分。硬件部门主要完成的功能包括数据采集、数据传输和数据显示,软件部分主要进行数据转换和分析。我们采用的Arduino 101开发板上有一个英特尔居里模块,英特尔Quark SE处理器有两个核:一个用于控制传感器子系统的ARC内核,一个用于控制蓝牙低功耗芯片的X86内核。Zephyr操作系统非常适用于资源受限的物联网设备,从简单的嵌入式环境传感器和LED可穿戴设备,到精密的智能手表和物联网无线网关都能覆盖。与其它实时操作系统相比,Zephyr操作系统支持丰富的I/O驱动,具有高可配置性,编译时可进行资源定义,这使得它非常适用于快速原型开发;对于特殊应用案例易于优化。同时,它不仅支持板上的所有传感器接口,还能够通过IPM机制实现双核之间以及蓝牙到其它设备之间进行数据交换。因此在资源配置方面,Arduino 101开发板和Zephyr操作系统可以满足心率监测仪的设计需求。

我们将从以下几点来展示心率监测器的设计过程,包括:如何从脉冲传感器读取模拟数据并监测心率?如何在Grove RGB LCD上现实心率和心跳?如何通过低功耗蓝牙连接发送心率数据到智能手机?所有的源代码主要基于Zephyr提供的样例,通过这个设计用户将会更加了解Zephyr操作系统的详细使用方法。

硬件搭建
与其它Arduino开发板类似,必须用到USB type B连接线把应用程序烧制到Arduino101开发板的系统闪存,它同时给开发板供电。FTDI USB TTL串行连接线在调试时从串行接口中抓取数据。Grove RGB LCD的工作电压为5V,采用SCL和SDA线通过I2C总线与Arduino 101进行通信。Arduino 101开发板在工作电压为3.3V时,没有内部上拉电路,我们需要创建一个:

    将3.3V引脚连接到两个10K 欧姆的电阻上;
    将SCL和SDA引脚连接到上拉电路上;
    将SCL和SDA引脚将转到Grove RGB LCD显示屏的对应引脚上;
    把5V和地引脚分别从开发板上连接到显示屏上的对应引脚;

脉冲传感器能够在3.3V或5V电压下工作,在Arduino 101开发板上我们采用3.3V。有三路线连接到传感器,红线连到3.3V,黑线接地,紫色线接到模拟输入 A2,开发者能够通过ADC-CHANNEL 在代码种定义任何引脚,从A0到A5。注意: 手指上的汗水可能会导致短路,从而损坏传感器,需采取适当的预防措施,避免造成短路。
 



Arduino 101开发板采用数字引脚0和1发送和接收串行数据,连接下面的引脚和线:
    板子上的引脚0(RX)连接到橘红色线,USB FTDI的引脚5(TX);
    板子上的引脚1(TX)连接到黄线,USB FTDI线缆的引脚4(RX);
    最后把地连接到黑线,FTDI线缆的引脚0(GND)

 


图1: 面包板搭建电路


图1展示了一个如何使用面包板连线到设备的案例。两个10K欧姆的电阻用于搭建上拉电路。它们一端连接到3.3V输出,另一端连接到SCL和SDA,这将信号传输到LCD。脉冲传感器与上拉电路(红色电缆)共用3.3V线,并使用A2引脚将模拟数据发送到电路板。棕色和橙色跳线的一端连接到引脚0和引脚1,另一端分别连接到USB FTDI卡的TX和RX。
 


图2:Proto Shield的后侧(左图)和前侧(右侧)


图2展示了Arduino Proto Shield rev. 3,电路原理和面包板类似,只是被焊接板代替了。Shield为电路提供了方便的5V和GND连接。7引脚连接器的引脚0和引脚1弯折后连接到3.3V和地引脚,而其它五个引脚进入模拟输入端口。

 


图3:硬件设置(左)和心率监测器内部示例(右)


图3展示了硬件内部植入一个案例之前和之后的设置。Proto Shield具有Arduino 101开发板完全相同的外形尺寸,因此你可以使用一些长的M3螺栓将它们固定在一起。这样硬件就设置好了,接下来开始进行软件搭建。

软件搭建
Zephyr编程环境需要设置,以用来构建和烧录应用程序。Arduino 101开发板带有一颗Nordic半导体的nRF51蓝牙低功耗控制器。Zephyr不支持此控制器上的Arduino 101出厂安装固件,因此需要将其新闪存按照Zephyr网站上的说明,将新固件烧录到板上。步骤如下:

获得应用资源代码:
$ git clone https://gerrit.zephyrproject.org/r/heartrate-monitor

构建并烧录ARC应用,代码如下:
    $ cd heartrate-monitor
    $ make pristine && make BOARD=arduino_101_sss_factory ARCH=arc
$ sudo -E dfu-util -a sensor_core -D output/zephyr.bin

构建并烧录X86应用,代码如下:
$ make pristine && make BOARD=arduino_101_factory ARCH=x86
$ sudo -E dfu-util -a x86_app -D output/zephyr.bin

连接智能设备
支持BLE的便携设备可以用于连接到Arduino 101开发板。这个示例已经被iPhone的默认健康APP和安卓设备的nRF 工具盒子测试过了。

   


图4:iOS健康APP(左)和nRF工具盒子APP(右)屏幕截图



在iPhone上,按照以下流程操作:
1.打开“设置>蓝牙”扫描并与Zephyr健康心率监测器配对;
2.启动健康APP;
3. “健康数>器官>心率”;
4.将手指放在脉冲传感器上;
5.过几秒,心率数据会出现在Grove LCD和健康APP的屏幕上;

安卓手机上,按照以下流程操作:
1.打开nRF工具盒子;
2.转到HRM,并启用蓝牙功能;
3.选择连接,并将手机与Zephyr健康心率监测器配对;
4.将手指放在脉搏传感器上;
5.几秒钟后,心率数据就会出现Grove LCD和应用程序屏幕。

 


图5:数据流传输



图5描述了实例中的数据流。应用程序在ARC处理器上运行,通过ADC接口从脉冲传感器采集数据。它分析数据并判断这个数据是否代表心率。当ARC APP监测到心跳时,它会在Grove LCD上显示心率,并且刷新LCD显示的节拍。同时,应用程序APP会通过IPM将心率数据发送到X86端。然后,X86应用程序接收心率数据并且通过IPC控制nRF51蓝牙芯片,使用BLE心率描述规范给已连接的设备通知更新数值。

怎么样?看完以上的几个步骤,作为开发者你还觉得设计心率监测器很难吗?有Zephyr操作系统和Arduino 101开发板就够了,同时Zephyr还提供很多传感器APP示例程序,Arduino 101开发板资源配置丰富,而且简单易用。你的心率监测器设计之路从这里开始吧!

 

手慢无!20W USB PD电源管理方案曝光
STM32微控制器HID与音频冲突问题解析
汽车充电新方案,不看你就OUT了!
下载MATLAB实用白皮书,囊括无线设计工作流程和性能
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
开源管理模式让Zephyr物联网操作系统更加灵活易用

物联网在不断向前演进,设备种类越来越多,设备数量爆发式增长,根据HS Markit和Bain & Company的最新数据,预计到2020年全球互联网设备将超过307亿个,而到2025年该数字将增长至754亿个。

Zephyr开源实时操作系统,为超小物联网设备而生

物联网时代不断向前推进,虽然还未出现爆发式增长,但很多人已经切身体会了联网设备给生活带来的便捷。目前物联网设备越来越小型化,这在尺寸和功耗方面都对硬件厂商提出了新的要求,于此同时超小设备受限于内存不足,原来的大型操作系统已难以应用,因此急需一套小巧、灵活的物联网操作系统帮助这些物联网设备实现快速运行。Linux 基金会为了解决这一难题,并

Zephyr:面向最小尺寸物联网设备的实时操作系统

随着市场上越来越多的RTOS 产品的推出,越来越多的开发者意识到需要一个专为小型物联网设备设计的可扩展实时操作系统,于是,Linux基金会发布了Zephyr 项目,一种针对资源有限的系统而打造的小型、可扩展、实时操作系统。

医疗器械中的灵活性设计

在医疗器械设计中,灵活性好的零部件能够降低成本、加速上市、减少装配时间以及简化供应链。如果有一个产品平台能够提供各种选件,那么医疗器械设计人员就能够快速地选择满足其应用要求的产品,而不必花费高昂的成本去定制。

现可从Mouser订购Honeywell’s Zephyr™ 空气流量传感器

提供业内最精确的空气流量读数

更多资讯
好机友︱一图看懂小米MAX/小米MAX2有啥区别,有一款产品却很尴尬

开场小米吉祥物米兔带来的一段劲爆霹雳舞,接着登场的是女子组合SNH48献唱。用董事长雷军的话说,小米参加了一期《奇葩说》节目之后,整个画风都变了。

iPhone 8要用3D扫描,指纹解锁要哭了

此前有关iPhone 8指纹识别的位置一直传闻会嵌入显示屏下面,但随后有传出由于尚未解决技术难题,而不得不改用后置指纹解锁设计,并且网络上还曝光了一组真机模型的谍照,显示在背面苹果Logo下方确实拥有圆形的指纹解锁模块,与此前泄露的疑似工厂SIP(标准检测程序)的图表完全一致。

还在发愁垃圾分类,看这个智能垃圾桶一键搞定

法国铁路公司在巴黎里昂火车站测试一款造价高达数万欧元的智能垃圾桶,名叫“B.A.R.Y.L”,这名字来源于美国一部小说改编成的电影“D.A.R.Y.L”。这个智能垃圾桶的外向就像一头海狮,当有人想扔垃圾时,只要与它打个招呼,他就会自动跑过来,接住乘客扔下的垃圾。

京东的智能冰箱,又诱人又有钱途

5月22日,京东联手18家冰箱企业发起成立“京东智能冰箱联盟”并推出京东自主品牌智能冰箱,强势渠道的加入,让智能冰箱距离走进寻常百姓家更近一步。

贾跃亭的中国好同学,不是雪中送碳就是趁火打劫

孙宏斌在乐视的话语权越来越重是真的,但踢开贾跃亭不太可能,现在把贾跃亭踢出局,无疑是搭上自己身家性命救他于水深火热。孙宏斌自己也承认,乐视目前正在遭受挤兑。

Moore8直播课堂
【工具篇】备战电赛:探秘Filter solution软件——滤波器好基友

【工具篇】备战电赛:探秘Filter solution软件——滤波器好基友

2017-05-26 20:00:00
本期直播,主讲备战电赛工具篇之探秘Filter solution软件 主讲内容:硬件滤波器设计的方法越来越趋于智能化,现在早已不是查表一步一步求解参数来设计滤波器的时代了,通过软件辅助设计滤波器
【第十二期】STM32快速开发笔记——直接存储器存取控制器之DMA

【第十二期】STM32快速开发笔记——直接存储器存取控制器之DMA

2017-05-27 20:30:00
以前,嵌入式MCU功能简单、种类较少,软件开发起来相对容易,而今天,MCU功能强大、种类繁多,软件中实现的功能也要比以前更多更复杂。该系列课程,针对基于ARM的STM32 MCU,将利用STM32cu
【技能篇】留学小鲜肉教你数据手册正确的打开方式

【技能篇】留学小鲜肉教你数据手册正确的打开方式

2017-06-01 20:00:00
电赛准备阶段重要一环——数据手册。想要了解一个芯片最核心有效的工作方式,唯有熟读其官方给出的数据手册。很多小伙伴在阅读英文版数据手册时常常遇到一些无法理解的语言或词汇,怎么办?百度、有道?但有时翻
【工具篇】PCB深坑不断!老铁带你电赛三步走之第1步

【工具篇】PCB深坑不断!老铁带你电赛三步走之第1步

2017-06-02 20:00:00
PCB设计称得上电赛中最重要的一环。不少同学设计之初没有精益求精导致项目进展缓慢,延误了比赛进度。相信众多网友在PCB设计中都遇到过各种坑,今天具有电赛丰富经验的大神考诉你PCB、原理图设计时必须
【工具篇】PCB深坑不断!老铁带你电赛三步走之第2步

【工具篇】PCB深坑不断!老铁带你电赛三步走之第2步

2017-06-04 20:00:00
PCB设计称得上电赛中最重要的一环。不少同学设计之初没有精益求精导致项目进展缓慢,延误了比赛进度。相信众多网友在PCB设计中都遇到过各种坑,今天具有电赛丰富经验的大神考诉你PCB、原理图设计时必须
微话题

首届“华为手机开放日”启动

你是如何看待余承东反思的? ……