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