新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于嵌入式ARM9的墻面平整度檢測儀研究與實(shí)現(xiàn)

基于嵌入式ARM9的墻面平整度檢測儀研究與實(shí)現(xiàn)

作者: 時(shí)間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

房屋的是衡量房屋建筑質(zhì)量的一項(xiàng)重要指標(biāo)。現(xiàn)有的檢測方法要么操作不方便且效率低下,如靠尺;要么檢測儀器本身比較復(fù)雜,不易操作,需要專業(yè)的操作技巧,如使用“百分表打點(diǎn)”檢測;或者儀器本身比較昂貴,無法廣泛推廣和使用,如利用無協(xié)作目標(biāo)電子全站儀檢測。所以研究一種原理簡單,操作方便,價(jià)格便宜,體積小,便攜式的手持移動檢測設(shè)備是非常有必要且具一定商業(yè)價(jià)值的。

本文引用地址:http://m.butianyuan.cn/article/201610/308709.htm

1 系統(tǒng)的總體設(shè)計(jì)

系統(tǒng)的目標(biāo)是:設(shè)計(jì)一個(gè)嵌入式手持設(shè)備,實(shí)現(xiàn)對墻面平整度的檢測。具體的實(shí)現(xiàn)過程為:USB攝像頭以小分辨率(320*240)采集動態(tài)視頻,旋轉(zhuǎn)后直接顯示在LCD上,通過觀察LCD上的動態(tài)顯示內(nèi)容確定所選場景是否滿足要求。待出現(xiàn)滿足要求的場景后開始測量,此時(shí)USB攝像頭以大分辨率(1 600*1 200)采集一幅靜態(tài)圖片傳給CPU處理,最后CPU將處理的結(jié)果顯示在LCD上。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。

a.jpg

2 系統(tǒng)硬件平臺的構(gòu)建

2.1 微處理器及存儲模塊

本系統(tǒng)的微處理器采用飛思卡爾公司的MCIMX283。該處理器基于26構(gòu)架,主頻最高達(dá)450MHz;采用NANDFlash啟動,其工作電壓范圍是2.7~3.6V,容量為128M×8bit,

能滿足系統(tǒng)和各類數(shù)據(jù)的存儲要求。采用H5P92562GFR—s6c運(yùn)行操作系統(tǒng)和應(yīng)用程序,該芯片為DDR2 SDRAM,bank數(shù)為4,數(shù)據(jù)寬度2 bytes,容量大小為32MB。與傳統(tǒng)的SDRAM相比,DDR2 SDRAM存取速度有了極大提高,但工作電壓卻很低,因此運(yùn)行速度和功耗有很大改進(jìn)。微處理器和DDR2、NAND Flash的連接示意圖如圖2所示。

b.jpg

2.2 電源、時(shí)鐘和復(fù)位模塊

MCDMX283內(nèi)部集成了電源管理單元(PMU),外部只需要提供規(guī)定的電源(5V或者4.2V)就可產(chǎn)生核心板需要的各種電壓。但MCIMX283內(nèi)部電源管理單元輸出能力有限,因此PMU所產(chǎn)生的3.3 V、1.8 V等電源除了給DDR2、NANDFlash供電外沒有給其他外圍設(shè)備使用。其他外圍設(shè)備的供電可由外部供電經(jīng)過LDO轉(zhuǎn)換為所需電壓以供使用。

此外,系統(tǒng)中采用晶體振蕩器產(chǎn)生時(shí)鐘源信號,復(fù)位模塊采用手動復(fù)位。

2.3 USB和LCD接口電路模塊

USB接口按主從關(guān)系可分為USB Host和USB OTG。USB Host用來掛載Deviec設(shè)備,本系統(tǒng)中是掛載USB攝像頭,以實(shí)現(xiàn)視頻和圖像的采集;USB OTG用以和PC機(jī)通信,實(shí)現(xiàn)PC機(jī)向NAND Flash下載內(nèi)核、根文件系統(tǒng)等功能。

LCD用來顯示USB攝像頭采集的視頻數(shù)據(jù)和處理后的圖像。MCIMX283集成LCD控制器和觸摸屏控制器,支持24位的RGB和24位系統(tǒng)模式,同時(shí)支持四線電阻觸摸屏。本系統(tǒng)中LCD只用作顯示,不需要觸摸功能,同時(shí)為了充分利用IO資源,系統(tǒng)采用16位RGB顯示。

3 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)軟件設(shè)計(jì)包括軟件平臺的搭建和檢測軟件的實(shí)現(xiàn)。軟件平臺的搭建主要完成嵌入式操作系統(tǒng)的移植和主要模塊的驅(qū)動移植,檢測軟件的實(shí)現(xiàn)即檢測算法的實(shí)現(xiàn),是檢測系統(tǒng)的核心部分。

3.1 操作系統(tǒng)的移植

嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的軟件基礎(chǔ),是應(yīng)用程序開發(fā)的軟件平臺。對于一個(gè)系統(tǒng),系統(tǒng)上電后經(jīng)過加載Bootloader、啟動Linux內(nèi)核、掛載根文件系統(tǒng)3個(gè)步驟后,用戶程序才能正常運(yùn)行,而且這3個(gè)步驟是缺一不可的。

3.2 主要模塊驅(qū)動的移植

驅(qū)動的移植是嵌入式系統(tǒng)不可缺少的過程,本系統(tǒng)中主要完成的驅(qū)動移植有檢測按鈕驅(qū)動的移植、USB攝像頭驅(qū)動的移植、LCD驅(qū)動的移植。

首先要移植按鍵按鈕的驅(qū)動,本系統(tǒng)中我們使用一個(gè)GPIO引腳來模擬開關(guān)按鈕。選定引腳后先將該引腳配置成GPIO功能,生成引腳的屬性文件,然后編譯mykey.c文件,將按鍵驅(qū)動插入內(nèi)核中,完成按鍵驅(qū)動的移植。

由于本系統(tǒng)使用Linux2.6.35版本,該版本支持UVC類設(shè)備,而我們選用的USB攝像頭為XHV57-NBL60-V1.0,支持UVC標(biāo)準(zhǔn),所以我們不需要編寫驅(qū)動,只是在配置內(nèi)核時(shí)將UVC靜態(tài)編譯進(jìn)內(nèi)核即可。

本系統(tǒng)選用的2.8寸LCD不帶驅(qū)動板,因此不但要配置LCD控制器的參數(shù),還要通過SPI初始化LCD寄存器。根據(jù)LCD時(shí)序圖,設(shè)置LCD控制器的輸出時(shí)序,再根據(jù)系統(tǒng)需求和相關(guān)手冊,設(shè)置LCD寄存器的值,這樣上電后,LCD就能工作在預(yù)定狀態(tài)下。

3.3 檢測軟件的實(shí)現(xiàn)

激光檢測系統(tǒng)的總體設(shè)計(jì)分為兩部分:視頻采集模式和圖像采集模式。上電復(fù)位后系統(tǒng)進(jìn)入視頻采集模式,攝像頭采集320*240的YUV422視頻幀圖像,將采集到的YUV幀圖像轉(zhuǎn)換為RGB565,旋轉(zhuǎn)90度轉(zhuǎn)為240*320,然后顯示到LCD上。此時(shí)通過觀察LCD上顯示的動態(tài)圖像(即視頻)即可確定攝像頭所選“場景”是否滿足要求。待所選“場景”滿足要求后按下“開始測量”按鈕,即可進(jìn)入拍照模式。進(jìn)入拍照模式后,系統(tǒng)修改攝像頭分辨率,采集一幅1600*1200的YUV圖像,將此圖像轉(zhuǎn)換為1600*1200的RGB888圖像,調(diào)用算法處理RGB888圖像,然后將處理后的圖像壓縮為320*240的RGB888,將壓縮后的圖像轉(zhuǎn)換為RGB565,再旋轉(zhuǎn)90度顯示在LCD上,此時(shí)通過觀察LCD上的顯示結(jié)果就可知道激光線照射到的墻面部分的平整度情況了。觀察記錄完檢測結(jié)果后按下“開始測量”按鈕即可進(jìn)入視頻采集模式,選取合適“場景”后再次按下“開始測量”按鈕即可進(jìn)入下次檢測。檢測軟件的總體框架如圖3所示。

c.jpg

視頻的采集就是讀取USB攝像頭獲得的視頻數(shù)據(jù)流,交給處理器處理。拍照模式是檢測系統(tǒng)中主要功能的實(shí)現(xiàn)部分,進(jìn)入該模式后,系統(tǒng)首先更改攝像頭的分辨率,采集一幅1600*1200的YUV圖像。根據(jù)YUV和RGB的轉(zhuǎn)換關(guān)系,將圖像轉(zhuǎn)換為RGB888。然后執(zhí)行以下過程:

1)遍歷圖像的每個(gè)像素點(diǎn),根據(jù)既定閾值找出激光線的起始坐標(biāo),將激光線始末點(diǎn)之間的距離分為N段,為后續(xù)分段處理做準(zhǔn)備;

2)定義二維數(shù)組dealpt[20][1600],存放激光線上激光像素的坐標(biāo);

3)利用最小二乘法擬合激光線,確定激光線的系數(shù)a、截距b,得到激光線y=ax+b,將擬合的激光線標(biāo)成純紅(R=255,G=0,B=0);

4)求每一列中擬合激光線上激光點(diǎn)的y軸坐標(biāo)與實(shí)際激光線上該列所有激光點(diǎn)y軸坐標(biāo)差的和,以段為單位,計(jì)算第L段上所有坐標(biāo)差的總和difn[L];

5)根據(jù)difn[L]絕對值的大小,就能知道第L段內(nèi)激光線的曲直程度,從而可以確定第L段內(nèi)墻面的凹凸程度。difn[L]絕對值越大,說明第L段內(nèi)凹凸程度越大,我們就將此段內(nèi)的擬合激光線標(biāo)黑的程度越大,當(dāng)difn[L]超過某一閾值,則將該段內(nèi)的擬合激光線標(biāo)成純黑(R=0,G=0,B=0)。

以上處理過程完成后,使用下采樣方式縮小圖片,得到320*240的RGB888圖像,然后再轉(zhuǎn)換為RGB565,旋轉(zhuǎn)90度后顯示在LCD上,通過LCD上顯示的內(nèi)容,即可判斷墻面相應(yīng)部分的凹凸情況。

3.4 激光圖像檢測算法的改進(jìn)

上述算法在正常光照情況下能得到很好的檢測效果,但在極端的光照情況下(如周圍光照特別亮或者特別暗的情況)顯示效果卻不盡人意。光照太強(qiáng),墻面背景較亮,相對情況下激光線亮度就會變?nèi)?,就很難將激光線提取出來;光線太弱,墻面背景較暗,此時(shí)激光線就會出現(xiàn)過飽和,激光線上像素點(diǎn)的R、G、B分量都趨于255,這時(shí)應(yīng)用以上算法就無法將激光線提取出來;如果光照不是自然光,如光照為藍(lán)光或者綠光,這樣也會影響激光線的提取,如果光照為紅光,且光強(qiáng)足夠大,則激光線就會完全無法提取。

為了準(zhǔn)確地將激光線像素點(diǎn)從激光圖像中提取出來,我們要根據(jù)不同的光照環(huán)境,確定不同的激光提取閾值條件,為此我們提出了改進(jìn)算法,即在圖像預(yù)處理前先求得整個(gè)圖像R、G、B分量的平均值averR、averG、averB,然后根據(jù)averR、averG、averB分情況處理激光圖像,這樣就能很好地將激光線從激光圖像中提取出來,極大地提升了系統(tǒng)的處理能力和適應(yīng)能力,使墻面檢測儀可以適用于各種不同的光照環(huán)境中。

4 檢測結(jié)果分析

4.1 墻面不同凹凸情況下的檢測結(jié)果

國家墻面平整度驗(yàn)收標(biāo)準(zhǔn)為:用兩米的靠尺檢測墻面,平整度偏差在3 mm以內(nèi)就算合格,因此我們的墻面平整度必須檢測出3 mm以內(nèi)的凹凸才算合格。如圖4(a)中的木板厚度約15 mm,必然能檢測出,因此標(biāo)黑,而木板下方用靠尺檢測凹凸最大的地方為2 mm,本系統(tǒng)也能檢測出,所以當(dāng)墻面有高凸起時(shí)系統(tǒng)不但能檢測出高凸起部分同時(shí)也能檢測出凹凸值不大的地方。圖4(b)、(c)、(d)凹凸值((;CI))最大分別為3.5 mm、2 mm、0.4 mm,可以看出這些凹凸位置本系統(tǒng)都能檢測出,當(dāng)凹凸程度小于0.4 mm時(shí)基本就檢測不出了,因此在正常光照情況下,本系統(tǒng)可以檢測出凹凸程度大于0.4mm的凹凸位置,其精度遠(yuǎn)遠(yuǎn)高于國家規(guī)定的標(biāo)準(zhǔn)。

d.jpg

4.2 特殊光照下的檢測結(jié)果

由于對算法進(jìn)行了改進(jìn),因此本系統(tǒng)也可以檢測特殊光照下的墻面,本實(shí)驗(yàn)以綠光為實(shí)驗(yàn)。

如圖5所示,其中(a)、(b)、(c)、(d)檢測位置的凹凸值最大分別為3.5 mm、2 mm、1.5 mm、0.8 mm。

e.jpg

由結(jié)果可以看出,由于改進(jìn)了算法,使得檢測儀能很好的檢測出特殊光照下的墻面的平整度,且檢測精度至少為0.8 mm。

5 結(jié)論

隨著個(gè)人家庭裝修的流行和房屋驗(yàn)收標(biāo)準(zhǔn)的提高,房屋墻面平整度檢測設(shè)備必然向智能化、便攜化、易操作、價(jià)格便宜等方向發(fā)展。本文就是研究并實(shí)現(xiàn)了一種基于的嵌入式墻面平整度手持檢測設(shè)備。并且通過檢測結(jié)果的分析,證明了本系統(tǒng)具有很好的檢測效果。需要指出的是,本系統(tǒng)中照射到墻面的激光線為垂直方向,如果激光線為水平方向,則無法檢測。而且系統(tǒng)設(shè)計(jì)過程中沒有綜合考慮性能問題,導(dǎo)致主芯片發(fā)熱過高,以上兩點(diǎn)是今后亟待解決的問題。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉