邵麗萍 白忠臣 楊曉昆 張正平
摘? 要: 工程測量、化學工業(yè)等領域對光譜分析數(shù)據(jù)的精度要求不斷提高,通過QT Creator平臺的多線程特點,針對從主線程、CCD采集線程、光譜儀采集線程和串口收發(fā)數(shù)據(jù)線程功能,設計了光譜信號采集系統(tǒng),并根據(jù)光譜信號采集系統(tǒng)中電機運動的特點提出了一種邊界定位算法。當PC上位機發(fā)送定位指令給下位機時,下位機依據(jù)邊界定位算法控制電機運動,進而定位出所要測量的量子點陣列中各個點的位置坐標。該方法在保持系統(tǒng)微型化的同時,提高了定位的準確性,從而提高了系統(tǒng)檢測數(shù)據(jù)的精度。
關鍵詞: 光譜信號采集; 邊界定位算法; 光譜分析; 線程設計; 電機控制; 系統(tǒng)微型化
中圖分類號: TN911.7?34? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)11?0051?04
Design and implementation of spectral signal acquisition system software
based on boundary location algorithm
SHAO Liping1, BAI Zhongchen2, YANG Xiaokun1, ZHANG Zhengping1
(1. College of Big Data and Information Engineering, Guizhou University, Guiyang 550025, China;
2. Guizhou Province Key Lab for Photoelectronic Technology and Application, Guizhou University, Guiyang 550025, China)
Abstract: In view of the continuously increased precision requirements of spectral analysis data in engineering measurement, chemical industry and other fields, a spectral signal acquisition system is designed according to the multi?thread characteristics of QT Creator platform and the functions of main thread, CCD acquisition thread, spectrometer acquisition thread and serial port data receiving and transmitting thread. A boundary location algorithm is proposed according to the characteristics of motor motion in the spectral signal acquisition system. When the upper computer of PC sends a positioning command to the lower computer, the latter controls the motor motion according to the boundary positioning algorithm, and then locates the position coordinates of each point under measurement in the quantum dot array. With the proposed algorithm, the positioning accuracy is improved while maintaining the miniaturization of the system. Therefore, the data detection accuracy of the system is improved.
Keywords: spectral signal acquisition; boundary location algorithm; spectral analysis; thread design; motor control; system miniaturization
0? 引? 言
隨著現(xiàn)代科學技術的不斷進步,傳統(tǒng)的光譜儀由于體積大、成本高等因素限制了其在工程上的應用,由此,光譜采集系統(tǒng)逐漸朝著微型化方向發(fā)展[1?2],微小型光譜儀控制系統(tǒng)的設計越來越受到重視[3?7],進而也對其數(shù)據(jù)的精確度提出了更高的要求。本文所設計的光譜信號采集系統(tǒng)在滿足微型化的同時[8?12],通過使用本實驗室不斷改進的微型化移動平臺,對系統(tǒng)的定位技術進行改進[13?15],提出了一種邊界定位算法,進一步提高了系統(tǒng)的定位精確度。
1? 系統(tǒng)總體結構
本實驗所設計的系統(tǒng)由硬件組和軟件組合作完成,本文的研究內容屬于軟件組。整個系統(tǒng)的軟件設計采用跨平臺的C++圖形用戶界面應用程序框架(QT Creator)進行編程實現(xiàn),主要由CCD、計算機、光譜儀、下位機和LED光源五部分組成。計算機主要是用來處理算法、控制下位機、運行系統(tǒng)軟件,計算機與下位機之間采用串口通信,通過下位機實現(xiàn)上位機對各個驅動器的控制,主要控制電機的運動,進而對量子點陣列進行定位。計算機上觀察到的實時信息由CCD采集,通過串口通信進行傳輸,并以此監(jiān)測量子點的定位是否準確。采集系統(tǒng)使用QE65000型號光譜儀與計算機之間通過USB接口進行傳輸,與傳統(tǒng)的串口傳輸相比,使用USB接口傳輸數(shù)據(jù)更快速、穩(wěn)定。LED光源的強弱是通過A/D轉換電路來調節(jié)的。系統(tǒng)的總體結構如圖1所示。
2? 定位算法
2.1? 結? 構
PC上位機發(fā)送控制命令給STM32,下位機STM32執(zhí)行相應的程序令電機運動,在電機運動的過程中產生反饋信號給STM32,再由下位機收集這些信息加以總結,最終反饋給上位機,并在界面中呈現(xiàn)出來。STM32具有功耗較低、實時性強、運行速度快等優(yōu)點,因此,本文使用STM32作為下位機。移動平臺用來放置待測樣品,通過控制電機的運動,包括[x],[y]坐標方向電機的前后移動和[z]坐標方向電機的上下移動,進而定位待測樣品的位置坐標。結構如圖2所示。
2.2? 邊界定位算法設計
首先定義存儲位置信息的坐標變量[x],[y],[z],上位機控制電機依次定位量子點陣列的左上角、左下角、右上角和右下角4個點的坐標,當4點坐標定位完成后通過邊界定位算法計算出量子點陣列中剩余點的坐標,公式如下:
[X[i]=zsx+mist[x]] (1)
[X[i+5]=X[i]+(X[i+20]-X[i]4)+mist[x]] (2)
式中:[i]是目標點數(shù);[X[i]]是第[i]個量子點的[x]坐標;[zsx]代表左上角的[x]坐標;mist[[x]]是定位時[x]坐標的誤差,當mist[[x]]取0時,表示定位準確,不需要進行調整。通過式(1),式(2)計算出左側、右側邊緣的量子點的[x]坐標,而陣列中間的量子點的[x]坐標則通過式(3)計算得到。
[X[i]=X[i-1]+(X[i+3]-X[i-1]4)+mist[x]]? (3)
[y]坐標和[z]坐標的定位算法與[x]坐標一致,由此,就可定位出所有量子點的位置坐標。
邊界定位算法步驟為:
1) 初始化電機的位置,即將[x],[y],[z]坐標清零;
2) 依次定位左上、左下、右上和右下角4個點的位置坐標;
3) 通過邊界定位公式計算出陣列左側和右側邊緣的量子點位置坐標;
4) 根據(jù)已定位的位置坐標計算剩余量子點的位置坐標;
5) 存儲所有量子點的位置坐標。
定位流程圖如圖3所示。
3? 系統(tǒng)軟件設計
本實驗主要使用Qt Creator平臺實現(xiàn)整個系統(tǒng)的編程與設計。系統(tǒng)采用多線程設計,總共分為4個線程,分別為:主線程、串口收發(fā)數(shù)據(jù)線程、CCD采集線程和光譜儀采集線程。其中,主線程用來進行界面操作和控制其他線程狀態(tài);串口收發(fā)數(shù)據(jù)線程負責接收下位機傳來的協(xié)議指令和發(fā)送上位機發(fā)送給下位機的協(xié)議指令,并對其做簡要處理;CCD采集線程負責向CCD設備請求在定位量子點過程中需要獲取的顯微圖像;光譜儀采集線程負責測試過程中向光譜儀請求量子點光譜信息。
3.1? 主線程設計
主線程主要用于總控制人機交互界面的響應和其他線程的啟動和停止。系統(tǒng)啟動過程中,首先會啟動串口線程和必要的信號、槽的連接,一些全局變量的初始化操作,以及其他子界面的構建,如系統(tǒng)配置界面、定位界面、試驗界面等,并與指定的串口端口建立連接,如果連接成功,則會啟動依賴于串口進行上、下位機通信的信號與槽函數(shù)的連接。主界面的組成結構如圖4所示。
3.2? 串口線程設計
串口線程設計用來專門接收和發(fā)送上位機與下位機之間的命令協(xié)議,在線程構建的過程中,程序會打開指定端口的串口,波特率為115 200 b/s,沒有流控,兩個停止位。線程一旦啟動成功,就會一直查詢串口是否接收到數(shù)據(jù)或者是否需要發(fā)送數(shù)據(jù),如果需要發(fā)送數(shù)據(jù)到下位機,那么程序會檢查此命令的長度,只有當長度符合要求時,才會執(zhí)行發(fā)送指令;如果串口有下位機傳來數(shù)據(jù),那么在此線程內部會執(zhí)行接收操作,并校驗指令的幀頭是否正確,只有當幀頭正確時,才會繼續(xù)執(zhí)行接收操作。當一幀數(shù)據(jù)接收完成后,還會校驗幀尾,只有當幀尾也正確時,才會將這一幀數(shù)據(jù)去掉幀頭和幀尾后傳送到主線程進行指令解析,否則,將接收到的數(shù)據(jù)全部丟棄。詳細流程如圖5所示。
3.3? CCD線程設計
程序首先檢測系統(tǒng)中可用的CCD設備,如果存在滿足要求的CCD設備,那么就對其進行初始化,并獲取設備信息。當主進程請求定位、獲取圖像時,程序會向CCD設備發(fā)送請求指令,并對獲取到的圖像數(shù)據(jù)進行格式轉換,轉換為QImage格式數(shù)據(jù),將其傳送到主進程顯示。詳細流程如圖6所示。
3.4? 光譜儀線程設計
首先,程序獲取系統(tǒng)中的可用光譜儀設備,如果存在,則對其執(zhí)行打開和初始化操作,如果打開成功且主進程在請求光譜信息,那么,此進程就會向光譜儀發(fā)送請求光譜指令,并將獲取到的光譜信息保存到指定的數(shù)據(jù)結構中,供主進程使用。詳細流程如圖7所示。
4? 系統(tǒng)測試結果
將待測樣品放置在移動平臺后,打開采集系統(tǒng)軟件,首先初始化系統(tǒng)的電機位置、電機移動速度和其他配置參數(shù),然后對量子點陣列進行定位,在定位過程中通過CCD實時傳輸量子點團簇的顯微圖像,如圖8a)所示。系統(tǒng)定位完成后,CCD線程將存儲的定位信息發(fā)送到主線程,并在定位界面上顯示位置坐標,如圖8b)所示。當主線程要獲取量子點的光譜信息時,光譜儀采集線程便向光譜儀請求光譜信息,顯示于圖形曲線顯示界面,如圖8c)所示。
5? 結? 論
本文使用QT Creator平臺設計并實現(xiàn)了光譜信號采集系統(tǒng),通過對主線程、串口收發(fā)數(shù)據(jù)線程、CCD采集線程和光譜儀采集線程的設計,大大提高了系統(tǒng)的運行速度。同時,根據(jù)邊界定位算法對系統(tǒng)的定位技術進行改進,減少了系統(tǒng)的光耦數(shù)量,降低了硬件的復雜性,避免了因定位不準確產生的誤差,從而提高了系統(tǒng)的檢測精度。但系統(tǒng)的電機運動完全由上位機控制,不能從軟件運行中及時發(fā)現(xiàn)電機的老化、松動等故障,應定期對系統(tǒng)進行維護和檢修。
參考文獻
[1] 周海彬,雷新卓,周望,等.基于Android系統(tǒng)的微型光譜儀總體設計[J].激光與光電子學進展,2016,53(6):298?304.
[2] 糜蓉,王永,熊顯名.基于Android平臺的微型光譜儀數(shù)據(jù)傳輸與顯示研究[J].計算機測量與控制,2015,23(12):4259?4262.
[3] 劉兵,劉英,李燦,等.輕小型可見/近紅外實時成像光譜儀的光學系統(tǒng)設計[J].光學學報,2015,36(6):321?328.
[4] LI Tengfei, LI Song, WANG Yapei, et al. Design of micro spectrometer for steel detecting [J]. Journal of applied optics, 2014, 35(6): 981?986.
[5] 杜曉晴,童廣,胥慶,等.微小型紅外光柵光譜儀光學系統(tǒng)的設計與優(yōu)化[J].應用基礎與工程科學學報,2009,17(1):85?91.
[6] 梁靜秋,梁中翥,呂金光,等.空間調制微型傅里葉變換紅外光譜儀研究[J].中國光學,2015(2):277?298.
[7] 胡方強,李晟.基于MEMS技術的便攜式近紅外光譜儀的研制[J].儀表技術,2012(12):21?23.
[8] 張寧,劉宇龍,吳嘉輝,等.微型光譜儀的CCD數(shù)據(jù)采集系統(tǒng)設計[J].紅外與激光工程,2015(1):141?147.
[9] 劉宇龍.微型光譜采集系統(tǒng)設計[D].長春:長春理工大學,2014.
[10] 王毅磊,高鵬飛,黃斐,等.基于STM32的光譜采集系統(tǒng)設計[J].電子科技,2017,30(2):1?3.
[11] 潘宇,羅永道.線陣CCD光譜采集系統(tǒng)的自適應濾波降噪[J].光學儀器,2016,38(2):167?172.
[12] 王博,白永林,歐陽嫻,等.基于線陣CCD的高速光譜信息采集系統(tǒng)的研究[J].光子學報,2010,39(3):441?445.
[13] QIAO Zhaowei, SHI Tingna, WANG Yindong, et al. New sliding?mode observer for position sensorless control of permanent?magnet synchronous motor [J]. IEEE transactions on industrial electronics, 2013, 60(2): 710?719.
[14] 賈啟.三自由度永磁同步平面電機定位控制研究[D].沈陽:沈陽工業(yè)大學,2013.
[15] LI Chuanjun, LIANG Qiujuan. Many high performance motion control of linear motor drive system research [J]. Applied mechanics and materials, 2014, 599: 981?984.