從歷史上看,可穿戴設(shè)計(jì)很難進(jìn)行原型設(shè)計(jì)。核心問題是規(guī)模問題。大多數(shù)現(xiàn)成的開發(fā)板和系統(tǒng)都是針對尺寸和重量并不重要的臺式環(huán)境而設(shè)計(jì)的。
較大的電路板尺寸使制造商可以使用相對簡單的PCB生產(chǎn)線輕松提供低成本的開發(fā)支持。相對大量的電路板空間也支持傳統(tǒng)的插頭連接器以進(jìn)行擴(kuò)展。這些插頭連接器上的大引腳尺寸和間距使得易于使用一次性面包板和極低成本的原型制作服務(wù)作為自定義I / O擴(kuò)展。
雖然可以使用可以執(zhí)行可穿戴設(shè)備功能的面向臺式開發(fā)系統(tǒng)來構(gòu)建功能強(qiáng)大的系統(tǒng),但是對于試用用戶和早期采用者可以使用的系統(tǒng)的需求而言卻失敗了,就好像它是真正的產(chǎn)品一樣。當(dāng)涉及到可用性和其他重要的劇院內(nèi)測試和實(shí)驗(yàn)時(shí),不舒服和沉重的健身可穿戴設(shè)備將無法實(shí)現(xiàn)。我們需要的是一個(gè)平臺,它提供了傳統(tǒng)開發(fā)板的大多數(shù)(如果不是全部)靈活性,但其形狀因素對于可穿戴設(shè)備設(shè)計(jì)是有意義的。
MikroElektronika的 Hexiwear 等平臺提供了一種在真實(shí)的用戶環(huán)境中構(gòu)建應(yīng)用程序并對其進(jìn)行測試的方法。Hexiwear平臺的核心是以開放式開發(fā)環(huán)境支持的可穿戴形式提供集成的MCU和外圍設(shè)備解決方案。更重要的是,它采用緊湊型六邊形模塊的外形封裝,可輕松連接到腕帶,用作支持物聯(lián)網(wǎng)的智能手表?;蛘撸梢园惭b在吊墜環(huán)中,用作胸針或整合到衣物中。
外形尺寸也適用于更廣泛的智能家居環(huán)境,可以將其作為可拆卸元件部署在壁掛式模塊或更大的機(jī)械系統(tǒng)中。以Hexiwear為基礎(chǔ)的智能家居項(xiàng)目包括智能浴室秤,可將測量的重量傳輸至用戶的智能手機(jī),門鈴能夠遠(yuǎn)程向房主報(bào)告活動并向訪客顯示自定義信息,以及智能冰箱磁鐵能夠在Hexiwear的展示中向用戶報(bào)告內(nèi)部溫度。
Hexiwear平臺基于Kinetis K64F MCU,采用ARM?Cortex?-M4內(nèi)核,運(yùn)行頻率高達(dá)120 MHz,支持多種外設(shè),包括ADC,DAC,定時(shí)器和串行接口(圖1)。
可穿戴設(shè)備包括藍(lán)牙低功耗(BLE)SoC和8個(gè)針對健康和其他典型物聯(lián)網(wǎng)應(yīng)用而優(yōu)化的傳感器,例如六軸加速度計(jì)和磁力計(jì),三軸陀螺儀,壓力傳感器,溫度和濕度傳感器以及光學(xué)心臟速率傳感器。它還包括一個(gè)1.1英寸的OLED彩色顯示屏。
大多數(shù)板載外設(shè)使用I 2 C總線進(jìn)行通信??梢酝ㄟ^MikroBus擴(kuò)展,安排為兩個(gè)平行的八位頭連接器。這允許連接MikroElektronika的Click板以及自定義擴(kuò)展模塊和其他供應(yīng)商的模塊。MikroBus連接器引腳間距設(shè)計(jì)為與標(biāo)準(zhǔn)100密耳間距面包板兼容,可在自定義I / O模塊上輕松進(jìn)行初始原型設(shè)計(jì)。
MikroBus可以訪問多個(gè)串行I / O總線,并提供模擬,PWM和中斷引腳。除I 2 C外,還可通過SPI和UART接口進(jìn)行連接。已經(jīng)可用的Click模塊包括GPS接收器,RFID閱讀器,GSM收發(fā)器,甚至是基于線圈天線的閃電傳感器。
Hexiwear上的運(yùn)動傳感器系列使平臺能夠進(jìn)入可穿戴設(shè)備和家庭之外的應(yīng)用。加速度計(jì),陀螺儀,磁力計(jì)和壓力傳感器的組合使得可以創(chuàng)建具有十個(gè)自由度的慣性測量單元,用于無GPS的航空導(dǎo)航。一位用戶已應(yīng)用此功能為航拍無人機(jī)和四軸飛行器創(chuàng)建機(jī)載飛行監(jiān)控系統(tǒng)。Hexiwear小巧輕便,無人駕駛。該應(yīng)用程序通過提供有關(guān)無人機(jī)位置和航向的準(zhǔn)確反饋,支持在能見度較差的情況下飛行。當(dāng)與傳感器融合技術(shù)一起使用時(shí),不同的運(yùn)動傳感器有助于補(bǔ)償其他運(yùn)動傳感器。壓力傳感器有助于改善高度的準(zhǔn)確報(bào)告。
諸如Hexiwear中使用的NXP FXOS8700CQ之類的加速度計(jì)基于MEMS結(jié)構(gòu)。單維加速度計(jì)使用附接到電極的柔性懸臂,其保持能夠相對于第二電極移動的質(zhì)量塊。整體結(jié)構(gòu)充當(dāng)電容器。隨著質(zhì)量移動,電容板之間的距離改變,導(dǎo)致電容的變化。通過跟蹤這些電容變化,傳感器接口可以檢測沿懸臂運(yùn)動方向的加速度變化。三個(gè)正交安裝,提供三軸檢測。
加速度計(jì)的移動重量振蕩的趨勢導(dǎo)致電容的短期變化和對振動的敏感性。另一方面,陀螺儀基于振動的微機(jī)械臂,當(dāng)設(shè)備旋轉(zhuǎn)時(shí),該機(jī)械臂記錄增大的振幅。像一個(gè)依賴于旋轉(zhuǎn)元件的更大的陀螺儀,測量對短期沖擊和外部振動相對不敏感。然而,陀螺儀易于漂移并且對溫度變化更敏感。
陀螺儀和加速度計(jì)的讀數(shù)以及FXOS8700CQ中的磁力計(jì)的組合提供了消除大部分運(yùn)動噪聲源的能力。在相對簡單的傳感器融合應(yīng)用中,互補(bǔ)的一對濾波器(圖2)可以消除每種傳感器類型的大部分噪聲。例如,采用角度數(shù)據(jù)計(jì)算傾斜角度,低通濾波器有助于消除轉(zhuǎn)換為角度坐標(biāo)的加速度計(jì)讀數(shù)的短期誤差,高通濾波器消除陀螺儀的長期漂移和溫度波動。與磁力計(jì)讀數(shù)的比較可以提供方向的確認(rèn)。
這些傳感器可以應(yīng)用和組合,用于使用Hexiwear開發(fā)的可穿戴應(yīng)用。一個(gè)例子是老年人的跌倒監(jiān)視器。另一款是個(gè)人心臟監(jiān)護(hù)儀,適合那些希望改善健康狀況的人。這兩種應(yīng)用都證明了傳感器融合的有效性,以及多種傳感器類型產(chǎn)生可靠輸出的能力。
如果我們將上述無人機(jī)中使用的傳感器融合技術(shù)應(yīng)用于跌落探測器,則可以構(gòu)建一種傳感器,由于加速度計(jì)輸入端出現(xiàn)短期噪聲,因此不太可能容易引起誤報(bào)警。如果佩戴在皮帶或手腕上,陀螺儀將在跌倒期間檢測到身體或手臂的旋轉(zhuǎn),并且加速計(jì)將記錄突然增加,然后突然停止并且一段時(shí)間的小動作??偠灾?,軟件可以識別跌倒的模式。許多研究論文已經(jīng)研究了跌落的典型運(yùn)動曲線,可用于在跌倒探測器應(yīng)用中獲得適當(dāng)?shù)拈撝怠;趶牡箿y試中捕獲的運(yùn)動數(shù)據(jù)的機(jī)器學(xué)習(xí)技術(shù)已被證明有助于開發(fā)更強(qiáng)大的檢測技術(shù)。
從重大充血性心臟事件中恢復(fù)的人可以以類似的方式使用部署在Hexiwear中的傳感器。在這種情況下,輸入將包括來自Maxim MAX30101心率傳感器的信號。輕度運(yùn)動對于從充血性心力衰竭中恢復(fù)非常重要,但是不要過度運(yùn)動同樣重要。通過跟蹤運(yùn)動結(jié)合心率,可穿戴應(yīng)用可以幫助確定患者是否滿足他或她的運(yùn)動目標(biāo)并且不會過度壓力。針對運(yùn)動數(shù)據(jù)的心率異常讀數(shù)可用于觸發(fā)由主機(jī)智能手機(jī)向健康專業(yè)人員中繼的警報(bào)??梢灶愃频乩眯穆蕯?shù)據(jù)來增強(qiáng)跌倒檢測器,以幫助確定事件之后佩戴者的狀態(tài)。
在使用Hexiwear構(gòu)建可穿戴設(shè)備或其他傳感器驅(qū)動用途的應(yīng)用程序時(shí),硬件I / O,處理器和傳感器只是等式的一部分。為了簡化應(yīng)用程序的創(chuàng)建,該平臺由完整的開源工具鏈和庫提供支持,這些工具鏈和庫可通過GitHub在線存儲庫和ARM的mbed代碼庫等獲得。這些庫包括用于云連接的模塊,提供對諸如WolkSense等服務(wù)的訪問。
Hexiwear開發(fā)套件的核心是恩智浦Kinetis軟件開發(fā)套件(SDK)。這是一個(gè)基于Eclipse和GNU代碼庫的工具鏈。IDE基于Eclipse,GNU編譯器集合(GCC)和GNU調(diào)試器(GDB)支持Eclipse。下載并安裝Kinetis工具后,用戶可以從GitHub Hexiwear存儲庫添加模塊。另一個(gè)開發(fā)環(huán)境是Zerynth,它為熟悉Python的程序員提供了一種開始為模塊開發(fā)的方法。
GitHub下載包括示例引導(dǎo)加載程序和項(xiàng)目文件,可用作目標(biāo)應(yīng)用程序的模板。通常,通過Hexiwear擴(kuò)展塢(圖3)啟用下載和硬件支持,通過USB從mbed下載的驅(qū)動程序處理通過USB進(jìn)行通信。
GitHub提供的示例代碼模塊通常使用簡單的循環(huán)main()結(jié)構(gòu)。應(yīng)用程序繼續(xù)執(zhí)行main()函數(shù)中的每個(gè)語句,然后循環(huán)回到開頭。防止電池供電平臺過度活動的常用策略是在main()循環(huán)的末尾插入wait(x)函數(shù)。即使有這么簡單的結(jié)構(gòu),健康監(jiān)測可穿戴應(yīng)用的核心就在那里。但是,Hexiwear GitHub存儲庫上的許多模塊支持的操作系統(tǒng)(如mbed OS或FreeRTOS)提供了更靈活的選項(xiàng),能夠?qū)嵗鄠€(gè)協(xié)作線程,這些線程可以由來自各種外圍設(shè)備的硬件中斷觸發(fā)。
物聯(lián)網(wǎng)可穿戴設(shè)備的典型應(yīng)用是活動監(jiān)視器,它通過BLE定期向智能手機(jī)或平板電腦報(bào)告狀態(tài)。在一個(gè)簡單的main()結(jié)構(gòu)中,組織應(yīng)用程序的最簡單方法是在每次傳遞中輪詢感興趣的傳感器,過濾數(shù)據(jù)然后緩沖已處理的值。盡管在每次通過時(shí)通過BLE進(jìn)行數(shù)據(jù)通信是可行的,但這可能會快速耗盡電池并且在很大程度上是不必要的。一種方法是實(shí)現(xiàn)全局計(jì)數(shù)器變量并在每次傳遞時(shí)緩沖隊(duì)列中的數(shù)據(jù),直到達(dá)到計(jì)數(shù)器閾值。一個(gè)簡單的if-then語句可以確定是否觸發(fā)了BLE訪問函數(shù)。這將從緩沖區(qū)收集數(shù)據(jù),重新建立與智能手機(jī)的連接并發(fā)送數(shù)據(jù)。
可以通過Hexi_KW40Z.h頭文件中定義的C ++類訪問BLE模塊。這提供了許多通過BLE發(fā)送和接收數(shù)據(jù)的功能。此類的默認(rèn)版本包括為傳輸運(yùn)行狀況數(shù)據(jù)以及天氣和運(yùn)動傳感器數(shù)據(jù)而設(shè)置的數(shù)據(jù)包定義。
在由mbed等操作系統(tǒng)調(diào)解的多線程實(shí)現(xiàn)中,應(yīng)用程序可以分為多個(gè)線程。在健康監(jiān)視器中,典型的結(jié)構(gòu)是將一個(gè)或多個(gè)傳感器記錄線程饋送到處理和過濾線程中。然后一個(gè)單獨(dú)的線程負(fù)責(zé)BLE通信。一種策略是使用通過回調(diào)函數(shù)(例如lptmr_Callback())訪問的計(jì)時(shí)器中斷來定期喚醒線程。BLE通信線程的周期通常比傳感器記錄線程的周期長。這些線程可以緩沖其數(shù)據(jù),以便過濾線程僅與BLE通信線程一樣頻繁地運(yùn)行。
但是,在監(jiān)視器需要響應(yīng)異常數(shù)據(jù)而發(fā)出警報(bào)的情況下,盡可能快地過濾和處理數(shù)據(jù)可能很重要。在這種情況下,響應(yīng)于由處理線程識別的觸發(fā)條件,可能需要單獨(dú)的BLE線程來發(fā)出警報(bào)消息。或者,可以設(shè)置BLE線程在喚醒以發(fā)送警報(bào)和數(shù)據(jù)時(shí)使用的標(biāo)志。選擇取決于智能手機(jī)應(yīng)用程序需要響應(yīng)的速度。在許多情況下,BLE定時(shí)器間隔將足夠短以支持后一種架構(gòu)。
結(jié)論
通過使用額外的Click模塊,可以容易地?cái)U(kuò)展功能以支持例如可能與佩戴者相關(guān)的濕度和其他環(huán)境因素的檢測。因此,Hexiwear平臺為各種物聯(lián)網(wǎng)應(yīng)用提供靈活且易于使用的支持。不僅適用于可穿戴設(shè)備,也適用于其他類型的面向傳感器的設(shè)備。
評論
查看更多