張振權(quán), 彭穎, 黃昊, 馬麗娜·葉爾江, 宋建
(華南理工大學(xué), 機(jī)械與汽車工程學(xué)院, 廣東, 廣州 510640)
漿板運(yùn)動(dòng)(SUP)作為一項(xiàng)新興的水上運(yùn)動(dòng)風(fēng)靡全球,其入門難度低和娛樂價(jià)值高的特性使得該運(yùn)動(dòng)的受眾群體廣大,因而誕生了許多漿板運(yùn)動(dòng)基地[1-2]。然而此類基地多位于大型開放水域,過大的活動(dòng)場(chǎng)地使得漿板運(yùn)動(dòng)基地難以在現(xiàn)有安全員數(shù)量下保證游玩人員的運(yùn)動(dòng)安全,游玩人員超出規(guī)定活動(dòng)范圍進(jìn)入危險(xiǎn)區(qū)域的風(fēng)險(xiǎn)極大。得益于定位技術(shù)與和物聯(lián)網(wǎng)技術(shù)的發(fā)展,精準(zhǔn)定位和云端監(jiān)控給上述問題帶來了新的技術(shù)解決方案[3]。
目前市面上常見的安全定位設(shè)備有車輛定位器、兒童老人防丟定位器等。然而車輛定位器在定位精度上有所欠缺,定位精度多在幾十米范圍內(nèi),并不適合用于漿板運(yùn)動(dòng)場(chǎng)景;兒童老人防丟定位器雖在精度上滿足要求,但有限的3~5天續(xù)航時(shí)間使得漿板運(yùn)動(dòng)場(chǎng)合下設(shè)備的使用價(jià)值銳減[4-6]。本文根據(jù)漿板運(yùn)動(dòng)基地的需求設(shè)計(jì)了一款具有高精度實(shí)時(shí)定位和長(zhǎng)時(shí)間續(xù)航性能特點(diǎn)的安全定位器與云平臺(tái)應(yīng)用,可對(duì)游玩人員進(jìn)行實(shí)時(shí)位置跟蹤管理。
定位器的硬件電路主要由微處理器模塊、通信定位模塊、電源管理模塊等3部分組成。其中,微處理器模塊由STM32L031F6P6芯片及其外圍電路組成;通信定位模塊由BC20模組與天線、SIM卡插槽等組成,BC20與STM32L031通過UART口交換數(shù)據(jù);電源管理模塊主要由鋰電池充電芯片TP4065、3.7 V鋰電池、線性穩(wěn)壓芯片ME6211C33組成,為定位器提供持續(xù)的工作電源。定位器的硬件結(jié)構(gòu)如圖1所示。
圖1 定位器硬件結(jié)構(gòu)框圖
STM32系列具有高性能、低成本、低功耗以及可裁剪的特點(diǎn),在應(yīng)用上大致可以分成主流型、高性能型以及超低功耗型。本文應(yīng)用場(chǎng)景要求定位器的功耗盡可能的小,在此先確定將超低功耗型的STM32L系列作為微處理器芯片選型的主方向[7]。
表1列出了STM32L系列對(duì)應(yīng)的內(nèi)核,包括Cortex-M0+、Cortex-M3、Cortex-M4以及Cortex-M33,其中Cortex-M0+雖然是比較基礎(chǔ)的ARM處理器,但其性能完全能夠滿足本文的應(yīng)用需求,且運(yùn)行能耗低并支持低能耗連接。在此基礎(chǔ)上綜合考慮芯片大小和成本等因素,最終選擇了STM32L031F6P6作為主控電路的微處理器芯片。該芯片使用ARM Cortex-M0+內(nèi)核,采用20個(gè)引腳的TSSOP-20封裝,Flash內(nèi)存為32 Kbytes,正常工作電壓范圍為1.8~3.6 V。
表1 STM32L系列嵌入式芯片系列與對(duì)應(yīng)內(nèi)核
不同的物聯(lián)網(wǎng)通信技術(shù)有著不同的技術(shù)特征和應(yīng)用場(chǎng)景,目前常用的物聯(lián)網(wǎng)無線通信技術(shù)包括Sigfox、Wi-Fi、NB-IoT以及LoRa等[8]。根據(jù)應(yīng)用需求,本文從通信距離、功耗、傳輸速度、能否接入互聯(lián)網(wǎng)以及適用場(chǎng)景等幾方面進(jìn)行討論,其相關(guān)參數(shù)如表2所示。
表2 常用物聯(lián)網(wǎng)無線通信技術(shù)相關(guān)參數(shù)對(duì)比
由于槳板運(yùn)動(dòng)的活動(dòng)場(chǎng)所一般在靠近郊區(qū)的湖泊中,且活動(dòng)范圍較大。通過表2的對(duì)比數(shù)據(jù)可知,NB-IoT和Sigfox均可滿足槳板運(yùn)動(dòng)安全定位要求,然而Sigfox在我國(guó)的網(wǎng)絡(luò)覆蓋率較低,在此選擇了NB-IoT以及支持該通信技術(shù)的BC20模塊。BC20是一款支持GNSS定位功能的NB-IoT無線通信模塊,相比于傳統(tǒng)的NB-IoT+GNSS方案,其一體化設(shè)計(jì)能在一定程度上減少設(shè)備的體積,而且還能實(shí)現(xiàn)北斗和GPS雙衛(wèi)星導(dǎo)航系統(tǒng)解調(diào)算法,能在一定程度上提高定位的準(zhǔn)確性,更能滿足高定位精度的應(yīng)用場(chǎng)景。
電源是一個(gè)設(shè)備不可缺少的組成部分,定位器的電源管理模塊由充電、供電以及線性穩(wěn)壓三部分組成。正常運(yùn)行時(shí),由于鋰電池的輸出電壓隨電量變化且與各個(gè)芯片的工作電壓不匹配,因此需要通過ME6211C33芯片將鋰電池的輸出電壓轉(zhuǎn)換為穩(wěn)定的3.3 V電壓,使各芯片都能安全穩(wěn)定的運(yùn)行,確保定位的準(zhǔn)確性和通信的可靠性;而當(dāng)電量不足時(shí),定位器會(huì)及時(shí)預(yù)警,工作人員可以通過TP4065芯片進(jìn)行充電,確保供電正常。
安全定位器程序運(yùn)行流程如圖2所示。
圖2 定位器程序流程圖
安全定位器在初始化后便嘗試連接OneNET云平臺(tái)以便后續(xù)數(shù)據(jù)交互;成功連接則通過BC20模組獲取RMC(最簡(jiǎn)定位信息)格式的GNSS語句并從中解析出有效位置信息,然后通過ADC轉(zhuǎn)換計(jì)算得到電池電量信息。綜合考慮漿板運(yùn)動(dòng)中定位器實(shí)時(shí)定位與續(xù)航能力的要求,本文采用位置差模式上報(bào)位置信息和電量階梯模式上報(bào)電量信息,有效減少了無價(jià)值數(shù)據(jù)的報(bào)送對(duì)電量的損耗。
BC20模塊支持標(biāo)準(zhǔn)NMEA 0183協(xié)議。STM32向BC20模塊發(fā)送AT+QGNSSRD=“NMEA / RMC”以獲取RMC格式的GNSS語句,在判斷返回的GNSS語句有效性后,從中提取經(jīng)緯度信息[9]。RMC格式的GNSS語句包含經(jīng)緯度、時(shí)間等內(nèi)容,具體含義如表3所示。
表3 RMC語句的信息解析
提取的經(jīng)緯度數(shù)據(jù)格式分別為“ddmm.mmmmm”、“dddmm.mmmmm”,將其中單位為“分”的數(shù)值進(jìn)行“度”的單位轉(zhuǎn)換以簡(jiǎn)化信息,處理后的經(jīng)緯度數(shù)據(jù)分別以變量形式進(jìn)行儲(chǔ)存。
電量監(jiān)測(cè)的主要流程為對(duì)ADC校準(zhǔn)以更新校準(zhǔn)因子,得到更加精準(zhǔn)的數(shù)字電壓值;啟動(dòng)ADC后通過微處理器芯片的PA4引腳逐次讀取鋰電池電壓模擬值BAT_DATA、內(nèi)部電壓基準(zhǔn)值VREFINT_DATA,尋址得到參考電壓校準(zhǔn)值VREFINT_CAL,VDDA_Charac取3.0 V,通過式(1)得到實(shí)際VDDA的值,通過式(2)得到電池實(shí)際電壓值BAT_VALUE。循環(huán)ADC轉(zhuǎn)換10次取平均值得到實(shí)際鋰電池電壓平均值,最后根據(jù)式(3)將得到數(shù)值轉(zhuǎn)換為百分比。
(1)
(2)
(3)
獲得經(jīng)過處理的定位數(shù)據(jù)后,定位器通過位置差報(bào)送模式上報(bào)動(dòng)態(tài)位置信息,其工作流程為計(jì)算當(dāng)前定位數(shù)據(jù)與前次上報(bào)數(shù)據(jù)的距離,距離大于等于5 m便上報(bào)當(dāng)前位置信息,否則不予報(bào)送。定位器的電量監(jiān)測(cè)通過電量階梯報(bào)送模式進(jìn)行上報(bào),其工作流程為:獲取電量百分比數(shù)據(jù)后,使用判斷語句“if(BAT_PCT%10==0)” 判斷當(dāng)前電量百分比是否為10%的倍數(shù),若滿足條件則將電量數(shù)據(jù)上報(bào)。上報(bào)數(shù)據(jù)均通過AT+MIPLNOTIFY指令控制BC20模塊向云平臺(tái)進(jìn)行傳送。
本文使用的是中國(guó)移動(dòng)的OneNET物聯(lián)網(wǎng)開發(fā)云平臺(tái)。OneNET是一個(gè)PaaS物聯(lián)網(wǎng)開放平臺(tái),方便開發(fā)者實(shí)現(xiàn)終端設(shè)備的接入與連接[10]。定位器的BC20模塊通過LwM2M協(xié)議與OneNET云平臺(tái)進(jìn)行交互,其中LwM2M是一種安全、高效、易部署的物聯(lián)網(wǎng)協(xié)議,適用于不同網(wǎng)絡(luò)環(huán)境下資源有限的終端設(shè)備管理[11]。
建立云平臺(tái)與定位器的連接,需要事先在平臺(tái)中創(chuàng)建設(shè)備應(yīng)用:首先在NB-IoT物聯(lián)網(wǎng)套件創(chuàng)建產(chǎn)品,其中聯(lián)網(wǎng)方式選擇NB-IoT,設(shè)備接入?yún)f(xié)議選擇LwM2M,然后創(chuàng)建設(shè)備應(yīng)用并輸入定位器的IMEI碼與IMSI碼,實(shí)現(xiàn)安全定位器與應(yīng)用的連接綁定。定位器啟動(dòng)后,通過AT指令向云平臺(tái)發(fā)送連接請(qǐng)求,待云平臺(tái)對(duì)應(yīng)的訂閱請(qǐng)求以及發(fā)現(xiàn)資源請(qǐng)求響應(yīng)后即建立與OneNET的連接。
定位器接入OneNET平臺(tái)后,可以在設(shè)備資源列表中查看實(shí)時(shí)上報(bào)的電量百分比數(shù)據(jù)。為了實(shí)現(xiàn)低電量報(bào)警,平臺(tái)提供了事件觸發(fā)器管理功能。低電量報(bào)警配置流程:在觸發(fā)器管理界面中選定關(guān)聯(lián)設(shè)備以及相關(guān)電量對(duì)應(yīng)的資源信息,設(shè)置合適的觸發(fā)條件,完成上述動(dòng)作即可開啟平臺(tái)的低電量報(bào)警功能。配置界面如圖3所示。
圖3 低電量報(bào)警配置界面
開啟定位器并接入云平臺(tái),根據(jù)平臺(tái)上的定位信息歷史數(shù)據(jù)流,借助百度地圖API可以得到如圖4所示的定位器移動(dòng)軌跡。雖然實(shí)測(cè)過程中定位器的運(yùn)動(dòng)速度是變化的,但從圖中可以看出平臺(tái)上每個(gè)位置點(diǎn)間的距離較為均勻,且均在5 m以上,表明位置差報(bào)送模式運(yùn)行正常?;贠neNET平臺(tái)的位置數(shù)據(jù),槳板運(yùn)動(dòng)基地管理者可對(duì)每個(gè)游客的運(yùn)動(dòng)軌跡進(jìn)行實(shí)時(shí)監(jiān)控,借助電子圍欄更可以實(shí)現(xiàn)超安全區(qū)域的預(yù)警。
圖4 根據(jù)位置數(shù)據(jù)流得到的定位器移動(dòng)軌跡
根據(jù)實(shí)地調(diào)研情況得知,每塊漿板的使用時(shí)間約為4 h/d,在此確定以5 h作為該安全定位器的每日開機(jī)使用時(shí)間。使用配置額定容量5000 mAh充電電池的安全定位器進(jìn)行模擬測(cè)試,達(dá)到10%的預(yù)警電量的使用時(shí)間為12~14 d,較好平衡了充電電池成本與槳板基地管理人員的充電勞動(dòng)強(qiáng)度。
本文設(shè)計(jì)了一款低功耗、長(zhǎng)續(xù)航的北斗/GPS雙重定位漿板運(yùn)動(dòng)安全定位器。通過調(diào)研分析,選取超低功耗型的STM32L031F6P6作為主控電路的微處理器芯片,并設(shè)計(jì)了硬件電路;軟件設(shè)計(jì)提出了位置差上報(bào)位置信息和電量階梯上報(bào)電量信息的數(shù)據(jù)報(bào)送方法,既能為槳板運(yùn)動(dòng)管理提供了實(shí)時(shí)的有價(jià)值數(shù)據(jù),也極大降低了設(shè)備的運(yùn)行功耗。運(yùn)行測(cè)試表明,開發(fā)的定位器定位準(zhǔn)確,配置5000 mAh充電電池可續(xù)航12~14 d,在槳板與其他戶外運(yùn)動(dòng)的安全定位管理中有較大的應(yīng)用價(jià)值。