作者:周江華 , 烏建中 , 徐鳴謙
通過人眼觀察進(jìn)行識(shí)讀的傳統(tǒng)水準(zhǔn)器式傾斜儀表,直觀但精度不高、靈活性不強(qiáng)。通過引入CCD圖像傳感器采集水準(zhǔn)器中氣泡圖像并結(jié)合圖像識(shí)別算法分析計(jì)算氣泡圖形邊緣,研究開發(fā)了具備傾斜角度數(shù)值輸出能力的新型傾斜傳感器。并進(jìn)一步通過采用DSP處理器并應(yīng)用嵌入式設(shè)計(jì)方法,設(shè)計(jì)了該類型傾斜傳感器的小型化原型,從而顯著地提高了測(cè)量精度和應(yīng)用的靈活性,克服了傳統(tǒng)儀表的不足。
傾斜傳感器(又稱為水平儀)是測(cè)量微小傾斜角的一種測(cè)量器具,主要用于測(cè)量或檢驗(yàn)相對(duì)于水平位置的傾斜角、表面的水平度、垂直度等,因此在機(jī)械制造、設(shè)備安裝和維修中,傾斜傳感器是最基本的測(cè)量器具之一。根據(jù)工作原理,傾斜傳感器一般可以分為水準(zhǔn)器式傾斜傳感器、光學(xué)傾斜儀和電子傾斜傳感器等幾大類別。
基本原理
微型傾斜傳感器的設(shè)計(jì)結(jié)合了水準(zhǔn)器式傾斜傳感器和電子傾斜儀表的優(yōu)點(diǎn),通過采用CCD傳感器采集水準(zhǔn)器中氣泡的圖像,再通過圖像處理來獲取氣泡的位置,進(jìn)而計(jì)算傾斜參數(shù)。
圖1是傳統(tǒng)水平儀示意圖。當(dāng)水平儀傾斜時(shí),玻璃管中的氣泡移動(dòng),偏離中心位置。偏離中心位置的大小與水平傾角相關(guān)。在這種情況下,水平儀只能測(cè)量相對(duì)水平方向的傾角,測(cè)量的傾角范圍相對(duì)較小、測(cè)量精度不高。因而它通常只能用來判斷是否水平,而不能用來測(cè)量具體的傾斜角度。
將上面的管狀水準(zhǔn)泡改變成圓盤形后,如圖2 所示,則可以通過氣泡的位置來測(cè)量二維平面的傾斜角度。為了進(jìn)一步提高傾角的測(cè)量范圍,可將盤形水準(zhǔn)泡變?yōu)榍蛐?,可以通過計(jì)算投影平面上氣泡的位置來獲得球面上氣泡相對(duì)于鉛垂線的角度。
如圖3所示,通過CCD攝像頭采集水準(zhǔn)泡圖像,再利用圖像處理獲取氣泡邊緣并計(jì)算氣泡中心點(diǎn)的坐標(biāo),從而可以計(jì)算出相對(duì)于水準(zhǔn)泡中垂線的方位和傾角。
原型設(shè)計(jì)
硬件方案
在實(shí)驗(yàn)階段,根據(jù)現(xiàn)有的器材,先采用如圖3所示的“快速原型”方式,即通過連接電腦的攝像頭來采集水準(zhǔn)泡的圖像,并在PC機(jī)上進(jìn)行圖像處理和氣泡位置識(shí)別,進(jìn)而計(jì)算出傾斜數(shù)值。在調(diào)試驗(yàn)證了方案的可行性之后,再采用DSP處理器,重新設(shè)計(jì)電路板,將圖像采集和圖像處理集成,從而將其小型化,實(shí)現(xiàn)傾斜傳感器的樣品。
軟件方案
數(shù)據(jù)處理
系統(tǒng)數(shù)據(jù)采集及處理流程如圖4所示。
數(shù)據(jù)采集處理主要包括:
① 攝像頭中的處理器通過AD采樣獲取了CCD傳感器中各點(diǎn)數(shù)據(jù)之后,通過USB傳送到PC機(jī)。
② PC機(jī)一方面將USB 傳來的數(shù)據(jù)按幀顯示到屏幕上;另一方面將每幀圖像轉(zhuǎn)化為數(shù)據(jù)矩陣,交給由MATLAB語言編制的邊緣檢測(cè)函數(shù)處理。
③ 處理邊緣檢測(cè)函數(shù)輸出的二值圖像,計(jì)算出邊緣對(duì)象的中心位置,并顯示到屏幕上。
④ 由于圓盤形水準(zhǔn)器表面不能是完全水平的或者由于水準(zhǔn)泡是球形的,故需要根據(jù)成像模型進(jìn)行適當(dāng)修正,方能計(jì)算出實(shí)際的傾斜程度和方位。
圖像處理算法
在設(shè)計(jì)中,需要從圖像中找到氣泡邊緣,因而要選擇合理的邊緣檢測(cè)算法。目前常用的邊緣檢測(cè)主要有Roberts算子、Sobel算子、Lap lace 差分算子、Prewitt算子、Marr算法等??紤]本設(shè)計(jì)中的成像圖像比較簡(jiǎn)單、干擾信息較少,而且可以通過調(diào)整背景和光照增強(qiáng)氣泡圖形,所以在實(shí)際實(shí)驗(yàn)中采用了最簡(jiǎn)單常用的Sobel算子。同時(shí)利用Matlab作為程序設(shè)計(jì)語言,應(yīng)用其工具箱中成熟的圖像處理算法。
通過編程實(shí)現(xiàn)的邊緣檢測(cè)效果如圖5所示。CCD攝像頭采集到的水準(zhǔn)泡的圖形,經(jīng)過預(yù)處理之后顯示在左邊圖片框中,右邊為處理結(jié)果,包括氣泡的邊緣、邊緣對(duì)象的中心(表示為圓點(diǎn))以及表示相對(duì)參考點(diǎn)(表示為方塊)偏離角度和距離的直線。
系統(tǒng)功能模塊及硬件設(shè)計(jì)
功能模塊結(jié)構(gòu)
在PC機(jī)上驗(yàn)證之后,接下來的是設(shè)計(jì)專門的電路板,實(shí)現(xiàn)小型化的要求。根據(jù)實(shí)際需要,設(shè)計(jì)電路板的功能模塊,其硬件結(jié)構(gòu)如圖6所示。
功能模塊主要包括了4個(gè)部分: ①CCD傳感器,用于采集水準(zhǔn)泡圖像。②DSP處理器,用于讀取CCD傳感器數(shù)據(jù)并處理讀取數(shù)據(jù),完成圖像邊緣識(shí)別及傾斜角度計(jì)算功能。另外,還需輸出數(shù)據(jù),顯示到屏幕上和發(fā)送到RF芯片。③RF模塊,用于發(fā)送傳感器的輸出數(shù)據(jù)。當(dāng)傳感器的安裝位置比較特殊時(shí),采用無線方式將減少線纜的麻煩,提高應(yīng)用的靈活性。④LCD模塊,主要用于顯示數(shù)據(jù),根據(jù)需要,設(shè)計(jì)成可選模塊。
電路板設(shè)計(jì)
根據(jù)上面的系統(tǒng)模塊結(jié)構(gòu)要求,選擇元件繪制原理圖并生成電路板PCB圖。在電路板的布局上,注意以下幾點(diǎn):
① 電路板的大小和水準(zhǔn)器圓盤的相互匹配。
② 核心元件CCD傳感器芯片和DSP處理芯片布局。將其中的CCD芯片布置在電路板的中心,同時(shí)在CCD芯片四周留出鉆孔位置,方便安裝鏡頭。為減少電路板的面積,將DSP芯片放置在反面中間位置。再在四周布置必要的分立元件及用于連接RF發(fā)送模塊的接插件,顯示單元也做成模塊式,方便顯示單元的拆裝。
嵌入式系統(tǒng)的軟件設(shè)計(jì)
核心算法的代碼移植
由于在前面的方案驗(yàn)證中,采用的是Matlab高級(jí)語言編制的邊緣檢測(cè)算法,因此需要將其轉(zhuǎn)化為DSP開發(fā)工具環(huán)境支持的C語言,利用Matlab 中的MCC編譯工具將M函數(shù)轉(zhuǎn)換為C語言。
代碼集成
將邊緣檢測(cè)算法轉(zhuǎn)化為開發(fā)工具所支持的語言之后,將編制的CCD芯片的讀寫操作函數(shù),數(shù)據(jù)處理結(jié)果輸出函數(shù)集成起來,通過調(diào)試排除基本的語法及邏輯錯(cuò)誤,實(shí)現(xiàn)編譯通過,生成機(jī)器代碼。
在線調(diào)試
完成上面的代碼集成之后,通過聯(lián)機(jī)調(diào)試實(shí)現(xiàn)系統(tǒng)的功能。
① 監(jiān)視程序中的變量,按照數(shù)據(jù)的流向,從數(shù)據(jù)源(即從CCD中讀取的數(shù)據(jù))開始檢查排除錯(cuò)誤一直到最后輸出結(jié)果。
② 在輸出結(jié)果基本正確之后,通過測(cè)量出的實(shí)際的傾斜數(shù)值和系統(tǒng)輸出數(shù)值的比較,修正校驗(yàn)直到達(dá)到滿意結(jié)果。
結(jié)束語
微型傾斜傳感器的設(shè)計(jì),目前還存在以下幾個(gè)方面問題需要繼續(xù)研究:
① 系統(tǒng)的精度:由于高的系統(tǒng)精度需要CCD有較高的分辨率,同時(shí)要求水準(zhǔn)器需要有足夠的面積,但這會(huì)和系統(tǒng)的成本和體積相矛盾。
② 系統(tǒng)的響應(yīng)時(shí)間:由于采用了水準(zhǔn)泡,而液體有一定的粘度,從而影響了水泡的流動(dòng)速度,降低了系統(tǒng)的響應(yīng)時(shí)間。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2551文章
51134瀏覽量
753902 -
處理器
+關(guān)注
關(guān)注
68文章
19293瀏覽量
229966 -
CCD
+關(guān)注
關(guān)注
32文章
881瀏覽量
142304
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論