基于伽利略的心跳采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 介紹
本文介紹了心率檢測(cè)系統(tǒng)。本系統(tǒng)包括硬件模塊和軟件模塊。硬件模塊負(fù)責(zé)了心跳信息的收集、處理和發(fā)送;軟件模塊即為運(yùn)行于Android平臺(tái)上的客戶端,用以接收硬件模塊發(fā)送數(shù)據(jù),并記錄和顯示,它的另一項(xiàng)重要功能就是判斷使用者是否在做有氧運(yùn)動(dòng)。軟硬件系統(tǒng)利用藍(lán)牙相互通信。
整套系統(tǒng)可以在兩種運(yùn)行模式下工作:全功能模式和低功耗模式。這兩個(gè)模式的切換可以在客戶端上控制。在全功能模式下,系統(tǒng)把收集到的心跳數(shù)據(jù)加以分析,得出心率信息,然后把心率信息和心跳波形數(shù)據(jù)通過(guò)藍(lán)牙發(fā)送給客戶端,客戶端接收到這些數(shù)據(jù)后一方面把心率信息顯示出來(lái),另一方面把心跳波形顯示在客戶端的界面上;在低功耗模式下,系統(tǒng)停止心跳數(shù)據(jù)的傳送,在客戶端上不需要處理心跳波形數(shù)據(jù),從而使得系統(tǒng)的數(shù)據(jù)傳輸量降低,也減輕了系統(tǒng)的運(yùn)算負(fù)擔(dān),這樣系統(tǒng)達(dá)到我們需求的同時(shí),可以更加省電。
2 系統(tǒng)構(gòu)建
圖1是我們的整個(gè)系統(tǒng),圖4為伽利略開發(fā)板,圖2的模塊是pulse sensor 心率傳感器,圖5是藍(lán)牙模塊HC-06,圖1試運(yùn)行在英特爾架構(gòu)的安卓平臺(tái)上的客戶端。pulse sensor通過(guò)收集人的心跳波形,然后傳給伽利略開發(fā)板進(jìn)行處理,提取出心跳波形中包含的心率信息,通過(guò)藍(lán)牙模塊發(fā)送給安裝有我們客戶端的智能手機(jī)。客戶端名字為:Hsport(healthy sport),它接收硬件平臺(tái)發(fā)送的數(shù)據(jù),然后把心跳波形顯示于界面上得到一個(gè)區(qū)域內(nèi),把心率信息也顯示出來(lái),另外客戶端還通過(guò)分析傳過(guò)來(lái)的心率信息,判斷用戶是否在做有氧運(yùn)動(dòng),并給用戶相應(yīng)的提醒。
3 原理分析
3.1 硬件模塊
3.1.1 件需求
(1)pulse sensor
pulse sensor 是利用光容積法獲取人體的心跳信息的,主要是在人體的指尖或者耳垂上檢測(cè),這個(gè)是光容積法的一個(gè)局限之一,但是它精確快速和人體沒(méi)有直接的接觸。pulse sensor是一款開源硬件,原本是利用在Arduino開源平臺(tái)上的,如果和Arduino配套使用,官方會(huì)提供可以直接利用的源代碼、運(yùn)行于多種平臺(tái)上的客戶端(Windows,Linux, Mac)。pulse sensor 只有一根信號(hào)線,從信號(hào)線以模擬信號(hào)的形式傳出采集到的心跳波形。
3.1.2 Intel Galileo
Intel Galileo是Intel專為移動(dòng)電子開發(fā)提供給的開發(fā)板,在硬件接口上兼容Arduino。Galileo搭載Quark SoC X1000處理器, Quark 系列的處理器強(qiáng)大,微型并且低功耗、可用于互聯(lián)網(wǎng)和可穿戴設(shè)備等未來(lái)廣闊的電子領(lǐng)域中,它功能非常強(qiáng)大是32位單核單線程的奔騰結(jié)構(gòu)的處理器,最高速度為400Mhz。
3.1.3 藍(lán)牙模塊HC-06
我們選擇的是HC-06藍(lán)牙從機(jī)模塊,支持藍(lán)牙2.0協(xié)議。藍(lán)牙模塊可以和任何擁有藍(lán)牙功能的設(shè)備連接通信。我們用它來(lái)和運(yùn)行客戶端的手機(jī)進(jìn)行通信。
3.2 硬件運(yùn)行機(jī)制
利用上述的三大模塊,我們可以構(gòu)建出如圖6的硬件系統(tǒng)。
pulse sensor 采集心率信息 送入Galileo平臺(tái)上,然后Galileo平臺(tái)對(duì)心跳波形進(jìn)行處理,通過(guò)藍(lán)牙模塊給客戶端。藍(lán)牙模塊通過(guò)UART串口控制。Galileo處理的關(guān)鍵點(diǎn)就是計(jì)算兩個(gè)相鄰的心跳脈沖之間的間隔時(shí)間,利用這個(gè)間隔時(shí)間來(lái)計(jì)算每分鐘的心跳次數(shù)(心率),我們利用MATLAB輔助工具來(lái)模擬和驗(yàn)證我們的算法。具體如圖7所示。
首先對(duì)pulse sensor傳進(jìn)來(lái)的信號(hào)進(jìn)行采樣上圖綠色波形即為經(jīng)過(guò)采樣的心跳信號(hào),然后通過(guò)和一個(gè)閾值比較,如果心跳強(qiáng)度值超過(guò)閾值,則強(qiáng)行置1,否則置0,所以綠色波形轉(zhuǎn)變?yōu)樗{(lán)色的矩形波,我們?cè)賹?duì)矩形波的上升沿探測(cè),標(biāo)記處上升沿的時(shí)間,圖8中為紅點(diǎn)標(biāo)出上升沿,通過(guò)計(jì)算紅色點(diǎn)之間的時(shí)間間隔,就可以計(jì)算出心率了,實(shí)際上我們可以利用心跳波形的最大點(diǎn)進(jìn)行時(shí)間標(biāo)記的,但是兩者的結(jié)果都是一樣的。
4 軟件模塊
客戶端為Android平臺(tái)上的應(yīng)用程序,可以運(yùn)行于x86架構(gòu)的Android平臺(tái),也可以運(yùn)行于基于ARM的Android平臺(tái)。前面提到過(guò),客戶端的功能是接收硬件平臺(tái)的數(shù)據(jù),經(jīng)過(guò)處理后表現(xiàn)在界面上,并且從用戶的心率信息判斷用戶是否在做有氧運(yùn)動(dòng),給相應(yīng)的提醒。
4.1 界面設(shè)計(jì)
客戶端分為:注冊(cè)界面、系統(tǒng)介紹界面、登陸界面,主界面、藍(lán)牙設(shè)備選擇界面和設(shè)置界面。
主界面有連接按鈕,波形顯示區(qū)(灰色部分)、心率區(qū)(青色部分)、有氧運(yùn)動(dòng)提示區(qū)(粉紅色部分)。
設(shè)置界面通過(guò)設(shè)置是否顯示波形控制系統(tǒng)的工作模式(全功能或者低功耗模式),并可以調(diào)整年齡,記錄有氧運(yùn)功時(shí)間,設(shè)置波形密度等。
4.2 運(yùn)行機(jī)制
在界面介紹中的圖9為運(yùn)行于全功能模式下的情形,它也表現(xiàn)了用于并未處于有氧運(yùn)動(dòng)。圖8為低功耗模式下,波形停止顯示,也表現(xiàn)了用戶在有氧運(yùn)動(dòng),底部的一片區(qū)域變?yōu)榫G色,手機(jī)周期性發(fā)出聲音并震動(dòng)。這個(gè)數(shù)據(jù)之所以是71,是因?yàn)槲覀冊(cè)谠O(shè)置界面吧年齡設(shè)置得比較高,因此心率很低時(shí)就被判定為出于有氧運(yùn)動(dòng)。
有氧運(yùn)動(dòng)判別法:進(jìn)行體育運(yùn)動(dòng)時(shí),當(dāng)心率達(dá)到最大心率的50%-90%,就可認(rèn)定是在進(jìn)行有氧運(yùn)動(dòng) 。最大心率=220-年齡。