管慧明 吳 陳
(江蘇科技大學(xué) 鎮(zhèn)江 212003)
振動(dòng)實(shí)驗(yàn)三維模擬系統(tǒng)對(duì)整個(gè)實(shí)驗(yàn)過(guò)程進(jìn)行模擬,而且還能實(shí)時(shí)監(jiān)控被振動(dòng)設(shè)備的當(dāng)前狀態(tài)?,F(xiàn)在的振動(dòng)實(shí)驗(yàn)大多使用曲線來(lái)描述實(shí)驗(yàn)的振動(dòng)過(guò)程,不夠直觀,而且需要工作人員進(jìn)入噪聲環(huán)境特大、空間狹小的環(huán)境中去查詢(xún)?cè)O(shè)備狀態(tài),對(duì)于已經(jīng)發(fā)生故障的設(shè)備,如未及時(shí)查詢(xún),往往導(dǎo)致振動(dòng)實(shí)驗(yàn)繼續(xù)的無(wú)意義性。對(duì)于包含多CAN節(jié)點(diǎn)的系統(tǒng)設(shè)備,實(shí)驗(yàn)者需要耗費(fèi)大量時(shí)間去定位并記住故障模塊并伴隨著定位錯(cuò)誤的風(fēng)險(xiǎn)。同時(shí),由于現(xiàn)在軟件的成熟性,二維的界面顯示已經(jīng)越來(lái)越不能滿足人們對(duì)于審美觀的要求[1]。因此,本文設(shè)計(jì)的模擬監(jiān)控系統(tǒng)無(wú)疑具有很大的應(yīng)用市場(chǎng)。
該監(jiān)控系統(tǒng)主要由顯示終端和監(jiān)控終端組成,監(jiān)控系統(tǒng)的總體框架如圖1所示。其中監(jiān)控系統(tǒng)由STM32F103C8T6芯片、溫度傳感器、電壓采集電路、信號(hào)采集電路、CAN物理層電路組成。監(jiān)控系統(tǒng)針對(duì)不適合人現(xiàn)場(chǎng)工作的惡劣環(huán)境,實(shí)時(shí)采集被監(jiān)控設(shè)備當(dāng)前溫度、工作電壓、重要模擬信號(hào),并以CAN口發(fā)送出去。顯示終端以Cortex-A9處理器為核心[4],加載振動(dòng)設(shè)備三維模型,根據(jù)ID號(hào)解析各個(gè)監(jiān)控終端發(fā)來(lái)的實(shí)時(shí)數(shù)據(jù),將實(shí)時(shí)數(shù)據(jù)在三維界面上體現(xiàn)[2]。
圖1 系統(tǒng)總體框架圖
顯示終端為實(shí)現(xiàn)界面操作流暢、三維模型加載、渲染等功能,對(duì)主控制器,尤其是3D處理方面提出了較高要求,系統(tǒng)采用Freescale公司推出的I.MX6 Quad處理器,其內(nèi)核運(yùn)行頻率高達(dá)1.2GHz,帶有1MB L2緩存和64位DDR3或2通道、32位LPDDR2、4個(gè)著色器和兩個(gè)2D圖形引擎,將節(jié)能高效的處理能力與尖端的2D、3D圖形,以及高清視頻功能相結(jié)合,將多媒體性能提升到全新的水平。支持2個(gè)LVDS輸出通道,兼容市場(chǎng)上絕大多數(shù)LVDS液晶屏,以便我們實(shí)現(xiàn)信息交互[3]。由于處理器內(nèi)部沒(méi)有CAN收發(fā)器,故需要外接TJA1050[14],將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平[15],在兩條有差分電壓的總線電纜上傳輸數(shù)據(jù),如圖2所示。
圖2 TJA1050外圍電路
監(jiān)控終端采用意法半導(dǎo)體推出的STM32F3系列單片機(jī)為主控制器,搭載Cortex-M3內(nèi)核,具有高性能、低成本、低功耗、外設(shè)豐富的特點(diǎn)。由于STM32自帶的I2C模塊具有卡死的風(fēng)險(xiǎn),故本系統(tǒng)采用通用GPIO口來(lái)模擬I2C協(xié)議,通過(guò)I2C接口連接MLX90614溫濕度傳感器[5],可以獲得當(dāng)前設(shè)備的溫度。通過(guò)電池備份電路可以使得外部供電故障的情況下也可以正常和監(jiān)控系統(tǒng)通信。如圖3所示。另外通過(guò)STM32自帶的AD0、AD1轉(zhuǎn)換,來(lái)獲得當(dāng)前設(shè)備的電壓、模擬信號(hào)以確定當(dāng)時(shí)設(shè)備是否正常。
圖3 MLX90614外圍電路及備用供電電路
該系統(tǒng)軟件的特色之一就是可以跨平臺(tái)運(yùn)行。在PC平臺(tái)上開(kāi)發(fā)環(huán)境為qt creator2.8+qt4.8.5[7]。利用Qt的跨平臺(tái)特性,經(jīng)過(guò)不同平臺(tái)的編譯以后可以使得同一個(gè)程序在Linux、Windows、Android、IOS上運(yùn)行。在顯示終端移植嵌入式Linux系統(tǒng)與Qt應(yīng)用程序開(kāi)發(fā)框架,通過(guò)修改文件/etc/rc.d/rc.local腳本文件,可以使得系統(tǒng)啟動(dòng)后自動(dòng)調(diào)用Qt程序,進(jìn)入主界面,程序流程如圖4所示。上電后,系統(tǒng)初始化環(huán)境變量,并且加載使用3d max生成的OBJ和MTL文件,還原出3D模型以便交互。系統(tǒng)工作在兩種工作模式下面,分別為動(dòng)畫(huà)模式和查詢(xún)模式,在動(dòng)畫(huà)模式下面可以真實(shí)地模擬出當(dāng)前振動(dòng)臺(tái)的工作狀態(tài),比如當(dāng)前振動(dòng)方向、振動(dòng)速度、沖擊速度等[8]。在查詢(xún)狀態(tài)下,可以單擊模塊以拾取出當(dāng)前需要查詢(xún)的模塊,從而可以進(jìn)一步縮放、旋轉(zhuǎn)當(dāng)前模塊,以便更好地觀察當(dāng)前被監(jiān)控模塊的狀態(tài)。當(dāng)觀察結(jié)束后通過(guò)雙擊該模塊可以恢復(fù)初始化狀態(tài),為進(jìn)入動(dòng)畫(huà)模式做準(zhǔn)備[9]。
圖4 顯示終端程序設(shè)計(jì)流程圖
OBJ模型文件和MTL材質(zhì)文件是可讀的文本文件,OBJ文件中存儲(chǔ)了三維模型的頂點(diǎn)、法線、紋理和材質(zhì)使用情況。MTL文件是材質(zhì)庫(kù)文件。存儲(chǔ)了模型的材質(zhì)、顏色、光照、紋理貼圖、反射貼圖。該設(shè)計(jì)中將三維模型的解析過(guò)程以類(lèi)的方式實(shí)現(xiàn),在構(gòu)造函數(shù)中只需要傳入OBJ和MTL路徑名即可,方便易用。OBJ文件中常見(jiàn)關(guān)鍵字和描述見(jiàn)表1所示,MTL文件中常見(jiàn)關(guān)鍵字和描述見(jiàn)表2所示。
表1 OBJ文件關(guān)鍵字及描述
表2 MTL文件關(guān)鍵字及描述
在Material類(lèi)中申請(qǐng)了Ka、Kd、Ks三個(gè)數(shù)組用來(lái)存放MTL文件中相關(guān)信息,同時(shí)在Point3類(lèi)中定義了頂點(diǎn)信息,用來(lái)保存OBJ文件中頂點(diǎn)信息,在完成OBJ和MTL文件相關(guān)數(shù)據(jù)獲取以后通過(guò)OpenGL相關(guān)函數(shù)glVertexPointer()、glNormalPointer()、glTexCoordPointe(r)、glDrawArrays()來(lái)獲取的數(shù)組信息還原出來(lái),重新構(gòu)造出三維模型,以便交互。
振動(dòng)臺(tái)的振動(dòng)過(guò)程中,分為X、Y、Z三個(gè)振動(dòng)方向以檢測(cè)被檢測(cè)設(shè)備的在惡劣環(huán)境下是否可以正常工作。
以垂直X軸方向?yàn)槔?,在定時(shí)器中通過(guò)增減變量Golbal::x,來(lái)調(diào)整三維模型在世界坐標(biāo)系中的位置,以實(shí)現(xiàn)模型的沿著Y軸上下振動(dòng)。
圖5 測(cè)試結(jié)果
振動(dòng)設(shè)備三維模擬系統(tǒng)在Windows7和Linux系統(tǒng)下進(jìn)行了測(cè)試。測(cè)試根據(jù)實(shí)際生產(chǎn)制作過(guò)程中來(lái)完成,如OBJ模型的加載、振動(dòng)臺(tái)的運(yùn)動(dòng)、被監(jiān)控模塊的拾取、縮放、旋轉(zhuǎn)等[10]。通過(guò)CAN網(wǎng)絡(luò)通信,顯示終端的CAN節(jié)點(diǎn)通過(guò)解析CAN報(bào)文可以讀取當(dāng)前拾取的模塊的狀態(tài)信息,如模塊內(nèi)部溫度、關(guān)鍵模擬信號(hào)的有無(wú)、模塊供電電壓有無(wú)等。根據(jù)獲取的實(shí)際信息對(duì)被拾取的模型進(jìn)行相應(yīng)的改變,將故障信息直觀地體現(xiàn)出來(lái)。比如出現(xiàn)電壓故障時(shí)模塊對(duì)應(yīng)電壓的綠燈變?yōu)榧t燈、關(guān)鍵信號(hào)丟失時(shí)對(duì)應(yīng)插頭分離等。測(cè)試依次展示了振動(dòng)臺(tái)和振動(dòng)設(shè)備、模塊的拾取、電壓故障、關(guān)鍵信號(hào)丟失和模塊放大、模塊旋轉(zhuǎn)、模塊縮小。測(cè)試結(jié)果如圖5所示。
該系統(tǒng)分為顯示終端和監(jiān)控終端兩個(gè)部分。通過(guò)對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)的實(shí)時(shí)解析,使得顯示終端能夠?qū)崟r(shí)獲取當(dāng)前被監(jiān)控各個(gè)設(shè)備模塊的狀態(tài),可直觀地展示發(fā)生故障的通信節(jié)點(diǎn)。并且將異常數(shù)據(jù)存入本地?cái)?shù)據(jù)庫(kù)當(dāng)中,以供研發(fā)人員獲取歷史故障信息,為以后研發(fā)設(shè)計(jì)以及生產(chǎn)提供借鑒。實(shí)際運(yùn)行表明,這種監(jiān)控系統(tǒng)具有使用方便、可靠性高、界面炫酷逼真的優(yōu)點(diǎn),對(duì)于遠(yuǎn)距離數(shù)據(jù)獲取、惡劣的工作環(huán)境、被監(jiān)控設(shè)備多而雜的情況具有很大的應(yīng)用價(jià)值。