手把手教你開發(fā)一款基于Zephyr操作系統(tǒng)的心率監(jiān)測(cè)器
“大健康”概念提出以后,作為醫(yī)院外補(bǔ)充醫(yī)療的可穿戴設(shè)備掀起一股發(fā)展熱潮,心率監(jiān)測(cè)儀作為一款常見的監(jiān)測(cè)設(shè)備很受歡迎。它不僅價(jià)格便宜,而且體積小攜帶方便,隨時(shí)隨地都能測(cè)試,并給用戶提供實(shí)時(shí)監(jiān)測(cè)結(jié)果,讓用戶及時(shí)了解健康狀況并采取合適的治療方式。那么對(duì)于開發(fā)者來(lái)說(shuō),如何快速開發(fā)一款心率監(jiān)測(cè)儀?今天,我們就手把手教你采用Zephy操作系統(tǒng)在Arduino 101開發(fā)板上搭建一款心率監(jiān)測(cè)儀。
先來(lái)了解一下心率檢測(cè)儀的組成部分,一般包括硬件部分和軟件部分。硬件部門主要完成的功能包括數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)顯示,軟件部分主要進(jìn)行數(shù)據(jù)轉(zhuǎn)換和分析。我們采用的Arduino 101開發(fā)板上有一個(gè)英特爾居里模塊,英特爾Quark SE處理器有兩個(gè)核:一個(gè)用于控制傳感器子系統(tǒng)的ARC內(nèi)核,一個(gè)用于控制藍(lán)牙低功耗芯片的X86內(nèi)核。Zephyr操作系統(tǒng)非常適用于資源受限的物聯(lián)網(wǎng)設(shè)備,從簡(jiǎn)單的嵌入式環(huán)境傳感器和LED可穿戴設(shè)備,到精密的智能手表和物聯(lián)網(wǎng)無(wú)線網(wǎng)關(guān)都能覆蓋。與其它實(shí)時(shí)操作系統(tǒng)相比,Zephyr操作系統(tǒng)支持豐富的I/O驅(qū)動(dòng),具有高可配置性,編譯時(shí)可進(jìn)行資源定義,這使得它非常適用于快速原型開發(fā);對(duì)于特殊應(yīng)用案例易于優(yōu)化。同時(shí),它不僅支持板上的所有傳感器接口,還能夠通過(guò)IPM機(jī)制實(shí)現(xiàn)雙核之間以及藍(lán)牙到其它設(shè)備之間進(jìn)行數(shù)據(jù)交換。因此在資源配置方面,Arduino 101開發(fā)板和Zephyr操作系統(tǒng)可以滿足心率監(jiān)測(cè)儀的設(shè)計(jì)需求。
我們將從以下幾點(diǎn)來(lái)展示心率監(jiān)測(cè)器的設(shè)計(jì)過(guò)程,包括:如何從脈沖傳感器讀取模擬數(shù)據(jù)并監(jiān)測(cè)心率?如何在Grove RGB LCD上現(xiàn)實(shí)心率和心跳?如何通過(guò)低功耗藍(lán)牙連接發(fā)送心率數(shù)據(jù)到智能手機(jī)?所有的源代碼主要基于Zephyr提供的樣例,通過(guò)這個(gè)設(shè)計(jì)用戶將會(huì)更加了解Zephyr操作系統(tǒng)的詳細(xì)使用方法。
硬件搭建
與其它Arduino開發(fā)板類似,必須用到USB type B連接線把應(yīng)用程序燒制到Arduino101開發(fā)板的系統(tǒng)閃存,它同時(shí)給開發(fā)板供電。FTDI USB TTL串行連接線在調(diào)試時(shí)從串行接口中抓取數(shù)據(jù)。Grove RGB LCD的工作電壓為5V,采用SCL和SDA線通過(guò)I2C總線與Arduino 101進(jìn)行通信。Arduino 101開發(fā)板在工作電壓為3.3V時(shí),沒(méi)有內(nèi)部上拉電路,我們需要?jiǎng)?chuàng)建一個(gè):
將3.3V引腳連接到兩個(gè)10K 歐姆的電阻上;
將SCL和SDA引腳連接到上拉電路上;
將SCL和SDA引腳將轉(zhuǎn)到Grove RGB LCD顯示屏的對(duì)應(yīng)引腳上;
把5V和地引腳分別從開發(fā)板上連接到顯示屏上的對(duì)應(yīng)引腳;
脈沖傳感器能夠在3.3V或5V電壓下工作,在Arduino 101開發(fā)板上我們采用3.3V。有三路線連接到傳感器,紅線連到3.3V,黑線接地,紫色線接到模擬輸入 A2,開發(fā)者能夠通過(guò)ADC-CHANNEL 在代碼種定義任何引腳,從A0到A5。注意: 手指上的汗水可能會(huì)導(dǎo)致短路,從而損壞傳感器,需采取適當(dāng)?shù)念A(yù)防措施,避免造成短路。
Arduino 101開發(fā)板采用數(shù)字引腳0和1發(fā)送和接收串行數(shù)據(jù),連接下面的引腳和線:
板子上的引腳0(RX)連接到橘紅色線,USB FTDI的引腳5(TX);
板子上的引腳1(TX)連接到黃線,USB FTDI線纜的引腳4(RX);
最后把地連接到黑線,F(xiàn)TDI線纜的引腳0(GND)
圖1: 面包板搭建電路
圖1展示了一個(gè)如何使用面包板連線到設(shè)備的案例。兩個(gè)10K歐姆的電阻用于搭建上拉電路。它們一端連接到3.3V輸出,另一端連接到SCL和SDA,這將信號(hào)傳輸?shù)絃CD。脈沖傳感器與上拉電路(紅色電纜)共用3.3V線,并使用A2引腳將模擬數(shù)據(jù)發(fā)送到電路板。棕色和橙色跳線的一端連接到引腳0和引腳1,另一端分別連接到USB FTDI卡的TX和RX。
圖2:Proto Shield的后側(cè)(左圖)和前側(cè)(右側(cè))
圖2展示了Arduino Proto Shield rev. 3,電路原理和面包板類似,只是被焊接板代替了。Shield為電路提供了方便的5V和GND連接。7引腳連接器的引腳0和引腳1彎折后連接到3.3V和地引腳,而其它五個(gè)引腳進(jìn)入模擬輸入端口。
圖3:硬件設(shè)置(左)和心率監(jiān)測(cè)器內(nèi)部示例(右)
圖3展示了硬件內(nèi)部植入一個(gè)案例之前和之后的設(shè)置。Proto Shield具有Arduino 101開發(fā)板完全相同的外形尺寸,因此你可以使用一些長(zhǎng)的M3螺栓將它們固定在一起。這樣硬件就設(shè)置好了,接下來(lái)開始進(jìn)行軟件搭建。
軟件搭建
Zephyr編程環(huán)境需要設(shè)置,以用來(lái)構(gòu)建和燒錄應(yīng)用程序。Arduino 101開發(fā)板帶有一顆Nordic半導(dǎo)體的nRF51藍(lán)牙低功耗控制器。Zephyr不支持此控制器上的Arduino 101出廠安裝固件,因此需要將其新閃存按照Z(yǔ)ephyr網(wǎng)站上的說(shuō)明,將新固件燒錄到板上。步驟如下:
獲得應(yīng)用資源代碼:
$ git clone https://gerrit.zephyrproject.org/r/heartrate-monitor
構(gòu)建并燒錄ARC應(yīng)用,代碼如下:
$ cd heartrate-monitor
$ make pristine && make BOARD=arduino_101_sss_factory ARCH=arc
$ sudo -E dfu-util -a sensor_core -D output/zephyr.bin
構(gòu)建并燒錄X86應(yīng)用,代碼如下:
$ make pristine && make BOARD=arduino_101_factory ARCH=x86
$ sudo -E dfu-util -a x86_app -D output/zephyr.bin
連接智能設(shè)備
支持BLE的便攜設(shè)備可以用于連接到Arduino 101開發(fā)板。這個(gè)示例已經(jīng)被iPhone的默認(rèn)健康A(chǔ)PP和安卓設(shè)備的nRF 工具盒子測(cè)試過(guò)了。
圖4:iOS健康A(chǔ)PP(左)和nRF工具盒子APP(右)屏幕截圖
在iPhone上,按照以下流程操作:
1.打開“設(shè)置>藍(lán)牙”掃描并與Zephyr健康心率監(jiān)測(cè)器配對(duì);
2.啟動(dòng)健康A(chǔ)PP;
3. “健康數(shù)>器官>心率”;
4.將手指放在脈沖傳感器上;
5.過(guò)幾秒,心率數(shù)據(jù)會(huì)出現(xiàn)在Grove LCD和健康A(chǔ)PP的屏幕上;
安卓手機(jī)上,按照以下流程操作:
1.打開nRF工具盒子;
2.轉(zhuǎn)到HRM,并啟用藍(lán)牙功能;
3.選擇連接,并將手機(jī)與Zephyr健康心率監(jiān)測(cè)器配對(duì);
4.將手指放在脈搏傳感器上;
5.幾秒鐘后,心率數(shù)據(jù)就會(huì)出現(xiàn)Grove LCD和應(yīng)用程序屏幕。
圖5:數(shù)據(jù)流傳輸
圖5描述了實(shí)例中的數(shù)據(jù)流。應(yīng)用程序在ARC處理器上運(yùn)行,通過(guò)ADC接口從脈沖傳感器采集數(shù)據(jù)。它分析數(shù)據(jù)并判斷這個(gè)數(shù)據(jù)是否代表心率。當(dāng)ARC APP監(jiān)測(cè)到心跳時(shí),它會(huì)在Grove LCD上顯示心率,并且刷新LCD顯示的節(jié)拍。同時(shí),應(yīng)用程序APP會(huì)通過(guò)IPM將心率數(shù)據(jù)發(fā)送到X86端。然后,X86應(yīng)用程序接收心率數(shù)據(jù)并且通過(guò)IPC控制nRF51藍(lán)牙芯片,使用BLE心率描述規(guī)范給已連接的設(shè)備通知更新數(shù)值。
怎么樣?看完以上的幾個(gè)步驟,作為開發(fā)者你還覺得設(shè)計(jì)心率監(jiān)測(cè)器很難嗎?有Zephyr操作系統(tǒng)和Arduino 101開發(fā)板就夠了,同時(shí)Zephyr還提供很多傳感器APP示例程序,Arduino 101開發(fā)板資源配置豐富,而且簡(jiǎn)單易用。你的心率監(jiān)測(cè)器設(shè)計(jì)之路從這里開始吧!
關(guān)于Zephyr項(xiàng)目
Zephyr 項(xiàng)目是一款小型且可擴(kuò)展的操作系統(tǒng),尤其適用于資源受限的系統(tǒng),可支持多種架構(gòu);該系統(tǒng)高度開源,對(duì)于開發(fā)人員社區(qū)完全開放,開發(fā)人員可根據(jù)需要對(duì)該系統(tǒng)進(jìn)行二次開發(fā),以支持最新硬件、工具和設(shè)備驅(qū)動(dòng)程序;該系統(tǒng)高度模塊化平臺(tái),可輕松集成任何架構(gòu)的第三方庫(kù)和嵌入式設(shè)備。
相關(guān)知識(shí)
手機(jī)也能測(cè)心率?教你簡(jiǎn)單操作
基于STM32的健康監(jiān)測(cè)系統(tǒng)
智能心臟健監(jiān)測(cè):基于人工智能的心率檢測(cè)系統(tǒng)
心率監(jiān)測(cè)器安卓手機(jī)版下載
團(tuán)隊(duì)心率智能監(jiān)測(cè)系統(tǒng)
十款可監(jiān)測(cè)心率的智能運(yùn)動(dòng)手表
基于云計(jì)算的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)的研究.doc
心率監(jiān)測(cè)器下載
蘋果手機(jī)找到測(cè)心率的具體操作教程
[T3372310M]基于stm32的健康監(jiān)測(cè)儀控制系統(tǒng)
網(wǎng)址: 手把手教你開發(fā)一款基于Zephyr操作系統(tǒng)的心率監(jiān)測(cè)器 http://m.gysdgmq.cn/newsview1248849.html
推薦資訊
- 1發(fā)朋友圈對(duì)老公徹底失望的心情 12775
- 2BMI體重指數(shù)計(jì)算公式是什么 11235
- 3補(bǔ)腎吃什么 補(bǔ)腎最佳食物推薦 11199
- 4性生活姿勢(shì)有哪些 盤點(diǎn)夫妻性 10428
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎(chǔ)代謝率(BMR)計(jì)算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7828
