張珍珍,劉吉軒,王國平,張 琛,劉云韜,陸佐偉,王麒豪
(1.西安交通大學(xué)城市學(xué)院,機(jī)械工程系,陜西 西安 710054;2.西安交通大學(xué)城市學(xué)院機(jī)械工程系機(jī)器人研究所,陜西 西安 710054;3.陜西省示范實(shí)驗(yàn)室機(jī)械工程系實(shí)驗(yàn)室,陜西 西安 710054)
近年來,巡檢機(jī)器人的應(yīng)用越來越廣泛,實(shí)用價(jià)值也越來越高。巡檢機(jī)器人作為一種可移動(dòng)的機(jī)器人基礎(chǔ)平臺(tái),可以使人類從一些較為危險(xiǎn)工作解放出來,亦可代替人類從事一些繁雜、重復(fù)的機(jī)械工作[1]。隨著巡檢機(jī)器人的廣泛使用,不僅保障了人生安全,避免了工作環(huán)境對使用者的造成的健康傷害;而且提高了巡檢效率,保證了巡檢可靠性。因此,保證巡檢機(jī)器人正常工作是巡檢機(jī)器人的核心,智能小車是巡檢機(jī)器人的基礎(chǔ)研究,因此,監(jiān)控小車的運(yùn)行狀態(tài)是保證機(jī)器人正常運(yùn)行的重要手段。
Labview 是一款以數(shù)據(jù)流為基礎(chǔ)的圖形化編程軟件,具有軟件與硬件兩種協(xié)議,通過協(xié)議,信息發(fā)送方與接收方就能在緩存即將存滿時(shí),進(jìn)行相互通報(bào),這樣發(fā)送方就能及時(shí)地停止數(shù)據(jù)的發(fā)送,直到接收方清空緩存并做好接收新數(shù)據(jù)的準(zhǔn)備后,再次發(fā)送消息,這樣能夠有效解決上下位機(jī)之間的時(shí)序沖突問題,且在人機(jī)交互過程中具有一定的優(yōu)勢[2]。因此,使用Labview軟件作為監(jiān)控系統(tǒng)的開發(fā)平臺(tái)。綜上,本文將以Labview 軟件為基礎(chǔ)進(jìn)行編程,設(shè)計(jì)人機(jī)交互界面,實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)監(jiān)控巡檢機(jī)器人,保障機(jī)器人的正常運(yùn)行。
由于智能小車的快速發(fā)展,其多傳感器的融合,復(fù)雜的工作環(huán)境、適應(yīng)范圍廣泛等特點(diǎn)對遠(yuǎn)程監(jiān)控系統(tǒng)的實(shí)時(shí)性、可控性提出了新的要求。單片機(jī)具有成本較低、功能強(qiáng)大的特點(diǎn),以單片機(jī)作為下位機(jī)接收、處理數(shù)據(jù);計(jì)算機(jī)具有很好的人機(jī)交互功能,所以作為監(jiān)控系統(tǒng)的上位機(jī);上位機(jī)與下位機(jī)的通訊,即:計(jì)算機(jī)與單片機(jī),兩者之間的數(shù)據(jù)交流采用藍(lán)牙通信的模式。
智能小車監(jiān)控系統(tǒng)首先需下位機(jī)進(jìn)行數(shù)據(jù)接收,收集完成后,通過藍(lán)牙模塊,進(jìn)行數(shù)據(jù)的無線傳輸,上位機(jī)確認(rèn)接收到數(shù)據(jù)后,利用Labview 環(huán)境將數(shù)據(jù)進(jìn)行解析,設(shè)計(jì)監(jiān)控界面。使用Labview環(huán)境內(nèi)部函數(shù)處理數(shù)據(jù)后的將有效數(shù)據(jù)顯示在監(jiān)控界面上,達(dá)到實(shí)時(shí)監(jiān)控智能小車的目的。
監(jiān)控系統(tǒng)包括硬件系統(tǒng)與軟件平臺(tái)。硬件系統(tǒng)包含GPS 模塊、超聲波測距模塊和藍(lán)牙通訊模塊;軟件平臺(tái)為Labview虛擬儀器操作平臺(tái)。
硬件系統(tǒng)主要包含三個(gè)模塊,分別為GPS 模塊、超聲波測距模塊和藍(lán)牙模塊。超聲波實(shí)現(xiàn)測量障礙物距離,GPS 模塊實(shí)現(xiàn)定位,藍(lán)牙模塊實(shí)現(xiàn)通信。
GPS 模塊為維特智能GPS+BD 雙模定位模塊,型號(hào)為WTGPS+BD。超聲波測距模塊為HC-sr04 型超聲波測距模塊,它以便于應(yīng)用的封裝提供出色的非接觸領(lǐng)域檢測,具有低誤差和穩(wěn)定的讀數(shù),模塊上具備超聲波發(fā)射器和接收器模塊。
藍(lán)牙通訊模塊為HC-08 藍(lán)牙串口通信模塊,目的是將有線傳輸變?yōu)闊o線傳輸。
上位機(jī)利用Labview 軟件進(jìn)行開發(fā),其開發(fā)環(huán)境由前面板和程序框圖組成。前面板:根據(jù)使用者的需求選擇對應(yīng)的控件進(jìn)行創(chuàng)建面板,同時(shí)可以改變背景,字體及大小等,在當(dāng)前界面完成監(jiān)控系統(tǒng)界面的設(shè)計(jì),使得前面板具備人機(jī)交互界面的功能。程序框圖:根據(jù)建立目的對前面板使用的控件進(jìn)行相應(yīng)的函數(shù)循環(huán)結(jié)構(gòu)并連線通訊,編程完成后運(yùn)行程序,運(yùn)行無誤后完成程序框圖的建立。一般情況下先在前面板選取控件后在程序框圖內(nèi)依據(jù)功能進(jìn)行連線通訊。在本次設(shè)計(jì)中,使用Labview 環(huán)境內(nèi)的VISA函數(shù)進(jìn)行數(shù)據(jù)處理,經(jīng)過屬性節(jié)點(diǎn)的選擇,截取需要的數(shù)據(jù)段,創(chuàng)建顯示控件,將處理過后的數(shù)據(jù)顯示在監(jiān)控界面上,達(dá)到實(shí)時(shí)監(jiān)控智能小車的目的。軟件平臺(tái)設(shè)計(jì)具體步驟為:創(chuàng)建VISA 配置串口→串口寫入控件添加輸入→串口讀寫控件添加讀寫字節(jié)數(shù)增加循環(huán)結(jié)構(gòu)→增加條件結(jié)構(gòu)→完成前面板布局。
上位機(jī)的軟件系統(tǒng)是在Labview 環(huán)境下設(shè)計(jì)GPS 信息采集系統(tǒng),利用GPS 模塊產(chǎn)生的GNRMC數(shù)據(jù)進(jìn)行處理,顯示小車具體經(jīng)緯度信息[3]。通過使用Labview 環(huán)境內(nèi)的VISA 函數(shù),創(chuàng)建數(shù)據(jù)接收串口,使用VISA 讀取和VISA 寫入將接收到的數(shù)據(jù)進(jìn)行處理,使用數(shù)值顯示控件將處理過的數(shù)據(jù)顯示在監(jiān)控面板上,達(dá)到實(shí)時(shí)監(jiān)控小車運(yùn)行情況的目的。
1)串口讀取程序設(shè)計(jì)。將VISA 串口配置函數(shù)與硬件匹配,可以在監(jiān)控界面內(nèi)顯示匹配節(jié)點(diǎn),例如設(shè)置波特率,串口名稱(COM 口)等。當(dāng)數(shù)據(jù)接收正常,數(shù)據(jù)段進(jìn)入VISA 串口讀取單元,完成了發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的功能后,進(jìn)行連續(xù)讀取循環(huán)。數(shù)據(jù)從VISA 函數(shù)內(nèi)不斷刷新,顯示面板內(nèi)會(huì)同時(shí)更新每一行數(shù)據(jù),通過反饋節(jié)點(diǎn)將每一段數(shù)據(jù)進(jìn)行保存,顯示面板內(nèi)的數(shù)據(jù)為歷史數(shù)據(jù),經(jīng)過反饋節(jié)點(diǎn)進(jìn)行保存。
2)篩選數(shù)據(jù)段。串口讀取的GPS 數(shù)據(jù)傳送至Labview 環(huán)境中,利用NMEA 協(xié)議篩選出需要的數(shù)據(jù)段,即:GNRMC,需要對其進(jìn)行篩選。GPS 模塊產(chǎn)生的GNRMC 數(shù)據(jù)當(dāng)中,第十六字段符為有效驗(yàn)證符,字母A 為正確效驗(yàn)符號(hào),只有在驗(yàn)證字母A 為正確效驗(yàn)符號(hào)后,才可以進(jìn)行下一步的運(yùn)行。在主程序中,當(dāng)檢測到定位數(shù)據(jù)有效(A)時(shí),進(jìn)入時(shí)間轉(zhuǎn)換函數(shù)子VI。
GPS 模塊輸出的數(shù)據(jù)段中,首先使用時(shí)間數(shù)據(jù)段,時(shí)間數(shù)據(jù)段中的數(shù)據(jù)表示的是UTC 時(shí)間(Coordinated Universal Time 世界標(biāo)準(zhǔn)時(shí)間),而我們需要的是北京時(shí)間。北京在東八區(qū),時(shí)間線上以東邊為正,西邊為負(fù),東八區(qū)的時(shí)間節(jié)點(diǎn)比UTC 時(shí)間節(jié)點(diǎn)早八小時(shí)。因此,需要在UTC 時(shí)間數(shù)據(jù)段加八小時(shí)為北京時(shí)間數(shù)據(jù)段,若時(shí)間超過二十四小時(shí),則減去二十四小時(shí),并在日期加一天。由于提取出來的數(shù)據(jù)為字符串格式,在監(jiān)控界面內(nèi)顯示時(shí)間之前,需要在數(shù)組中提取1-2,3-4,5-6 三組字符串分別為時(shí)、分和秒。將數(shù)據(jù)段格式強(qiáng)制轉(zhuǎn)換后,在小時(shí)處加八,這樣,獲取到的數(shù)據(jù)為GPS 模塊發(fā)出的北京時(shí)間數(shù)據(jù)[4]。
3)設(shè)計(jì)數(shù)據(jù)顯示格式。GPS 模塊產(chǎn)生的緯度數(shù)據(jù)段樣式是2478.17233,截取前兩位數(shù)字作為緯度顯示,三四位作為緯分顯示,在進(jìn)行秒顯示是,將0.17233 緯分先行計(jì)算,更改單位為秒,因?yàn)樽址瘮?shù)庫有整形功能,數(shù)據(jù)在顯示前進(jìn)行簡化,因?yàn)樵谔崛〉?7 233 后,乘以60,提取計(jì)算后在前四位作為緯秒顯示。
使用Labview 設(shè)計(jì)的人機(jī)交互界面,VISA 資源名稱設(shè)置與串口設(shè)置顯示位置在圖片左半邊,右上部分是從GPS 模塊接收到的數(shù)據(jù),轉(zhuǎn)換成UTC 時(shí)間、北京時(shí)間和經(jīng)緯度信息。
超聲波測距單元正常工作下,通過與單片機(jī)的連接,使用單片機(jī)上的藍(lán)牙通訊模塊,發(fā)送至Labview環(huán)境下的測距顯示面板,間隔200 ms 進(jìn)行一次數(shù)據(jù)刷新,這樣,就在人機(jī)交互界面內(nèi)實(shí)時(shí)觀察小車運(yùn)行情況。使用Labview設(shè)計(jì)的測距顯示界面,經(jīng)過單片機(jī)串口發(fā)送至Labview 開發(fā)平臺(tái)。監(jiān)控系統(tǒng)顯示界面如圖1 所示。
圖1 監(jiān)控系統(tǒng)顯示界面
本章將進(jìn)行智能小車遠(yuǎn)程監(jiān)控系統(tǒng)驗(yàn)證,利用藍(lán)牙模塊,將數(shù)據(jù)從下位機(jī)傳輸至上位機(jī)后,驗(yàn)證Labview程序的可實(shí)施性,達(dá)到實(shí)時(shí)監(jiān)控智能小車運(yùn)行狀態(tài)的目的。本實(shí)驗(yàn)選擇藍(lán)牙適配器和HC-08 藍(lán)牙模塊通,波特率為9 600 B/s,完成VISA 串口的設(shè)置,進(jìn)行讀寫虛擬儀器節(jié)點(diǎn),刷新串口選擇,即可將可使用的串口、監(jiān)控?cái)?shù)據(jù)在人機(jī)交互界面顯示[5]。
監(jiān)控界面的左邊為設(shè)置串口調(diào)節(jié),更改波特率和數(shù)據(jù)位等,數(shù)據(jù)的讀取與顯示在圖片的中間。小車運(yùn)行實(shí)驗(yàn)在操場進(jìn)行,操場南端的監(jiān)控界面如圖2所示,實(shí)驗(yàn)時(shí)間于下午一點(diǎn)進(jìn)行,小車的經(jīng)度顯示為E108°86'46",緯度顯示為N34°37'59",在小車前方有一面墻體,作為障礙物阻礙小車運(yùn)行,測得小車距墻體距離為56.2 cm。
圖2 操場南端小車監(jiān)控界面顯示
操場南端的監(jiān)控界面如圖3 所示,實(shí)驗(yàn)時(shí)間于下午一點(diǎn)進(jìn)行,小車的經(jīng)度顯示為E108°86'43",緯度顯示為N34°37'75",在小車前方有一面墻體,作為障礙物阻礙小車運(yùn)行,測得小車距墻體距離為76.5 cm。
圖3 操場北端小車監(jiān)控界面顯示
智能小車上安裝的GPS 模塊,對GPS 終端發(fā)送的NMEA 協(xié)議格式做出了分析,通過協(xié)議獲取計(jì)算方式,利用Labview 環(huán)境里的函數(shù)運(yùn)算,計(jì)算并顯示從GPS 終端獲取的數(shù)據(jù)集。
超聲波測距單元主要目的是測距并顯示在人機(jī)交互界面上,通過人機(jī)交互界面,使得使用者可以及時(shí)的監(jiān)控小車運(yùn)行時(shí),障礙物離小車還有多少距離。
本文通過藍(lán)牙模塊完成了GPS 模塊和超聲波避障模塊與計(jì)算機(jī)之間的無線通信,達(dá)到了使用者可以在PC 端進(jìn)行實(shí)時(shí)監(jiān)控智能小車的目的。
Labview 的G 語言(圖形編程語言)開發(fā)環(huán)境為GPS 模塊和超聲波避障模塊的數(shù)據(jù)采集、解析、顯示提供了絕佳的操作平臺(tái),通過Labview 平臺(tái)將數(shù)據(jù)進(jìn)行了展示,基于VISA 的串口操作及結(jié)構(gòu)化的編程方法,保證了程序的可視化。