聶旭輝,孫宗禹,韓明軒,段曉輝
(北京大學 無線通信與信號處理研究中心,北京100871)
?
基于mbed的無線體重計快速設計*
聶旭輝,孫宗禹,韓明軒,段曉輝
(北京大學 無線通信與信號處理研究中心,北京100871)
基于ARM公司的ARM mbed IoT云端軟件平臺和意法半導體推出的Nucleo開發(fā)套件,將HX711采集到的壓感數(shù)據(jù)進行采集和處理,得到體重數(shù)據(jù)后,通過藍牙BLE的GATT協(xié)議將相應數(shù)據(jù)進行傳輸,在安卓智能設備端編寫支持藍牙BLE的APP,接收并顯示體重數(shù)據(jù),這種無線藍牙體重計原型的快速開發(fā)和驗證顯示了mbed平臺易于開發(fā)和高效便捷的特性。
mbed;Nucleo;體重計;BLE;快速開發(fā)
隨著經(jīng)濟的發(fā)展和生活水平的不斷提高,加上不良的飲食習慣的積累,造成了肥胖人群的比例逐年上升,為此體重越來越被人們重視。具有無線功能的智能體重計使得體重的測量和管理變得更加簡單和智能,獲得了市場的青睞和認可。
無線體重計的實現(xiàn)方式有很多,連接方式主要是藍牙和Wi-Fi,例如小米體重計采用藍牙,F(xiàn)ibit Aria則采用Wi-Fi。測量方式均為橋式電路測量壓力[1],有些體重計會再基于身高給出BMI值,也有基于生物電阻抗的方式進行體脂等人體健康參數(shù)測量[2]。市場上已經(jīng)有專門用于身體成分測量的模擬前端[3],用于多功能體重計的快速開發(fā)。通過無線的方式將相關數(shù)據(jù)進行分析和存儲,以達到對體重以及相關數(shù)據(jù)的記錄和管理的目的。
本文介紹了一個包含體重傳感器和藍牙通信的無線體重計的快速原型開發(fā)方式,其可以實現(xiàn)體重的測量以及數(shù)據(jù)的傳輸和展示。
目前ARM公司推出的基于ARM架構(gòu)的快速開發(fā)工具mbed在中國得到快速發(fā)展,其軟件和大部分硬件設計都是以開源的方式提供給開發(fā)者。ARM架構(gòu)的微控制器已經(jīng)具有廣泛的應用基礎,這使得mbed一推出就吸引了開發(fā)者的大量關注。隨著各個廠商對mbed的支持力度加大,基于mbed的開發(fā)平臺、擴展模塊和開發(fā)包也得到了很大的擴展和豐富[4]。
意法半導體(ST)加入mbed陣營后推出了支持mbed的硬件開發(fā)平臺Nucleo,其涵蓋了STM32的F0、F1、F3、F4、L1和L4系列微處理器;同時推出了一系列擴展板,包括藍牙BLE、Wi-Fi、傳感器和NFC等模塊。對于有STM32微控制器開發(fā)經(jīng)驗的人來說,可以很容易地進行基于Nucleo開發(fā)板的開發(fā)?;趍bed和Nucleo,我們可以實現(xiàn)無線體重計的原型快速開發(fā)。
該系統(tǒng)的構(gòu)架主要分為采集模塊、處理模塊、傳輸模塊和顯示模塊。采集模塊是基于半橋壓力傳感器組成全橋電路,其所受的壓力不同導致阻值變化,通過測量電壓差而計算重量。采集模塊采用24海芯科技公司位A/D芯片HX711,該芯片集成度高、接口簡單、成本低,具有很高的性價比和可靠性。處理模塊采用NUCLEO-F401RE主控板,對數(shù)據(jù)進行計算和處理,傳輸模塊采用X-Nucleo-IDB04A1藍牙BLE模塊,將數(shù)據(jù)傳輸?shù)街悄芙K端,通過智能終端實現(xiàn)數(shù)據(jù)的顯示。整個系統(tǒng)的設計方案如圖1所示。
圖2 輸入通道和增益選擇的數(shù)據(jù)輸出時序圖
圖1 無線體重計系統(tǒng)設計方案
系統(tǒng)的硬件設計主要由傳感器橋式電路和HX711高精度A/D芯片、支持mbed的Nucleo主控開發(fā)板、擴展藍牙模塊以及安卓智能手機組成。將橋式電路產(chǎn)生的電壓變化通過高精度模數(shù)轉(zhuǎn)換芯片轉(zhuǎn)換為數(shù)字信號,主控模塊采集數(shù)據(jù)并進行處理,最后通過藍牙BLE將數(shù)據(jù)傳輸?shù)桨沧渴謾C端進行顯示。
2.1傳感器橋式電路和HX711A/D芯片
傳感器采用高精度G型傳感器,將4個串聯(lián)在一起,形成橋式電路,有效量程為150 kg。通過測量橋兩端的壓差,可以計算體重數(shù)據(jù)。
HX711是海芯科技公司研發(fā)的一款24位A/D轉(zhuǎn)換器芯片,該芯片集成了時鐘振蕩器、電源等。HX711芯片專為平衡器應用開發(fā),具有響應快、抗干擾能力強的特點,降低了電子秤的整機成本,提高了整機的性能和可靠性。HX711的核心為24位ADC,A通道增益為64 dB或者128 dB,B通道增益固定為32 dB,在實際使用中,使用A通道,增益為128 dB。
HX711與主控板的通信接口為兩根線,一根為數(shù)據(jù)線,另一根為時鐘線,通過兩根線實現(xiàn)對HX711的設置和數(shù)據(jù)的讀取,其時序圖如圖2所示。
2.2Nucleo主控開發(fā)板
主控開發(fā)板選用Nucleo-F401RE,基于32位的高性能ARM Cortex-M4處理器,帶FPU單元,最高能支持84 MHz主頻,配備ST Morpho和Arduino-兼容排針,支持mbed,具有很高的擴展性,以利于靈活的產(chǎn)品開發(fā)。其與HX711的連接也很簡單,我們將3.3 V、GND與HX711的電源和地相連,D8(PAG)與HX711的PD_SCK相連,D9(PC7)與HX711的DOUT相連,實現(xiàn)了對HX711的供電和數(shù)據(jù)采集。
X-Nucleo-IDB04A1藍牙BLE擴展板采用ST 公司 Cortex-M0 內(nèi)核的低功耗無線網(wǎng)絡處理器BlueNRG,運算性能和功耗控制很出色。該處理器的功耗在+0 dBm時為8.2 mA (TX),睡眠模式下的功耗低至1.7 μA。模塊通過SPI接口與外部控制器通信,ST公司提供基于STM32Cube開發(fā)的擴展軟件包X-CUBE-BLE1,里面含有豐富的藍牙開發(fā)資源和示例程序,同時實現(xiàn)了mbed的支持,使得藍牙BLE的開發(fā)變得簡單迅速。
X-Nucleo-IDB04A1整體系統(tǒng)架構(gòu)如圖3所示。
圖3 X-Nucleo-IDB04A1整體系統(tǒng)架構(gòu)[5]
3.1下位機軟件設計
基于mbed的快速開發(fā)的主要工作是進行數(shù)據(jù)的采集、處理和傳輸,而mbed SDK提供了一個面向微控制器硬件的抽象層,從而使用戶在開發(fā)具體應用時無需了解具體的硬件結(jié)構(gòu),其具體結(jié)構(gòu)如圖4所示[6],從而加快了原型驗證開發(fā)的進度。
圖4 mbed SDK的具體結(jié)構(gòu)圖
圖5 下位機的軟件流程圖
我們先在0 kg的情況下記錄電壓值,以此作為校正參數(shù)。程序的流程圖如圖5所示。
體重計校正部分,在開機的時候進行數(shù)據(jù)的采集,采用10 Hz的采集頻率采集5 s,將這些數(shù)據(jù)取平均,認為是0 kg時的基值。
數(shù)據(jù)處理部分,同樣以10 Hz的采集頻率采集1 s,將10個數(shù)據(jù)取平均,與基值相減,得到壓差,轉(zhuǎn)換為體重即得到結(jié)果。
3.2移動終端軟件設計
智能移動終端軟件為安卓系統(tǒng)下的APP,包含自動搜索設備、建立藍牙連接、實時數(shù)據(jù)顯示等功能,主要完成對體重數(shù)據(jù)的實時監(jiān)控。系統(tǒng)通過藍牙4.0通信,實現(xiàn)低功耗和長距離傳輸,每秒刷新一次實時體重數(shù)據(jù);具備藍牙自動配對功能,無需用戶輸入配對碼。
系統(tǒng)使用藍牙4.0的GATT協(xié)議,其中規(guī)定service選擇為Weight Scale,characterister選擇為Weight,從而獲得與藍牙4.0標準協(xié)議兼容的通信協(xié)議,從而保證了設備的兼容性。
安卓APP設計分為UI設計和后臺邏輯,UI采用GridLayout布局,自適應性良好,后臺共1個進程,實現(xiàn)藍牙通信和界面刷新,運行該APP需要用戶開啟藍牙權(quán)限。移動終端軟件流程圖如圖6所示。支持GATT協(xié)議的APP界面如圖7所示。
在開發(fā)過程中,主要是做歸零校正和體重數(shù)據(jù)計算。負載為0 kg時,從HX711采集到的50個原始數(shù)據(jù)在8 256 228和82 560 11之間浮動,平均值為8 256 114,以此作為基準點。校正數(shù)據(jù)如圖8所示。
圖6 移動終端軟件流程圖
圖7 支持GATT協(xié)議的APP界面
圖8 校正數(shù)據(jù)顯示
在實際測試的時候,基于校正數(shù)據(jù)原始體重以及壓差的線性關系,可以得到體重數(shù)據(jù),通過多次測量取平均值的方法,可以得到一個精度較高的體重數(shù)據(jù)。測量場景如圖9所示,采集到的體重數(shù)據(jù)可以在手機端同步顯示。
圖9 原型連接與測試實物圖
在對比測試中,將原來的商用體重計、小米體重計和快速開發(fā)的原型體重計三者進行對比,得到的測試結(jié)果如表1所列。
表1 測試結(jié)果對比
可以看到,自己做的原型體重計可以較為準確地得到體重數(shù)據(jù),與用同樣傳感器的商用體重計相比,在實際測試中,結(jié)果更加接近小米體重計,且誤差保持在很小范圍里,測量得到的數(shù)據(jù)較為準確,具有很強的實用性。
本文實現(xiàn)了無線體重計原型的快速開發(fā),使用拆自商用體重計的傳感器與HX711連接進行數(shù)據(jù)的采集,用Nucleo主控板和藍牙BLE擴展板將體重數(shù)據(jù)處理后通過藍牙GATT協(xié)議發(fā)出,最后在安卓智能手機上顯示。整個開發(fā)過程由于得到了mbed和Nucleo的支持,變得非常快速高效,從電路搭建到原型實現(xiàn)只花了幾天的時間。
[1] 李嘉旺.基于安卓系統(tǒng)的嬰兒體重計研制[D].上海:華東理工大學,2014.
[2] 祁朋祥.基于生物電阻抗的人體成分測試與研究[D].合肥:中國科學技術(shù)大學,2009.
[3] 韓霜.德州儀器推出首款體重計及體成分測量模擬前端[J].世界電子元器件,2012(9).
[4] 托爾森, 威爾姆斯特.ARM快速嵌入式系統(tǒng)原型設計:基于開源硬件mbed[M].1版.韓德強, 魯鵬程,譯.北京:機械工業(yè)出版社,2014.
[5] ST.Bluetooth Low Energy software expansion for STM32Cube,2015.
[6] ST.Bluetooth Low Energy software expansion for STM32Cube,2015.
聶旭輝(碩士),主要研究方向為無線醫(yī)療應用。
Rapid Design of Wireless Weight Scale Based on mbed
Nie Xuhui,Sun Zongyu,Han Mingxuan,Duan Xiaohui
(Wireless Communications and Signal Processing Research Centre,Peking University,Beijing 100871,China)
Based on the ARM mbed IoT cloud software platform and the Nucleo development kit,the design collects and processes the pressure sensitive data from HX711.After getting the weight data,it is transferred through the BLE.Then the APP is writed on the Android smart devices,which can receive and display the weight data.The wireless Bluetooth weight meter prototype shows the ARM mbed IoT has the characteristics of easy and efficient to develop.
mbed;Nucleo;weight scale;BLE;rapid design
863支撐計劃“服務于群眾健康的移動數(shù)字醫(yī)療系統(tǒng)集成示范工程”(編號:2013BAI05B07)。此項目還獲得北京大學-ARM-ST-Nordic智能硬件創(chuàng)新聯(lián)合實驗室的大力支持。
TP216
A
(責任編輯:楊迪娜2016-03-16)