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