基于ARM9平臺的電子指南針的設(shè)計(jì)
4.3.2 界面實(shí)現(xiàn)
信號和槽機(jī)制是Qt的核心機(jī)制,是一種高級接口,應(yīng)用于對象之間的通信,是Qt區(qū)別于其他工具包的重要地方。電子指南針的界面設(shè)計(jì)先把所需控件布局好,然后通過信號與槽函數(shù),使布局好的界面能夠運(yùn)行起來。
本設(shè)計(jì)中信號函數(shù)所對應(yīng)的按鈕控件QPushButtom類分為開始測試和結(jié)束測試兩個發(fā)射信號的按鈕。當(dāng)點(diǎn)擊開始測試的時候,信號相應(yīng)的槽函數(shù)所對應(yīng)的控件包括溫度顯示和方位顯示的控件QLCDNumber類型,時間顯示槽函數(shù)對應(yīng)的控件QtimeEdit類型以及方位指示槽函數(shù)所對應(yīng)的控件QWTCompass類型都開始顯示數(shù)據(jù)。當(dāng)點(diǎn)擊結(jié)束測試這個信號函數(shù)的控件時,電子指南針就不顯示數(shù)據(jù)。
5 軟件抗干擾設(shè)計(jì)
軟件抗干擾主要是消除硬磁干擾和軟磁干擾的影響。軟磁干擾算法較為復(fù)雜,且效果有限,一般實(shí)驗(yàn)時盡量讓指南針不受外界磁場干擾。本文主要介紹消除硬磁干擾的補(bǔ)償方法。二維指南針在沒有誤差的情況下,x軸和y軸輸出的對應(yīng)關(guān)系可以表示為極坐標(biāo)系下的一個圓。當(dāng)有硬磁干擾時,此圓偏離圓的中心。校準(zhǔn)方法為:將指南針在水平面上選擇一周,記錄下x,y方向磁場強(qiáng)度的最大值xmax,ymax和最小值 xmin,ymin,校準(zhǔn)偏移量為:
xoffset=(xmax+xmin)/2
yoffset=(ymax+ymin)/2
每次測量方位時,都應(yīng)將x,y方向的磁場強(qiáng)度大小減去相應(yīng)的校準(zhǔn)偏移量即可校準(zhǔn)硬磁干擾。
6 實(shí)驗(yàn)結(jié)果與數(shù)據(jù)分析
編譯好ARM版本的應(yīng)用程序后,可通過網(wǎng)絡(luò)文件系統(tǒng)(NFS)、USB等方式拷貝到mini2440開發(fā)板上執(zhí)行,程序運(yùn)行效果如圖9所示。
6.1 實(shí)驗(yàn)結(jié)果
采用補(bǔ)償校準(zhǔn)后,對電子指南針進(jìn)行了數(shù)據(jù)測量。先將標(biāo)準(zhǔn)羅盤水平放置,按每30°的間隔劃分13個點(diǎn)。然后將指南針分別對準(zhǔn)0°的點(diǎn),依次測量13個點(diǎn)的數(shù)據(jù),如表1所示。
6.2 實(shí)驗(yàn)數(shù)據(jù)分析
本文設(shè)計(jì)的是二維電子指南針,從實(shí)驗(yàn)結(jié)果可知指南針精確度為±2°。影響精度的原因主要是存在系統(tǒng)誤差和環(huán)境磁場的影響,但能夠滿足精確度要求不是特別高的場合。
7 結(jié)語
本文主要是實(shí)現(xiàn)了一款基于ARM9平臺的二維電子指南針,采用Qt界面設(shè)計(jì)顯示溫度,方位,時間等信息,對Linux Qt界面設(shè)計(jì)進(jìn)行了相關(guān)的探討,分析了指南針精度受影響的情況,給出了一種軟件補(bǔ)償算法以提高精度。本文設(shè)計(jì)的電子指南針可作為其他的Linux產(chǎn)品的接口,具有一定的市場應(yīng)用價值。
評論