【正文】
ultipath Mitigation for a PhaseBased Infrared Ranging System Applied to Indoor Positioning.2013 International Conference on Indoor Positioning and Indoor Navigation,October 2013:15.[15] 李錄鋒.基于AT89C51超聲波測(cè)距控制系統(tǒng)設(shè)計(jì).制造業(yè)自動(dòng)化.2012,34(2):13.[16] 蔡紅霞,劉繼勇.基于FPGA脈沖激光測(cè)距高精度時(shí)間間隔的測(cè)量.計(jì)算機(jī)與數(shù)字工程.2013,11:13.附錄A/********************************** 本程序主要功能:將紅外測(cè)距傳感器測(cè)得距離顯示在lcd上**************************************************/include include include include include include include int main(void){u8 i= 0。infrared由于我的學(xué)術(shù)水平有限,本論文難免會(huì)有不足之處,懇請(qǐng)各位老師和同學(xué)批評(píng)和指正。還要感謝本文所涉及到的各位學(xué)者,本文借鑒了數(shù)位學(xué)者的理論知識(shí)和研究成果,讓我更好地完成了對(duì)論文的撰寫。另外,在查找資料的時(shí)候,圖書館的老師也給我提供了很多方面的支持與幫助,在此,我向幫助和指導(dǎo)過(guò)我的各位老師表示最衷心的感謝。本論文的撰寫工作主要是在我的導(dǎo)師盧迪老師的悉心指導(dǎo)下完成的,盧迪老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的管理方法給我了極大的幫助和信心。致謝為期將近三個(gè)月的時(shí)間,本篇論文終于撰寫完畢。雖然最終所設(shè)計(jì)的紅外測(cè)距系統(tǒng)未能達(dá)到更高的要求,但在工作范圍內(nèi)測(cè)量結(jié)果誤差影響相對(duì)較小,可以滿足日常生活、工業(yè)生產(chǎn)的測(cè)量要求。對(duì)于不同形狀的測(cè)量物體也有著相對(duì)的影響,由于不規(guī)則的形狀影響了紅外線的發(fā)射與接收,所得到的測(cè)量結(jié)果也相對(duì)精度較低,于平面物體測(cè)量結(jié)果的穩(wěn)定性和精確度就較高。由于實(shí)驗(yàn)條件有限,對(duì)此紅外測(cè)距系統(tǒng)并為在加有電磁干擾的情況下進(jìn)行測(cè)量,所以不能確定的是測(cè)量過(guò)程中外界電磁波的有無(wú)對(duì)測(cè)量精度是否有影響。由于本論文所設(shè)計(jì)的紅外測(cè)距系統(tǒng)比較簡(jiǎn)單,所以在測(cè)量時(shí)紅外測(cè)距傳感器并為固定在指定位置,而恰巧紅外傳感器接收端與發(fā)射端和地面呈的角度對(duì)這測(cè)量精度有著很大影響,所以在工作測(cè)量時(shí),一定要注意紅外傳感器的擺放角度。而且能在短時(shí)間內(nèi)多次測(cè)量,經(jīng)修改的紅外測(cè)距系統(tǒng)穩(wěn)定性比較好、靈敏度也較高、結(jié)構(gòu)簡(jiǎn)單,測(cè)量時(shí)只需保證周圍沒(méi)有干擾物體即可,當(dāng)然在檢測(cè)過(guò)程中也發(fā)現(xiàn)了一些不足的地方:根據(jù)紅外傳感器GP2Y0A21的使用手冊(cè)可知其工作電壓有著精確的范圍,所以在工作測(cè)量時(shí),必須保證其電壓源的穩(wěn)定,且在10厘米之內(nèi)和80厘米之外傳感器 均會(huì)傳回不準(zhǔn)確的測(cè)量值。當(dāng)然,系統(tǒng)在工作穩(wěn)定性上還需要改進(jìn)。從測(cè)量數(shù)據(jù)與繪圖來(lái)看,本論文所研究的紅外測(cè)距系統(tǒng)工作范圍在1080厘米,其電壓與距離的不是純線性關(guān)系,是一條平滑的非線性反比例曲線。對(duì)我自己的品質(zhì)也進(jìn)行了歷練,讓我更加知道了持之以恒的道理。在程序編寫的過(guò)程中我深刻地認(rèn)識(shí)到了各種工作語(yǔ)言的重要性,并且你需要對(duì)STM32單片機(jī)各種函數(shù)語(yǔ)句的使用進(jìn)行掌握,單是函數(shù)語(yǔ)句的名稱就很難記住,更何況每個(gè)語(yǔ)句的功能及使用方法。圖15 1/(R+k)與電壓輸出曲線圖16,圖17,圖18是測(cè)量數(shù)據(jù)中采集的照片。圖14 電壓距離輸出曲線圖15是1/(R+k)與電壓輸出曲線,為了使曲線線性化便于分析和處理數(shù)據(jù),把公式(31)進(jìn)行整理,使1/(R+k)與電壓成線性關(guān)系,并繪圖。表4 測(cè)量數(shù)據(jù)電壓VAD754414290235190166141123測(cè)量值R cm1/(R+k)實(shí)際距離cm1020304050607080經(jīng)過(guò)實(shí)際測(cè)量,得出如表4的實(shí)驗(yàn)數(shù)據(jù),為了對(duì)比實(shí)驗(yàn)結(jié)果分別以距離、電壓兩個(gè)變量作為橫縱坐標(biāo)對(duì)數(shù)據(jù)進(jìn)行繪圖,由于數(shù)據(jù)是離散的且不遵守某個(gè)函數(shù),選擇采用Labview軟件進(jìn)行作圖。測(cè)量數(shù)據(jù)如表4所示。紅外傳感器GP2Y0A21正常的電壓距離輸出曲線為圖5所示。根據(jù)所設(shè)計(jì)的電路結(jié)構(gòu)、編寫的程序及傳感器本身的功能,在測(cè)量范圍內(nèi)對(duì)各個(gè)距離進(jìn)行多次測(cè)量并與實(shí)際距離相比較,通過(guò)對(duì)實(shí)驗(yàn)數(shù)據(jù)的分析,不斷調(diào)節(jié)器件和修改程序使紅外測(cè)距系統(tǒng)能更精確、更穩(wěn)定地達(dá)到實(shí)際使用的要求。然后再開(kāi)始編寫相應(yīng)的功能模塊的子程序,對(duì)A/D轉(zhuǎn)換程序、LCD1602顯示程序等都需要一一編寫。再者就是由于紅外測(cè)距系統(tǒng)中單片機(jī)與LCD之間的連接為直接采用跳線連接I/O的方法,為了提高系統(tǒng)工作的穩(wěn)定性及抗干擾能力,防止工作過(guò)程中排針與跳線之間松動(dòng),單對(duì)LCD顯示模塊又焊接了一塊擴(kuò)展板,把接地端及電源端盡量合并,減少對(duì)跳線的使用,提高系統(tǒng)工作穩(wěn)定性及可靠性。其次,對(duì)紅外傳感器模塊進(jìn)行檢查,由于本論文重點(diǎn)研究方向不在傳感器內(nèi)部結(jié)構(gòu)與工作原理方面,所采用的紅外傳感器GP2Y0A21是由日本夏普公司所提供的完整模塊,所以只需把單片機(jī)編入A/D轉(zhuǎn)換程序后是紅外傳感器的Vout引腳接入單片機(jī)的PA7引腳,通過(guò)串口檢驗(yàn)是否有電壓輸入,如若有則證明此模塊可以作為所設(shè)計(jì)系統(tǒng)的紅外傳感器模塊,如若沒(méi)有,則需調(diào)試或者調(diào)換另一模塊。(3)檢查帶有極性原件的焊接是否焊反。首先,對(duì)單片機(jī)處理模塊進(jìn)行調(diào)試,此模塊是整個(gè)紅外測(cè)距系統(tǒng)工作的大腦,所以對(duì)此模塊的要求絕對(duì)要做到萬(wàn)無(wú)一失,對(duì)此模塊我進(jìn)行了如下調(diào)試:(1)檢查開(kāi)發(fā)板電源電路是否短路,造成開(kāi)發(fā)板損壞。本論文采用了這個(gè)擬合之后的公式,并在編程時(shí)直接編入電壓距離轉(zhuǎn)換公式,燒入單片機(jī)內(nèi)直接進(jìn)行測(cè)量。在這里需要說(shuō)明的是按照紅外傳感器GP2Y0A21給出使用手冊(cè),正常經(jīng)過(guò)軟件編程并成功下載到STM32單片機(jī)之后,測(cè)量結(jié)果所繪制的電壓距離曲線應(yīng)該是一條非線性曲線,如圖5所示。(4)根據(jù)系統(tǒng)工作流程圖編寫源程序,對(duì)主函數(shù)及子函數(shù)的功能進(jìn)行逐一分析,并寫出相應(yīng)的程序。(2)確定所需要函數(shù)及算法,根據(jù)系統(tǒng)設(shè)計(jì)要求及功能特點(diǎn),選擇相應(yīng)的解決方法。目前KEIL MDK在國(guó)內(nèi)ARM開(kāi)發(fā)工具市場(chǎng)已經(jīng)達(dá)到九層的占有率。下面對(duì)KEIL進(jìn)行一下簡(jiǎn)介:KEIL MDK開(kāi)發(fā)工具源自德國(guó)KEIL公司,被全球的嵌入式開(kāi)發(fā)工程師驗(yàn)證和使用,是ARM公司目前推出的最新的針對(duì)各種嵌入式處理器的軟件開(kāi)發(fā)工具。圖13 紅外測(cè)距系統(tǒng)工作流程圖 軟件程序設(shè)計(jì)對(duì)便于編程,一定要有一個(gè)好的編譯器。表3 LCD1602引腳功能圖符號(hào)名稱電平輸入/輸出功能1VSS電源地2VDD電源(+5V)3VL對(duì)比調(diào)整電壓,接滑動(dòng)變阻器4R/S0/1輸入0=輸入指令;1=輸入數(shù)據(jù)5R/W0/1輸入0=向LCD寫入指令或數(shù)據(jù);1=從LCD讀取信息6E1,1→0輸入使能信號(hào),1時(shí)讀取信息,1→0時(shí)執(zhí)行命令7DB00/1輸入/輸出數(shù)據(jù)總線line0(最低位)8DB10/1輸入/輸出數(shù)據(jù)總線line19DB20/1輸入/輸出數(shù)據(jù)總線line210DB30/1輸入/輸出數(shù)據(jù)總線line311DB40/1輸入/輸出數(shù)據(jù)總線line412DB50/1輸入/輸出數(shù)據(jù)總線line513DB60/1輸入/輸出數(shù)據(jù)總線line614DB70/1輸入/輸出數(shù)據(jù)總線line715BLA+VCCLCD背光電源正極16BLKGNDLCD背光電源負(fù)極第3章 紅外測(cè)距系統(tǒng)的軟件設(shè)計(jì)及功能調(diào)試 紅外測(cè)距系統(tǒng)工作流程在整個(gè)紅外測(cè)距系統(tǒng)工作中,當(dāng)系統(tǒng)被接入啟動(dòng)電源后,首先,對(duì)STM32單片機(jī)進(jìn)行初始化,當(dāng)單片機(jī)接收到紅外傳感器GP2Y0A21傳輸?shù)哪M電壓信號(hào)后,經(jīng)過(guò)A/D轉(zhuǎn)換電路,將輸入單片機(jī)的模擬電壓信號(hào)Vout轉(zhuǎn)換為單片機(jī)可識(shí)別的數(shù)字信號(hào),并經(jīng)過(guò)電壓距離轉(zhuǎn)換程序,轉(zhuǎn)換出要測(cè)量的距離,然后通過(guò)10次均值濾波來(lái)提高測(cè)量的精確度,最后在通過(guò)液晶顯示屏LCD1602顯示出測(cè)量結(jié)果。首先通過(guò)對(duì)單片機(jī)的電源電路、復(fù)位電路、時(shí)鐘電路、USB下載電路和A/D轉(zhuǎn)換電路等功能進(jìn)行主要學(xué)習(xí)了解并運(yùn)用,然后了解紅外傳感器GP2Y0A21的使用方法與特性,結(jié)合單片機(jī)和紅外傳感器的功能,采集出電壓并通過(guò)電壓距離公式轉(zhuǎn)換為測(cè)量距離。通過(guò)表3所示,把LCD1602每個(gè)引腳的功能了解掌握,并與STM32單片機(jī)的相應(yīng)I/O口連接上,燒入顯示程序即可完成紅外測(cè)距系統(tǒng)的最終要求。圖12為L(zhǎng)CD1602原理圖。對(duì)于此次所采用的STM32單片機(jī)的開(kāi)發(fā)板,還有很多功能,比如測(cè)溫功能、鍵盤功能、數(shù)碼管顯示功能等等,由于對(duì)于紅外測(cè)距系統(tǒng)的設(shè)計(jì)沒(méi)有直接的關(guān)系,就不一一進(jìn)行詳細(xì)介紹,各部分的工作原理圖見(jiàn)附錄B里。對(duì)于A/D轉(zhuǎn)換電路來(lái)說(shuō),如果單片機(jī)處理模塊是整個(gè)紅外測(cè)距系統(tǒng)的重點(diǎn)研究模塊,那么A/D轉(zhuǎn)換電路就是重中之中。然后就是ADC轉(zhuǎn)換器的分組,STM32單片機(jī)ADC轉(zhuǎn)換器分為2個(gè)通道組:規(guī)則通道組(最多包含16個(gè)轉(zhuǎn)換通道)和注入通道組(最多包含4個(gè)轉(zhuǎn)換通道),兩個(gè)組別只能一組一組進(jìn)行轉(zhuǎn)換,當(dāng)一組進(jìn)行轉(zhuǎn)換時(shí)另一組可視為中斷,可打斷當(dāng)前執(zhí)行也可等到執(zhí)行完畢隨后執(zhí)行。其次就是ADC模塊的工作電壓。本論文所設(shè)計(jì)的紅外測(cè)距系統(tǒng)只需要一個(gè)ADC即可完成。系統(tǒng)使用10位的ADC進(jìn)行測(cè)量。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)有三點(diǎn):(1)轉(zhuǎn)換時(shí)間,從發(fā)出啟動(dòng)命令后到轉(zhuǎn)換結(jié)束獲得完整的數(shù)字信號(hào)為止所需的時(shí)間。圖11 USB下載電路STM32單片機(jī)內(nèi)置3個(gè)12位模擬/數(shù)字轉(zhuǎn)換模塊(ADC),轉(zhuǎn)換時(shí)間最快為。在本開(kāi)發(fā)板上,運(yùn)用了PL2303(用于實(shí)現(xiàn)USB座和標(biāo)準(zhǔn)RS232串行端口之間的轉(zhuǎn)換)的芯片功能來(lái)實(shí)現(xiàn)直接運(yùn)用電腦USB口下載程序的功能。圖10 JTAG/SWD下載電路本論文主要運(yùn)用到的是STM32單片機(jī)的電源電路、復(fù)位電路、USB下載電路、A/D轉(zhuǎn)換等功能,前兩者在單片機(jī)最小工作系統(tǒng)里已經(jīng)介紹過(guò),下面介紹一下USB下載電路和A/D轉(zhuǎn)換。從圖8可知,STM32單片機(jī)下載電路支持JATG/SWD下載,同時(shí)還支持串口下載通信。圖9為STM32單片機(jī)的晶振電路與時(shí)鐘振蕩電路。最后一路是首先遇到了一個(gè)1/2分頻器,變成4MHz時(shí)鐘信號(hào)后,又到達(dá)了PLLXTPRE這個(gè)開(kāi)關(guān)然后,隨后的設(shè)置與上一路時(shí)鐘信號(hào)一樣,也可得到相應(yīng)的系統(tǒng)時(shí)鐘信號(hào)。其中一路直接通過(guò)SW開(kāi)關(guān)設(shè)置為01,正好選擇了這路產(chǎn)生的8MHz系統(tǒng)時(shí)鐘信號(hào)。這時(shí)SW第0位和第1位都寫入0,則單片機(jī)系統(tǒng)時(shí)鐘為32MHz。本論文主要應(yīng)用的是SYSCLK(系統(tǒng)時(shí)鐘)的配置,驅(qū)動(dòng)系統(tǒng)時(shí)鐘可由3種不同的時(shí)鐘源:(1)STM32單片機(jī)內(nèi)部有一個(gè)8MHz RC高速振蕩器,它產(chǎn)生的的時(shí)鐘信號(hào)會(huì)兵分2路,一路直接加到時(shí)鐘選擇器開(kāi)關(guān)(SW),這個(gè)開(kāi)關(guān)是由STM32單片機(jī)的時(shí)鐘配置寄存器的第0位和第1位來(lái)控制,如若時(shí)鐘配置寄存器的第0位和第1位分別寫入0,0的話,內(nèi)部的8MHz RC 高速振蕩器產(chǎn)生的8MHz的時(shí)鐘信號(hào)就可以輕松通過(guò)SW開(kāi)關(guān),此時(shí)單片機(jī)就產(chǎn)生了8MHz的系統(tǒng)時(shí)鐘。時(shí)鐘系統(tǒng)時(shí)鐘系統(tǒng)相當(dāng)于單片機(jī)的脈搏,好比人得心跳,其重要性不言而喻。復(fù)位系統(tǒng)圖8 復(fù)位系統(tǒng)原理圖單片機(jī)復(fù)位系統(tǒng)就是讓程序計(jì)數(shù)器回到0000h這個(gè)地址,程序重頭開(kāi)始執(zhí)行,將一些寄存器、存儲(chǔ)單元都置為初始設(shè)定值,單片機(jī)復(fù)位的形式有很多種,比如上電復(fù)位、看門狗復(fù)位、手動(dòng)復(fù)位等等。從電腦USB端口或者其它的供電設(shè)備接入+5V的電源,當(dāng)選擇U8這個(gè)USB座時(shí),此時(shí)的功能是通過(guò)USB座給單片機(jī)開(kāi)發(fā)板下載程序和供電;當(dāng)選擇U4這個(gè)USB座時(shí),此時(shí)的功能是通過(guò)USB座與外界進(jìn)行通信或者給單片機(jī)開(kāi)發(fā)板進(jìn)行供電;隨后經(jīng)過(guò)P2(P2是一個(gè)500mA的自恢復(fù)保險(xiǎn)絲,作用是防止單片機(jī)工作過(guò)程中短路現(xiàn)象的發(fā)生,當(dāng)電源瞬間短路時(shí),會(huì)產(chǎn)生強(qiáng)大的電流,這時(shí)會(huì)把與單片機(jī)相連設(shè)備的主板給燒壞,同時(shí)對(duì)開(kāi)發(fā)板自己也是一種保護(hù))到達(dá)開(kāi)關(guān)S1和S2,若要給單片機(jī)開(kāi)發(fā)板通電需要接通開(kāi)關(guān)S1和S2,若要切斷單片機(jī)開(kāi)發(fā)板電源,還需要再一次按下開(kāi)關(guān)S1和S2。最小工作系統(tǒng)雖然結(jié)構(gòu)簡(jiǎn)單,但卻是大多數(shù)單片機(jī)控制系統(tǒng)不可缺少的重要部分,所以要熟練運(yùn)用單片機(jī)的各種各樣的功能就必須要熟悉掌握并了解最小工作系統(tǒng)的組成。38PC7連接LCD1602的DB7引腳,作為L(zhǎng)CD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。25PC5連接LCD1602的DB5引腳,作為L(zhǎng)CD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。11PC3連接LCD1602的DB3引腳,作為L(zhǎng)CD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。9PC1連接LCD1602的DB1引腳,作為L(zhǎng)CD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。16PA2連接LCD1602的E引腳,作為L(zhǎng)CD的輸入引腳,接收判斷來(lái)自單片機(jī)的高低電平對(duì)LCD進(jìn)行使能。14PA0連接LCD1602的R/S引腳,作為L(zhǎng)CD的輸入引腳,接收判斷來(lái)自單片機(jī)的高低電平,然后選擇輸入指令或者數(shù)據(jù)。對(duì)于紅外傳感器來(lái)說(shuō),工作電壓的要求相對(duì)嚴(yán)格,過(guò)高容易燒壞傳感器內(nèi)部結(jié)構(gòu),過(guò)低達(dá)不到指定的測(cè)量范圍,所以條件允許的情況下應(yīng)該為其單獨(dú)準(zhǔn)備一個(gè)+。圖6 STM32單片機(jī)引腳圖圖6為STM32單片機(jī)的引腳圖,由圖可見(jiàn)此系列單片機(jī)功能之全、用法之便、外設(shè)