貨車盲區(qū)監(jiān)控系統(tǒng)的設計說明書.doc
《貨車盲區(qū)監(jiān)控系統(tǒng)的設計說明書.doc》由會員分享,可在線閱讀,更多相關《貨車盲區(qū)監(jiān)控系統(tǒng)的設計說明書.doc(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。
目 錄 目 錄 I 摘 要 II Abstract II 1 緒 論 2 1.1 課題的提出及意義 2 1.2 國內(nèi)外的研究概況 2 1.3 駕駛輔助系統(tǒng)的關鍵支撐技術 2 2 本課題研究方法 2 2.1 檢測器材的位置布置 2 2.2 系統(tǒng)主要部件介紹 2 2.3 貨車轉(zhuǎn)彎參數(shù)的模擬與計算 2 2.4 傳感器的選擇 2 2.5 本章小結(jié) 2 3 硬件實現(xiàn)及單元電路設計 2 3.1 轉(zhuǎn)角模塊的實現(xiàn) 2 3.2 超聲波模塊的實現(xiàn) 2 3.3 蜂鳴器報警模塊 2 3.4 顯示模塊 2 3.5 視頻采集模塊 2 3.6 視頻顯示模塊 2 3.7 電源模塊 2 3.8 主控制模塊的實現(xiàn) 2 3.9 總設計圖 2 4 系統(tǒng)軟件的結(jié)構(gòu)設計 2 4.1 軟件設計思路 2 4.2 貨車盲區(qū)檢測和警報電路的算法設計 2 4.3 主程序流程圖 2 5 調(diào)試 2 5.1 硬件調(diào)試 2 5.2 軟件調(diào)試 2 6 結(jié) 論 2 參考文獻 2 附 錄 2 致 謝 2 II 貨車盲區(qū)檢測及警報的設計 摘 要 針對大型貨車轉(zhuǎn)彎時由于盲區(qū)和內(nèi)輪差帶來的交通事故,本文設計一種貨車轉(zhuǎn)彎時檢測及警報系統(tǒng)。首先,對貨車的行駛狀況進行判斷,利用方向傳感器檢測貨車車頭的行駛方向,再由單片機判斷貨車是否將要進入轉(zhuǎn)彎狀態(tài)。如果不屬于轉(zhuǎn)彎狀態(tài),系統(tǒng)不會開啟警報干擾司機;如果進入轉(zhuǎn)彎狀態(tài),系統(tǒng)超聲波傳感器檢測周圍目標,并對進入危險區(qū)域的目標發(fā)出警報以及提供目標與貨車的距離給司機;同時單片機控制攝像頭開啟,由液晶顯示器顯示出貨車右側(cè)盲區(qū)內(nèi)的圖像。在設計過程中,對開啟視頻和警報的角度,距離,進行研究和模擬,從而對傳感器進行選擇。 關鍵詞:貨車盲區(qū);單片機;傳感器;警報 IV Design of Blind sport detection and warning for trucks Abstract Aiming at the traffic accidents caused by the blind zone and the difference of the internal wheel during the turning of a large-scale freighter, this article designs a detection and alarm system for the turning of freight cars. First of all, to determine the driving conditions of the truck, use the direction sensor to detect the direction of the front of the truck, and then the MCU to determine whether the truck will enter the turning state. If it is not in the turning state, the system will not turn on the alarm to disturb the driver; if it enters the turning state, the system will turn on the ultrasonic sensor to detect the surrounding target and send an alarm to the target that enters the dangerous area and provides the distance between the target and the truck to the driver; meanwhile , the MCU controls the camera to open. The LCD shows the image of the blind area on the right side of the truck. In the design process, the angles and distances to open video and alarms are studied and simulated to select the sensors. Key words: truck blind spot; single chip microcomputer; sensor; alarm III 1 緒 論 1.1 課題的提出及意義 在我們的日常生活中,交通工具復雜多樣,隨著人們經(jīng)濟水平的提高,車輛越來越大眾化、多樣化。除了日常駕駛的汽車外,如果有大型運輸,都需要大貨車。使用大貨車的運輸給我們生活帶來了很多便利和客觀的經(jīng)濟效益。但是,大貨車在行駛中由于體型大、慣性大,加上盲區(qū)、內(nèi)輪差也很大等原因經(jīng)常出現(xiàn)交通事故[1]。在新聞報道中我們經(jīng)??梢钥吹酱筘涇囋谵D(zhuǎn)彎時,由于內(nèi)輪差的原因?qū)е掳l(fā)生交通事故,將旁邊的小車、行人等卷入車底,貨車司機卻毫無知覺。這類事故不是人為故意造成,卻經(jīng)常發(fā)生在無辜路人的身上,所以應該引起我們的關注,想辦法避免此類事故的發(fā)生。在車上安裝電子裝置是有很利于輔助駕駛員駕駛車輛的一種方法,世界上第一個使用在汽車上的電子裝置是收音機[2],不到幾十年時間,在汽車上發(fā)展的電子裝置就越來越多。如今汽車上的電子裝置不僅讓駕駛員有舒適的駕駛環(huán)境,還在輔助駕駛上起了很大作用,可以預見,電子裝置在車輛上的比重將會持續(xù)增加,車輛的價格和性能也將以這些電子系統(tǒng)作為參考。車輛的輔助駕駛系統(tǒng)發(fā)展到如今技術已經(jīng)很成熟,很多國家甚至開始研制全智能駕駛系統(tǒng),想要取代駕駛員操控汽車。盡管在這個過程中還有很多難題需要解決,但相信不久的將來這種系統(tǒng)是可以實現(xiàn)的。 從交通安全角度出發(fā),為了減少貨車轉(zhuǎn)彎時由于盲區(qū)導致的交通事故發(fā)生,研究一種檢測盲區(qū)的系統(tǒng)是具有可行性的。本論文將要討論的檢測及警報系統(tǒng)主要是針對貨車轉(zhuǎn)彎時駕駛員從后視鏡里看不見的盲區(qū)區(qū)域,如圖1.1所示: 圖1.1 貨車盲區(qū)示意圖 研究表明,若在交通事故發(fā)生前,提前1秒鐘給駕駛員發(fā)出警報,就可避免99%的交通事故發(fā)生[3]。 車輛的安全措施可分為被動安全措施和主動安全措施。我們在汽車車體的構(gòu)造上設計出抗撞擊、有彈性的部位,在座位上加安全帶,座位前加安全氣囊等,這些屬于被動安全措施,在事故發(fā)生后對人員有一定的保護作用,但其保護作用有一定局限性。因此在車輛的主動安全措施上進行研究是很有必要的,這也引出了本文將要研究的貨車轉(zhuǎn)彎時的盲區(qū)檢測警報系統(tǒng)。該系統(tǒng)是可以在對進入危險區(qū)域的車輛或行人發(fā)出警報的同時,還可以反饋數(shù)據(jù)和視頻給駕駛員。駕駛員可以看到靠近貨車的目標與貨車的距離,以及貨車右側(cè)盲區(qū)的圖像,采取應急措施,避免交通事故的發(fā)生。 1.2 國內(nèi)外的研究概況 最開始關注貨車盲區(qū)是歐洲一些工業(yè)發(fā)達國家,他們使用間接目視的技術,監(jiān)視貨車和大客車的盲區(qū),不過當時只是為了避免這些大型車輛倒車發(fā)生事故。美國也緊隨其后研發(fā)自己的盲區(qū)監(jiān)控技術,首先是阿瑪特朗公司推出了盲區(qū)探測系統(tǒng),這種系統(tǒng)是把電子傳感器固定在貨車的后面和右側(cè),可以用來探測貨車、掛車或大客車盲區(qū)的物體[4]??偨Y(jié)來說國外的輔助駕駛系統(tǒng)大致可以分為兩類,一類是以德國為首;一類是以美國和日本為首。 以德國為首的主要研究輔助駕駛系統(tǒng)。從20世紀80年代開始,德國人開始研究駕駛輔助系統(tǒng),這種輔助駕駛系統(tǒng)只不過是增加司機駕駛的有效性和可靠性。通過這些輔助駕駛系統(tǒng),緩解駕駛員的駕駛疲勞,也減少由于駕駛員的粗心導致的交通事故發(fā)生。他們主要是運用很多主動和被動的傳感器技術,以及后期的信號處理,把這些系統(tǒng)做成了可靠和有效的輔助駕駛工具[5]。 其次是以日本和美國為首的智能駕駛系統(tǒng)?;谑袌龅男枰图夹g的遠見,日本從1989年就開始研究如何讓智能系統(tǒng)代替人為駕駛。因為日本人覺得造成交通事故主要是由于司機的操作、行動受限等問題,并認為只有完全實現(xiàn)智能駕駛才能把這些交通事故根除掉。因為智能駕駛系統(tǒng)只要完善后是不會犯操作失誤這種錯誤的,行動也沒有局限性。至今完全實現(xiàn)無人駕駛的猜想已經(jīng)有很大進度。在豐田、日產(chǎn)、本田聯(lián)合項目中,開發(fā)了許多安全系統(tǒng)(如汽車定位系統(tǒng)、自動剎車系統(tǒng)、車頭控制系統(tǒng)、嗜睡警報系統(tǒng)、預警障礙系統(tǒng)等),并且將這些系統(tǒng)做了集成,讓所有功能一并實現(xiàn),總之他們的目的是實現(xiàn)無人駕駛。美國人在交通事故的統(tǒng)計數(shù)據(jù)中,除了交通擁擠這樣不可避免的因素,在其他的交通事故中,由于人為因素造成的交通事故大約占百分之九十。美國政府公開支持智能駕駛的研發(fā),并親自帶頭參與。1991年12月,美國政府通過了提高陸路交通效能的法案,表示支持智能駕駛的研發(fā),接著又撥出6.6億美元來資助全美智能運輸系統(tǒng)研究工作。美國當時有5個研究針對著交通安全問題,在其智能運輸研究的系統(tǒng)子系統(tǒng)中占的比例最高[3]。日本和美國的研究想要達到目的,還有很多技術上的難關需要攻破,除了豐田等企業(yè)聯(lián)合項目中的那些必要技術外,還需要加入人工神經(jīng)網(wǎng)絡、模糊控制理論等智能控制的核心技術[6]。 中國由于歷史、經(jīng)濟等原因,在這方面的起步是比較晚的。20世紀90年代中期,清華大學自動化系研究過一種自動導航智能車,主要是采用圖片識別的技術。1994年,我國第一輛模型車石JUTIV-1由吉林大學智能車輛課題組制造成功,并在不久后制造出JUTIV-2,通過車道線作為導航路徑,其時速達到30km/h。近年來,北京理工大學也對智能車輛有所研究,其研究技術主要基于GPS與數(shù)字地圖導航[3]。 1.3 駕駛輔助系統(tǒng)的關鍵支撐技術 (1)高精度數(shù)字地圖和GPS GPS可以準確定位車輛的位置,輔以厘米級高精度數(shù)字地圖后,在無人駕駛領域中起到?jīng)Q定性作用,無論是車輛的定位還是車道的保持,都離不開這兩個技術的結(jié)合[7]。 (2)激光 基于激光的輔助駕駛用在巡航、防撞等需要測距的系統(tǒng)中,主要是利用激光測距的原理 (3)紅外線 因為紅外線有熱感應效應,所以通常在汽車的輔助駕駛系統(tǒng)中常被用來制作夜視系統(tǒng)[8],種系統(tǒng)不僅大大增加了駕駛員在夜間的視覺距離,再輔以其他一些智能技術還能提供給駕駛者捕捉到的目標數(shù)量。 (4)傳感器 基于傳感器的輔助駕駛系統(tǒng)現(xiàn)在中高級轎車已經(jīng)有很多,主要應用在輔助倒車,泊車方面,給駕駛員提供全息影像,方便新手司機的倒車、停車。 (5)機器視覺 機器視覺提供駕駛員直觀圖像,讓駕駛員可以通過視覺監(jiān)視汽車盲區(qū)內(nèi)的環(huán)境,有很好的應用前景。主要是圖像輸入、圖像處理、圖像顯示三部分組成,其中圖像輸入部分攝像頭有很好的性價比,不過目前需要在低端設備中突破夜視功能難題[9]。 (6)磁性參照物 利用磁場的魯棒性,現(xiàn)在已經(jīng)產(chǎn)生很多用于商業(yè)用途的高速公路車道線標記帶,可以全天候提供車道線的指引[10]。 為了提高資源的綜合利用率,以上的這些技術通常都不會單獨被用來研發(fā)某種系統(tǒng)[11]。車輛和智能交通會議對于這些技術融合的技術大致分為車輛周圍障礙物檢測系統(tǒng)、車輛偏離預警與保持系統(tǒng)、駕駛員狀態(tài)監(jiān)測系統(tǒng)、車輛運動控制與通訊系統(tǒng)等[12]幾類。 最近十幾年來,盲區(qū)檢測系統(tǒng)得到長足的發(fā)展,但是仍然有很大的發(fā)展空間和應用價值。相關學術界也不斷研究其發(fā)展和應用,有人想利用全景式傳感器研發(fā)一種監(jiān)控系統(tǒng),可以用來監(jiān)視汽車盲區(qū)以及整車周圍的實時狀況[13];為了對車輛整體進行完整監(jiān)控,有人還提出利用多個傳感器組成傳感器網(wǎng)絡,不過其中復雜的算法需要進一步研究;BLIS信息系統(tǒng)是瑞典VOLVO公司研發(fā),如今普及很多高級汽車[14]。 在現(xiàn)實生活中,由于性能穩(wěn)定、價格低廉、芯片技術的突破等,使得基于超聲波和機器視覺的輔助駕駛系統(tǒng)在市場上搶到主導地位。這些技術由最開始的只適用于高級轎車上,到現(xiàn)在的面向中低級汽車,在汽車行業(yè)中有很強的生命力[3]。 35 2 本課題研究方法 2.1 檢測器材的位置布置 角度傳感器布置在車頭,及時感應車頭轉(zhuǎn)角來判斷車行駛軌跡。超聲波傳感器裝在兩側(cè)中部和尾部,由數(shù)碼管顯示測距儀的數(shù)據(jù)。液晶顯示器安裝在后視鏡里面,為了直觀得到進如危險區(qū)目標到車的距離,把數(shù)碼管裝在方便司機觀察的視野位置。各電子器材的分布如圖2.1所示: 圖2.1 檢測警報器材放置圖 本設計對攝像頭、視屏采集卡和液晶顯示器采用元件連接;超聲波測距傳感器、角度傳感器、蜂鳴器等采用模塊連接,連接原理圖如圖2.1b所示。車輛轉(zhuǎn)彎的同時,4個超波傳感器HCR4開始工作,其TRIG端和ECHO端接口分別與中央控制器的p3.2-p3.7、p1.5、p1.6端口連接。單片機使用的是stc89c52單片機。根據(jù)超聲波傳感器探測距離,單片機將探測的距離顯示在數(shù)碼管上、根據(jù)危險程度通過p1.0輸出端控制蜂鳴器報警聲。并通過單片機決定是否啟動攝像頭進行工作,若判定攝像頭工作,則芯片引腳拉低,繼電器吸合,攝像頭得電開始工作,將視頻信號傳輸給LCD顯示。 圖2.2 電子元件連接原理圖 2.2 系統(tǒng)主要部件介紹 1)視頻顯示器 系統(tǒng)的視頻顯示器為液晶顯示器,將一塊嵌入式TFT-LCD液晶顯示屏安裝在鏡面后端,當顯示器黑屏時,鏡面為普通的反射鏡面;當顯示器工作時,利用鏡面單方向的高透射性,將液晶顯示器上的畫面透過鏡面進行顯示。 2)距離顯示器 系統(tǒng)采用數(shù)碼管進行距離數(shù)值的顯示,為了讓顯示器相比儀表盤更容易被駕駛員觀察到,系統(tǒng)將顯示器固定在主控平臺上方的偏左位置。由超聲波傳感器探測并且將測得的信息傳送至單片機,單片機經(jīng)過A/D(模數(shù)轉(zhuǎn)換)后將結(jié)果通過數(shù)碼管顯示出來。 3)超聲波傳感器 超聲波傳感器的探頭,分別位于車身的左中、右中、左后以及右后位置系統(tǒng)借助4個具有較大探測范圍的超聲波傳感器探頭進行測距,以達到非接觸式測距的目的。超聲波傳感器在某一時刻發(fā)出超聲波信號,遇到被測物體后反射回來,被超聲波發(fā)射端接收到,只要計算出超聲波信號從發(fā)射到接收到回波信號的時間,知道在介質(zhì)中的傳播速度,就可以計算出被測物體距傳感器的距離。 4)攝像頭 系統(tǒng)應用了紅外夜視攝像頭,用以采集監(jiān)測區(qū)域內(nèi)的影像信息,安裝在室外擋風玻璃上。攝像頭傳輸?shù)臄?shù)據(jù)通過圖像采集卡處理,傳輸給液晶顯示器。與全時工作攝像頭相比,系統(tǒng)的攝像頭只有當車身處于貨車轉(zhuǎn)彎的最小角度時才會啟動。大大延長攝像頭的工作壽命。 5)連接電纜 系統(tǒng)采用屏蔽電纜作為連接線束,并隱蔽布線,有效避信號干擾,其中插接器均采用航空接頭,其防護等級高,有較高的防振性能,保障了系統(tǒng)的電路運行[15]。 2.3 貨車轉(zhuǎn)彎參數(shù)的模擬與計算 2.3.1 轉(zhuǎn)彎角度的模擬 調(diào)制好陀螺儀后,我們需要求出開啟系統(tǒng)的最小角度,即貨車在最大轉(zhuǎn)彎半徑時的角度。假設我們要使用的對象是在十字交叉路口轉(zhuǎn)彎,也就是它最后會轉(zhuǎn)彎90,那它走過的軌跡可以看作四分之一個圓。我們需要的最小角就是貨車行駛到這個半圓某點的切線與車輛轉(zhuǎn)彎前行駛方向的夾角。根據(jù)國家規(guī)定,大貨車長度一般在7到7.2米之間,生活中7.2米的居多。我國的城市道路常見的大車道是八車道,八車道中每條車道3.5米,一共28米。八車道的中間是寬5米的綠化帶。我們可以以這些參數(shù)建立圖模型如圖2.3所示: 圖2.3 貨車轉(zhuǎn)彎模擬圖示 當貨車整個車身沿著轉(zhuǎn)彎軌跡行走時,我們可以認為它進入轉(zhuǎn)彎狀態(tài)。通過建立數(shù)學模型利用cad模擬,我們得出此時貨車車頭轉(zhuǎn)角為20。一般貨車的車頭和車箱是分開由鉸鏈連接的,所以車頭轉(zhuǎn)彎在車箱之前,這個角度是可以滿足系統(tǒng)開啟的實時性要求的。 2.3.2 內(nèi)輪差及盲區(qū)面積的計算 由于各種車型的參數(shù)不同,求出的內(nèi)輪差(如圖2.4)也不相同。這里選擇生活中常見的東方天龍DEL4251A型車6軸貨車,軸距為3.4+1.35+4.8+1.35+1.36,輪距為2.3,假設貨車處于最大轉(zhuǎn)彎,轉(zhuǎn)彎半徑為20.7。 圖2.4 車輛內(nèi)輪差 根據(jù)公式可以求出貨車的內(nèi)輪差為3;貨車的轉(zhuǎn)彎盲區(qū)最大面積為: 式中j為貨車轉(zhuǎn)彎角度,rad;h為半掛車長度。 2.4 傳感器的選擇 2.4.1 超聲波HC SR04 HC SR04超聲波模塊的檢測范圍是2cm~400 cm,根據(jù)我們模擬的警報范圍3.6米,它可以滿足測量距離的要求,精度可達3毫米。它的超聲波由壓電晶片振動產(chǎn)生超聲波從trig觸發(fā)端口發(fā)射出去,當超聲波發(fā)射到目標身上反射回來,同樣由trig端接收。如果trig端接收到從目標身上反射回來的超聲波,那么就會由I/O口的ECHO輸出一段高電平,通過發(fā)射和接收的時間間隔可以算出距離。從發(fā)射端到目標之間的距離(=高電平持續(xù)時間超聲波聲速(340 m / S))/ 2,測距原理如圖2.5所示。HC SR04的接線有四根從引腳引出來的導線,分別是VCC 5 v電源線、接地線、觸發(fā)控制信號輸入線trig和回聲信號輸出線echo。 圖2.5 超聲波測距原理 2.4.2 角度傳感器的選擇 基于本文研究的監(jiān)控系統(tǒng)是在水平上行駛,選擇的傳感器只要滿足能檢測到二維平面上轉(zhuǎn)動的夾角就可以,這類傳感器有光柵角度傳感器、陀螺儀、GPS等[16]。下面對比三種能夠?qū)崿F(xiàn)方向定位的技術優(yōu)缺點如表1所示: 表1 常見方向傳感器優(yōu)缺點 技術 優(yōu)點 缺點 光柵角度傳感器 便于安裝,測量精準 適用于溫度不高,偏向靜態(tài)的環(huán)境,操作不便 陀螺儀傳感器 測量精準,適應復雜環(huán)境,性能穩(wěn)定 體積偏大,安裝要求高 GPS導航系統(tǒng) 性價比高,體積小,重量輕 依賴信號支持,反應偏慢,易受磁場干擾 由于本論文研究旨在提高貨車周圍環(huán)境的安全,方向傳感器應該安裝在車頭以及時判斷,車頭的工作環(huán)境光柵角度傳感器無法適應,GPS性能不穩(wěn)定,不能擔當安全的使命。所以選擇陀螺儀是最適合的。出于價格和功能的考慮,這里選擇MPU6050陀螺儀傳感器。 2.5 本章小結(jié) 本系統(tǒng)有效防范了貨車轉(zhuǎn)彎時由于盲區(qū)造成的危險,系統(tǒng)能夠?qū)ζ嚸^(qū)進行無死角探測,并根據(jù)測角的信號做出是否觸發(fā)蜂鳴器、視頻顯示等決策。根據(jù)蜂鳴器的蜂鳴方向提醒駕駛員車體的左右是否有存在危險,如果存在危險,由數(shù)碼管可以看到目標和貨車的距離。同時駕駛員通過視頻能夠及時了解車體周圍的情況,做出相對安全的決策。在這一章主要介紹了硬件的布置以及轉(zhuǎn)彎時兩個重要參數(shù)的模擬和計算,同時根據(jù)這些參數(shù)選擇了相應的傳感器。下一章將介紹模塊之間的連接實現(xiàn)以及與元件的對接。 3 硬件實現(xiàn)及單元電路設計 3.1 轉(zhuǎn)角模塊的實現(xiàn) 角度傳感器用來檢測車身轉(zhuǎn)彎角度,以確定是否需要開啟超聲波測距和攝像頭工作。 MPU6050與單片機之間是I2C通信,故需要接三根線,其中它與單片機的相關引腳連接為相同標號的連接。如圖3.1所示: 圖3.1 角度傳感器模塊 3.2 超聲波模塊的實現(xiàn) 超聲波傳感器,采用脈沖捕捉原理進行測距,一共四個接口,與單片機有兩個引腳相連,Trig觸發(fā)端與普通i/o口連接,Echo與單片機斷口引腳連接,如圖3.2所示: 圖3.2 超聲波模塊 3.3 蜂鳴器報警模塊 單片機的信號無法驅(qū)動蜂鳴器,故需要使用三級管放大電路構(gòu)成驅(qū)動電路,如圖3.3所示: 圖3.3 蜂鳴器模塊 3.4 顯示模塊 當目標進入危險區(qū)且并繼續(xù)靠近貨車,可以看兩者的距離。其中每個數(shù)碼管是由8個發(fā)光二極管構(gòu)成,在這里用來顯示目標距離超聲波測距儀的距離。如圖3.4所示,距離顯示模塊由數(shù)碼管構(gòu)成,其中上端為位選信號,下端為段選信號,由于該系統(tǒng)i/o口資源有限,數(shù)碼管需要使用動態(tài)刷新。 圖3.4 顯示模塊 3.5 視頻采集模塊 視屏的采集如圖3.5,由單片機判斷開啟時,首先控制繼電器打開,給紅外線攝像頭供電,攝像頭開始工作,采集視屏后傳輸給顯示器。 圖3.5 視頻采集模塊 3.6 視頻顯示模塊 視頻顯示模塊如圖3.6,顯示屏接口采用RS485通信方式,與視屏采集端之間連接RS485芯片。使用二極管對顯示屏采取一定的保護措施,并接上相應的電阻保持長距離的通信穩(wěn)定。 圖3.6 視屏顯示模塊 3.7 電源模塊 單片機需要電壓穩(wěn)定的環(huán)境工作,這里選擇線性穩(wěn)壓電源,如圖3.7所示。其穩(wěn)定性好、瞬態(tài)響應速度快、可靠性高[17]。電源模塊中使用LM2940三端穩(wěn)壓器,為單片機提供穩(wěn)定電壓5V,最高輸入電壓26V。 圖3.7 電源模塊的設計 3.8 主控制模塊的實現(xiàn) 最小系統(tǒng)是52單片機,其性能與51單片機完全兼容。在這個最小系統(tǒng)上加上振晶、復位電路,錄入程序后可以完成對整個系統(tǒng)的控制。 圖3.8 最小系統(tǒng)圖 3.9 總設計圖 硬件電路原理總設計見圖3.7,電路連接圖見附錄。本設計的主要決定驅(qū)動電路工作的元件是單片機 STC89C52、陀螺儀MPU6050、超聲波傳感器HC SR04。顯示部分有距離顯示和視屏顯示,距離顯示直接由單片機控制,視頻顯示中采集圖像和顯示圖像都是由單片機控制的繼電器控制,可以實現(xiàn)需要時才開啟。 圖3.9 總設計原理圖 4 系統(tǒng)軟件的結(jié)構(gòu)設計 對于軟件的結(jié)構(gòu),首先是需要將分成三個大模塊。其中視屏模塊只需要控制繼電器的開關即可;測角模塊負責檢測角度,即針對角度傳感器的模塊;另一個模塊負責完成測距。除了這三個大模塊,還有預設、顯示、警報等小模塊。這些小模塊可以并入到大模塊;兩個分別獨立的大模塊中,其中測距模塊是和警報在一起的,放在一起編寫利于檢查和調(diào)試,所以小模塊并入測距模塊是比較利于設計的。測距模塊的編程中出現(xiàn)發(fā)射超聲波和接收超聲波,以及計算距離。所以小模塊和測距子模塊應當分成獨立的模塊,在一定的時間內(nèi),獨立模塊調(diào)用和接收預置程序、子程序。針對測角的模塊,也是分為三個子模塊,但是可以和測距模塊共用一個時鐘數(shù)據(jù),最后由主程序調(diào)用到合并的模塊中。 4.1 軟件設計思路 本設計是要在貨車轉(zhuǎn)彎的狀態(tài)下,對進入危險區(qū)域的目標發(fā)出警告和提供給司機距離數(shù)據(jù)。所以可以設定兩個條件,即角度、距離。這兩個條件構(gòu)成的模塊之間關系應該是與門關系,即同時滿足這兩個模塊的條件,那這兩個模塊共同傳輸數(shù)據(jù),驅(qū)動蜂鳴器發(fā)出警報。在目標靠近貨車時,由超聲波測距儀測距,通過A/D轉(zhuǎn)換,由單片機控制顯示管的段選、位選信號發(fā)送,提供數(shù)據(jù)給司機。由于本設計的測距最多到4米,是一位數(shù)的射程,所以可以每只數(shù)碼管可以顯示一個測距儀的數(shù)據(jù)。角度的測量需要程序計算,為方便代碼檢查,可以放在單獨的一塊,由主函數(shù)調(diào)用,在外部中斷的時候接收返回的轉(zhuǎn)角信號。貨車監(jiān)控系統(tǒng)的電路設計是以陀螺儀接收的中斷程序和顯示子程序為基礎的。C語言程序可以實現(xiàn)許多困難的算法,匯編語言的運行效率比較高,可以較精確地計算時間。陀螺儀測量角度的程序的更加復雜的算法,我們要求匯編語言對計算程序的運行時間比較精確。本設計的控制程序使用C和匯編語言。 4.2 貨車盲區(qū)檢測和警報電路的算法設計 陀螺儀側(cè)角的基本思路就是記住貨車車頭轉(zhuǎn)角某一時刻,當車頭出現(xiàn)轉(zhuǎn)角,陀螺儀軸在相應的平面上發(fā)生位移,然后轉(zhuǎn)換成角速度和加速度信號被接收。所以我們就可以利用積分公式計算出車頭調(diào)轉(zhuǎn)的角度。 當開始在發(fā)生轉(zhuǎn)角的時候我們就啟動T0定時器芯片,然后我們就用定時器的功能來車頭開始轉(zhuǎn)角到轉(zhuǎn)角不再增大的時間。當我們收到轉(zhuǎn)角不再繼續(xù)增大的信號,接收電路就是產(chǎn)生一個負面的跳,就會產(chǎn)生一個中斷信號的請求INT0或INT1終端, 單片機外部中斷請求,外部中斷服務子程序的實現(xiàn),根據(jù)時間的差異,求出該轉(zhuǎn)角的大小。 轉(zhuǎn)角度數(shù)求出后由單片機存儲再讀取,并判斷是否開啟超聲波和警報器。超聲波啟動,T0定時芯片同時啟動,利用ECHO端記錄高電平持續(xù)時間,求出目標與超聲波測距儀的距離,進入測距儀警報范圍,啟動數(shù)碼管。 4.3 主程序流程圖 我們把軟件分為兩部分,分別是主程序和中斷服務程序。如圖4.3所示。我們再在完成控制程序初始化的情況下,由傳感器得到每個轉(zhuǎn)角起始和終止、發(fā)射和接收的序列。 圖4.1 主程序流程 5 調(diào)試 本設計由陀螺儀測角模塊、單片機模塊、超聲波測距模塊、顯示和報警四個模塊組成的。在電路中模塊越多,各芯片的運算越復雜,系統(tǒng)就越難調(diào)試。這里假設單片機驅(qū)動的電路是可以正常運行的,兩個傳感器是決定系統(tǒng)是否開啟的條件,所以我們只要調(diào)試測角和測距功能正常,整個系統(tǒng)就可以正常工作。 5.1 硬件調(diào)試 硬件的調(diào)試首先是在不通電的條件下完成,檢查連線是否正確,元器件的安裝是否合理,元器件是否能通電等,然后再通電檢查。檢查都能通過了最后焊接電路。 首先是減少不必要的連接錯誤(即連接的一端是正確的,與另一端要減少錯誤),檢查接線圖是否可以能夠符合原理電路,設計電路布線,可以以組件(如運算放大器、三極管)為中心,這樣不僅可以找出故障還會更少用導線,也容易連接其他的線路。 為了保證整體的連接正常,在檢查連接線的時候,同時也要使用萬用表來檢查線路中有電阻連接的設備,得到最好的測量,它可以檢測一些“隱藏”錯誤。 檢查安裝的組件:檢查的關鍵組件,集成運算放大器、三極管、二極管、電解電容器等連接是否有錯誤,或者外引線短接,同時也檢查焊接組件是否可靠。有必要指出,在焊接之前,有必要測試組件,可以確保組件能夠正常工作,得到調(diào)試,以避免不必要的麻煩[17]。 我們也要檢查公共的接地端和電源的輸入端,電路接通電源之前,還需要萬用表檢測組件之間是否短路,進行電源輸入和檢查,如果有任何錯誤,進一步檢查的原因。 電池供電的這種方式,當距離很大容易受到地面漫反射干擾的影響,所以獲得抵抗不能太小,否則靈敏度會受到影響,如果有必要,可以添加濾波電容。經(jīng)過幾次調(diào)試,角度傳感器沒有誤差,超聲波把測試精度基本上能控制在1厘米左右。 5.2 軟件調(diào)試 5.2.1 匯編 作為能夠直接和機器對話的語言,匯編語言簡單易懂,但同時在編寫時又很復雜,所以在程序設計時有明確的分塊,因為作為低級語言它編寫的代碼量很大,如果其中除了任何小差錯,很難被找到。那么就需要我們在編程中注釋出每個小模塊,方便調(diào)試不通過時,有明確的查找范圍。匯編語言對于計算機有一定的針對性,即只針對一臺計算機或者同一系列的計算機。匯編語言在單片機中應用比較廣泛,它可以直接控制計算機的硬件設備,而且占的資源少,執(zhí)行高效。因為這些優(yōu)點,我們在對硬件編程時會常用到,是很適合硬件編程的程序設計語言。 C52系列的單片機STC89C52 走上市場時間不是太久,但因為其優(yōu)越的性能和很低的功耗被廣泛用于智能系統(tǒng)中,比如車載、智能控制、機器人等高級產(chǎn)品中。其微控制芯片是CMOS8位的微控制器,存儲器可以存儲8K資源,保證單片機的高效運行,同時存儲器是使用高密度非易失性存儲器技術制造的。當然,為了與市場主流的51單片機接軌,它的引腳與51系列單片的引腳是相互兼容的。 目前很多計算機專業(yè)的人員程序設計選用的語言是C語言,作為流行通用的設計語言,它也備受計算機愛好者的喜愛,因為它不僅可以用來編寫系統(tǒng)軟件,也可以用來開發(fā)應用軟件 [18]。C語言的編程有良好的可移植性,其庫函數(shù)也十分豐富,編譯效率高等特點決定了可以用它來編譯單片機,對單片機開發(fā)及應用是很有前景的。 通常軟件的生命周期包括了很多活動,而在各個活動中都有可能產(chǎn)生錯誤,在長期的運行過程中可能會有功能不齊全、代碼發(fā)生錯誤等問題[19],因此,對軟件調(diào)試是必要的。 在傳統(tǒng)意義上,測試被俠義地定義為測試程序代碼。這里我們更愿意采用一種更為廣義的測試定義:它包含所有生產(chǎn)優(yōu)質(zhì)產(chǎn)品的活動。對于一個好的產(chǎn)品,測試與其他階段恰當?shù)慕换ナ潜夭豢扇钡腫20]。 C52單片機的編程可以使用單片機編程軟件中的KEILuVISION2,KEILuVISION2可以同時支持匯編和C語言,甚至PLM?;诒驹O計會用到匯編和C語言,我們將選它作為編譯工具和調(diào)試。它有很豐富的庫函數(shù),不僅支持51系列的單片機,對52單片機也適用,而且它可以編輯、編譯,燒錄程序給單片機也很方便,還支持程序仿真。 5.2.2 調(diào)試過程 把模塊放在電路,連接到電源,檢查程序能否達到自己的設計可以實現(xiàn)所需功能。假如結(jié)果與當初的設計思路是不一樣的,首先檢查硬件的問題,以保證測試時硬件整體是沒有問題的。如果在檢查硬件之后確定硬件和連接都沒有問題,那可能是軟件有問題。所以需要檢查軟件的一些部分,首先我們使用一個標準件來實驗,看看檢測到的數(shù)據(jù)和顯示的數(shù)據(jù)是否一樣,這里檢查下來是一樣的,說明我們的顯示部分軟件沒有問題,我們檢查編寫、運行程序方面的軟也是好的,最后檢查一次代碼,查了兩遍后發(fā)現(xiàn)一些細節(jié)上的小代碼忘了編寫,同時查閱資料得知角度測量的方法還需要優(yōu)化,否則當測量的角度太小的時候容易出現(xiàn)波動,檢測得不夠準確。,在修改程序后、我們又用卡曼波優(yōu)化了陀螺儀的測角。然后就是檢查超聲波部分了,顯示數(shù)碼管是可以正常運行的,就是檢測對象不利于超聲波的反射。因為在前面我們已經(jīng)確定了硬件是沒有問題的,由此可以得出,我們再結(jié)合硬件的前提下在檢查軟件設備,這樣我們可以很直觀的找到那里有錯誤。調(diào)試結(jié)果如下: 表5-1 第一次測試結(jié)果 測試序號 1 2 3 4 5 6 真實角度(度) 30 60 90 120 150 180 測試角度(度) 28 61 92 121 150 180 真實距離(m) 0.25 0.55 1.00 2.50 3.50 4.50 測得距離(m) 0.32 0.46 0.75 2.50 2.36 0 表5-2 調(diào)整后測試結(jié)果 測試序號 1 2 3 4 5 6 真實角度(度) 30 60 90 120 150 180 測試角度(度) 30 60 90 120 150 180 真實距離(m) 0.25 0.55 1.00 2.50 3.50 4.50 測得距離(m) 0.24 0.55 0.99 2.50 3.51 0 6 結(jié) 論 本研究在最后的調(diào)試數(shù)據(jù)中滿足了本論文最開始的初衷,整個調(diào)試過程是在相對理想的環(huán)境中測試的。本設計的主要模塊是測角、測距、控制模塊,這些模塊的難點主要在軟件編程部分,單片機采用C52系列的stc89c52單片機后選用12MHz高精度的晶振,較高的時鐘振晶頻率,我們可以大大降低系統(tǒng)的測量誤差。在提供穩(wěn)定電源時使用了兩個保護電容器,和一個穩(wěn)壓電容,確保進入單片機的電壓穩(wěn)定。為了確認電源通路,在電源部分連上一個發(fā)光二極管,由于發(fā)光二極管的允許通過的電流很小,所以串聯(lián)了一個電阻。在C52單片機上端口都接上拉電阻,防止遇到很大輻射時產(chǎn)生高電壓破環(huán)電路,同時也增大了接口線路的電流,保證各電子元件得以正常運行。生產(chǎn)生活中,安全永遠處于第一位,電路同樣如此,只有安全的設計,才能保證它使用的可靠性和延長它的使用壽命。 參考文獻 [1]袁建江,柴雷剛,林點點,溫自源,楊旭.貨車盲區(qū)檢測系統(tǒng)[J].智能計算機與應用,2017,7(06):70-72+75. [2]王曉光,肖峻.貨車駕駛盲區(qū)障礙預警裝置的研制[J].武漢貨車工業(yè)大學學報,1999(05):13-16. [3]趙宇峰. 貨車后視鏡盲區(qū)檢測及預警關鍵技術研究[D].鄭州大學,2008.36 [4]曉宏.貨車盲區(qū)探測系統(tǒng)[J].貨車維修,1998(03):24. [5]王春燕,蔡鳳田,楊英俊.國內(nèi)外安全輔助駕駛研究發(fā)展動態(tài)[J].云南交通科技,1999(05):13-14. [6]徐友春,王榮本,李兵,李斌.世界智能車輛近況綜述[J].貨車工程,2001(05):289-295. [9] 李華.MCS-51系列單片機實用接口技術[M].北京:北京航空航天大學出版社, 1993. 6: 87--93 [10] 陳光東.單片機微型計算機原理與接口技術(第二版)[M].武漢:華中理工大學出版社,1999.4:21—25 [11]鄧曉旭,苗瑞.光柵角度傳感器干涉計量原理[J].森林工程,2000(04):30-31. [12]陳三清,張靖.基于Android智能手機的方向傳感器應用開發(fā)[J].無線互聯(lián)科技,2017(18):58-60. [13] 郝俊.汽車智能輔助駕駛系統(tǒng)的發(fā)展與展望[J].科技與創(chuàng)新,2015(24):39-40. [14] 福特盲點信息系統(tǒng)(BLIS)[J].產(chǎn)品可靠性報告,2011(10):126. [15] 趙燕.傳感器原理及應用[M].北京:北京大學出版社.2010.2:59 [16] 祁樹勝.傳感器與檢測技術[M].北京:北京航空航天大學出版社,2010.8:86 [17] 葛中海.開關電源實例電路測試分析與設計[M]. 北京:電子工業(yè)版社,2015.8:2 [18] 張建軍,史銀龍,劉勝厚.C語言程序設計[M].北京:海洋出版社,2010.7 [19] 王英龍等.軟件測試技術[J].北京:清華大學出版社,2009.9:65 [20] (?。┑衔骺希―esikan,S.)等[M].軟件測試原理與實踐;韓柯等譯.北京:機械工業(yè)出版社,2009.2 附 錄 代碼 //數(shù)碼管段選定義 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff}; //斷碼 uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; //數(shù)碼管位選定義 sbit smg_we1 = P3^4; //數(shù)碼管位選定義 sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7; sbit c_send = P3^2; //超聲波發(fā)射 sbit c_recive = P3^3; //超聲波接收 sbit beep = P2^3; //蜂鳴器IO口定義 uchar smg_i = 3; //顯示數(shù)碼管的個位數(shù) bit flag_300ms ; long distance; //距離 uint set_d; //距離 uchar flag_csb_juli; //超聲波超出量程 uint flag_time0; //用來保存定時器0的時候的 uchar menu_1; //菜單設計的變量 /***********************1ms延時函數(shù)*****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i= 2) { menu_1 = 0; smg_i = 3; //只顯示3位數(shù)碼管 } if(menu_1 == 1) { smg_i = 4; //只顯示4位數(shù)碼管 } } if(menu_1 == 1) //設置報警 { if(key_can == 2) { set_d ++ ; //加1 if(set_d > 400) set_d = 400; } if(key_can == 3) { set_d -- ; //減1 if(set_d <= 1) set_d = 1; } dis_smg[0] = smg_du[set_d % 10]; //取小數(shù)顯示 dis_smg[1] = smg_du[set_d / 10 % 10] ; //取個位顯示 dis_smg[2] = smg_du[set_d / 100 % 10] & 0xdf ; //取十位顯示 dis_smg[3] = 0x60; //a write_eeprom(); //保存數(shù)據(jù) } } /****************報警函數(shù)***************/ void clock_h_l() { static uchar value; if(distance <= set_d) { value ++; //消除實際距離在設定距離左右變化時的干擾 if(value <= 2.4 &&*ptr>=35) { beep = ~beep; //蜂鳴器報警 } } else { value = 0; beep = 1; //取消報警 } } /***********************數(shù)碼位選函數(shù)*****************************/ void smg_we_switch(uchar i) { switch(i) { case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break; case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break; case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break; case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break; } } /***********************數(shù)碼顯示函數(shù)*****************************/ void display() { static uchar i; i++; if(i >= smg_i) i = 0; smg_we_switch(i); //位選 P1 = dis_smg[i]; //段選 } /******************小延時函數(shù)*****************/ void delay() { _nop_(); //執(zhí)行一條_nop_()指令就是1us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } /*********************超聲波測距程序*****************************/ void send_wave() { c_send = 1; //10us的高電平觸發(fā) delay(); c_send = 0; TH0 = 0; //給定時器0清零 TL0 = 0; TR0 = 0; //關定時器0定時 while(!c_recive); //當c_recive為零時等待 TR0=1; while(c_recive) //當c_recive為1計數(shù)并等待 { flag_time0 = TH0 * 256 + TL0; if((flag_time0 > 40000)) //當超聲波超過測量范圍時,顯示3個888 { TR0 = 0; flag_csb_juli = 2; distance = 888; break ; } else { flag_csb_juli = 1; } } if(flag_csb_juli == 1) { TR0=0; //關定時器0定時 distance =flag_time0; //讀出定時器0的時間 distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出來是米 if((distance > 400)) //距離 = 速度 * 時間 { distance = 888; //如果大于4m就超出超聲波的量程 } } } /*********************定時器0、定時器1初始化******************/ void time_init() { EA = 1; //開總中斷 TMOD = 0X11; //定時器0、定時器1工作方式1 ET0 = 0; //關定時器0中斷 TR0 = 1; //允許定時器0定時 ET1 = 1; //開定時器1中斷 TR1 = 1; //允許定時器1定時 } /***************主函數(shù)*****************/ void main() { beep = 0; //開機叫一聲 delay_1ms(150); P0 = P1 = P2 = P3 = 0xff; //初始化單片機IO口為高電平 send_wave(); //測角離函數(shù) smg_display(); //處理距離顯示函數(shù) time_init(); //定時器初始化程序 init_eeprom(); //開始初始化保存的數(shù)據(jù) send_wave(); //測角離函數(shù) send_wave(); //測角離函數(shù) while(1) { if(flag_300ms == 1) { flag_300ms = 0; clock_h_l(); //報警函數(shù) if(beep == 1) send_wave(); //測角離函數(shù) if(menu_1 == 0) smg_display(); //處理距離顯示函數(shù) } key(); //按鍵函數(shù) if(key_can < 10) { key_with(); //按鍵處理函數(shù) } } } /*********************定時器1中斷服務程序************************/ void time1_int() interrupt 3 { static uchar value; //定時2ms中斷一次 TH1 = 0xf8; TL1 = 0x30; //2ms display(); //數(shù)碼管顯示函數(shù) value++; if(value >= 150) { value = 0; flag_300ms = 1; } } #include "cry1602.h" #inc
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 貨車 盲區(qū) 監(jiān)控 系統(tǒng) 設計 說明書
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://www.szxfmmzy.com/p-6712632.html