【正文】
涉密論文按學校規(guī)定處理。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。(2)有了反饋系統(tǒng)和自動駕駛儀,保持自動合適的距離和前做出決定,無人干預。 是自身的標準減速。這是一種高精度的測量(不是分辨率),因此僅適用于具有高的SBR的范圍角度小區(qū)內(nèi)的單個對象。短脈沖波形的脈沖重復率名義上無疑是足夠高的多普勒頻譜,單斜率FMCW波形通常是多普勒的自脈沖重復率,實際上,一個靜止的物體多普勒可以大于15KHZ。如果計算出的值小于上限,則系統(tǒng)采用了相應措施。因此,該技術必須使用這些動態(tài),有效地辨別汽車。暗區(qū)代表目標車輛,其激光雷達來檢測尾燈的中心位置。個別范圍段進行比較的閾值,并與任何超過閾值能量的對象處理進一步確定范圍和相對速度。接收到的信號通過循環(huán)和混合到基帶(通常在擴增前)、放大、濾波、數(shù)字化后發(fā)送到信號處理器和威脅評估處理器。當激光雷達光學天線的反射信號被接收,編碼、調制和解調之后,它被轉換為電壓信號,可以容易地被處理,并且該電壓信號由A/D轉換器轉換,并通過I/O口發(fā)送到MPC5200。通過三角測量使用檢測到的線得到的車輛的相對位置。系統(tǒng)編碼和調制從半導體激光器發(fā)出的脈沖。區(qū)別在于前面探測器發(fā)送時間間隔被嵌入式微處理器得到,而后面檢測器發(fā)送時間間隔由一個HIS/ HSO接口得到。該系統(tǒng)是建立在MPC5200嵌入式微處理器,采用光機電一體化技術。它安裝在車內(nèi),并及時檢測障礙物和車輛,并且當之間的距離必要時,發(fā)送警告信號讓司機采取為應對特殊情況的應急措施,如果必要的話,開始自動制動系統(tǒng)或觸發(fā)器應急系統(tǒng),以避免事故的發(fā)生。相比較其他嵌入式系統(tǒng),Linux是不僅免費的,而且是一個開源項目。嵌入式系統(tǒng)已經(jīng)有了在未來控制系統(tǒng)發(fā)展趨勢。 char * st r= num。 delay_ms(5)。 delay_ms(5)。 s++。 delay_ms(1)。 delay_us(1)。 GPIO_Write(GPIOC,)。 return (u8)0。 RW_SET。 //通道PA7,1代表規(guī)則通道第一個 ADC_Cmd (ADC1, ENABLE)。 //獨立模式 =ENABLE。 }}include /**************************************************************** 函數(shù)名:ADC_Config 功能:ADC初始化***************************************************************/void ADC_Config(void){ ADC_InitTypeDef ADC_InitStructure。 } adc1=((float)adc*)。 //12位AD轉換為10位AD// Distance = (10485/(average_adc + 5)) 4。 //延時初始化 LCD_GPIO_Config()。3rd.Nanchang.2013:14.[13] Liang Xu,Zhiqiang Meng.An Infrared Ranging System For Automotive Anticollision.International workshop on internet of things39。同時,我要感謝我的學長還有我的同學,在實驗室工作和論文撰寫期間,他們給予了我熱情的幫助,如果沒有他們的幫助與啟發(fā)我將很難完成本篇論文的撰寫。本紅外測距系統(tǒng)采用的是紅外傳感器GP2Y0A21和三角測距原理,由于紅外傳感器本身測量距離的限制,加上三角測距原理固有的缺陷,經(jīng)過上述實驗分析得知,在穩(wěn)定的電源、干凈清晰的空氣、穩(wěn)定的溫度、無外界電磁干擾、無障礙物的情況下,在測量允許的范圍內(nèi),此紅外測距系統(tǒng)能獲得較高的測量精度。結論對本論文所設計的紅外測距系統(tǒng)進行測量、校準發(fā)現(xiàn)其測量范圍在1080厘米內(nèi)的平面物體。圖16圖17圖18 本章小結對于整個紅外測距系統(tǒng)軟件的設計,是在硬件設計大致完成的基礎上展開的,主要是對STM32單片機運行程序的編寫,還有系統(tǒng)整體工作流程的設計與搭建。由于我們采用的是擬合后的測量公式,見公式(31),所測量的數(shù)據(jù)曲線會有所不同。最后,對液晶顯示屏LCD1602模塊進行調試,在調試此模塊時,遇到的最大一個問題就是對LCD1602引腳3(VL)功能的忽視,最開始并沒有對此引腳接入相應的滑動變阻器,導致了無論怎么調試程序或者更改硬件都無法顯示最簡單的字符,在不斷地實驗中發(fā)現(xiàn)了這個故障,最終接入相應的滑動變阻器并調整到適當?shù)奈恢?,最終在LCD上得到了顯示的字符。但是為了更方地使用此款紅外傳感器,在更多商家的研究與開發(fā)下,通過不斷地采集實驗數(shù)據(jù)并對此款傳感器進行曲線擬合,最終實現(xiàn)了輸出曲線近似線性化的處理。LEI MDK集成了業(yè)內(nèi)最先進的技術,支持ARMARM和最新的CortexM系列內(nèi)核處理器,啟動代碼不需要人工配置,集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能。 本章小結本論文所設計的紅外測距系統(tǒng)是以STM32單片機為核心,應用由日本夏普公司研發(fā)的型號為GP2Y0A21的紅外傳感器的測距功能和液晶顯示屏LCD1602的顯示功能。最后就是把通過A/D轉換得到的數(shù)據(jù)存入相應的數(shù)據(jù)寄存器,等待下一次轉換或者結束。(2)分辨率,是指數(shù)字量最低位代表的模擬量數(shù)值大小。由于本論文研究的紅外測距系統(tǒng)重點應用USB下載電路,相對于JTAG/SWD下載的原理這里就不詳細介紹,其工作原理圖如圖10所示。(3)在外部8MHz的晶振下和內(nèi)部的振蕩電路的結合下會產(chǎn)生相對穩(wěn)定的8MHz的系統(tǒng)時鐘。當單片機開發(fā)板得到+5V的電源后,一路經(jīng)電解電容C12濾波以后會更加穩(wěn)定的從C12正極輸出,供給單片機開發(fā)板所需要的地方;另一路直接接入U7(U7是一個型號為AMS1117的穩(wěn)壓芯片,作用就是把+5V的電壓穩(wěn)壓成+)的3引腳上,經(jīng)過U7穩(wěn)壓以后由2引腳直接輸出+,一路經(jīng)電容C11濾波以后,作為單片機開發(fā)板的電源使用或者作為開發(fā)板其它器件的+;另一路經(jīng)過電容C13濾波以后,作為單片機開發(fā)板A/D轉換模塊供電電壓。24PC4連接LCD1602的DB4引腳,作為LCD的輸入/輸出引腳,并在單片機與LCD之間傳輸數(shù)據(jù)。表2 紅外測距系統(tǒng)各引腳功能符號引腳名稱連接對象及功能23PA7連接紅外傳感器Vout引腳,作為單片機的模擬電壓輸入。即STM32單片機內(nèi)部A/D轉換通道的PA7引腳上。 紅外測距系統(tǒng)的基本結構紅外測距系統(tǒng)主要有紅外傳感器模塊(包括紅外發(fā)射端和紅外接收端兩部分)、單片機處理模塊、LCD顯示模塊三大部分組成。見公式(23)。表1 紅外傳感器GP2Y0A21技術規(guī)格測量射程范圍1080cm最大允許角度40176。按照其功能可以分為五種類型:(1)輻射計,又稱“發(fā)射計”,是一種用于電磁輻射和光譜測量的裝置。 本論文主要研究內(nèi)容紅外線別名紅外光或者熱輻射線,是一種波長比紅色可見光(約㎜)較長、比微波(約㎜)較短的電磁波。激光測距在工作開始瞬間向物體發(fā)射出一束很細的激光,并由接受端接收物體反射回來的激光束,同時計時器通過測定激光束從發(fā)射到接收的時間進而計算出從測量者到物體的距離。本論文采用單片機作為處理器,編寫A/D轉換程序及LCD顯示程序,紅外傳感器作為工作模塊,完成一套高精度顯示、實時測量的紅外測距系統(tǒng)。關鍵詞 紅外測距;單片機;A/D轉換;LCDSTM32based infrared ranging system designAbstractWith the development of modern science and technology, there are many new areas, in order to achieve the object close range, highprecision wireless measurement,this topic of infrared ranging is studied. This topic using SCM as the processor, to write A/D converter and LCD display program, an infrared sensor as a working module, plete set of precision display, realtime measurement of infrared ranging system. This system has the advantages of simple structure, small size and high accuracy, low cost and convenient use.This paper introduced is based STM32 microcontroller and use of Japan39。紅外測距最早出現(xiàn)于上世紀60年代,是一種以紅外線作為傳輸介質的測量方法。不易被云霧等懸浮微粒散射而具有較強的穿透力。本論文選用的紅外測距傳感器GP2Y0A21是由日本夏普公司推出的一款性價比高、最常用的紅外測距傳感器,與其前身GP2D12相比,測量射程相同,但探測面積略有增加,可用來對物體的距離進行測量。 反射能量法測距原理反射能量法是由發(fā)射控制電路控制發(fā)光元件發(fā)出信號(通常為紅外線)射向目標物體,經(jīng)物體反射后傳回系統(tǒng)的接收端,通過光電轉換器接收的光能量大小進而計算出目標物體的距離L,見公式(22)。圖1 三角法測距原理紅外測距傳感器首先通過紅外發(fā)射管發(fā)出紅外線,遇到障礙物反射回來落在PSD上形成了一個等腰三角形。引腳圖如圖4所示。圖6 STM32單片機引腳圖圖6為STM32單片機的引腳圖,由圖可見此系列單片機功能之全、用法之便、外設之多,一個共有64個擴展I/O口,方便外接工作模塊,這里就不一一介紹了。9PC1連接LCD1602的DB1引腳,作為LCD的輸入/輸出引腳,并在單片機與LCD之間傳輸數(shù)據(jù)。最小工作系統(tǒng)雖然結構簡單,但卻是大多數(shù)單片機控制系統(tǒng)不可缺少的重要部分,所以要熟練運用單片機的各種各樣的功能就必須要熟悉掌握并了解最小工作系統(tǒng)的組成。本論文主要應用的是SYSCLK(系統(tǒng)時鐘)的配置,驅動系統(tǒng)時鐘可由3種不同的時鐘源:(1)STM32單片機內(nèi)部有一個8MHz RC高速振蕩器,它產(chǎn)生的的時鐘信號會兵分2路,一路直接加到時鐘選擇器開關(SW),這個開關是由STM32單片機的時鐘配置寄存器的第0位和第1位來控制,如若時鐘配置寄存器的第0位和第1位分別寫入0,0的話,內(nèi)部的8MHz RC 高速振蕩器產(chǎn)生的8MHz的時鐘信號就可以輕松通過SW開關,此時單片機就產(chǎn)生了8MHz的系統(tǒng)時鐘。圖9為STM32單片機的晶振電路與時鐘振蕩電路。圖11 USB下載電路STM32單片機內(nèi)置3個12位模擬/數(shù)字轉換模塊(ADC),轉換時間最快為。其次就是ADC模塊的工作電壓。圖12為LCD1602原理圖。圖13 紅外測距系統(tǒng)工作流程圖 軟件程序設計對便于編程,一定要有一個好的編譯器。(4)根據(jù)系統(tǒng)工作流程圖編寫源程序,對主函數(shù)及子函數(shù)的功能進行逐一分析,并寫出相應的程序。(3)檢查帶有極性原件的焊接是否焊反。根據(jù)所設計的電路結構、編寫的程序及傳感器本身的功能,在測量范圍內(nèi)對各個距離進行多次測量并與實際距離相比較,通過對實驗數(shù)據(jù)的分析,不斷調節(jié)器件和修改程序使紅外測距系統(tǒng)能更精確、更穩(wěn)定地達到實際使用的要求。圖14 電壓距離輸出曲線圖15是1/(R+k)與電壓輸出曲線,為了使曲線線性化便于分析和處理數(shù)據(jù),把公式(31)進行整理,使1/(R+k)與電壓成線性關系,并繪圖。從測量數(shù)據(jù)與繪圖來看,本論文所研究的紅外測距系統(tǒng)工作范圍在1080厘米,其電壓與距離的不是純線性關系,是一條平滑的非線性反比例曲線。由于實驗條件有限,對此紅外測距系統(tǒng)并為在加有電磁干擾的情況下進行測量,所以不能確定的是測量過程中外界電磁波的有無對測量精度是否有影響。本論文的撰寫工作主要是在我的導師盧迪老師的悉心指導下完成的,盧迪老師嚴謹?shù)闹螌W態(tài)度和科學的管理方法給我了極大的幫助和信心。infrared //AD轉換值 12位AD float adc1。 LCD_write_string(1,1,DISTANCE:)。 printf(濾波后的距離% cm\n,float_Distance)。// Display_Distance(10,1,float_Distance)。 GPIO_Init(GPIOA, amp。 //掃描通道數(shù),從1到16 ADC_Init(ADC1, amp。 GPIO_Write(GPIOC,0xFF)。 delay_us(200)。 delay_us(1)。 delay_us(100)。 GPIO_Write(GPIOC,Data)。 } /***************lcd 寫字符串******************/void LCD_write_string(unsigned char x,unsig