孫中懿,王方歡,畢宗杰,崔子浩,付石友,田兆碩
(哈爾濱工業(yè)大學(xué)(威海)船海光電裝備研究所,山東 威海 264209)
傳統(tǒng)光譜檢測系統(tǒng)一般由光譜采集系統(tǒng)和基于PC平臺(tái)的光譜數(shù)據(jù)處理軟件兩部分組成,由于系統(tǒng)需要計(jì)算機(jī)進(jìn)行處理顯示,給戶外使用帶來了不便[1-3]。適應(yīng)各種工況的便攜式微型光譜儀有效彌補(bǔ)這一缺點(diǎn),是光譜儀市場的一個(gè)重要發(fā)展方向。微電子技術(shù)的發(fā)展使得光譜儀器微型化研究成為可能,在光譜采集和實(shí)時(shí)處理相結(jié)合的基礎(chǔ)上,形成集成化、微型化以及智能化的光譜儀已經(jīng)成為微型光譜檢測設(shè)備領(lǐng)域的研究熱點(diǎn)[4]。智能手機(jī)結(jié)合光譜儀的使用方法是光譜檢測技術(shù)的新手段,是實(shí)現(xiàn)光譜儀器實(shí)時(shí)性及智能化的有效途徑。
一般情況下,微型光譜儀與智能手機(jī)進(jìn)行連接的方式有兩種,一種為USB連接,另一種為無線連接。USB連接方式需光譜儀通過數(shù)據(jù)線連接到智能手機(jī),對設(shè)備底層驅(qū)動(dòng)的要求高,由于存在連接線,設(shè)備較為繁瑣不利于遠(yuǎn)距離的數(shù)據(jù)傳輸。而無線連接方式一般采用較為成熟的藍(lán)牙或WiFi,但藍(lán)牙協(xié)議較為繁瑣,其傳輸速率和穩(wěn)定性易受影響[5],因此基于藍(lán)牙方式傳輸?shù)奈⑿凸庾V儀在數(shù)據(jù)傳輸速率、傳輸距離、檢測速度以及連接穩(wěn)定性等方面的存在不足之處,不利于高速便攜式光譜檢測設(shè)備的發(fā)展。采用WiFi連接需要光譜儀開啟自身WiFi,可能被其他移動(dòng)設(shè)備連接,容易造成信息泄露安全性差[6],且手機(jī)端開啟WiFi后無法使用移動(dòng)網(wǎng)絡(luò)連接到外部網(wǎng)絡(luò),因此不方便采用此連接方式。
由于移動(dòng)熱點(diǎn)網(wǎng)絡(luò)能夠有效地提高無線資源的利用率、能夠在戶外或者沒有網(wǎng)絡(luò)的地方上網(wǎng)并實(shí)現(xiàn)惡劣無線環(huán)境下的通信,所以在近幾年受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[7]。目前大部分智能手機(jī)自帶開啟WiFi熱點(diǎn)功能,這給光譜儀數(shù)據(jù)無線傳輸提供了新的思路。
本文利用手機(jī)熱點(diǎn)進(jìn)行微型光譜儀與手機(jī)間通信,光譜儀無線模塊可以自動(dòng)連接設(shè)置好的手機(jī)熱點(diǎn)。結(jié)合Open WRT系統(tǒng)及集成開發(fā)環(huán)境Android Studio完成了系統(tǒng)數(shù)據(jù)傳輸處理及顯示的功能,該系統(tǒng)能夠有效彌補(bǔ)傳統(tǒng)光譜檢測系統(tǒng)攜帶不便的不足,通過無線熱點(diǎn)傳輸方式保證了數(shù)據(jù)傳輸?shù)乃俾屎涂煽啃?避免了有線連接帶來的不便,能夠?qū)崟r(shí)處理顯示光譜儀采集的光譜數(shù)據(jù),這對于后期研發(fā)便攜式、微型化及智能化一體的光譜檢測系統(tǒng)具有一定的意義。
基于手機(jī)熱點(diǎn)傳輸?shù)奈⑿凸庾V儀主要由進(jìn)行光譜數(shù)據(jù)采集的微型光譜儀硬件和進(jìn)行光譜顯示的手機(jī)端組成,二者通過手機(jī)熱點(diǎn)方式進(jìn)行數(shù)據(jù)傳輸和控制,系統(tǒng)整體結(jié)構(gòu)如圖1所示。
被測物體發(fā)出的信號(hào)光通過光譜儀外殼的SMA標(biāo)準(zhǔn)接口進(jìn)入分光系統(tǒng),再經(jīng)凸透鏡將光信號(hào)聚集到CCD進(jìn)行數(shù)據(jù)采集成像,CCD將采集到的圖像通過Open WRT無線模塊發(fā)送到手機(jī)端,手機(jī)端可以對光譜采集進(jìn)行啟??刂撇⑦M(jìn)行光譜數(shù)據(jù)處理和圖像化顯示。
整個(gè)光譜儀通過充電電池給Open WRT無線模塊和CCD進(jìn)行供電,并有相應(yīng)指示燈進(jìn)行電量指示,也可以通過USB對充電電池進(jìn)行充電和系統(tǒng)供電。
圖1 微型光譜儀系統(tǒng)結(jié)構(gòu)圖
微型光譜儀主要進(jìn)行光譜信息采集,并通過Open WRT無線模塊將光譜圖像發(fā)送到手機(jī)端。
Open WRT無線模塊是基于Atheros AR9331處理芯片設(shè)計(jì)的WiFi核心模塊,支持Open WRT操作系統(tǒng),主要技術(shù)參數(shù)如表1所示,核心模塊還引出USB、UART和WiFi天線等接口方便外設(shè)接入。
表1 WiFi核心模塊主要技術(shù)參數(shù)
手機(jī)端和Open WRT無線模塊連接分為WiFi和熱點(diǎn)兩種,隨著云存儲(chǔ)及大數(shù)據(jù)的發(fā)展,光譜數(shù)據(jù)上傳到云端數(shù)據(jù)庫成為未來發(fā)展的趨勢。二者使用WiFi連接時(shí)手機(jī)端不能夠使用移動(dòng)數(shù)據(jù)連接到外部網(wǎng)絡(luò),而二者采用熱點(diǎn)連接方式時(shí)手機(jī)端可以使用移動(dòng)數(shù)據(jù)訪問外部網(wǎng),因此我們手機(jī)端和光譜儀采用手機(jī)熱點(diǎn)連接方式,必要時(shí)可以將光譜數(shù)據(jù)傳入云端數(shù)據(jù)庫。
設(shè)置時(shí)首先打開手機(jī)端移動(dòng)熱點(diǎn),設(shè)置熱點(diǎn)的網(wǎng)絡(luò)名稱和密碼,然后登錄Open WRT系統(tǒng)搜索附近的無線網(wǎng),找到手機(jī)端熱點(diǎn)網(wǎng)絡(luò)并加入。設(shè)置完成之后,Open WRT系統(tǒng)啟動(dòng)后會(huì)自動(dòng)識(shí)別并連接這個(gè)移動(dòng)端的熱點(diǎn)。此時(shí)手機(jī)端不僅能夠通過局域網(wǎng)的IP訪問Open WRT無線模塊,還可以使用移動(dòng)數(shù)據(jù)訪問互聯(lián)網(wǎng)。
光譜圖像的獲取選擇的是CCD成像模塊,其支持Windows和Linux操作系統(tǒng),免驅(qū)適用于Open WRT系統(tǒng),圖像分辨率為1280×720。CCD成像模塊與Open WRT無線模塊使用USB的連接方式進(jìn)行連接,成像模塊將光譜數(shù)據(jù)通過MJPG圖像格式傳輸?shù)綗o線模塊。Open WRT識(shí)別光譜圖像主要是通過mjpg-streamer軟件包進(jìn)行實(shí)現(xiàn),mjpg-streamer軟件包工作流程如圖2所示。獲取的光譜圖像通過TCP協(xié)議以JPEG數(shù)據(jù)流形式傳到手機(jī)端,進(jìn)而達(dá)到傳輸圖像數(shù)據(jù)的目的。
圖2 mjpg-streamer軟件包工作流程圖
Android設(shè)備處理能力強(qiáng),數(shù)據(jù)傳輸接口完善,便攜性強(qiáng),應(yīng)用廣泛[1,8],因此整個(gè)系統(tǒng)采用Android手機(jī)作為數(shù)據(jù)處理與顯示部分。手機(jī)端和光譜儀通過手機(jī)的熱點(diǎn)網(wǎng)絡(luò)進(jìn)行交互,接收光譜儀采集的光譜數(shù)據(jù)并將光譜數(shù)據(jù)進(jìn)行圖形化顯示。
打開熱點(diǎn)的手機(jī)相當(dāng)于路由器,光譜儀無線模塊作為客戶端,獲取熱點(diǎn)手機(jī)的IP建立Socket連接,雙方進(jìn)行通信。由于手機(jī)端和光譜儀距離影響和網(wǎng)絡(luò)狀態(tài)的不穩(wěn)定導(dǎo)致與Open WRT無線模塊在建立Socket連接時(shí)的時(shí)間不是固定值,對數(shù)據(jù)傳輸和控制造成了一定的影響。經(jīng)過測試,二者正常的連接時(shí)間為30 ms左右,但是也會(huì)出現(xiàn)連接時(shí)間為1400 ms左右的情況。為了解決連接時(shí)間不固定的問題,在進(jìn)行連接時(shí),設(shè)定每次連接時(shí)間最高為80 ms,如果超過該時(shí)間則重新進(jìn)行連接。由于連接超時(shí)是個(gè)別情況出現(xiàn),所以最多連接三次就能建立連接,因此手機(jī)端和無線模塊的最多連接時(shí)間為240 ms左右。整個(gè)Socket連接流程如圖3所示。
圖3 Socket連接流程圖
因?yàn)楣庾V圖像采用的是網(wǎng)絡(luò)傳輸,因此首先要在Android Manifest.xml聲明WiFi開發(fā)權(quán)限,使用Wifi Manager獲取當(dāng)前網(wǎng)絡(luò)的地址,判定當(dāng)前網(wǎng)絡(luò)狀態(tài)是否已經(jīng)和無線模塊相連接。
Android SDK對HTTP提供了支持,提供了HttpURL Connection的標(biāo)準(zhǔn)Java接口。HttpURL Connection實(shí)現(xiàn)簡單的基于URL請求的相應(yīng)功能。通過訪問對應(yīng)的URL地址獲取到光譜圖像的輸入流數(shù)據(jù),再將輸入流數(shù)據(jù)轉(zhuǎn)化為Android端可處理的位圖信息。
Android移動(dòng)端使用getPixels方法提取Bitmap位圖數(shù)據(jù)中的各像素值,并將像素點(diǎn)的信息依次保存在數(shù)組中。然后分別提取數(shù)組中每個(gè)像素點(diǎn)的RGB分量,根據(jù)公式(1)進(jìn)行移位運(yùn)算可以將每個(gè)像素點(diǎn)的RGB值轉(zhuǎn)化為灰度值[9]。
gray=(R·38+G·75+B·14)?7
(1)
其中,gray為像素點(diǎn)的灰度值;R,G,B分別為該像素點(diǎn)紅、綠、藍(lán)分量的值。
最后將轉(zhuǎn)化的灰度值信息保存在長度為像素點(diǎn)數(shù)的數(shù)組之中,按照上述過程取得三幀光譜圖像的灰度值信息,并按照疊加平均法將三組灰度值取平均得到降噪之后的灰度值。并將疊加平均降噪之后的灰度值信息保存,以便后期處理。
本系統(tǒng)最終將接收處理后的光譜數(shù)據(jù)以圖形化形式直觀表示,方便進(jìn)行觀察和數(shù)據(jù)分析。本系統(tǒng)最終使用折線圖形式表示光譜數(shù)據(jù)的規(guī)律,因此選用AChart Engine繪制工具庫,其結(jié)構(gòu)如圖4所示。AChart Engine支持繪制折線圖、餅圖、散點(diǎn)圖、柱狀圖等,繪制的圖表支持水平和垂直兩種展示方式并且可以自定義很多其他功能。此外AChart Engine支持建立一個(gè)view對象,或者建立一個(gè)用于啟動(dòng)Activity的Intent。
圖4 AChart Engine結(jié)構(gòu)圖
折線圖構(gòu)成需要五項(xiàng)重要元素,XY Multiple Series Renderer用于整體折線圖設(shè)置,包括設(shè)置坐標(biāo)軸外邊距、X軸和Y軸最大值、坐標(biāo)軸內(nèi)部及外部顏色、顯示形式和縮放比例等;XY Series Render用于設(shè)置光譜曲線,包括曲線顏色、點(diǎn)的形狀、是否顯示數(shù)值等;XY Multiple Series Dataset用于所有數(shù)據(jù)的存放并通過XY Series對象來提供繪制折線點(diǎn)集合數(shù)據(jù)。XY Multiple Series Renderer和XY Multiple Series Dataset傳入Chart Factory后,調(diào)用get Line Chart View(Context context,XY Multiple Renderer,XY Multiple Series Dataset)方法來進(jìn)行折線圖的顯示。最終顯示的是以像素點(diǎn)為橫坐標(biāo),相對強(qiáng)度為縱坐標(biāo)的折線圖表示的光譜曲線。
為了測試整個(gè)系統(tǒng)的可行性和可靠性,選擇日光燈和He-Ne激光及背景作為測試項(xiàng)目,測試系統(tǒng)可行性并對傳輸距離和傳輸速度進(jìn)行了測試,測試用Android手機(jī)為魅藍(lán)Note6。
首先測試的是日光燈,測試實(shí)驗(yàn)圖如圖5所示,顯示曲線如圖6所示,可以看出測試結(jié)果有三個(gè)明顯的特征峰。
圖5 日光燈測試實(shí)驗(yàn)圖
圖6 手機(jī)顯示日光燈像素點(diǎn)-相對強(qiáng)度曲線
He-Ne激光及背景測試如圖7所示,實(shí)驗(yàn)結(jié)果如圖8所示,可以看出有一個(gè)明顯的特征峰。
為了測試本系統(tǒng)的處理性能,在光譜圖像顯示部分通過對接收的每幀圖像定義起止位標(biāo)識(shí)來實(shí)時(shí)計(jì)算數(shù)據(jù)傳輸?shù)膸l,通過多次試驗(yàn)可知,實(shí)際測量處理速度為8 f/s。在室內(nèi)室外多處進(jìn)行連接距離的測試傳輸控制距離,最遠(yuǎn)傳輸控制距離均可達(dá)13 m以上。
圖7 He-Ne激光及背景測試圖
圖8 手機(jī)顯示He-Ne激光及背景像素點(diǎn)-相對強(qiáng)度曲線
針對目前微型光譜儀的發(fā)展趨勢,基于Open WRT系統(tǒng)和Android系統(tǒng)設(shè)計(jì)了一種手機(jī)熱點(diǎn)傳輸?shù)奈⑿凸庾V儀系統(tǒng)。該系統(tǒng)能夠應(yīng)用到目前主流的安卓手機(jī)上,具有良好的兼容性,通過手機(jī)熱點(diǎn)形式實(shí)現(xiàn)了光譜儀與手機(jī)端的數(shù)據(jù)傳輸。光譜圖像傳輸速率為8 f/s,滿足傳輸條件的距離最遠(yuǎn)可達(dá)13 m以上,光譜曲線圖形化顯示經(jīng)測試基本滿足條件。整個(gè)系統(tǒng)具有傳輸速率快、成本低、處理能力強(qiáng)、易于攜帶等優(yōu)點(diǎn),適合室內(nèi)外實(shí)時(shí)測量,有一定的實(shí)際應(yīng)用價(jià)值。