基于單片機(jī)的避障小車的設(shè)計(jì)_第1頁
基于單片機(jī)的避障小車的設(shè)計(jì)_第2頁
基于單片機(jī)的避障小車的設(shè)計(jì)_第3頁
基于單片機(jī)的避障小車的設(shè)計(jì)_第4頁
基于單片機(jī)的避障小車的設(shè)計(jì)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一章緒論1.1課題的研究背景科學(xué)技術(shù)在不斷被發(fā)展,人們越來越關(guān)注人工智能,因?yàn)闊o人自動駕駛它不需要人來控制,自動控制是它的優(yōu)點(diǎn)以及突出點(diǎn),因此也受到越來越多的人的關(guān)注,而且無人駕駛這項(xiàng)技術(shù)可以很好的運(yùn)用到我們的生活中,無人駕駛的小車它具備了自己行動的能力,而且有人工智能和大數(shù)據(jù)的幫助,事故率也一定會大大降低。但是目前因?yàn)橄嚓P(guān)技術(shù)的不成熟,所以可以見到這種無人駕駛的自動小車并沒有普及開來,在不久的將來,隨著避障技術(shù)的發(fā)展以及普遍應(yīng)用,無人駕駛的自動小車一定會普及開來,服務(wù)于社會,造福人類。1.2課題研究的意義無人駕駛的避障小車,它是多種技術(shù)的結(jié)合體。它的自動行駛控制能力就體現(xiàn)了自動控制技術(shù),它的避障功能就體現(xiàn)了各種傳感器的功能,包括了信息處理、機(jī)械、自動化、相關(guān)領(lǐng)域的知識,最重要的它實(shí)現(xiàn)的自動避障更是人工智能的一種體現(xiàn)。它根據(jù)周圍環(huán)境的變化以及自身的情況具有自己的判斷,這種控制記憶執(zhí)行動作等功能,完全是機(jī)電一體化產(chǎn)品。避障小車在生活中得到的實(shí)用,例如智能家居中的移動掃地機(jī)器人,在進(jìn)行工作時,既要完成打掃衛(wèi)生的工作,也需要在打掃時對于家具、人進(jìn)行避障,這是一種避障技術(shù)的體現(xiàn)。隨著技術(shù)的發(fā)展,避障小車的許多指標(biāo)已經(jīng)達(dá)到了工業(yè)級別的要求,因此在許多惡劣的工作環(huán)境中,避障小車就可以代替人去搬運(yùn)貨物、檢測設(shè)備等工作,就需要小車對避障的精度十分準(zhǔn)確。1.3避障小車技術(shù)發(fā)展概況無人駕駛的避障小車,它是多種技術(shù)的結(jié)合體,也是多個行業(yè)的結(jié)合,是自動控制、機(jī)械、電子信息工程等技術(shù)的結(jié)合。在工業(yè)上,由于其指標(biāo)達(dá)到了工業(yè)指標(biāo),所以工業(yè)上的應(yīng)用很廣泛,例如,可以在挖礦中在地下探測礦源,并把信息返回到地面,可以看到它完全可以適應(yīng)這些惡劣的環(huán)境,所以說在未來的發(fā)展中無人駕駛的避障小車前途無量,最重要的就是可以改善我們的生活,對于社會以及工業(yè)整個領(lǐng)域都是極大的進(jìn)步。在我國,在“七五”時期開始對移動機(jī)器人研究,在863計(jì)劃中立項(xiàng)確定了遙控駕駛防核化偵察車的研究。這個時期的國外已經(jīng)研究這項(xiàng)技術(shù)20年之久了,美國也對地面移動機(jī)器人立項(xiàng)并且制訂了地面無人作戰(zhàn)戰(zhàn)略計(jì)劃,德國和奔馳公司合作研究出了兩輛試驗(yàn)車。這兩輛車可以實(shí)現(xiàn)高速行駛并且在交通擁擠的時候使用的低速駕駛技術(shù)對當(dāng)今的無人駕駛的影響都很大,對于無人駕駛的小車的普及有著很大的影響。在九十年代之后,隨著傳感器技術(shù)的發(fā)展以及信息處理技術(shù)的不斷提高,自動避障小車的研究在控制技術(shù)的支持下進(jìn)行了更深層次的研究。我國對它的研究也是突飛猛進(jìn)的,各大高校的成果層出不窮?,F(xiàn)在超聲波避障技術(shù)比較方便而且易于實(shí)現(xiàn),所以就成為了現(xiàn)在非常常見的避障方法。1.4單片機(jī)發(fā)展概況第一階段:單片機(jī)初級階段這段時期最具有特點(diǎn)最突出的單片微型計(jì)算機(jī)就是MCS-48,它生產(chǎn)自英特爾,這段時期制造工藝很落后,制造出的單片機(jī)雖然各個功能齊備,但是以現(xiàn)在的技術(shù)對比就顯得很不精細(xì),8位中央處理器并行的Input/Output接口,八位的計(jì)數(shù)定時器。問題最大的就是此時的Input/Output接口不能夠?qū)崿F(xiàn)串行通信,并且和現(xiàn)在的單片微型計(jì)算機(jī)相比尋址范圍也特別小。第二階段:單片機(jī)的完善階段這段時期最具有特點(diǎn)的是MCS51系列單片機(jī),這個單片機(jī)和上一階段相比,并行的Input/Output接口可以實(shí)現(xiàn)串行通信了,并且中斷處理系統(tǒng)從一級變成了多級,和上一階段相比還有一個重要的變化就是定時/計(jì)數(shù)器的位數(shù)從8位變成了16位,存儲器的容量也增大了許多,最大的變化就是尋址范圍夸大了,變成了64位了。第三階段:單片機(jī)鞏固和推新階段這段時期相比于全兩個階段,完善了許多功能,并且發(fā)展迅速,新產(chǎn)生了32位的單片機(jī),同時專用單片機(jī)也被生產(chǎn)出來。第四階段:單片機(jī)全面發(fā)展階段這個時期,也就是我們所處的這個時期,是單片機(jī)發(fā)展最好的時期,許許多多專用于這個領(lǐng)域或者單純實(shí)現(xiàn)某個功能的單片機(jī)隨著發(fā)展都被發(fā)明出來,不僅有著大容量存儲、相比之前超強(qiáng)的計(jì)算能力以及計(jì)算速度,而且能運(yùn)用到更多的領(lǐng)域。相比之前現(xiàn)在的類型也更多了,有專用型的單片機(jī),有通用型的單片機(jī),也有只能某個領(lǐng)域?qū)崿F(xiàn)單一功能的單片機(jī)。我們生活的附近處處都有單片機(jī)的影子,單片機(jī)應(yīng)用廣泛改變了我們的生活,同時隨著計(jì)算機(jī)、自動化、電子信息等學(xué)科的發(fā)展,單片機(jī)還會繼續(xù)進(jìn)步,并且能夠更好的運(yùn)用到更多領(lǐng)域,為我們的生活增添色彩。

第二章系統(tǒng)方案的確定及主要元件的選擇2.1系統(tǒng)方案的確定本系統(tǒng)的硬件設(shè)計(jì)包括最小系統(tǒng)STC89C52、L298N驅(qū)動電機(jī)控制電路、超聲波傳感器距離檢測電路、顯示小車距離的LCD顯示電路、按鍵電路以及在小車與障礙物之間的距離小于危險(xiǎn)距離時負(fù)責(zé)發(fā)出警報(bào)的蜂鳴器報(bào)警電路。本系統(tǒng)功能實(shí)現(xiàn):在小車地盤前部的負(fù)責(zé)檢測障礙物與小車之間距離的超聲波傳感器在檢測到小車與障礙物之間的距離之后,將這個距離信號發(fā)送至單片微型計(jì)算機(jī),也就是系統(tǒng)的主控模塊上,然后主控模塊會對信號進(jìn)行分析以及判斷,通過LCD屏幕顯示出來,之后對距離信號進(jìn)行判斷,若距離大于安全距離,則延續(xù)之前的運(yùn)動;若距離在安全距離與危險(xiǎn)距離之間,則輸出控制信號通過驅(qū)動模塊使電機(jī)轉(zhuǎn)速下降達(dá)到減速的目的,在小車運(yùn)行過程中,若超聲波傳感器檢測到車頭與前方障礙物的距離低于危險(xiǎn)距離,后輪會緊急制動并后退同時拉響警報(bào)。本系統(tǒng)設(shè)計(jì)以單片微型計(jì)算機(jī)STC89C52最小系統(tǒng)作為主控模塊,并且是能夠?qū)φ麄€避障小車的各個模塊起到控制的功能,利用在KEIL軟件下進(jìn)行C語言編程,實(shí)現(xiàn)它的控制功能。在小車的驅(qū)動方面,通過程序產(chǎn)生不同的PWM波,根據(jù)L298N驅(qū)動模塊的邏輯讓它控制直流電機(jī)的轉(zhuǎn)速以及轉(zhuǎn)向,進(jìn)而控制著整個小車的運(yùn)動過程,并且還需要在超聲波測距模塊在測量小車和障礙物之間的距離的時候根據(jù)超聲波發(fā)出和接收的時間通過程序計(jì)算出這個距離,并把這個距離信息送至主控模塊去處理判斷進(jìn)而確定小車下一步的行動。2.2主要器件的選擇2.2.1控制模塊本系統(tǒng)設(shè)計(jì)所有的控制功能都是由最小系統(tǒng)STC89C52完成的,它是51單片機(jī)的一種,該單片機(jī)具有對小車的數(shù)據(jù)讀取和采集的功能,根據(jù)信號的采集進(jìn)行控制并對小車的轉(zhuǎn)速、轉(zhuǎn)向和障礙進(jìn)行避障等控制。2.2.2測距模塊本系統(tǒng)設(shè)計(jì)在小車避障中需要得知的最重要一個數(shù)據(jù)就是小車和障礙物之間的距離,因此需要用到傳感器。常見的和測量距離相關(guān)的就是紅外線光電傳感器、超聲波傳感器,他們各有優(yōu)點(diǎn)與缺點(diǎn)。和光電傳感器相比,超聲波受環(huán)境影響的因素較小,小車的工作環(huán)境是在空氣中,光電傳感器會受到空氣中灰塵的影響,而選擇超聲波傳感器受到的影響就很小,而且在工業(yè)上如果擴(kuò)大使用的話,條件就會更苛刻,例如在化工廠等可能存在毒氣有害物質(zhì)的場所,光電傳感器的準(zhǔn)確度還會受到光的折射等因素影響,與超聲波傳感器的測距效果相差會更多。最重要的是超聲波具有極好的傳遞性,在小車所工作的環(huán)境中介質(zhì)就是空氣,超聲波能在空氣中很好的傳播,并且它的結(jié)構(gòu)簡單,原理操作都很簡單,可以很快的得知測量距離,運(yùn)算也簡便,同時誤差也小,不光滿足我們的的需要,在工業(yè)級的精度上,超聲波測距也可以達(dá)到。2.2.3電機(jī)驅(qū)動模塊本系統(tǒng)設(shè)計(jì)在小車行駛的控制上,采用了L298N驅(qū)動芯片,它是雙H橋直流電機(jī)驅(qū)動芯片,用于驅(qū)動二相和四相電機(jī)。通過在邏輯電路接收標(biāo)準(zhǔn)的Transistor-TransistorLogic即TTL邏輯電平信號,去控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、制動。它具有四通道邏輯電路,ENA端子和ENB端子是驅(qū)動模塊的使能端,在接收在程序的控制下由單片微型計(jì)算機(jī)也就是系統(tǒng)的主控模塊發(fā)出的PWM波后進(jìn)行調(diào)速。在使能端接收信號為0時,電機(jī)不再轉(zhuǎn)動,也就是不工作了,既不會正轉(zhuǎn)也不會反轉(zhuǎn)。在使能端接收信號為1時,根據(jù)它的輸入端也就是INT端的四個端子IN1、IN2、IN3、IN4的高低電平配置使電機(jī)處于正轉(zhuǎn)、反轉(zhuǎn)、制動狀態(tài)。本設(shè)計(jì)在小車檢測到小車與障礙物之間的距離小于危險(xiǎn)距離時,需要進(jìn)行的操作就是緊急制動,并且向后撤退,因此L298N完全可以完成這個任務(wù)。2.2.4電源模塊本系統(tǒng)設(shè)計(jì)中所用的模塊的工作電壓為5V,能夠提供+5V的直流穩(wěn)壓源的有交流電經(jīng)過直流穩(wěn)壓后的電源,但是交流電就需要給小車插上電線,插上電線對于小車行駛會有一定的影響,最重要的就是在檢測障礙物時可能會把電線檢測到,影響了小車的避障的準(zhǔn)確度。因此本系統(tǒng)選用干電池對系統(tǒng)供電,每節(jié)電池的電壓是1.5V,四節(jié)干電池的電壓就是6V。再經(jīng)過7805穩(wěn)壓模塊處理后可以提供穩(wěn)定的+5V工作電壓。

系統(tǒng)的硬件設(shè)計(jì)3.1主控模塊設(shè)計(jì)3.1.1STC89C52介紹本系統(tǒng)設(shè)計(jì)以STC89C52最小系統(tǒng)作為主控模塊,控制著整個系統(tǒng)的運(yùn)行同時和各個模塊的協(xié)作。因此本設(shè)計(jì)的核心就是STC89C52單片機(jī)。STC89C52單片機(jī)具有豐富的外部總線,單片機(jī)具有豐富的外部總線,強(qiáng)的功能擴(kuò)展和功耗極低等眾多優(yōu)良性能,深得研究開發(fā)人員的喜愛,也是在做小型實(shí)驗(yàn)的首選,同時它體積小,非常方便去進(jìn)行組裝以及搬移,可靠性高,存儲讀入數(shù)據(jù)都不易出錯,更有過硬的工作溫度條件,這些都是STC89C52的優(yōu)點(diǎn)。STC89C52主要功能如下表:表3.1STC89C52功能8位CPU8K字節(jié)的線上系統(tǒng)可編程Flash256字節(jié)的RAM32位的I/O口看門狗定時器兩個數(shù)據(jù)指針三個16位定時/計(jì)數(shù)器一個六向量二級中斷結(jié)構(gòu)全雙工串口行片內(nèi)晶振以及時鐘電路STC89C52作為一種微控制器,是一種功耗特別低,性能特別高的8位微控制器。隨著科學(xué)技術(shù)的發(fā)展,存儲器的存儲數(shù)據(jù)的功能更加完善,更加快捷并且不易丟失,在制造單片機(jī)的時候再運(yùn)用高精度的技術(shù),使STC89C52能夠和工業(yè)用的單片機(jī)80C51產(chǎn)品等參數(shù)與引腳功能完全兼容。3.1.2STC89C52引腳功能圖3.1STC89C52引腳圖P0口:P0口是一個8位的雙向Input/Output口,八位的的漏極開路,既可以作為通用的Input/Output口進(jìn)行數(shù)據(jù)的輸入和輸出,也能夠起到單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用,因此,P0口的電路中有一個多路轉(zhuǎn)換電路MUX。在控制信號的控制下,電路可以分別接通鎖存器輸出或地址/數(shù)據(jù)線。P0口在做I/O接口時,需要加上拉電阻,上拉電阻的阻值一般在四千七百歐姆至一萬歐姆之間。P0口能以吸收電流的方式驅(qū)動8個LSTTL負(fù)載。P0每位口灌入的最大電流是十毫安,8位總共不能超過二十六毫安。P1口:P1口是一個八位的雙向Input/Output口,具有八位的漏極開路,P1輸出緩沖器可以驅(qū)動四個Transistor-TransistorLogic即TTL邏輯電平。在對P1端口寫入“1”,也就是判定為”是”的時候,內(nèi)部的上拉電阻把端口拉高,P1端口此時可以起到輸入端口的作用。在起到輸入端口的作用的時候,被外部拉低的引腳收到內(nèi)部電阻的影響,將輸出的低電平的時候需要消耗的電流。在通過flash開發(fā)框架進(jìn)行編程以及仿真時,P1口接受低8位地址字節(jié)。同時,P1口中的P1.0作為定時計(jì)數(shù)器的輸入端口,P1.1也作為第二位定時計(jì)數(shù)器的觸發(fā)輸入。在單片機(jī)的發(fā)展過程中,STC公司開發(fā)出的單片機(jī)新增添了一個功能,就是新開發(fā)了一種高速串行通信接口,也就是SPI接口。SPI接口在傳輸數(shù)據(jù)的時候喲兩種模式,一種是主模式,另一種就是從模式。兩種模式的區(qū)別顧名思義就是在主模式下的數(shù)據(jù)傳輸速率會比從模式下的數(shù)據(jù)傳輸速率快,可以在工作過程中提高很多速度。P1.5口、P1.6口、P1.7口在當(dāng)以STC單片微型計(jì)算機(jī)的SPI接口分別作為主體設(shè)備進(jìn)行工作傳輸數(shù)據(jù)、接收數(shù)據(jù)時發(fā)揮作用。表3.2P1口第二功能引腳號功能T2定時器/計(jì)數(shù)器2外部計(jì)數(shù)輸入T2EX定時/計(jì)數(shù)器捕獲/重裝觸發(fā)和方向控制MOSI主輸出從輸入MISO主輸出從輸入SCK時鐘P2口:P2口是一個八位的雙向具有8位漏極開路的Input/Output口,P2輸出緩沖器可以驅(qū)動四個Transistor-TransistorLogic即TTL邏輯電平在對P2端口寫入“1”,也就是判定為“是”的時候,內(nèi)部的上拉電阻把端口拉高,這個時候P1端口可以起到輸入端口的作用。在起到輸入端口的作用的時候,被外部拉低的引腳收到內(nèi)部電阻的影響,將輸出的低電平的時候需要消耗的電流。P3口:P3口是一個八位的具有漏極開路的雙向Input/Output口,P3輸出緩沖器可以驅(qū)動四個Transistor-TransistorLogic即TTL邏輯電平。在對P3端口寫入“1”,也就是判定為正的時候,內(nèi)部的上拉電阻把端口拉高,這個時候P1端口可以起到輸入端口的作用。在起到輸入端口的作用的時候,被外部拉低的引腳收到內(nèi)部電阻的影響,將輸出的低電平的時候需要消耗的電流。除了作為串行雙向通信的I/O口,P3口在使用單片微型計(jì)算機(jī)工作以及發(fā)揮其功能的時候主要是作為STC89C52的特殊功能來使用的。在通過flash開發(fā)框架進(jìn)行編程以及仿真時,P3口也起到接受控制信號的功能。P3的復(fù)用功能如下表所示。

表3.3P3口引腳復(fù)用功能引腳號復(fù)用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6(外部數(shù)據(jù)存儲區(qū)寫選通)P3.7(外部數(shù)據(jù)存儲器讀寫通)STC89C52除了以上4組8位的雙向的Input/Output口之外,還有以下這些引腳,在單片微型計(jì)算機(jī)工作過程中有著重要的作用。表3.4其它引腳功能引腳號功能VCC接電源電壓GND接地ALE/PROG地址鎖存允許/輸入編程脈沖PSEN程序儲存允許EA/VPP外部訪問允許XTAL1外接晶體引線端XTAL2外接晶體引線端RST復(fù)位信號VCC與GND是單片機(jī)連接電源的兩個引腳,VCC接電源的正極,GND接地,給單片微型計(jì)算機(jī)提供5V的工作電壓。ALE(地址鎖存允許)在單片機(jī)在訪問自己的數(shù)據(jù)存儲器或者外部程序存儲器時發(fā)揮作用,在單片機(jī)執(zhí)行這一行動時,ALE引腳通過輸出脈沖去鎖存地址的低8位字節(jié)。并且每進(jìn)行一次單片機(jī)訪問外部數(shù)據(jù)存儲器的時候,都會跳過一個ALE脈沖。ALE在正常情況下會以時鐘頻率的六分之一的頻率去輸出固定的脈沖信號,因?yàn)樗怨潭ǖ念l率去輸出脈沖,所以在工作過程中可用于計(jì)時,也可以對外輸出時鐘。在通過Flash框架進(jìn)行編程的時候,這個引腳除了ALE輸出脈沖鎖存低8位的地址外,還用于輸入編程脈沖,也就是PROG。在單片微型計(jì)算機(jī)工作過程中,會有訪問外部程序的時候,在這個時候應(yīng)該設(shè)置ALE禁止位無效,因?yàn)檫@個引腳會被微弱的抬高。最重要的在做一些需要精確的計(jì)時的工作時,不能夠采用ALE當(dāng)作精確地時鐘源。PSEN(程序存儲允許),該引腳連接外部程序存儲器的輸出允許端,它的作用就是在訪問外部存儲器時起到對于外部數(shù)據(jù)存儲器的選讀通信號。在單片機(jī)訪問外部程序存儲器時,會輸出兩個脈沖,也就是在單片機(jī)對于外部存儲器進(jìn)行訪問時,將跳過兩次PSEN信號。EA/VPP在單片機(jī)工作的時候起到的作用就是對于單片機(jī)訪問外部程序存儲器的控制功能,也就是外部訪問允許。在只訪問外部存儲器的時候,EA端需要接地。在單片微型計(jì)算機(jī)工作過程中,如果EA端接了高電平,那么CPU會先執(zhí)行內(nèi)部存儲器的指令,然后會執(zhí)行外部程序存儲器的內(nèi)容。在對該引腳街上+12V的允許編程的電源VPP,就可以使用Flash框架進(jìn)行編程。XTAL1與XTAL2在使用芯片內(nèi)部的時鐘時,這兩個引腳外接于石英晶體和微調(diào)電容。RST復(fù)位信號,在VCC引腳發(fā)生故障的時候或者降到低電平規(guī)定值掉電的時候,可以連接上備用電源VPD,向內(nèi)部隨機(jī)存取存儲器供電,這樣就可以使RAM內(nèi)的輸入保存下來,在下一次通電正常工作后,又可以繼續(xù)使用數(shù)據(jù)。在兩個機(jī)器周期或者兩個機(jī)器周期以上的高電平就算有用,就可以實(shí)現(xiàn)整個單片機(jī)的復(fù)位初始化功能。3.1.3STC89C52與MCS-51兼容性STC89C52和51單片機(jī)在可編程串口的操作上是一樣的,并且STC89C52具有異步通信方式,就是說在單片機(jī)接收數(shù)據(jù)的時候可以發(fā)送數(shù)據(jù)。可編程串口內(nèi)的接收器運(yùn)用了雙緩沖器的特點(diǎn)來設(shè)計(jì),在接收存儲器讀取之前也就是接收到第一個字節(jié)可以再次接收第二個字節(jié)。在這個過程中如果在接收到第二個字節(jié)之后還沒有督促第一個字節(jié),那么第一個字節(jié)便會丟失。STC89C52的內(nèi)部振蕩器在外界晶體引線端外接定時元件之后就可以產(chǎn)生自激振蕩,對振蕩電路的輸入端接地,對振蕩電路的輸出端接上外部震蕩電器就可以使用外部時鐘。但是由于單片機(jī)內(nèi)部就有定時/計(jì)數(shù)器,因此外部的時鐘很少用。STC89C52具有256位的RAM,但是可以提供384字節(jié)的地址空間,可以通過不同的尋址方式區(qū)別具體是讀取間接地址還是特殊功能寄存器的數(shù)據(jù)。STC89C52在P3.2、P3.3引腳接收外部中斷源產(chǎn)生的中斷。IE控制器控制中斷源中的哪幾個可以向CPU提出,而哪幾個不可以,IP控制器控制這些中斷源的請求優(yōu)先級,IP中斷優(yōu)先級控制器和IE控制器組成了中斷系統(tǒng)。3.1.4主控電路設(shè)計(jì)本系統(tǒng)選用STC89C52最小系統(tǒng)作為設(shè)計(jì)的主控模塊,主控電路如圖3.2所示,它在整個設(shè)計(jì)中起到最關(guān)鍵的控制功能,在超聲波測距中,超聲波發(fā)射器發(fā)射超聲波和定時器的啟動都需要主控模塊的觸發(fā)信號,在接收器收到超聲波和定時器的中斷也都需要主控模塊的控制。再計(jì)算出小車和障礙物之間的距離之后,通過主控模塊的判斷,確定小車的下一步操作是減速前進(jìn)、后退或者狀態(tài)不變。圖3.2主控電路圖3.2檢測模塊設(shè)計(jì)本系統(tǒng)設(shè)計(jì)的目標(biāo)是讓小車實(shí)現(xiàn)自動避障,因此至關(guān)重要的一個環(huán)節(jié)就是對障礙物的檢測以及計(jì)算出小車和障礙物之間的距離,從而進(jìn)行小車下一階段指令的判斷。在對小車和障礙物之間的距離進(jìn)行測量時,一定會用到傳感器,傳感器常見的和測量距離相關(guān)的就是紅外線光電傳感器、超聲波傳感器。他們各有優(yōu)點(diǎn)與缺點(diǎn)。在之前的關(guān)于光電傳感器和超聲波傳感器的選擇上進(jìn)行利弊分析之后,本設(shè)計(jì)決定采用超聲波傳感器進(jìn)行測距。傳感器在人們?nèi)粘I钪械母鱾€地方都可以看到,更重要的是傳感器技術(shù)可以和許多其他的技術(shù)共同使用,隨著傳感器技術(shù)的不斷發(fā)展,其他行業(yè)以及其他技術(shù)也會隨著不斷發(fā)展。但是在發(fā)展的同時,也有許多地方雖然對傳感器有需求,但是由于技術(shù)的不到位,也會有不少局限性。本系統(tǒng)測距模塊的設(shè)計(jì)使用超聲波傳感器,小車的工作環(huán)境主要就是在常溫的正常環(huán)境下,不會有特別苛刻的條件。超聲波在空氣中傳播的速度的主要影響就是溫度,因此在計(jì)算距離過程中主要考慮溫度影響這一誤差要素,并且計(jì)算出誤差,在對需要的精度進(jìn)行判斷,顯而易見,誤差在接受范圍之內(nèi),也就是說使用超聲波傳感器測距完全可行。3.2.1超聲波測距原理超聲波測距的方法有很多種,通過超聲波傳感器和主控模塊加上程序的計(jì)算就可以得知小車和障礙物之間的距離,本設(shè)計(jì)在檢測過程中主要用的是時間差測距法主要原理就是超聲波傳感器在測距過程中主要步驟就是超聲波發(fā)生器發(fā)出超聲波,在聲波觸碰到障礙物之后由于聲波會反彈,因此超聲波接收器可以收到回波。在從超聲波產(chǎn)生到接收到的過程中的時間可以測量到,再根據(jù)超聲波在空氣介質(zhì)中的傳播速度就可以計(jì)算出聲波在這段時間的傳播距離,就可以推算出小車和障礙物之間的距離。超聲波在空氣中的傳播速度可以得知在常溫15度下是普遍得知的340m/s,而本設(shè)計(jì)的小車在運(yùn)行過程中的溫度回比常溫高一些,由于超聲波測距的主要誤差就是溫度,設(shè)計(jì)過程中應(yīng)當(dāng)盡量減少這種誤差,所以在計(jì)算小車和障礙物之間的距離的時候,超聲波的速度應(yīng)該對應(yīng)在空氣中20度傳播的速度??偠灾?,在得知了工作環(huán)境主要是得知了溫度這個主要影響誤差的參數(shù)下,可以得知超聲波在這一溫度下的傳播速度,然后再通過主控模塊的計(jì)時器功能在聲波傳輸過程中的計(jì)時得知超聲波在這一溫度下傳播的時間,通過系統(tǒng)軟件程序中的公式就可以測量出小車和障礙物之間的距離。圖3.3超聲波模塊測距原理圖3.2.2超聲波檢測模塊HC-SR04HC-SR04的測距原理和超聲波的測距原理一樣,在開始工作時,通過在控制端輸入一個高電平,也就是給予一個至少10μs的高電平信號觸發(fā)測控。然后模塊在收到測控信號之后,會自動發(fā)送8個40KHz的方波,并且會自動檢測是否有檢測到的障礙物信號返回;在沒有檢測到信號返回時會繼續(xù)發(fā)射信號,在收到信號返回之后,通過串行Input/Output口,也就是輸出返回端ECHO輸出一個高電平,這個高電平的持續(xù)的時間就是超聲波從發(fā)射到返回的時間,也就是小車和障礙物之間的聲波所傳播的時間的兩倍。表3.5電氣參數(shù)電氣參數(shù)HC-SR04超聲波模塊工作電壓DC5V工作電流15mA工作頻率40Hz最遠(yuǎn)射程4m最近射程2cm測量角度15度輸入觸發(fā)信號10μS的TTL脈沖輸出觸發(fā)信號輸出TTL電平信號,與射程成正比規(guī)格尺寸45*20*15mm因?yàn)樵诠ぷ髑拜斎肟刂贫诵枰粋€至少10μs的高電平信號出發(fā)測控,然后HC-SR04測距模塊內(nèi)部將會發(fā)出8個40KHz周期電平,這個時候超聲波接收器可能會收到回波,因此需要一直檢測是否有回波,在檢測到回波之后,立即輸出回響信號,通過回響信號的脈寬寬度就可以計(jì)算出超聲波傳輸?shù)臅r間,然后通過公式就可以計(jì)算出小車和障礙物之間的距離。3.2.3超聲波測距誤差分析本系統(tǒng)設(shè)計(jì)在測量小車和障礙物之間的距離時采用的是時間差測距法,就是在超聲波在空氣介質(zhì)中的傳播速度知道時,再測量出超聲波的傳輸時間就可以通過時間和速度的乘積求出超聲波在小車河障礙物之間往返的距離,然后就可以計(jì)算出小車和障礙物之間的距離。因此在超聲波測距過程中可能會產(chǎn)生誤差的因素有兩個,一個是超聲波本身在空氣中傳播的速度會受溫度影響,另一個就是超聲波在從發(fā)射到接收過程中計(jì)時上的誤差。很顯然,后者相較于前者影響的更加明顯,前者在得知具體溫度時可以將誤差忽略不計(jì)。對于超聲波傳輸時間以及計(jì)時上的誤差主要有以下幾點(diǎn):發(fā)射器發(fā)射超聲波與開始計(jì)時之間存在誤差本設(shè)計(jì)使用STC89C52最小系統(tǒng)作為主控模塊,超聲波發(fā)生器發(fā)出超聲波和啟動計(jì)時都需要STC89C52給予觸發(fā)信號,但是單片微型計(jì)算機(jī)每次只能一條指令,因此這兩個行動一定不會同時進(jìn)行,無論先后都會存在誤差,但是STC89C52運(yùn)行指令的速度也足夠快,因此發(fā)射器發(fā)射超聲波這一指令和開始計(jì)時這一指令的誤差控制在極小的范圍內(nèi)。接收器收到超聲波與檢測到回波停止計(jì)時之間存在誤差超聲波在被障礙物彈回之后會被接收器收到,然后電路會確認(rèn)是否為回波,在確認(rèn)為回波后發(fā)輸出相應(yīng)的信號,即ECHO會輸出一段高電平。這兩者直接按的誤差主要受到檢測電路的影響,檢測電路的靈敏程度以及檢測工作的原理都會影響測量的這段時間差。中斷相關(guān)的誤差STC89C52在收到中斷信號后不會立即產(chǎn)生響應(yīng),而是先要完成正在進(jìn)行的當(dāng)前的指令,這點(diǎn)誤差和發(fā)射器發(fā)射超聲波和開始計(jì)時之間的誤差相類似都是單片機(jī)自身工作的特點(diǎn)所決定的。超聲波傳輸速度的誤差超聲波在空氣介質(zhì)中傳播,在沒有灰塵顆粒等影響的情況下,影響它傳播速度的主要因素就是溫度,主要是因?yàn)闇囟葧绊懣諝獾拿芏冗M(jìn)而影響超聲波傳輸?shù)乃俣龋鞠到y(tǒng)設(shè)計(jì)的避障小車主要是在常溫下行駛,溫度假設(shè)為20度,但這個溫度和實(shí)際溫度一定有偏差,進(jìn)而在超聲波傳輸速度上會有計(jì)算上的誤差。超聲波在空氣介質(zhì)中的傳播速度與溫度的線性關(guān)系是:(1-1)t是環(huán)境中的溫度,在0度時超聲波在空氣中的傳播速度是331.5m/s,而人們口中常說的常溫的聲波傳播速度就是在15攝氏度的340m/s,我們測試的溫度大概在20攝氏度,所以v=343m/s。小車的危險(xiǎn)距離是20cm,在工作過程中小車和障礙物之間的實(shí)際距離和系統(tǒng)測量并顯示出來的距離會受到上列多種因素的影響,通過在實(shí)驗(yàn)過程中用尺子實(shí)際測量的距離和系統(tǒng)顯示的距離進(jìn)行對比,分析出誤差很微小,可以忽略不計(jì)。3.2.4測距模塊電路設(shè)計(jì)本設(shè)計(jì)采用HC-SR04模塊實(shí)現(xiàn)對小車與障礙物之間距離的檢測,HC-SR04是一工作電壓為5V工作頻率為40kHZ的一個測距模塊,整個模塊包括了超聲波發(fā)射器、超聲波接收器、控制電路。因此可以獨(dú)立的完成測距部分的功能。電路圖如圖3.4所示。在超聲波發(fā)射器和單片機(jī)計(jì)時器收到觸發(fā)信號開始工作直到超聲波碰到障礙物然后回彈被超聲波接收器收到,定時器計(jì)時結(jié)束,并通過程序計(jì)算出小車和障礙物之間的距離,然后再通過主控模塊判斷接下來的小車的運(yùn)動狀態(tài)。圖3.4HC-SR電路圖3.3驅(qū)動模塊設(shè)計(jì)3.3.1步進(jìn)電機(jī)的介紹在上個世紀(jì)初期,西方國家研制出直流驅(qū)動的了步進(jìn)電機(jī),作為同時期的工廠內(nèi)的機(jī)器、汽車等主要的動力來源。上個世紀(jì)發(fā)展到50年代后期的時候,科學(xué)家發(fā)明出了晶體管,伴隨著晶體管的問世,步進(jìn)電機(jī)的發(fā)展也受到了影響,步進(jìn)電機(jī)上也加入了晶體管,這使得能夠更加容易的對步進(jìn)電機(jī)進(jìn)行數(shù)字化控制。到了80年代后,價格低廉功能齊全的微型計(jì)算機(jī)被發(fā)明出來,這讓步進(jìn)電機(jī)驅(qū)動控制的模式更加的簡單方便。3.3.2步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī),又被叫做“脈沖電機(jī)”,它構(gòu)造的基礎(chǔ)就是一種可以自由回轉(zhuǎn)的電磁鐵,在受到電脈沖信號時,會把電脈沖信號轉(zhuǎn)換為角位移或者線位移。它就是這樣的一種開環(huán)控制電機(jī)。通過電子電路將直流電變成多相時序控制電流并為步進(jìn)電機(jī)供電。在非超載,也就是正常工作環(huán)境下,在接收到數(shù)字控制信號電脈沖信號之后,步進(jìn)電機(jī)會被步進(jìn)驅(qū)動器按照設(shè)定好的方向轉(zhuǎn)動一定的角度,因?yàn)椴竭M(jìn)驅(qū)動器轉(zhuǎn)動的方向是已經(jīng)設(shè)定好的,因此增量位置控制系統(tǒng)根本不需要做什么調(diào)整,只需要微調(diào)就可以,在這上面的設(shè)定以及費(fèi)用就節(jié)省了很多。在步進(jìn)驅(qū)動器驅(qū)動設(shè)置好了之后,步進(jìn)電機(jī)就會根據(jù)脈沖信號的頻率和個數(shù)去轉(zhuǎn)動相應(yīng)的角度,并且脈沖的個數(shù)和角位移量是嚴(yán)格的正比關(guān)系,而且在時間上也嚴(yán)格同步。步進(jìn)電機(jī)作為一種可以完成數(shù)字模式轉(zhuǎn)化的器件,它轉(zhuǎn)動的角度只和輸入脈沖的個數(shù)以及頻率有關(guān)。這些都是步進(jìn)電機(jī)的優(yōu)點(diǎn),同時他也有不足之處,它不能像普通的直流電機(jī)、交流電機(jī)在常規(guī)條件下使用,它需要功率驅(qū)動電路等組成的控制系統(tǒng)作為條件才可正常工作,所以步進(jìn)電機(jī)的工作條件比較復(fù)雜,作為機(jī)電一體化的主要產(chǎn)品之一,它包含了電子、機(jī)械、計(jì)算機(jī)等知識。隨著單片機(jī)、自動化等科技的快速發(fā)展,對于步進(jìn)電機(jī)的需求一定會增加,并且步進(jìn)電機(jī)本身的優(yōu)勢也會讓它擁有更好的發(fā)展。3.3.3L298N驅(qū)動模塊本系統(tǒng)設(shè)計(jì)采用的就是L298N驅(qū)動模塊,是意法半導(dǎo)體有限公司的一產(chǎn)品。它是雙H橋直流電機(jī)驅(qū)動芯片,用于驅(qū)動二相和四相電機(jī)的。通過在邏輯電路接收標(biāo)準(zhǔn)的Transistor-TransistorLogic即TTL邏輯電平信號,去控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、制動。它具有四通道邏輯電路,ENA端子和ENB端子是驅(qū)動模塊的使能端,在接收在程序的控制下由單片微型計(jì)算機(jī)也就是我們的主控模塊發(fā)出的PWM波后進(jìn)行調(diào)速。在使能端接收信號為0時,電機(jī)不再轉(zhuǎn)動,也就是不工作了,既不會正轉(zhuǎn)也不會反轉(zhuǎn)。在使能端接收信號為1時,根據(jù)它的輸入端也就是INT端的四個端子IN1、IN2、IN3、IN4的高低電平配置使電機(jī)處于正轉(zhuǎn)、反轉(zhuǎn)、制動狀態(tài)。圖3.5L298N引腳圖電機(jī)由轉(zhuǎn)子、定子繞組等組成,當(dāng)定子繞組有電流流過時,會產(chǎn)生一個矢量磁場。這個磁場就會對轉(zhuǎn)子產(chǎn)生力的作用,讓它轉(zhuǎn)動起來,根據(jù)步進(jìn)電機(jī)的工作原理,轉(zhuǎn)子轉(zhuǎn)動的角度是和輸入端控制的脈沖個數(shù)和頻率相對應(yīng)的,而且時間上也一一對應(yīng)。轉(zhuǎn)子受到力的作用然后轉(zhuǎn)動到和定子一樣的角度。也就是說,定子轉(zhuǎn)動一個角度,轉(zhuǎn)子也會轉(zhuǎn)動一個角度。在根據(jù)控制端的脈沖的數(shù)量與頻率,就可以控制輸出端的角位移量。在小車后退也就是電機(jī)需要反轉(zhuǎn)的時候,通過改變丁子繞組的通電的順序,定子就會產(chǎn)生相反的磁場,轉(zhuǎn)子也就會隨著相反的轉(zhuǎn)動,進(jìn)而整個電機(jī)都會反轉(zhuǎn)。圖3.6L298N框圖L298N可以輕松完成電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),在小車控制中起到至關(guān)重要的驅(qū)動作用,并且可以完成同時驅(qū)動兩個直流電機(jī)的任務(wù),本設(shè)計(jì)非常適合選用L298N作為驅(qū)動模塊。并且它的輸入端可以和STC89C52的引腳直接相連,通過單片微型計(jì)算機(jī)控制產(chǎn)生脈沖,進(jìn)而控制電機(jī)的轉(zhuǎn)動狀態(tài),達(dá)到控制小車前進(jìn)的目的,而如果想要實(shí)現(xiàn)小車后退,也就是實(shí)現(xiàn)電機(jī)反轉(zhuǎn)的狀態(tài),只需要主控模塊STC89C52在輸入端改變一下邏輯電平就可以實(shí)現(xiàn)。表3.6L298N功能邏輯圖IN1IN2ENA電機(jī)狀態(tài)XX0停止101順時針011逆時針000停止110停止本系統(tǒng)中選用L298N控制小車的運(yùn)動,它擁有四通道邏輯電路,內(nèi)含兩個H橋高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯電平信號。其上的四個端子IN1、IN2、IN3IN4可以通過輸入高低電平來控制電機(jī)A和電機(jī)B的正反轉(zhuǎn),端子ENA和ENB是使能端,可以接收來自單片機(jī)的PWM波進(jìn)行調(diào)速。電路圖如圖3.7所示。在小車起步時,在使能端給予高電平,在輸入端IN1給予高電平,IN2給予低電平。讓小車前進(jìn),這時候超聲波測距模塊與主控模塊協(xié)作測量出小車與障礙物之間的距離并且和安全危險(xiǎn)距離進(jìn)行判斷。在小車與障礙物之間的距離大于安全距離時,小車的運(yùn)動狀態(tài)不發(fā)生改變,繼續(xù)向前行駛;在小車與障礙物之間的距離在安全距離和危險(xiǎn)距離之間的時候,在使能端給予低電平,電機(jī)處于自由狀態(tài),小車速度就會降下來;在小車與障礙物之間的距離小于危險(xiǎn)距離的時候,在使能端給予高電平,在輸入端IN1給予低電平,IN2給予高電平,使小車減速停止并向后撤退。圖3.7L298N模塊電路3.4顯示模塊設(shè)計(jì)在小車行駛過程中,超聲波測距模塊會一直測量小車和障礙物之間的距離,然后會進(jìn)行判斷小車是否進(jìn)入危險(xiǎn)距離,并且將測量到的距離通過數(shù)碼管顯示出來,供實(shí)驗(yàn)參考。本設(shè)計(jì)過程中需要顯示的數(shù)據(jù)只有超聲波測距模塊測量到的小車和障礙物之間的距離,但是如果選用傳統(tǒng)數(shù)碼管也需要不止一塊,這樣對于主控模塊STC89C52所占用的I/O過多,一方面不方便控制,另一方面對于其他模塊和主控模塊的連接會有影響。并且與數(shù)碼管相比之下,LCD1602顯得更加美觀,并且由于它的特性,在夜晚進(jìn)行實(shí)驗(yàn)時也會看到顯示得更加清楚,更重要的,LCD1602的功耗極低,成像穩(wěn)定分辨率高,因此設(shè)計(jì)中決定采用LCD1602進(jìn)行對小車和障礙物之間的距離的顯示,電路圖如圖3.8所示。液晶顯示的主要原理就是通過電壓控制然后利用液晶的物理特性即可顯示出圖形,因此在設(shè)計(jì)過程中可以通過主控模塊給予高低電平進(jìn)而實(shí)現(xiàn)對距離的顯示。圖3.8LCD顯示電路3.5報(bào)警模塊設(shè)計(jì)在自動避障小車設(shè)計(jì)過程中,在檢測模塊在檢測到小車已經(jīng)駛?cè)胛kU(xiǎn)距離的時候,就會通過控制蜂鳴器工作產(chǎn)生警報(bào)起到報(bào)警的作用。蜂鳴器一般有兩種,一種是有源蜂鳴器,一種是無源蜂鳴器,有源無源中的“源”,指的是震蕩源,震蕩源在蜂鳴器工作中是必不可少的一環(huán)。蜂鳴器的發(fā)聲本質(zhì)就是內(nèi)部的電磁線圈在電流通過之后會產(chǎn)生磁場,通過磁場驅(qū)動振動膜發(fā)聲,因此一定需要有電流產(chǎn)生并且通過蜂鳴器才會發(fā)聲。在本設(shè)計(jì)中使用STC89C52最小系統(tǒng)作為主控模塊,因此就需要它來提供蜂鳴器工作所需要的電流,但是由于STC89C52只能提供TTL邏輯電平,電流太小不足以蜂鳴器工作,所以只能增添一個三極管電流放大電路,使主控模塊產(chǎn)生的電流可以放大成為蜂鳴器正常工作所使用的電流,讓蜂鳴器正常工作。有源蜂鳴器在工作過程中需要直流電,因?yàn)閮?nèi)部有震蕩電路,所以通電之后就會發(fā)聲報(bào)警。而無源蜂鳴器沒有震蕩電路,因此接上直流電是不會工作的,它的工作理想電流就是方波,并且還需要接上音頻輸出電路才會發(fā)聲。無源蜂鳴器往往會比有源的便宜,因?yàn)槿鄙倭苏袷庪娐返馁M(fèi)用。本系統(tǒng)由于只需要達(dá)到在小車與障礙物之間的距離小于危險(xiǎn)距離時產(chǎn)生蜂鳴報(bào)警的作用,所以采用無源蜂鳴器即可,電路圖如圖3.9所示。通過單片機(jī)直接提供的間斷脈沖信號即方波信號通過晶體管驅(qū)動蜂鳴器產(chǎn)生聲音。并且無源蜂鳴器價格實(shí)惠,聲音頻率可控,完全可以滿足本系統(tǒng)設(shè)計(jì)的要求。圖3.9蜂鳴器報(bào)警電路3.6電源模塊設(shè)計(jì)本系統(tǒng)所有的芯片所需要的工作電壓是5V,使用5V電壓也可以完成電機(jī)驅(qū)動,因此所需要的電壓源是5V就可以,有下面幾種方案:(1)交流電在直流穩(wěn)壓后供電主控模塊STC89C52工作需要+5V的直流電,因此在使用交流電供電時需要對交流電進(jìn)行直流穩(wěn)壓處理,有一個優(yōu)點(diǎn)就是在對電機(jī)進(jìn)行供電驅(qū)動時會比較好,因?yàn)殡娏鞅容^穩(wěn)定。但是提供交流電就需要外接插頭電線,在小車行駛的過程中,因?yàn)殡娋€的拖拉,行動會比較受阻,更重要的是,小車可能在檢測模塊檢測障礙物時會把電線檢測到,對于本設(shè)計(jì)小車需要實(shí)現(xiàn)的自動避障功能產(chǎn)生了影響。(2)小型蓄電池供電主控模塊STC89C52工作需要+5V的直流電,因此在使用蓄電池供電時和交流電供電時一樣需要對交流電進(jìn)行穩(wěn)壓處理,它的優(yōu)點(diǎn)就是可以直接給電機(jī)供電,并且和交流電供電相比沒有電線的干擾,但是蓄電池在體積和質(zhì)量上都太大了,本設(shè)計(jì)的小車是使用玩具小車底盤,因此放不下蓄電池。(3)干電池組裝供電一節(jié)干電池的電壓是1.5V,主控模塊STC89C52的工作電壓是5V,因此四節(jié)干電池組裝之后電壓是6V,在經(jīng)過7805穩(wěn)壓達(dá)到5V就可以給單片機(jī)供電。并且5V電壓也可以給系統(tǒng)中的其他模塊供電,因此完全滿足系統(tǒng)需要。最重要的和交流電穩(wěn)壓直流處理之后供電的方式相比沒有了電線的干擾,和蓄電池穩(wěn)壓處理之后供電相比,體積小,攜帶組裝方便。綜上所述,設(shè)計(jì)采用干電池組裝的方式給系統(tǒng)各個模塊供電,四節(jié)干電池組裝之后為+6V,在經(jīng)過7805降壓處理到5V之后,滿足了主控模塊STC89C52的工作需要,電路圖如圖3.10所示。同時微處理器與微控制器雖然不需要支持電路,功耗也相比其他模塊較低,因此我們必須不能忽視它并加以重視。另一方面直流電機(jī)的額定電壓與額定電流大,因此不需要降壓可以直接給它供電,同樣給電機(jī)驅(qū)動供電。圖3.10電源電路

第四章系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)設(shè)計(jì)的主要目標(biāo)就是實(shí)現(xiàn)小車能夠在檢測到環(huán)境中的障礙物的時候能夠完成自動避障。在整個系統(tǒng)中STC89C52起到主要的控制作用,其他的模塊在工作過程中都受到主控模塊的控制。因此系統(tǒng)的軟件設(shè)計(jì)和系統(tǒng)的硬件設(shè)計(jì)一樣重要。4.1軟件設(shè)計(jì)的過程與要求在進(jìn)行一個系統(tǒng)的軟件設(shè)計(jì)中,一定要先了解整個系統(tǒng)的框架下的各個功能模塊所起到的作用,更重要的是要了解系統(tǒng)設(shè)計(jì)所要達(dá)到的目的或者要解決的問題,根據(jù)需求編寫程序,進(jìn)而實(shí)現(xiàn)軟件設(shè)計(jì),軟件設(shè)計(jì)過程中需要達(dá)到以下幾點(diǎn)要求:(1)本系統(tǒng)的軟件設(shè)計(jì)主要是針對作為主控模塊的STC89C52進(jìn)行程序編寫,在實(shí)現(xiàn)小車避障的過程中需要超聲波測距模塊測量小車和障礙物之間的距離并交給主控模塊進(jìn)行判斷,因?yàn)樵诔暡òl(fā)射器發(fā)射超聲波和啟動定時器都需要主控模塊的觸發(fā)信號,而觸發(fā)信號的產(chǎn)生就需要程序來實(shí)現(xiàn),在超聲波測距功能上就要求軟件的設(shè)計(jì)要具有實(shí)時性。(2)在軟件設(shè)計(jì)過程中,在完成各個模塊的功能,并且能夠?qū)崿F(xiàn)整個系統(tǒng)功能的條件下,要盡量將程序?qū)懞喍蹋@樣程序運(yùn)行的速度會快很多,最重要的減少了對存儲空間的占用,節(jié)省了資源。(3)在實(shí)驗(yàn)過程中,可能會有參數(shù)的調(diào)試,以及部分功能的改變對比,因此在軟件的設(shè)計(jì)上一定要有良好的擴(kuò)展性,本系統(tǒng)在小車避障過程中會根據(jù)小車的速度的快慢設(shè)定危險(xiǎn)距離,因此就需要在程序中調(diào)試參數(shù),最好的設(shè)計(jì)就是超聲波測距和距離顯示編寫子程序,這樣在參數(shù)調(diào)試時就不需要在元程序上做改變,只需要在子程序上進(jìn)行即可。(4)在設(shè)計(jì)過程中最重要的就是程序的穩(wěn)定與可靠,在系統(tǒng)運(yùn)行的過程中如果程序的編寫上出錯或者邏輯出錯,那么系統(tǒng)就不會正常運(yùn)行下去,可能不會顯示小車和障礙物之間的距離或者在小車行駛進(jìn)危險(xiǎn)距離時不會產(chǎn)生警報(bào)聲。另外,系統(tǒng)的運(yùn)行不會局限在一次,因此系統(tǒng)的穩(wěn)定和可靠就顯得格外重要。在系統(tǒng)的軟件設(shè)計(jì)中,采用Keil軟件和C語言進(jìn)行編程,在進(jìn)行完硬件設(shè)計(jì)之后,對于系統(tǒng)的各個模塊所要完成的功能已經(jīng)掌握了,因此根據(jù)所要完成的各個功能進(jìn)行編寫。在知道各個模塊的功能再對其進(jìn)行軟件程序的編寫中需要注意一下幾點(diǎn)事項(xiàng):(1)對于軟件程序設(shè)計(jì)一定要在滿足各個模塊的功能的條件下盡可能的簡短,對于存儲空間是一種節(jié)約,并且程序運(yùn)行也會更快。(2)在對整個系統(tǒng)需要滿足的功能進(jìn)行了解之后,將各個功能分層次分化,在軟件程序上的體現(xiàn)就是將功能模塊化,然后對各層各個模塊進(jìn)行程序編寫。(3)在對于各個模塊的編寫軟件程序的過程中,要盡可能的讓軟件的結(jié)構(gòu)簡潔,流程合理,布局清晰。4.2軟件的結(jié)構(gòu)設(shè)計(jì)當(dāng)位于小車前方的超聲波傳感器檢測到障礙物時,將障礙物的距離信號發(fā)送至單片機(jī),單片機(jī)會對信號進(jìn)行處理,通過LCD屏幕顯示出來,之后對距離信號進(jìn)行判斷,若距離大于安全距離,則延續(xù)之前的運(yùn)動;若距離在安全距離與危險(xiǎn)距離之間,則輸出控制信號通過驅(qū)動模塊使電機(jī)轉(zhuǎn)速下降達(dá)到減速的目的,在小車運(yùn)行過程中,若超聲波傳感器檢測到車頭與前方障礙物的距離低于危險(xiǎn)距離,后輪會緊急制動并后退同時拉響警報(bào)。在軟件設(shè)計(jì)的過程中把整個系統(tǒng)分解成許多個協(xié)作的小塊,它們互相聯(lián)系相互影響并且相對獨(dú)立,這些小塊每一塊都負(fù)責(zé)一個功能,然后最終匯集在一起共同完成對系統(tǒng)的控制功能,在軟件就體現(xiàn)在每個模塊都對應(yīng)一個程序段,這個程序段功能齊全,最重要的它小巧易編程,本系統(tǒng)采用這種設(shè)計(jì)方法,結(jié)構(gòu)上采用了模塊化結(jié)構(gòu)設(shè)計(jì)。圖4.1系統(tǒng)軟件流程圖4.3小車避障的實(shí)現(xiàn)單片機(jī)開始供電之后,主控模塊控制電機(jī)驅(qū)動模塊使其讓小車前進(jìn),同時超聲波測距模塊開始測距,即超聲波發(fā)生器發(fā)射超聲波信號脈沖,在收到返回的超聲波信號后,通過程序運(yùn)算出小車與障礙物之間的距離,然后判斷與危險(xiǎn)距離的關(guān)系,若距離大于安全距離,則延續(xù)之前的運(yùn)動;若距離在安全距離與危險(xiǎn)距離之間,則輸出控制信號通過驅(qū)動模塊使電機(jī)轉(zhuǎn)速下降達(dá)到減速的目的,在小車運(yùn)行過程中,若超聲波傳感器檢測到車頭與前方障礙物的距離低于危險(xiǎn)距離,后輪會緊急制動并后退,同時控制報(bào)警模塊拉響警報(bào)。圖4.1主程序流程圖小車在整個行駛過程中為了保證避障的準(zhǔn)確性,都需要超聲波測距模塊對小車和障礙物之間的距離進(jìn)行測量,在接收到主控模塊給予的觸發(fā)信號后,超聲波發(fā)射器發(fā)射超聲波和定時器開始計(jì)時以可以忽略不計(jì)的時間差同時開始,之后超聲波可以在空氣介質(zhì)中傳播并在接觸到障礙物之后被彈回,然后被超聲波接收器接收到的同時定時器停止計(jì)時。因此超聲波在空氣中傳播的時間就知道了,最后計(jì)算出小車和障礙物之間的距離,將這個數(shù)據(jù)傳輸給主控模塊并加以判斷決定小車接下來的行駛狀態(tài)。需要注意的一點(diǎn)是在小車行駛之前就應(yīng)該開始對小車和障礙物之間的距離進(jìn)行檢測,而不是在小車行駛過程中再開始檢測距離,因?yàn)樾≤囋谄鸩降臅r候前方就會有障礙物,在檢測到之后小車就可以向后退實(shí)現(xiàn)避障。圖4.2超聲波測距流程圖

第五章結(jié)論本小車使用8位單片機(jī)STC89C52作為主控系統(tǒng),使用L298N驅(qū)動模塊去對直流電機(jī)進(jìn)行控制,以I/O口所輸出的脈沖信號作為控制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論