基于arduino的超聲波避障小車(chē)設(shè)計(jì)含28張CAD圖
基于arduino的超聲波避障小車(chē)設(shè)計(jì)含28張CAD圖,基于,arduino,超聲波,小車(chē),設(shè)計(jì),28,cad
摘要隨著5G技術(shù)的日趨成熟,無(wú)人駕駛有了更加有力的技術(shù)支持。無(wú)人駕駛技術(shù)是未來(lái)幾十年汽車(chē)和科技公司的一個(gè)重要研究方向,避障技術(shù)是無(wú)人駕駛技術(shù)中最基礎(chǔ)、最核心的一項(xiàng)技術(shù),具有廣闊的發(fā)展前景。本論文的設(shè)計(jì)內(nèi)容為設(shè)計(jì)一輛基于Arduino的超聲波避障小車(chē),本設(shè)計(jì)將基于Arduino單片機(jī)作為控制中心,使用超聲波傳感器和紅外尋跡傳感器來(lái)獲取環(huán)境信息,使用舵機(jī)來(lái)轉(zhuǎn)動(dòng)超聲波傳感器,使用L298N模塊作為電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)四輪小車(chē),解決了小車(chē)?yán)@過(guò)障礙物后返回原路線的難題,實(shí)現(xiàn)了設(shè)計(jì)要求。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本文所設(shè)計(jì)的小車(chē)能夠檢測(cè)障礙物并進(jìn)行避障,并能夠在避障后按照原路線進(jìn)行行駛。達(dá)到了預(yù)期的目標(biāo)和要求。關(guān)鍵詞 Arduino 超聲波 避障 小車(chē)AbstractAs 5G technology matures, driverless driving has more powerful technical support. Unmanned driving technology is an important research direction for automobile and technology companies in the next few decades. Obstacle avoidance technology is the most basic and core technology in unmanned driving technology, and has broad development prospects.The design of this paper is to design an Arduino-based ultrasonic obstacle avoidance car. This design will be based on the Arduino single-chip microcomputer as the control center, using ultrasonic sensors and infrared tracking sensors to obtain environmental information, using steering gear to rotate the ultrasonic sensor, using L298N As a motor drive module, the module drives the four-wheeled car, which solves the problem of the car returning to the original route after bypassing the obstacle, and realizes the design requirements.After experimental verification, the car designed in this paper can detect obstacles and avoid obstacles, and then follow the original route after avoiding obstacles. Achieved the expected goals and requirements.Key wards Arduino;ultrasound;avoidance;car目錄摘要IAbstractII第1章緒論11.1 選題背景11.2 研究的目的和意義21.2.1研究目的21.2.2研究意義21.3 國(guó)內(nèi)外研究現(xiàn)狀31.3.1國(guó)外研究現(xiàn)狀31.3.2國(guó)內(nèi)研究現(xiàn)狀31.4 論文的研究?jī)?nèi)容41.5 本章小結(jié)4第2章系統(tǒng)設(shè)計(jì)52.1 系統(tǒng)設(shè)計(jì)52.2 本章小結(jié)5第3章超聲波測(cè)距原理63.1 超聲波測(cè)距原理63.2 本章小結(jié)6第4章硬件設(shè)計(jì)74.1 硬件選擇74.1.1單片機(jī)選擇74.1.2超聲波模塊選擇84.1.3舵機(jī)選擇84.1.4紅外尋跡模塊選擇94.1.5電機(jī)驅(qū)動(dòng)模塊選擇104.1.6其它器件選擇104.2 硬件組裝114.3 本章小結(jié)11第5章軟件設(shè)計(jì)125.1 各個(gè)模塊程序設(shè)計(jì)125.1.1Arduino UNO單片機(jī)125.1.2超聲波模塊125.1.3舵機(jī)模塊135.1.4紅外尋跡模塊135.1.5電機(jī)驅(qū)動(dòng)模塊145.2 小車(chē)子程序設(shè)計(jì)165.2.1靠近障礙物165.2.2檢測(cè)障礙物165.2.3沿壁行駛185.2.4檢測(cè)黑線195.2.5尋跡行駛205.3 小車(chē)完整程序設(shè)計(jì)215.4 本章小結(jié)22第6章工程定額概算236.1 小車(chē)制作過(guò)程成本預(yù)算236.2小車(chē)對(duì)環(huán)境的影響及其可持續(xù)性236.2.1材料污染環(huán)境問(wèn)題236.2.2噪音污染問(wèn)題236.2.3工業(yè)三廢問(wèn)題236.2.4社會(huì)可持續(xù)發(fā)展問(wèn)題236.3 本章小結(jié)23第7章總結(jié)24參考文獻(xiàn)25致謝26第1章緒論智能小車(chē)是一種由多個(gè)輪子驅(qū)動(dòng)的能夠自動(dòng)完成一定任務(wù)的智能機(jī)器人??茖W(xué)技術(shù)的不斷發(fā)展,為智能小車(chē)提供了強(qiáng)有力的技術(shù)支持,使得智能小車(chē)的實(shí)現(xiàn)成為了可能,智能小車(chē)也因此成為了科學(xué)技術(shù)研究的一個(gè)熱門(mén)的、重要的方向。智能小車(chē)自身也有著很多的優(yōu)點(diǎn),其中最為明顯的優(yōu)點(diǎn)是能夠不需要人為干預(yù)地、自主地完成一定的任務(wù);智能小車(chē)還擁有其它的一些優(yōu)點(diǎn),它具有體積比較小、重心比較低、運(yùn)動(dòng)靈活等優(yōu)點(diǎn)1。避障技術(shù)就是智能小車(chē)通過(guò)自身的控制中心執(zhí)行一定的避障程序來(lái)使智能小車(chē)實(shí)現(xiàn)躲避障礙物的一項(xiàng)技術(shù),這項(xiàng)技術(shù)能夠大大提高智能小車(chē)在執(zhí)行任務(wù)過(guò)程中的安全性,避免智能小車(chē)受到損傷。1.1 選題背景智能小車(chē)在生活服務(wù)、工業(yè)制造、軍事等行業(yè)已經(jīng)有了廣泛的應(yīng)用1,使得智能小車(chē)的避障技術(shù)成為了國(guó)內(nèi)外很多研究機(jī)構(gòu)關(guān)注的焦點(diǎn)。智能小車(chē)避障技術(shù)的實(shí)現(xiàn)需要硬件和軟件,硬件就是為智能小車(chē)添加控制芯片以及各種能夠采集智能小車(chē)所處空間信息的傳感器,軟件就是基于智能小車(chē)所搭載的基于硬件系統(tǒng)編寫(xiě)的能夠?qū)崿F(xiàn)小車(chē)躲避障礙物功能的程序。智能小車(chē)避障系統(tǒng)目前已經(jīng)處于大規(guī)模發(fā)展階段,但是避障系統(tǒng)還存在諸多的缺陷和局限性,同時(shí)也有著廣闊的發(fā)展前景,這使得更多的從事相關(guān)領(lǐng)域研究的人投入智能小車(chē)技術(shù)的研究之中。近些年來(lái),經(jīng)過(guò)所有從事研究智能小車(chē)人員的不斷探索和研究,智能小車(chē)的避障算法越來(lái)越先進(jìn),智能小車(chē)在躲避障礙物的時(shí)候能夠更加精準(zhǔn)、更加準(zhǔn)確,傳統(tǒng)的避障智能小車(chē)變得更加智能、更能夠適應(yīng)復(fù)雜的工作環(huán)境。在生活服務(wù)領(lǐng)域:在汽車(chē)行業(yè)之中,5G技術(shù)的日趨成熟,為自動(dòng)駕駛技術(shù)的實(shí)現(xiàn)提供了強(qiáng)大的技術(shù)支持,自動(dòng)駕駛技術(shù)將會(huì)成為各個(gè)汽車(chē)品牌的一項(xiàng)核心賣(mài)點(diǎn)。自動(dòng)駕駛技術(shù)中不可或缺、最為重要的一項(xiàng)技術(shù)就是避障技術(shù),避障技術(shù)能夠保證乘客在乘坐汽車(chē)時(shí)的安全性。在快遞服務(wù)行業(yè)之中,快遞行業(yè)的巨頭們都在研究自主運(yùn)行的快遞車(chē),旨在解決快遞配送服務(wù)的最后一公里的難題,無(wú)人快遞車(chē)目前已經(jīng)在部分大學(xué)之中進(jìn)行定點(diǎn)試運(yùn)行,避障技術(shù)無(wú)疑是無(wú)人快遞車(chē)的一項(xiàng)核心技術(shù),避障技術(shù)能夠避免快遞車(chē)撞到行人或者其它障礙物。相信在不遠(yuǎn)的未來(lái),我們收到的快遞都是由無(wú)人快遞車(chē)進(jìn)行配送的,快遞車(chē)成為我們生活中的重要組成部分。此外,在2020年伊始,新冠病毒蔓延全球,人類(lèi)的生命受到了巨大的威脅,很多人因此喪命,但這次疫情也是一次機(jī)遇,為了盡量避免人與人之間的交叉感染,很多的科技公司拿出他們的正在研究的智能車(chē)輛,進(jìn)行了試運(yùn)行。順豐快遞公司使用它們公司的無(wú)人車(chē)為武漢配送瓜果蔬菜等生活物資;京東集團(tuán)所研究的無(wú)人車(chē)為武漢的醫(yī)院配送醫(yī)療物資。還有其它的智能小車(chē)配合5G技術(shù)使得醫(yī)生能夠遠(yuǎn)程會(huì)診、遠(yuǎn)程查房。還有智能小車(chē)能夠裝載消毒劑,對(duì)空氣進(jìn)行消毒;搭載紫外線生成器,對(duì)病房進(jìn)行紫外線消毒;還能夠運(yùn)送垃圾。這些智能小車(chē),全部需要運(yùn)用避障技術(shù),這也正好體現(xiàn)了避障技術(shù)在未來(lái)智能生活、智能城市中的重要性。在工業(yè)制造領(lǐng)域:在快遞分揀中心,上千個(gè)無(wú)人“小黃車(chē)”快速地、自主地分揀快遞。我國(guó)的上海洋山港四期碼頭,最為吸引人的地方莫過(guò)于該碼頭高度的自動(dòng)化。高度的自動(dòng)化實(shí)現(xiàn)的方式是采用了上百臺(tái)自動(dòng)引導(dǎo)運(yùn)輸車(chē),也被稱(chēng)為AGV。通過(guò)“智能”大腦,AGV可以自定行車(chē)路線,有效規(guī)避碰撞。洋山四期的鋰電池驅(qū)動(dòng)AGV采用了當(dāng)今最前沿的技術(shù),除了無(wú)人駕駛、自動(dòng)導(dǎo)航、路徑優(yōu)化、主動(dòng)避障外,還支持自我故障診斷、自我電量監(jiān)控等功能2。顯而易見(jiàn),若想讓上述的情況變成現(xiàn)實(shí),必定離不開(kāi)避障技術(shù)。在軍事領(lǐng)域:無(wú)人機(jī)能夠承擔(dān)偵察、轟炸等任務(wù)。無(wú)人車(chē)還能夠承擔(dān)巡邏等任務(wù)。這一切也都離不開(kāi)避障技術(shù)。綜上所述:避障技術(shù)是未來(lái)智能時(shí)代最重要、最核心、最基礎(chǔ)的一項(xiàng)技術(shù),避障技術(shù)的研究對(duì)于實(shí)現(xiàn)理想的智慧城市有著極其重要的意義。1.2 研究的目的和意義1.2.1研究目的(1)設(shè)計(jì)一輛基于arduino單片機(jī)的利用超聲波傳感器模塊來(lái)實(shí)現(xiàn)避障的小車(chē),此外,小車(chē)能夠在繞過(guò)障礙物后繼續(xù)按照原路線進(jìn)行行駛。(2)由于本科階段的課程之中未涉及到arduino單片機(jī)的原理及應(yīng)用的學(xué)習(xí),但是本科的課程學(xué)習(xí)了最基礎(chǔ)的51單片機(jī),在學(xué)習(xí)的過(guò)程中積累了學(xué)習(xí)單片機(jī)的思路及學(xué)習(xí)方法,根據(jù)學(xué)習(xí)51單片機(jī)的方法和思路的積累,自己通過(guò)網(wǎng)上視頻教程和相關(guān)書(shū)籍學(xué)習(xí)一種新的單片機(jī):arduino的使用方法。(3)由于arduino使用類(lèi)C語(yǔ)言進(jìn)行編程,本科階段的對(duì)C語(yǔ)言進(jìn)行了學(xué)習(xí)。該設(shè)計(jì)能夠提高C語(yǔ)言的編程能力。(4)通過(guò)自己動(dòng)手搭建一個(gè)智能小車(chē)平臺(tái),能夠掌握智能小車(chē)平臺(tái)的搭建方法,提高動(dòng)手能力。(5)該設(shè)計(jì)分為硬件搭建和軟件編程兩個(gè)方面,該設(shè)計(jì)能夠掌握硬件與軟件結(jié)合調(diào)試的基本方法和技巧。(6)設(shè)計(jì)過(guò)程可能會(huì)出現(xiàn)意想不到的問(wèn)題,因此需要學(xué)會(huì)分析問(wèn)題的原因,能夠提高解決問(wèn)題的能力。1.2.2研究意義智能小車(chē)在生活服務(wù)、工業(yè)制造、軍事領(lǐng)域都有著深遠(yuǎn)的研究意義。生活服務(wù):避障技術(shù)對(duì)于無(wú)人駕駛技術(shù)的最終實(shí)現(xiàn)有著極其重要的意義,它可以保證無(wú)人駕駛技術(shù)的安全性,保護(hù)了人們的生命財(cái)產(chǎn)安全,它本身就是自動(dòng)駕駛技術(shù)中的一部分。此外,餐廳服務(wù)機(jī)器人、銀行服務(wù)機(jī)器人等各種各樣的機(jī)器人,想要真正實(shí)現(xiàn),都離不開(kāi)避障技術(shù)的支持。工業(yè)制造:快遞中心的自動(dòng)分揀機(jī)器人、無(wú)人碼頭的自動(dòng)引導(dǎo)運(yùn)輸車(chē)的實(shí)現(xiàn),都需要避障技術(shù)作為其技術(shù)基礎(chǔ)。軍事領(lǐng)域:隨著信息技術(shù)近些年的飛速發(fā)展,戰(zhàn)爭(zhēng)已經(jīng)從過(guò)去傳統(tǒng)的機(jī)械化戰(zhàn)爭(zhēng)變成了信息化戰(zhàn)爭(zhēng),信息化戰(zhàn)爭(zhēng)對(duì)于軍事裝備提出了新的要求,無(wú)人機(jī),無(wú)人偵察車(chē)等多種裝備成為了軍事領(lǐng)域研究的重要方向。而這一切都離不開(kāi)避障技術(shù)的支持。無(wú)人化、智能化、自動(dòng)化才是未來(lái)人們的生活方式的常態(tài),而這一切都離不開(kāi)避障技術(shù)的支持,避障技術(shù)的研究有著深遠(yuǎn)的影響。1.3 國(guó)內(nèi)外研究現(xiàn)狀1.3.1國(guó)外研究現(xiàn)狀國(guó)外智能小車(chē)的研究歷史較長(zhǎng),始于上世紀(jì)50年代。它的發(fā)展歷程大體可以分為三個(gè)階段3。第一階段:這個(gè)階段仍處于智能小車(chē)研究的起步階段,剛開(kāi)始有科研人員開(kāi)始了對(duì)智能小車(chē)的研究。1954年美國(guó)Barrett Electronics公司研究開(kāi)發(fā)了世界上第一臺(tái)自主引導(dǎo)車(chē)系統(tǒng)AGVS(Automated Guided Vehicle System)3。該系統(tǒng)是為了提高企業(yè)工廠物品搬運(yùn)的自動(dòng)化水平而進(jìn)行的探索研究,實(shí)現(xiàn)了拖車(chē)在固定線路上的自主運(yùn)行的功能。這也是人類(lèi)對(duì)于智能小車(chē)技術(shù)最早的探索和研究。第二階段:這個(gè)階段是智能小車(chē)研究逐漸風(fēng)行的階段。在歐洲、美洲的美國(guó)以及亞洲的日本等國(guó)家意識(shí)到了智能小車(chē)發(fā)展的重要性,紛紛成立機(jī)構(gòu)來(lái)加大對(duì)智能小車(chē)技術(shù)的研究和探索,這就促進(jìn)了智能小車(chē)技術(shù)的整體進(jìn)步。緊接著,智能小車(chē)的研究浪潮席卷了整個(gè)世界,大量的世界著名的公司陸續(xù)地投入到智能小車(chē)的研究之中。第三階段:這個(gè)階段智能小車(chē)的研究已經(jīng)進(jìn)入了深入、系統(tǒng)、大規(guī)模研究階段3,國(guó)外對(duì)于智能小車(chē)的研究目前仍處于第三階段。美國(guó)卡內(nèi)基.梅隆大學(xué)、麻省理工大學(xué)、德意志聯(lián)邦大學(xué)、日本大阪大學(xué)等很多的學(xué)校對(duì)智能小車(chē)進(jìn)行了深入的研究。這個(gè)階段,對(duì)于智能小車(chē)的研究成果呈現(xiàn)井噴狀態(tài),各種方案被用于實(shí)驗(yàn)驗(yàn)證,其中充滿(mǎn)了大量的具有深遠(yuǎn)影響意義的解決方案。例如:UBM視覺(jué)系統(tǒng)、Combi road系統(tǒng)、航位推測(cè)系統(tǒng)。1.3.2國(guó)內(nèi)研究現(xiàn)狀相對(duì)于國(guó)外,我國(guó)開(kāi)展智能小車(chē)技術(shù)方面的研究起步較晚,開(kāi)始于上個(gè)世紀(jì)的80年代。雖然我國(guó)在智能車(chē)輛技術(shù)方面的研究總體上落后于發(fā)達(dá)國(guó)家,并且存在一定的技術(shù)差距4,但是隨著我國(guó)政府和企業(yè)認(rèn)識(shí)到了科技創(chuàng)新的重要性并加大了對(duì)科技創(chuàng)新的投入,以及我國(guó)科學(xué)技術(shù)研究人員的不懈努力,截止到今天,我國(guó)的智能小車(chē)技術(shù)的研究取得了豐碩的成果,在某些方面趕上了、甚至超越了世界先進(jìn)水平。中國(guó)第一汽車(chē)集團(tuán)公司和國(guó)防科技大學(xué)機(jī)電工程與自動(dòng)化學(xué)院與2003年研制成功我國(guó)第一輛自主駕駛轎車(chē)4。這輛轎車(chē)除了能夠完成在高速公路上的正常行駛之外,還能夠?qū)崿F(xiàn)超車(chē)這種復(fù)雜的自動(dòng)控制。在當(dāng)時(shí),這輛的總體技術(shù)水平已經(jīng)和世界上最為先進(jìn)的智能小車(chē)水平不相上下。南京理工大學(xué)、北京理工大學(xué)、浙江大學(xué)、國(guó)防科技大學(xué)、清華大學(xué)等多所院校聯(lián)合研制了7B.8軍用室外自主車(chē),該車(chē)裝有彩色攝像機(jī)、激光雷達(dá)、陀螺慣導(dǎo)定位等傳感器4。其體系結(jié)構(gòu)以水平式結(jié)構(gòu)為主,采用傳統(tǒng)的“感知-建模-規(guī)劃-執(zhí)行”算法。智能車(chē)輛研究也是智能交通系統(tǒng)ITS的關(guān)鍵技術(shù)。隨著ITS研究的興起,我國(guó)已形成一支ITS技術(shù)研究開(kāi)發(fā)的技術(shù)專(zhuān)業(yè)隊(duì)伍。并且各交通、汽車(chē)企業(yè)越來(lái)越加大了對(duì)ITS及智能車(chē)輛技術(shù)研發(fā)的投入,整個(gè)社會(huì)的關(guān)注程度在不斷提高4??偠灾?,近些年我國(guó)經(jīng)濟(jì)的高速發(fā)展,為發(fā)展智能小車(chē)技術(shù)提供了經(jīng)濟(jì)基礎(chǔ);國(guó)家對(duì)于科技創(chuàng)新越來(lái)越重視,為發(fā)展智能小車(chē)技術(shù)提供了政策基礎(chǔ);各個(gè)大學(xué)培養(yǎng)出了大批的高素質(zhì)人才,為發(fā)展智能小車(chē)技術(shù)提供了人才基礎(chǔ),可以肯定,我國(guó)對(duì)于智能小車(chē)的研究必然會(huì)越來(lái)越好,避障技術(shù)作為其中重要的一項(xiàng)組成部分,其研究也必然會(huì)越來(lái)越好。1.4 論文的研究?jī)?nèi)容該論文在四輪小車(chē)平臺(tái)上基于arduino單片機(jī)進(jìn)行研究,研究的主要內(nèi)容為利用超聲波模塊、舵機(jī)模塊、紅外尋跡模塊所采集環(huán)境信息并通過(guò)執(zhí)行避障程序來(lái)使得小車(chē)實(shí)現(xiàn)避障,并且在避障之后智能小車(chē)能夠按照原路線進(jìn)行行駛。小車(chē)整個(gè)運(yùn)行過(guò)程:在地面上鋪設(shè)黑線作為小車(chē)的行駛路線,使用超聲波傳感器來(lái)檢測(cè)小車(chē)距離障礙物的距離,當(dāng)小車(chē)距離障礙物小于10cm時(shí),小車(chē)先停止前進(jìn);然后小車(chē)向左行駛,并使超聲波朝向障礙物,通過(guò)超聲波傳感器所測(cè)量的距離判斷障礙物的左邊界,然后向右行駛判斷右邊界,從而判斷小車(chē)從障礙物左側(cè)避障還是右側(cè)避障,以保證小車(chē)采用最佳避障路線;繞過(guò)障礙物的過(guò)程采用沿壁行駛;然后通過(guò)紅外尋跡傳感器檢測(cè)地面上的黑線,使小車(chē)車(chē)頭回正;繼續(xù)尋跡沿著黑線行駛,當(dāng)小車(chē)檢測(cè)到橫向黑線時(shí),小車(chē)停止運(yùn)動(dòng)。至此,小車(chē)完成全部任務(wù)。1.5 本章小結(jié)了解了避障技術(shù)的發(fā)展歷程,認(rèn)識(shí)到了避障技術(shù)的重要性和研究的深遠(yuǎn)意義。明確了該設(shè)計(jì)的研究?jī)?nèi)容。第2章系統(tǒng)設(shè)計(jì)2.1 系統(tǒng)設(shè)計(jì)本設(shè)計(jì)的設(shè)計(jì)目的是設(shè)計(jì)一臺(tái)基于Arduino的超聲波避障小車(chē),因此,選擇Arduino單片機(jī)作為整個(gè)系統(tǒng)的控制中心,使用超聲波傳感器作為該設(shè)計(jì)測(cè)量距離的傳感器。小車(chē)在避障之前需要判斷從哪一側(cè)繞行,采用的方案為小車(chē)在障礙物前方橫向行駛,超聲波朝向障礙物,通過(guò)超聲波測(cè)量的距離來(lái)判斷障礙物的邊界。因?yàn)樾枰D(zhuǎn)動(dòng)超聲波,所以需要一個(gè)舵機(jī)。小車(chē)?yán)@過(guò)障礙物的過(guò)程選擇小車(chē)沿著障礙物的側(cè)面距離一定距離繞行的方案。由于小車(chē)需要在躲避障礙物之后繼續(xù)沿著原路線行駛,因此選擇在地上鋪設(shè)黑線作為小車(chē)行駛的原路線,為小車(chē)配置紅外尋跡傳感器用來(lái)識(shí)別黑白線,使小車(chē)在躲避障礙物以后通過(guò)檢測(cè)黑線回到原路線進(jìn)行行駛,同時(shí)在小車(chē)?yán)@過(guò)障礙物以后進(jìn)行尋跡行駛,這樣可以通過(guò)鋪設(shè)黑線來(lái)自由規(guī)定小車(chē)的行駛路線,到小車(chē)檢測(cè)到橫向黑線時(shí),小車(chē)停止前進(jìn)。通過(guò)上述分析,可知該設(shè)計(jì)共分為7個(gè)部分,分別為:Arduino、超聲波、紅外尋跡、舵機(jī)、電機(jī)、電機(jī)驅(qū)動(dòng)、電池。由此可以繪制整個(gè)小車(chē)系統(tǒng)框架,如圖2-1所示。圖2-1 小車(chē)系統(tǒng)框架2.2 本章小結(jié)分析了小車(chē)系統(tǒng)各個(gè)部分,建立了設(shè)計(jì)的小車(chē)的系統(tǒng)框架。第3章超聲波測(cè)距原理3.1 超聲波測(cè)距原理超聲波是一種頻率高于20000赫茲的聲波。它的方向性好、穿透能力墻,易于獲得較集中的聲能,在水中傳播距離遠(yuǎn),可用于測(cè)距、測(cè)速、清洗、焊接、碎石、殺菌消毒等。在醫(yī)學(xué)、軍事、工業(yè)、農(nóng)業(yè)上有很多的應(yīng)用5。超聲波測(cè)距原理:超聲波發(fā)射器向某一個(gè)方向發(fā)射一定頻率的超聲波信號(hào),并在超聲波發(fā)射的同時(shí),計(jì)時(shí)器開(kāi)始計(jì)時(shí),超聲波在空氣中進(jìn)行傳播,當(dāng)遇到物體的時(shí)候,超聲波信號(hào)反射或者漫反射回來(lái),當(dāng)超聲波接收器接收到反射波時(shí),計(jì)時(shí)器停止計(jì)時(shí),便可以得到超聲波信號(hào)傳播到物體并反射回來(lái)的時(shí)間,取超聲波在空氣中傳播的速度為340m/s,便可以得到超聲波到物體的距離為:距離=(時(shí)間*340m/s)/2超聲波測(cè)距原理如圖3-1所示。圖3-1 超聲波測(cè)距原理3.2 本章小結(jié)介紹了超聲波的定義、優(yōu)點(diǎn)及超聲波測(cè)距的原理。第4章硬件設(shè)計(jì)硬件設(shè)計(jì)包括硬件選擇和硬件組裝兩個(gè)部分。4.1 硬件選擇4.1.1單片機(jī)選擇由于該設(shè)計(jì)題目要求,因此選擇該設(shè)計(jì)所使用的單片機(jī)為Arduino單片機(jī)。Arduino單片機(jī)是一款簡(jiǎn)單的、入門(mén)級(jí)別單片機(jī),常作為新手學(xué)習(xí)的第一塊單片機(jī)。其分為硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE),于2005年冬季由一個(gè)歐洲團(tuán)隊(duì)開(kāi)發(fā)6。Arduino單片機(jī)擁有著諸多的型號(hào),人們接觸較多的、常見(jiàn)的型號(hào)有Arduino Uno R3和Arduino Nano;此外Arduino單片機(jī)還有多種初學(xué)者用不到的型號(hào),如Arduino LilyPad、Arduino Due。Arduino單片機(jī)所使用的編程軟件是名為“Arduino”的軟件,這款軟件是推出Arduino的團(tuán)隊(duì)所推出的,可在Arduino官網(wǎng)下載。考慮到該設(shè)計(jì)要求采用四輪小車(chē)平臺(tái),并且會(huì)使用多個(gè)傳感器,對(duì)于單片機(jī)的管腳需求較大, 因此選擇管腳較多的型號(hào):Arduino UNO。Arduino單片機(jī)是開(kāi)源平臺(tái),市場(chǎng)上所售賣(mài)的Arduino單片機(jī)有兩類(lèi),一類(lèi)是意大利原裝正版單片機(jī),另一類(lèi)是由第三方廠家根據(jù)Arduino官方公布的資料自己生產(chǎn)的;價(jià)格方面,意大利原裝正版的該型號(hào)的單片機(jī)價(jià)格較高,一般是138元左右,第三方廠家所生產(chǎn)的該型號(hào)的單片機(jī)的價(jià)格較低,從十幾元到幾十元不等。經(jīng)過(guò)對(duì)兩種單片機(jī)的了解,綜合考慮到小車(chē)的成本和運(yùn)行的穩(wěn)定性,最終選擇第三方廠家生產(chǎn)的單片機(jī)。Arduino UNO單片機(jī)圖片如圖4-1所示。圖4-1 Arduino UNO單片機(jī)4.1.2超聲波模塊選擇超聲波傳感器有很多的型號(hào),精度和價(jià)格也各不相同,經(jīng)過(guò)對(duì)超聲波各種型號(hào)的參數(shù)的了解和研究,綜合考慮設(shè)計(jì)需求、設(shè)計(jì)成本和運(yùn)行穩(wěn)定性,選擇的超聲波傳感器為大多數(shù)新手開(kāi)始學(xué)習(xí)所使用的型號(hào),即HC-SR04。該傳感器的圖片如圖4-2所示。圖4-2 超聲波模塊該型號(hào)超聲波傳感器性能穩(wěn)定,測(cè)量精度高,盲區(qū)小。該傳感器廣泛應(yīng)用于機(jī)器人避障、物體測(cè)距、液位檢測(cè)、公共安防、停車(chē)場(chǎng)檢測(cè)等領(lǐng)域7。該型號(hào)超聲波傳感器的電氣參數(shù)如表4-1所示。表4-1 HC-SR04超聲波電氣參數(shù)電氣參數(shù)HC-SR04超聲波模塊工作電壓DC 5V工作電流15mA工作頻率40Hz最遠(yuǎn)射程4m最近射程2cm測(cè)量角度15度輸入回響信號(hào)10uS的TTL脈沖輸出回響信號(hào)輸出TTL電平信號(hào),與射程成比例4.1.3舵機(jī)選擇舵機(jī)的型號(hào)也多種多樣,經(jīng)過(guò)對(duì)舵機(jī)的各型號(hào)參數(shù)的了解和研究,綜合考慮設(shè)計(jì)需要、設(shè)計(jì)成本和運(yùn)行穩(wěn)定性,選擇的舵機(jī)為較為常用到的型號(hào),即SG90。該舵機(jī)的圖片如圖4-3所示。圖4-3 SG90舵機(jī)舵機(jī)主要由以下幾個(gè)部分組成:舵盤(pán)、減速齒輪組、位置反饋電位儀、直流電機(jī)、控制電路板等8。該型號(hào)舵機(jī)的電氣參數(shù)如表4-2所示。表4-2 SG90舵機(jī)電氣參數(shù)電氣參數(shù)SG90舵機(jī)工作電壓DC 4.8V-6V無(wú)負(fù)載速度0.12秒/60度(4.8V)堵轉(zhuǎn)扭矩1.2-1.4公斤/厘米(4.8V)使用溫度-30+60攝氏度死區(qū)設(shè)定7微秒重量9克4.1.4紅外尋跡模塊選擇紅外尋跡模塊也多種多樣,經(jīng)過(guò)對(duì)紅外尋跡模塊各個(gè)型號(hào)的了解和研究,綜合考慮設(shè)計(jì)需要、設(shè)計(jì)成本和運(yùn)行穩(wěn)定性,選擇紅外尋跡模塊的型號(hào)為T(mén)CRT5000??紤]到設(shè)計(jì)需要小車(chē)尋跡行駛,因此需要兩個(gè)該型號(hào)的傳感器。該紅外尋跡模塊圖片如圖4-4所示。圖4-4 紅外尋跡模塊該傳感器的應(yīng)用范圍為:電度表脈沖數(shù)據(jù)采樣、傳真機(jī)碎紙機(jī)紙張檢測(cè)、障礙檢測(cè)和黑白線檢測(cè)9。該型號(hào)紅外尋跡傳感器的電氣參數(shù)如表4-3所示。表4-3 TCRT5000紅外反射傳感器電氣參數(shù)電氣參數(shù)TCRT5000紅外反射傳感器工作電壓DC 3.3V-5V檢測(cè)距離1mm8mm使用,焦點(diǎn)距離為2.5mm輸出形式數(shù)字開(kāi)關(guān)量輸出(0和1)4.1.5電機(jī)驅(qū)動(dòng)模塊選擇經(jīng)過(guò)對(duì)電機(jī)驅(qū)動(dòng)模塊各型號(hào)的了解和研究,并結(jié)合設(shè)計(jì)的需要,選擇電機(jī)驅(qū)動(dòng)模塊的型號(hào)為L(zhǎng)298N。由于該設(shè)計(jì)平臺(tái)為4輪小車(chē),一個(gè)L298N能夠驅(qū)動(dòng)兩個(gè)電機(jī),因此需要兩個(gè)L298N模塊。該電機(jī)驅(qū)動(dòng)模塊的圖片如圖4-5所示。圖4-5 L298N模塊L298N是ST公司生產(chǎn)的一種高電壓、大電流的電機(jī)驅(qū)動(dòng)芯片,該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W10。該電機(jī)驅(qū)動(dòng)模塊可以同時(shí)驅(qū)動(dòng)兩臺(tái)直流電動(dòng)機(jī)。該型號(hào)電機(jī)驅(qū)動(dòng)模塊的電氣參數(shù)如下表4-4所示。表4-4 L298N電機(jī)驅(qū)動(dòng)模塊電氣參數(shù)電氣參數(shù)L298N電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電壓5V-35V邏輯電壓5V工作模式H橋驅(qū)動(dòng)(雙路)主控芯片L298N邏輯電流0mA-36mA驅(qū)動(dòng)電流2A(MAX單橋)儲(chǔ)存溫度-20C+35C最大功率25W4.1.6其它器件選擇小車(chē)選擇:選擇一臺(tái)四輪雙層的小車(chē)作為設(shè)計(jì)所用小車(chē)。電池選擇:選擇常見(jiàn)的可充電式電池18650鋰電池作為供電電池,18650電池額定電壓為3.7V,選擇3節(jié)電池供電。并配置充電器。面包板選擇:選擇最小的面包板即可,主要用于將各模塊的供電引腳接在一起。還需要配置18650的電池盒、開(kāi)關(guān)、數(shù)量足夠的杜邦線、舵機(jī)超聲波支架、螺釘、螺母等。4.2 硬件組裝將各個(gè)模塊和零件按照正確的方式組裝在一起。小車(chē)圖片如圖4-6所示。圖4-6 小車(chē)圖片4.3 本章小結(jié)對(duì)該設(shè)計(jì)所使用的零件選定型號(hào),并組裝好小車(chē)。第5章軟件設(shè)計(jì)5.1 各個(gè)模塊程序設(shè)計(jì)5.1.1Arduino UNO單片機(jī)Arduino UNO微控制器采用的是Atmel的ATmega328。Arduino UNO開(kāi)發(fā)板有很多的接口和引腳,其中使用到的接口是USB接口,使用到的引腳為部分?jǐn)?shù)字引腳、5V和GND引腳。USB接口可以用來(lái)給單片機(jī)下載程序,同時(shí)還兼具供電的功能。5V和GND引腳用于小車(chē)在運(yùn)行過(guò)程中給Arduino供電。20個(gè)數(shù)字引腳的名稱(chēng)為0-13和A0-A5,其中A0-A5兼具模擬輸入的功能,0-13引腳之中,引腳3、5、6、9、10、11具有PWM功能。5.1.2超聲波模塊超聲波傳感器共有4個(gè)引腳,分別為Vcc、GND、 Trig、 Echo,其中Vcc、GND接上5V直流電源為超聲波供電, Trig控制發(fā)出的超聲波信號(hào),Echo接收反射回來(lái)的超聲波信號(hào)。超聲波傳感器的工作原理:通過(guò)Trig引腳發(fā)一個(gè)10uS以上的高電平,模塊內(nèi)部便會(huì)自動(dòng)發(fā)送8個(gè)40kHz的方波,然后檢測(cè)Echo引腳由低電平變?yōu)楦唠娖奖汩_(kāi)始計(jì)時(shí),直到Echo引腳從高電平變?yōu)榈碗娖綖橹?,讀取這段時(shí)間。便可以利用測(cè)得的時(shí)間和聲音在空氣中傳播的速度計(jì)算出測(cè)得的距離,測(cè)量距離=(高電平持續(xù)時(shí)間*聲速(取340m/s)/2。超聲波時(shí)序圖如圖5-1所示。圖5-1 超聲波時(shí)序圖將超聲波傳感器的Trig引腳連接在A1引腳,Echo引腳連接在A2引腳;因此可編寫(xiě)超聲波模塊測(cè)量距離的程序?yàn)椋篿nt Trig=A1;int Echo=A2;void setup() pinMode(Trig,OUTPUT); pinMode(Echo,INPUT);void loop() Distance_test( ();float Distance_test() digitalWrite(Trig,LOW); delayMicroseconds(2); digitalWrite(Trig,HIGH); delayMicroseconds(10); digitalWrite(Trig,LOW); delayMicroseconds(2); distance=pulseIn(Echo,HIGH)*340/2/10000.00;5.1.3舵機(jī)模塊舵機(jī)模塊一共有3個(gè)引腳,分別是Vcc(紅色)、GND(棕色)和控制線(橙色)。Vcc和GND引腳接在5V電源上,控制線用來(lái)控制舵機(jī)所旋轉(zhuǎn)的角度。工作原理:舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電壓,微處理器產(chǎn)生的PWM信號(hào)通過(guò)信號(hào)線進(jìn)入舵機(jī)產(chǎn)生直流偏置電壓,與舵機(jī)內(nèi)部的基準(zhǔn)電壓作比較,獲得電壓差輸出。電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片上,從而決定正反轉(zhuǎn)。當(dāng)舵機(jī)開(kāi)始旋轉(zhuǎn)的時(shí)候,舵機(jī)內(nèi)部通過(guò)級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為零,電機(jī)停止轉(zhuǎn)動(dòng)11。舵機(jī)的控制需要一個(gè)20mS左右的時(shí)基脈沖,該脈沖的高電平部分一般為0.5mS-2.5mS范圍,總間隔為2mS。脈沖的寬度了決定馬達(dá)轉(zhuǎn)動(dòng)的角度。例如:1.5mS的脈沖,電機(jī)將轉(zhuǎn)向90度的位置。如果脈沖寬度小于1.5mS,那么馬達(dá)將會(huì)轉(zhuǎn)向0度方向。如果脈沖寬度大于1.5mS,那么馬達(dá)會(huì)轉(zhuǎn)向180度方向。脈沖的寬度和馬達(dá)停止的角度成正相關(guān)。由于該設(shè)計(jì)所用的平臺(tái)為Arduino UNO單片機(jī),單片機(jī)的庫(kù)函數(shù)包含對(duì)舵機(jī)進(jìn)行控制的程序,調(diào)用庫(kù)函數(shù)“Servo.h”能夠使程序更加簡(jiǎn)單,只需要一條程序“myservo.write(degree)”便可以控制舵機(jī)的旋轉(zhuǎn)角度。舵機(jī)的控制線接在具有PWM的9號(hào)引腳。可以編寫(xiě)舵機(jī)的控制程序?yàn)椋?includeServo myservo;void setup() myservo.attach(9);void loop() myservo.write(degree);5.1.4紅外尋跡模塊紅外尋跡模塊共有4個(gè)引腳,分別為Vcc、GND、D0和A0,Vcc和GND引腳用來(lái)連接3V-5V的電源給傳感器供電,D0引腳為數(shù)字信號(hào)輸出引腳,A0引腳在該設(shè)計(jì)中用不到。該紅外尋跡模塊包含有發(fā)射管和接收管,其中發(fā)射管會(huì)不斷向外界發(fā)射紅外線,接收管則不斷檢測(cè)環(huán)境中的紅外線強(qiáng)度。當(dāng)發(fā)射管發(fā)射出的紅外線沒(méi)有被反射回來(lái)或反射回來(lái)但強(qiáng)度不夠大時(shí),此時(shí)模塊的輸出端為高電平,模塊上的指示燈處于熄滅狀態(tài);當(dāng)被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來(lái)且強(qiáng)度足夠大時(shí),模塊的輸出端為低電平,指示燈被點(diǎn)亮。該設(shè)計(jì)一共使用了兩個(gè)該型號(hào)的紅外尋跡模塊,Vcc和GND用來(lái)接在5V的電源上供電,左側(cè)紅外尋跡模塊的D0引腳接在A3引腳,右側(cè)紅外尋跡模塊的D0引腳接在A4引腳。因此紅外尋跡模塊的程序?yàn)椋篿nt hw_left=A3;int hw_right=A4;int l,r;void setup() pinMode(hw_left,INPUT); pinMode(hw_right,INPUT);l=digitalRead(hw_left); r=digitalRead(hw_right);5.1.5電機(jī)驅(qū)動(dòng)模塊L298N模塊共有13個(gè)引腳,其中左側(cè)兩個(gè)引腳為輸出A,右側(cè)兩個(gè)引腳為輸出B;前方左側(cè)三個(gè)藍(lán)色引腳從左到右分別為:12V供電引腳、GND、5V供電引腳;前方右側(cè)六個(gè)引腳從左到右分別為:通道A使能、兩個(gè)通道A控制引腳(IN1、IN2),兩個(gè)通道B控制引腳(IN1、IN2),通道B使能。使用三節(jié)串聯(lián)的18650鋰電池給L298N模塊進(jìn)行供電,連接在L298N模塊的12V供電引腳和GND引腳,兩個(gè)L298N模塊進(jìn)行并聯(lián)。L298N的5V供電引腳用來(lái)給單片機(jī)供電。L298N電機(jī)驅(qū)動(dòng)模塊的邏輯功能表如下表5-1所示。表5-1 L298N邏輯功能表ENAIN1IN2直流電機(jī)狀態(tài)0-停止100制動(dòng)101正轉(zhuǎn)110反轉(zhuǎn)111制動(dòng)將小車(chē)車(chē)輪的電機(jī)分別連接在兩個(gè)L298N對(duì)應(yīng)的輸出引腳,前方左輪、前方右輪、后方左輪、后方右輪的使能管腳分別連接在具有PWM功能的3、5、6、11引腳。前方左輪、前方右輪、后方左輪、后方右輪的控制引腳分別連接在0、1、2、4、7、8、10、12引腳??梢跃帉?xiě)的小車(chē)行進(jìn)的程序?yàn)椋篿nt ENA1=3;int flmotor1=0;int flmotor2=1;int ENB1=5;int frmotor1=2;int frmotor2=4;int ENA2=6;int blmotor1=7;int blmotor2=8;int ENB2=11;int brmotor1=10;int brmotor2=12;void setup() pinMode(ENA1,OUTPUT); pinMode(flmotor1,OUTPUT); pinMode(flmotor2,OUTPUT); pinMode(ENB1,OUTPUT); pinMode(frmotor1,OUTPUT); pinMode(frmotor2,OUTPUT); pinMode(ENA2,OUTPUT); pinMode(blmotor1,OUTPUT); pinMode(blmotor2,OUTPUT); pinMode(ENB2,OUTPUT); pinMode(brmotor1,OUTPUT); pinMode(brmotor2,OUTPUT);void loop() forward();void forward() analogWrite(ENA1,70); analogWrite(ENB1,70); analogWrite(ENA2,70); analogWrite(ENB2,70); digitalWrite(flmotor1,HIGH); digitalWrite(flmotor2,LOW); digitalWrite(frmotor1,HIGH); digitalWrite(frmotor2,LOW); digitalWrite(blmotor1,HIGH); digitalWrite(blmotor2,LOW); digitalWrite(brmotor1,HIGH); digitalWrite(brmotor2,LOW);(注:該程序僅列出小車(chē)前進(jìn)的程序,其它行進(jìn)情況的程序會(huì)在完整程序的文件中展示。)5.2 小車(chē)子程序設(shè)計(jì)小車(chē)整個(gè)運(yùn)行過(guò)程可分為靠近障礙物、檢測(cè)障礙物邊界、沿壁行駛、檢測(cè)黑線和尋跡行駛五個(gè)過(guò)程。為模塊化編寫(xiě)程序,將上述5個(gè)過(guò)程分開(kāi)進(jìn)行編程。5.2.1靠近障礙物靠近障礙物是為了更好地執(zhí)行沿壁程序。當(dāng)小車(chē)距離障礙物距離大于30cm時(shí),小車(chē)尋跡前行,當(dāng)小車(chē)距離障礙物距離小于30cm時(shí),小車(chē)間歇前進(jìn),目的是降低小車(chē)的速度,因?yàn)樾≤?chē)行駛過(guò)程中測(cè)得的距離與實(shí)際距離差值較大。當(dāng)小車(chē)距離障礙物距離小于10cm時(shí),小車(chē)停止。由此可編寫(xiě)程序?yàn)椋簃yservo.write(90);delay(500);Distance_test();while(distance30) track(); Distance_test();stoprun();delay(100);Distance_test();while(distance10) forward(); delay(100); stoprun(); delay(100); Distance_test();stoprun();delay(1000);5.2.2檢測(cè)障礙物檢測(cè)障礙物子程序所要完成的任務(wù)是確定小車(chē)從障礙物的哪一側(cè)繞過(guò)障礙物,為實(shí)現(xiàn)上述任務(wù),實(shí)現(xiàn)的方案為小車(chē)先向左轉(zhuǎn)過(guò)90度,舵機(jī)帶動(dòng)超聲波傳感器轉(zhuǎn)向障礙物一側(cè),不斷測(cè)量距離,同時(shí)每隔100mS記一次數(shù),當(dāng)距離小于一定值時(shí),小車(chē)向前進(jìn)行檢測(cè)障礙物的沿壁行駛,否則小車(chē)右轉(zhuǎn)180度,同樣轉(zhuǎn)動(dòng)舵機(jī)帶動(dòng)超聲波傳感器朝向障礙物,不斷測(cè)量距離,同樣間隔計(jì)數(shù),當(dāng)距離小于一定數(shù)值并且計(jì)數(shù)值小于向左計(jì)數(shù)值的兩倍時(shí),小車(chē)向前進(jìn)行檢測(cè)障礙物的沿壁行駛,否則,小車(chē)停止。此時(shí),如果向右計(jì)數(shù)值等于兩倍的向左計(jì)數(shù)值并且距離小于一定值,說(shuō)明小車(chē)距離障礙物左側(cè)邊界更近,小車(chē)應(yīng)該從障礙物左側(cè)繞行,小車(chē)向左轉(zhuǎn)動(dòng)180度,并向左行駛向左計(jì)數(shù)值乘100mS的時(shí)間。否則,便說(shuō)明小車(chē)距離障礙物右側(cè)邊界更近,小車(chē)應(yīng)該從障礙物右側(cè)繞行。由此可編寫(xiě)檢測(cè)障礙物子程序?yàn)椋簐oid zhangaiwu() turnleft(); delay(370); stoprun(); delay(1000); myservo.write(0); delay(500); Distance_test(); while(distance50) zhangaiwu_yanbileft(); delay(100); left=left+1; Distance_test(); stoprun(); delay(1000); turnright(); delay(650); stoprun(); delay(1000); myservo.write(180); delay(500); Distance_test(); while(distance50&(right2*left) zhangaiwu_yanbiright(); delay(100); right=right+1; Distance_test(); stoprun(); delay(1000); if(right=2*left)&(distance=20&distance=24) forward(); else if(distance24) runleft();void zhangaiwu_yanbileft() if(distance=20&distance=24) forward(); else if(distance24) runright();(注:小車(chē)行進(jìn)相關(guān)程序詳細(xì)代碼可在完整程序的文件中查看。)5.2.3沿壁行駛沿壁行駛子程序所要完成的任務(wù)是讓小車(chē)能夠距離障礙物外邊界一定距離沿障礙物外邊界進(jìn)行行駛。為實(shí)現(xiàn)此任務(wù),實(shí)現(xiàn)的方案為旋轉(zhuǎn)舵機(jī)使超聲波傳感器朝向障礙物一側(cè),當(dāng)小車(chē)距離障礙物距離在一定范圍之內(nèi)時(shí),小車(chē)向前行駛;當(dāng)小車(chē)距離障礙物過(guò)遠(yuǎn)時(shí),小車(chē)向靠近障礙物一側(cè)行駛;當(dāng)小車(chē)距離障礙物過(guò)近時(shí),小車(chē)向遠(yuǎn)離障礙物一側(cè)行駛;當(dāng)小車(chē)距離障礙物超過(guò)一定限制時(shí),小車(chē)以較大的轉(zhuǎn)彎半徑向靠近障礙物一側(cè)進(jìn)行行駛。由此,可編寫(xiě)沿壁行駛的子程序?yàn)椋簐oid yanbi_right() Distance_test(); if(distance=23&distance=27) forward(); else if(distance27&distance=23&distance=27) forward(); else if(distance27&distance=35) turnright(); else runright();(注:小車(chē)行進(jìn)相關(guān)程序詳細(xì)代碼可在完整程序的文件中查看。)5.2.4檢測(cè)黑線檢測(cè)黑線子程序的任務(wù)是使黑線重新位于兩個(gè)紅外尋跡模塊之間,使小車(chē)能夠?qū)ほE。為了實(shí)現(xiàn)該任務(wù),實(shí)現(xiàn)的方案為當(dāng)小車(chē)沿壁程序執(zhí)行過(guò)程中兩個(gè)紅外尋跡模塊檢測(cè)是否有黑線,當(dāng)檢測(cè)到黑線時(shí),小車(chē)向前行駛一段距離(約半個(gè)車(chē)身的距離),然后小車(chē)停止片刻,小車(chē)右側(cè)紅外尋跡模塊檢測(cè)黑線同時(shí)小車(chē)向右轉(zhuǎn)動(dòng),當(dāng)小車(chē)檢測(cè)到黑線時(shí),小車(chē)?yán)^續(xù)向右轉(zhuǎn)動(dòng)并繼續(xù)檢測(cè)黑線,當(dāng)檢測(cè)不到黑線時(shí),黑線已經(jīng)位于小車(chē)兩個(gè)紅外尋跡模塊之間。由此,編寫(xiě)檢測(cè)黑線子程序?yàn)椋簐oid jchx_right() forward(); delay(200); stoprun(); delay(1000); r=digitalRead(hw_right); while(r=LOW) hx_turnright(); r=digitalRead(hw_right); while(r=HIGH) hx_turnright(); r=digitalRead(hw_right); void jchx_left() forward(); delay(200); stoprun(); delay(1000); l=digitalRead(hw_left); while(l=LOW) hx_turnleft(); l=digitalRead(hw_left); while(r=HIGH) hx_turnleft(); l=digitalRead(hw_left); (注:小車(chē)行進(jìn)相關(guān)程序詳細(xì)代碼可在完整程序的文件中查看。)5.2.5尋跡行駛尋跡行駛子程序的任務(wù)是使小車(chē)能夠按照即定路線進(jìn)行行駛。為了實(shí)現(xiàn)該任務(wù),實(shí)現(xiàn)的方案為在地上(盡量選擇顏色亮的顏色,減少對(duì)紅外線的吸收)貼上黑線作為小車(chē)行駛的路線,使用兩個(gè)紅外尋跡來(lái)檢測(cè)黑線,當(dāng)兩側(cè)的紅外尋跡模塊均未檢測(cè)到黑線時(shí),小車(chē)向前行駛;當(dāng)左側(cè)紅外尋跡模塊檢測(cè)到黑線時(shí),小車(chē)向右側(cè)轉(zhuǎn)彎行駛;當(dāng)右側(cè)紅外尋跡模塊檢測(cè)到黑線時(shí),小車(chē)向左側(cè)轉(zhuǎn)彎行駛;當(dāng)左右兩側(cè)兩個(gè)紅外尋跡傳感器都檢測(cè)到黑線時(shí),小車(chē)停止前進(jìn)。由此,可編寫(xiě)尋跡行駛子程序?yàn)椋簐oid track() l=digitalRead(hw_left); r=digitalRead(hw_right); if(l=LOW&r=LOW) forward(); else if(l=HIGH&r=LOW) turnleft(); else if(l=LOW&r=HIGH) turnright(); else if(l=HIGH&r=HIGH) stoprun(); while(1) (注:小車(chē)行進(jìn)相關(guān)程序詳細(xì)代碼可在完整程序的文件中查看。)5.3 小車(chē)完整程序設(shè)計(jì)通過(guò)上述對(duì)各個(gè)模塊的研究和對(duì)各個(gè)子程序的編寫(xiě)可以設(shè)計(jì)出該設(shè)計(jì)的完整程序。小車(chē)主程序的流程圖如圖5-2所示。圖5-2 主程序流程圖5.4 本章小結(jié)本章介紹了各模塊的使用方法并進(jìn)行了編程,同時(shí)對(duì)各個(gè)子程序進(jìn)行了編程。并確定了主程序執(zhí)行流程。第6章工程定額概算6.1 小車(chē)制作過(guò)程成本預(yù)算小車(chē)制作所用零件均從網(wǎng)絡(luò)購(gòu)物平臺(tái)上進(jìn)行購(gòu)買(mǎi)。小車(chē)所有零部件價(jià)格如表6-1所示。表6-1 小車(chē)各零件價(jià)格 (單位:元)零件名稱(chēng)價(jià)格零件名稱(chēng)價(jià)格小車(chē)底盤(pán)41.9超聲波2.4舵機(jī)4.8超聲波舵機(jī)支架4.5Arduino UNO14.9L298N(兩個(gè))9.6518650電池(3節(jié))2418650充電器1618650電池盒2.54紅外尋跡模塊(兩個(gè))6面包板0.65杜邦線4.75黑色膠帶2-6.2小車(chē)對(duì)環(huán)境的影響及其可持續(xù)性6.2.1材料污染環(huán)境問(wèn)題本設(shè)計(jì)所采用的零件由亞克力板、塑料、PCB板、電池、少量金屬和橡膠做成。該設(shè)計(jì)所用到的小車(chē)在使用過(guò)程中不會(huì)污染環(huán)境,當(dāng)小車(chē)報(bào)廢以后,小車(chē)中亞克力不會(huì)對(duì)環(huán)境產(chǎn)生污染,可以隨生活垃圾進(jìn)行處理;塑料和橡膠零件需要特殊處理,處理之后可減輕對(duì)環(huán)境的污染;PCB板和電池會(huì)對(duì)土壤和水源產(chǎn)生污染,因此需要特殊處理。金屬零件可以回收再利用。6.2.2噪音污染問(wèn)題該設(shè)計(jì)所用小車(chē)在運(yùn)行過(guò)程中產(chǎn)生噪聲的是舵機(jī)轉(zhuǎn)動(dòng)和車(chē)輪轉(zhuǎn)動(dòng),經(jīng)測(cè)試,運(yùn)行過(guò)程中最大噪聲在噪音污染的標(biāo)準(zhǔn)之內(nèi),不會(huì)造成噪音污染。6.2.3工業(yè)三廢問(wèn)題“工業(yè)三廢”廣義上是指包括工業(yè)生產(chǎn)和人類(lèi)生活在內(nèi)所產(chǎn)生的廢水、廢氣、廢渣12。該設(shè)計(jì)所用小車(chē)使用電力進(jìn)行驅(qū)動(dòng),運(yùn)行過(guò)程中不會(huì)產(chǎn)生廢氣、廢水、廢渣,因此不涉及工業(yè)三廢。6.2.4社會(huì)可持續(xù)發(fā)展問(wèn)題該設(shè)計(jì)所用電池為可充電式鋰電池,可大大降低由一次性干電池所帶來(lái)的污染,該設(shè)計(jì)的設(shè)計(jì)理念符合社會(huì)可持續(xù)發(fā)展。6.3 本章小結(jié)確定了制作成本,分析設(shè)計(jì)的可持續(xù)性和環(huán)保性。第7章總結(jié)該設(shè)計(jì)在Arduino平臺(tái)上實(shí)現(xiàn)了四輪小車(chē)檢測(cè)障礙物,然后沿著最佳的線路繞過(guò)障礙物,然后繼續(xù)按照原路線進(jìn)行行駛。該設(shè)計(jì)解決了小車(chē)在繞過(guò)障礙物后返回原路線的難題。設(shè)計(jì)采用了超聲波作為距離探測(cè)傳感器,超聲波傳感器不受環(huán)境光線的影響,所選用的紅外尋跡模塊具有對(duì)環(huán)境光適應(yīng)能力強(qiáng)的優(yōu)點(diǎn),因此該設(shè)計(jì)能夠在一些弱光的環(huán)境中使用。在繞過(guò)障礙物的過(guò)程中采用沿壁的方案可以保證小車(chē)不會(huì)向遠(yuǎn)離障礙物的一側(cè)行駛,導(dǎo)致小車(chē)無(wú)法回到原路線的情況,并且對(duì)于各種類(lèi)型障礙物的障礙物具有較強(qiáng)的適應(yīng)性。此外,該設(shè)計(jì)還有一些不足之處:加上小車(chē)檢測(cè)障礙物邊界的行駛路程,小車(chē)?yán)@行的路線可能并不是最短的路線的情況;超聲波傳感器面對(duì)小型障礙物可能出現(xiàn)測(cè)量距離不準(zhǔn)的情況;小車(chē)所設(shè)定的原路線不易出現(xiàn)半徑過(guò)小的彎道,否則小車(chē)會(huì)沖出設(shè)定路線的情況。通過(guò)該設(shè)計(jì),我學(xué)習(xí)了一種新的單片機(jī):Arduino UNO單片機(jī),提高了自己的編程能力,提高了自己軟件和硬件結(jié)合調(diào)試的能力,提高了自己分析問(wèn)題和解決問(wèn)題的能力,提高了自學(xué)和探索的能力,提高了運(yùn)用模塊化設(shè)計(jì)的能力??偠灾@次設(shè)計(jì)對(duì)我來(lái)說(shuō)受益匪淺。參考文獻(xiàn)1潘元驍.基于Arduino的智能小車(chē)自動(dòng)避障系統(tǒng)設(shè)計(jì)與研究D.長(zhǎng)安大學(xué),2015-05-04.2seawaymaritime. 13.6億中國(guó)人的驕傲!全球綜合自動(dòng)化程度最高的碼頭-洋山港“魔鬼碼頭”今天開(kāi)港啦!.https:/www.sohu.com/a/209639609_276266,2017-12-10.3俞凡.基于單片機(jī)的廠區(qū)智能循跡滅火模型的設(shè)計(jì)和實(shí)現(xiàn)D.安徽農(nóng)業(yè)大學(xué),2016-06-01.4孫穎.基于路徑規(guī)劃的智能小車(chē)控制系統(tǒng)研究D.青島大學(xué),2007-05-16.5小宇聊電子.超聲波測(cè)距原理(帶原理圖及源碼).https:/baijiahao.baidu.com/s?id=1651773925685360513&wfr=spider&for=pc,2019-12-02.6張哲,陳麗銀,汪棟,覃耀,黃世玲.基于 Arduino UNO大型汽車(chē)盲區(qū)檢測(cè)與報(bào)警裝置的設(shè)計(jì)J.科技創(chuàng)新與應(yīng)用,2018(28):49-50.7陳翠.超聲波測(cè)距模塊工作原理_HC-SR04模塊詳解.http:/www.elecfans.com/tongxin/tongxinmokuai/2018/0517/678551.html,2018-05-17.8林志遠(yuǎn),王忠策.機(jī)器人舵機(jī)控制器設(shè)計(jì)J.產(chǎn)業(yè)與科技論壇,2014(11):54-55.9百納信達(dá).TCRT5000光電傳感器模塊產(chǎn)品說(shuō)明書(shū).http:/www.doc88.com/p-0611401603467.html,2009-01-10.10陳駿.基于超聲波測(cè)距與控制的運(yùn)動(dòng)實(shí)驗(yàn)平臺(tái)研發(fā)D.南京郵電大學(xué),2014-03-01.11我只是過(guò)于低調(diào).淺淡用單片機(jī)控制SG90舵機(jī)(原理+編程).http:/www.51hei.com/bbs/dpj-156595-1.html,2019-04-16.12任光前,曹凡,黃琳琳,林守江.中國(guó)“三廢”產(chǎn)生排放量的年際變化研究J.安徽農(nóng)業(yè)通報(bào),2015(17):84-85.致謝首先感謝我的畢業(yè)論文的指導(dǎo)教師,感謝王志勝老師在該設(shè)計(jì)上給予我從構(gòu)思、資料收集、運(yùn)行過(guò)程確定、程序編寫(xiě)、調(diào)試以及畢業(yè)論文上的細(xì)心指導(dǎo),是老師的悉心指導(dǎo)讓我在設(shè)計(jì)過(guò)程中遇到問(wèn)題時(shí)有了解決問(wèn)題的思路。然后感謝大學(xué)四年所有老師對(duì)我在學(xué)習(xí)上的耐心教導(dǎo)和生活上的悉心照顧。感謝大學(xué)四年的同窗同學(xué),感謝他們四年
收藏