基于Arduino單片機(jī)避障小車(chē)機(jī)器人畢業(yè)論文.docx
《基于Arduino單片機(jī)避障小車(chē)機(jī)器人畢業(yè)論文.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Arduino單片機(jī)避障小車(chē)機(jī)器人畢業(yè)論文.docx(45頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
. —-可編輯修改,可打印—— 別找了你想要的都有! 精品教育資料 ——全冊(cè)教案,,試卷,教學(xué)課件,教學(xué)設(shè)計(jì)等一站式服務(wù)—— 全力滿足教學(xué)需求,真實(shí)規(guī)劃教學(xué)環(huán)節(jié) 最新全面教學(xué)資源,打造完美教學(xué)模式 論文編碼:TP39 首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) ——機(jī)器人機(jī)械設(shè)計(jì)模塊 Design?and?Implementation?of?Mobile?Robot? Based?on?Behavior?Design ——?Robot?Mechanical?Solutions 論文作者: 張倩穎 院 系: 信息工程學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào): 1111000055 指導(dǎo)老師: 徐敏 完成日期: 2015年 4月 25日 1 . 摘要 本文簡(jiǎn)要介紹了基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)----一種基于Arduino新型集成開(kāi)發(fā)環(huán)境的超聲波避障小車(chē)的工作原理。其中包括對(duì)小車(chē)的執(zhí)行組件、搭建結(jié)構(gòu)、傳感器、Arduino單片機(jī)軟件編程及試驗(yàn)結(jié)果的介紹。 本方案以Arduino單片機(jī)為控制核心,基于蝙蝠超聲波測(cè)距的原理,利用超聲波傳感器,檢測(cè)小車(chē)前方障礙物的距離,然后把數(shù)據(jù)傳送給單片機(jī)。當(dāng)超聲波檢測(cè)到距離小車(chē)前方25CM有障礙物時(shí)單片機(jī)就發(fā)出指令讓小車(chē)左轉(zhuǎn)一定角度,然后停止行進(jìn)繼續(xù)探測(cè).如果前方25CM沒(méi)有障礙物則直行,否則繼續(xù)左轉(zhuǎn)一定角度。如此通過(guò)超聲波不斷的循環(huán)檢測(cè)周邊環(huán)境的情況進(jìn)行自動(dòng)避障。 本系統(tǒng)在硬件設(shè)計(jì)方面,以Arduino單片機(jī)為控制核心,以超聲波傳感器檢測(cè)前方障礙物,從而自動(dòng)避障。在軟件方面,利用Arduino語(yǔ)言進(jìn)行編程,通過(guò)軟件編程來(lái)控制小車(chē)運(yùn)轉(zhuǎn)。該系統(tǒng)在驅(qū)動(dòng)方面采用L298N驅(qū)動(dòng)2個(gè)直流電機(jī)帶動(dòng)小車(chē)運(yùn)行。并且,用PWM系統(tǒng)調(diào)速,控制小車(chē)前進(jìn)的速度。實(shí)現(xiàn)小車(chē)根據(jù)外部環(huán)境,做出前進(jìn)、后退和轉(zhuǎn)向等動(dòng)作,從而完成避障的功能,本設(shè)計(jì)具有有一定的實(shí)用價(jià)值。 關(guān)鍵詞:Arduino單片機(jī);超聲波傳感器;避障 ABSTRACT This paper describes the design of mobile robot behavior-based design and implement ---- A new ultrasound-based integrated development environment Arduino obstacle avoidance car works. These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentation. The program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller. When the ultrasonic distance in front of the car detects obstacles 25CM SCM issued a directive to make the car turn left on an angle, then continue probing stop traveling. If there is no obstacle in front of the 25CM straight, turn left or continue certain angle. So the case of the ultrasonic continuous loop through the surrounding environment to automatically detect avoidance. The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance. On the software side, the use of Arduino programming language to control the car running through software programming. The system uses the driver side L298N drive two DC motors drive the car running. And, with the PWM system speed, speed control car forward. Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain practical value. Key words: Arduino; ultrasonic sensors;obstacle avoidance 第一章 緒論 1 1.1 論文的選題背景 1 1.2 Arduino單片機(jī)概述 2 1.3 Arduino機(jī)器人發(fā)展現(xiàn)狀 3 1.4 Arduino智能避障機(jī)器人研究意義和目的 4 1.5項(xiàng)目主要研究?jī)?nèi)容 5 第二章?避障小車(chē)機(jī)器人的總體設(shè)計(jì) 6 2.1設(shè)計(jì)原理與方法 6 2.2硬件設(shè)計(jì) 6 2.3 軟件設(shè)計(jì) 7 2.3.1 Arduino語(yǔ)言 7 2.3.2 Arduino IDE 8 2.4 實(shí)驗(yàn)前期準(zhǔn)備 10 第三章 硬件模塊 12 3.1 各模塊的的基本性能 12 3.1.1 單片機(jī)模塊 12 3.1.2 電機(jī)、電機(jī)驅(qū)動(dòng)模塊 12 3.1.3避障模塊 14 3.1.4電源模塊 15 3.2 小車(chē)的基本搭建 15 3.3連線 17 3.3.1電機(jī)的連線 17 3.3.2舵機(jī)的連線 18 3.3.3超聲波的連線 19 3.3.4 Arduino超聲波小車(chē)總體連線圖: 20 第四章 軟件模塊 21 4.1 軟件設(shè)計(jì)思路 21 4.2 電機(jī)前進(jìn)模塊 22 4.2 電機(jī)后退模塊 22 4.3 電機(jī)停止工作模塊 23 4.4 電機(jī)左轉(zhuǎn)模塊 23 4.5 電機(jī)右轉(zhuǎn)模塊 24 4.6 防卡死模塊 25 第五章 實(shí)驗(yàn)及結(jié)果分析 26 5.1預(yù)期目標(biāo) 26 5.2遇到的問(wèn)題和解決方法 26 5.3 硬件的調(diào)試與整合 27 5.3.1調(diào)試思路 27 5.3.2調(diào)試超聲波模塊 27 5.3.3電機(jī)調(diào)試 28 5.4 心得體會(huì) 28 第六章 設(shè)想與展望 30 參考文獻(xiàn) 31 致謝 32 附錄 33 超聲波智能避障車(chē)程序(ARDUINO) 33 39 . 第一章 緒論 1.1 論文的選題背景 隨著現(xiàn)代計(jì)算機(jī)技術(shù)的不斷發(fā)展和普及,機(jī)器人的發(fā)展已經(jīng)遍及近年來(lái)機(jī)器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。小到智能玩具,大到機(jī)械、電子、冶金、交通、宇航、國(guó)防等各個(gè)領(lǐng)域。人們將計(jì)算機(jī)技術(shù)更加廣闊的運(yùn)用的人類(lèi)生活中,制造能替代人勞動(dòng)的機(jī)器一直是人類(lèi)的夢(mèng)想,并一直在為之努力。 在我們的生活里,有很多的機(jī)器人,如圖1.1所示,這兩種機(jī)器人分別是掃地機(jī)器人和滅火機(jī)器人。他們?cè)谖覀兊纳钪蟹浅3R?jiàn)也很實(shí)用,他們的特點(diǎn)就是無(wú)需人們的控制,能夠自行運(yùn)動(dòng)完成他們的任務(wù)。那么這就需要一個(gè)非常必要的基礎(chǔ)功能,那就是能夠感知并躲避前方的障礙物。 因此,在本次的設(shè)計(jì)中,我們將設(shè)計(jì)出一個(gè)能夠避障機(jī)器人,在具有這個(gè)基本功能的基礎(chǔ)上,我們就可以為他附加更多的功能,賦予它更多的實(shí)用價(jià)值。選用Arduino單片機(jī)作為控制核心,使用仿生超聲波技術(shù)傳感器進(jìn)行避障的實(shí)現(xiàn)?!爸悄鼙苷蠙C(jī)器人”作為現(xiàn)代社會(huì)的新產(chǎn)物,也是以后的發(fā)展方向,他可以按照預(yù)先設(shè)定的模式在一個(gè)特定的環(huán)境里自動(dòng)的運(yùn)作,無(wú)需人為管理,便可以完成預(yù)期所要達(dá)到的或是更高的目標(biāo)。 圖1.1 1.2 Arduino單片機(jī)概述 Arduino,是一個(gè)基于開(kāi)放原始碼的軟硬件平臺(tái),構(gòu)建于開(kāi)放原始碼simple I/O介面版,并且具有使用類(lèi)似Java,C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境。它包含兩個(gè)主要的部分:硬件部分是可以用來(lái)做電路連接和Arduino電路板;另外一個(gè)則是Arduino IDE,你的計(jì)算機(jī)中的程序開(kāi)發(fā)環(huán)境。你只要在IDE中編寫(xiě)程序代碼,將程序上傳到Arduino電路板后,程序便會(huì)告訴Arduino電路板要做些什么了。? Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫(xiě)程序,編譯成二進(jìn)制文件,收錄進(jìn)微控制器。對(duì)Arduino的編程是利用Arduino編程語(yǔ)言 (基于 Wiring)和Arduino開(kāi)發(fā)環(huán)境(based on Processing)來(lái)實(shí)現(xiàn)的?;贏rduino的項(xiàng)目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運(yùn)行的軟件,他們之間進(jìn)行通信 (比如 Flash, Processing, MaxMSP)來(lái)實(shí)現(xiàn)??梢宰约簞?dòng)手制作,也可以購(gòu)買(mǎi)成品套裝;Arduino所使用到的軟件都可以免費(fèi)下載. 硬件參考設(shè)計(jì) (CAD 文件)也是遵循availableopen-source協(xié)議, 你可以非常自由地根據(jù)你自己的要求去修改他們. Arduino可以使用開(kāi)發(fā)完成的電子元件例如Switch或sensors或其他控制器、LED、步進(jìn)馬達(dá)或其他輸出裝置。Arduino也可以獨(dú)立運(yùn)作成為一個(gè)可以跟軟件溝通的接口,例如說(shuō):flash、processing、Max/MSP、VVVV或其他互動(dòng)軟件…。Arduino開(kāi)發(fā)IDE接口基于開(kāi)放源代碼原,可以讓您免費(fèi)下載使用開(kāi)發(fā)出更多令人驚艷的互動(dòng)作品。 其主要特點(diǎn)如下: 1)開(kāi)放源代碼的電路圖設(shè)計(jì),程序開(kāi)發(fā)接口免費(fèi)下載,也可依個(gè)人需求自己修改。 2)使用低價(jià)格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。 3)Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過(guò)串口或者USB to Rs232線更新固件。 4)可依據(jù)官方提供的Eagle格式PCB和SCH電路圖簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制;可簡(jiǎn)單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),…等) 5)支持多種互動(dòng)程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。 6)應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo)、鍵盤(pán)、CCD等輸入的裝置的互動(dòng)內(nèi)容,可以更簡(jiǎn)單地達(dá)成單人或多人游戲互動(dòng)。 我們?yōu)槭裁匆褂肁rduino?有很多的單片機(jī)和單片機(jī)平臺(tái)都適合用做交互式系統(tǒng)的設(shè)計(jì)。例如:Parallax Basic Stamp,Netmedia’s BX-24,Phidgets,MIT’s Handyboard和其它等等提供類(lèi)似功能的。所有這些工具,你都不需要去關(guān)心單片機(jī)編程繁瑣的細(xì)節(jié),提供給你的是一套容易使用的工具包。Arduino同樣也簡(jiǎn)化了同單片機(jī)工作的流程,但同其它系統(tǒng)相比Arduino在很多地方更具有優(yōu)越性,特別適合老師,學(xué)生和一些業(yè)余愛(ài)好者們使用:和其它平臺(tái)相比,Arduino板算是相當(dāng)便宜了。最便宜的Arduino版本可以自己動(dòng)手制作,即使是組裝好的成品,其價(jià)格也不會(huì)超過(guò)200元。而且Arduino軟件可以跨平臺(tái)運(yùn)行在Windows,Macintosh OSX,和Linux操作系統(tǒng)。而大部分其它的單片機(jī)系統(tǒng)都只能運(yùn)行在Windows上。另外,它具有簡(jiǎn)易的編程環(huán)境。初學(xué)者很容易就能學(xué)會(huì)使用Arduino編程環(huán)境,同時(shí)它又能為高級(jí)用戶提供足夠多的高級(jí)應(yīng)用。對(duì)于老師們來(lái)說(shuō),一般都能很方便的使用Processing 編程環(huán)境,所以如果學(xué)生學(xué)習(xí)過(guò)使用Processing 編程環(huán)境的話,那他們?cè)谑褂肁rduino開(kāi)發(fā)環(huán)境的時(shí)候就會(huì)覺(jué)得很相似很熟悉。 軟件開(kāi)源并可擴(kuò)展-Arduino軟件是開(kāi)源的,對(duì)于有經(jīng)驗(yàn)的程序員可以對(duì)其進(jìn)行擴(kuò)展。Arduino編程語(yǔ)言可以通過(guò)C++庫(kù)進(jìn)行擴(kuò)展,如果有人想去了解技術(shù)上的細(xì)節(jié),可以跳過(guò)Arduino語(yǔ)言而直接使用AVR C 編程語(yǔ)言(因?yàn)锳rduino語(yǔ)言實(shí)際上是基于AVR C的)。類(lèi)似的,如果你需要的話,你也可以直接往你的Arduino程序中添加AVR-C 代碼。 Arduino基于AVR平臺(tái),對(duì)AVR庫(kù)進(jìn)行了二次編譯封裝,把端口都打包好了,寄存器啦、地址指針之類(lèi)的基本不用管。大大降低了軟件開(kāi)發(fā)難度,適宜非專(zhuān)業(yè)愛(ài)好者使用。優(yōu)點(diǎn)和缺點(diǎn)并存,因?yàn)槭嵌尉幾g封裝,代碼不如直接使用AVR代碼編寫(xiě)精練,代碼執(zhí)行效率與代碼體積都弱于AVR直接編譯。 1.3 Arduino機(jī)器人發(fā)展現(xiàn)狀 我國(guó)目前的發(fā)展現(xiàn)狀是研制中的智能移動(dòng)機(jī)器人智能水平并不高,只能說(shuō)是智能移動(dòng)機(jī)器人的初級(jí)階段。智能移動(dòng)機(jī)器人研究中當(dāng)前的核心問(wèn)題有兩方面:一方面是,提高智能移動(dòng)機(jī)器人的自主性,這是就智能移動(dòng)機(jī)器人與人的關(guān)系而言,即希望智能移動(dòng)機(jī)器人進(jìn)一步獨(dú)立于人,具有更為友善的人機(jī)界面。從長(zhǎng)遠(yuǎn)來(lái)說(shuō),希望操作人員只要給出要完成的任務(wù),而機(jī)器能自動(dòng)形成完成該任務(wù)的步驟,并自動(dòng)完成它。另一方面是,提高智能移動(dòng)機(jī)器人的適應(yīng)性,提高智能移動(dòng)機(jī)器人適應(yīng)環(huán)境變化的能力,這是就智能移動(dòng)機(jī)器人與環(huán)境的關(guān)系而言,希望加強(qiáng)它們之間的交互關(guān)系。 智能移動(dòng)機(jī)器人涉及到許多關(guān)鍵技術(shù),這些技術(shù)關(guān)系到智能移動(dòng)機(jī)器人的智能性的高低。這些關(guān)鍵技術(shù)主要有以下幾個(gè)方面:多傳感信息耦合技術(shù),多傳感器信息融合就是指綜合來(lái)自多個(gè)傳感器的感知數(shù)據(jù),以產(chǎn)生更可靠、更準(zhǔn)確或更全面的信息,經(jīng)過(guò)融合的多傳感器系統(tǒng)能夠更加完善、精確地反映檢測(cè)對(duì)象的特性,消除信息的不確定性,提高信息的可靠性;導(dǎo)航和定位技術(shù),在自主移動(dòng)機(jī)器人導(dǎo)航中,無(wú)論是局部實(shí)時(shí)避障還是全局規(guī)劃,都需要精確知道機(jī)器人或障礙物的當(dāng)前狀態(tài)及位置,以完成導(dǎo)航、避障及路徑規(guī)劃等任務(wù);路徑規(guī)劃技術(shù),最優(yōu)路徑規(guī)劃就是依據(jù)某個(gè)或某些優(yōu)化準(zhǔn)則,在機(jī)器人工作空間中找到一條從起始狀態(tài)到目標(biāo)狀態(tài)、可以避開(kāi)障礙物的最優(yōu)路徑;機(jī)器人視覺(jué)技術(shù),機(jī)器人視覺(jué)系統(tǒng)的工作包括圖像的獲取、圖像的處理和分析、輸出和顯示,核心任務(wù)是特征提取、圖像分割和圖像辨識(shí);智能控制技術(shù),智能控制方法提高了機(jī)器人的速度及精度;人機(jī)接口技術(shù),人機(jī)接口技術(shù)是研究如何使人方便自然地與計(jì)算機(jī)交流。 在各國(guó)的智能移動(dòng)機(jī)器人發(fā)展中,美國(guó)的智能移動(dòng)機(jī)器人技術(shù)在國(guó)際上一直處于領(lǐng)先地位,其技術(shù)全面、先進(jìn),適應(yīng)性也很強(qiáng),性能可靠、功能全面、精確度高,其視覺(jué)、觸覺(jué)等人工智能技術(shù)已在航天、汽車(chē)工業(yè)中廣泛應(yīng)用。日本由于一系列扶植政策,各類(lèi)機(jī)器人包括智能移動(dòng)機(jī)器人的發(fā)展迅速。歐洲各國(guó)在智能移動(dòng)機(jī)器人的研究和應(yīng)用方面在世界上處于公認(rèn)的領(lǐng)先地位。中國(guó)起步較晚,而后進(jìn)入了大力發(fā)展的時(shí)期,以期以機(jī)器人為媒介物推動(dòng)整個(gè)制造業(yè)的改變,推動(dòng)整個(gè)高技術(shù)產(chǎn)業(yè)的壯大 1.4 Arduino智能避障機(jī)器人研究意義和目的 機(jī)器人的感覺(jué)傳感器種類(lèi)非常多,其中視覺(jué)傳感器成為研制自動(dòng)行走和駕駛機(jī)器人的重要部件。機(jī)器人要實(shí)現(xiàn)自動(dòng)導(dǎo)引功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機(jī)器人一個(gè)視覺(jué)功能。本設(shè)計(jì)以超聲波作為智能車(chē)避障的一種重要手段,以其避障實(shí)現(xiàn)方便,計(jì)算簡(jiǎn)單,易于做到實(shí)時(shí)控制,測(cè)量精度也能達(dá)到實(shí)用的要求,在未來(lái)汽車(chē)智能化進(jìn)程中必將得到廣泛應(yīng)用。我國(guó)作為一個(gè)世界大國(guó),在高科技領(lǐng)域也必須占據(jù)一席之地,未來(lái)汽車(chē)的智能化是汽車(chē)產(chǎn)業(yè)發(fā)展必然的,在這種情況下研究超聲波在智能車(chē)避障上的應(yīng)用具有深遠(yuǎn)意義,這將對(duì)我國(guó)未來(lái)智能汽車(chē)的研究在世界高科技領(lǐng)域占據(jù)領(lǐng)先地位具有重要作用。 本設(shè)計(jì)主要體現(xiàn)多功能小車(chē)的智能避障功能,本設(shè)計(jì)中的理論方案、分析方法及特色與創(chuàng)新點(diǎn)等可以為自動(dòng)運(yùn)輸機(jī)器人、采礦勘探機(jī)器人、家用自動(dòng)清潔機(jī)器人等自動(dòng)半自動(dòng)機(jī)器人的設(shè)計(jì)與普及有一定的參考意義。同時(shí)小車(chē)可以作為玩具的發(fā)展對(duì)象,為中國(guó)玩具市場(chǎng)技術(shù)含量的缺乏進(jìn)行一定的彌補(bǔ),實(shí)現(xiàn)經(jīng)濟(jì)收益,形成商業(yè)價(jià)值。我們所設(shè)計(jì)的智能移動(dòng)機(jī)器人利用超聲波能夠在路面上順利躲避障礙物,從而在導(dǎo)盲和輔助人類(lèi)行動(dòng)方面也有著重要意義。 1.5項(xiàng)目主要研究?jī)?nèi)容 本設(shè)計(jì)題目為《基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)》是以Arduino單片機(jī)為控制核心,主要研究小車(chē)的避障功能。利用超聲波傳感器檢測(cè)道路上的障礙,然后把數(shù)據(jù)傳送給單片機(jī),當(dāng)超聲波檢測(cè)到距離小車(chē)前方有障礙物時(shí)單片機(jī)就發(fā)出指令讓小車(chē)左轉(zhuǎn)一定角度,然后停止運(yùn)行繼續(xù)探測(cè).如果前方?jīng)]有障礙物就直走,否則繼續(xù)左轉(zhuǎn)一定角度。如此通過(guò)超聲波不斷的循環(huán)檢測(cè)周邊環(huán)境的情況進(jìn)行自動(dòng)避障。該功能的小車(chē)能夠?qū)崿F(xiàn)在無(wú)人操作的情況下在比較寬闊平坦的環(huán)境中避開(kāi)障礙物。當(dāng)機(jī)器人在行走過(guò)程中遇到前方障礙時(shí),能夠根據(jù)有效范圍內(nèi)的距離作出相應(yīng)處理,由單片機(jī)軟件發(fā)出轉(zhuǎn)彎、直行、后退指令,避免機(jī)器與障礙物相撞。 第二章?避障小車(chē)機(jī)器人的總體設(shè)計(jì) 2.1設(shè)計(jì)原理與方法 本設(shè)計(jì)中直流電機(jī)PWM控制系統(tǒng)的主要功能包括實(shí)現(xiàn)對(duì)直流電機(jī)的加速、減速,并且可以調(diào)整電機(jī)的轉(zhuǎn)速,能夠很方便的實(shí)現(xiàn)電機(jī)的智能控制。主體電路:即直流電機(jī)PWM 控制模塊。這部分電路主要由AT89S52 單片機(jī)的 I/O 端口、定時(shí)計(jì)數(shù)器、外部中斷擴(kuò)展等控制直流電機(jī)的加速、減速以及電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),并且可以調(diào)整電機(jī)的轉(zhuǎn)速,能夠很方便的實(shí)現(xiàn)電機(jī)的智能控制。其間是通過(guò) AT89S52 單片機(jī)產(chǎn)生脈寬可調(diào)的脈沖信號(hào)并輸入到L298 驅(qū)動(dòng)芯片來(lái)控制直流電機(jī)工作的。該直流電機(jī)PWM 控制系統(tǒng)由以下電路模塊組成:設(shè)計(jì)控制部分:主要由AT89S52 單片機(jī)的外部中斷擴(kuò)展電路組成。直流電機(jī)PWM控制實(shí)現(xiàn)部分主要由一些二極管、電機(jī)和L298 直流電機(jī)驅(qū)動(dòng)模塊組成。智能小車(chē)采用后輪驅(qū)動(dòng),兩個(gè)后輪各用一個(gè)電機(jī),前輪是萬(wàn)象輪,起到支撐和轉(zhuǎn)向的作用。 2.2硬件設(shè)計(jì) 本小車(chē)的硬件部分分為幾個(gè)模塊:超聲波傳感器、Arduino單片機(jī)、電源、兩個(gè)直流電動(dòng)機(jī)、電機(jī)驅(qū)動(dòng)板、車(chē)身。電源連接在Arduino單片機(jī)上給整個(gè)小車(chē)供電。小車(chē)以Arduino單片機(jī)為核心,連接電機(jī)驅(qū)動(dòng)板控制兩個(gè)直流電動(dòng)機(jī)的運(yùn)轉(zhuǎn),從而實(shí)現(xiàn)小車(chē)的前進(jìn)。將超聲波傳感器安置在車(chē)身的最前端,用于探測(cè)前方是否有障礙物。當(dāng)超聲波傳感器遇到障礙物,將反饋提供到單片機(jī)里從而做出向左旋轉(zhuǎn)的反應(yīng),再次檢測(cè)前方是否有障礙物,若有障礙物則繼續(xù)旋轉(zhuǎn),沒(méi)有障礙物則電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)電機(jī)前進(jìn),從而實(shí)現(xiàn)整個(gè)小車(chē)的避障功能。硬件框架圖如圖2.1。 圖2.1 硬件設(shè)計(jì)框架 2.3 軟件設(shè)計(jì) 2.3.1 Arduino語(yǔ)言 Arduino語(yǔ)言具有如下特點(diǎn): 1、開(kāi)放源代碼的電路圖設(shè)計(jì),程序開(kāi)發(fā)接口免費(fèi)下載,也可依需求自己修改。 2、使用低價(jià)格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。 3、Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過(guò)串口或者USB to Rs232線更新固件。 4、可依據(jù)官方提供的Eagle格式PCB和SCH電路圖簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制;可簡(jiǎn)單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),…等) 5、支持多種互動(dòng)程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。 6、應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo)、鍵盤(pán)、CCD等輸入的裝置的互動(dòng)內(nèi)容,可以更簡(jiǎn)單地達(dá)成單人或多人游戲互動(dòng)。 Arduino的功能: Arduino可以讓我們快速使用與Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider等軟件結(jié)合,作出互動(dòng)作品。Arduino可以使用現(xiàn)有的電子元件例如開(kāi)關(guān)或者傳感器或者其他控制器件、LED、步進(jìn)馬達(dá)或其他輸出裝置。Arduino也可以獨(dú)立運(yùn)行,并與軟件進(jìn)行交互,例如:Macromedia Flash, Processing,Max/MSP, Pure Data,VVVV或其他互動(dòng)軟件,Arduino的IDE界面基于開(kāi)放源代碼,可以讓我們免費(fèi)下載使用,開(kāi)發(fā)出更多令人驚艷的互動(dòng)作品。 Arduino可使用ICSP線上燒入器,將「bootloader」燒入新的IC晶片;可依據(jù)官方電路圖,簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制;可簡(jiǎn)單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超聲波,熱敏電阻,光敏電阻,伺服馬達(dá)等);支援多樣的互動(dòng)程序例如: Macromedia Flash、Max/Msp、VVVV、PD、C、Processing等;使用低價(jià)格的微處理控制器(ATMEGA 8-168);USB接口,不需外接電源。另外有提供9V直流電源輸入;在應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo),鍵盤(pán),CCD等輸入的裝置進(jìn)行互動(dòng)內(nèi)容的設(shè)計(jì),可以更簡(jiǎn)單地達(dá)成單人或多人游戲互動(dòng)。 2.3.2 Arduino IDE 如圖2.3這是運(yùn)行界面。Arduino語(yǔ)言是一種類(lèi)c的語(yǔ)言。在這個(gè)界面里有我們編程時(shí)最常用的東西。當(dāng)我們把鼠標(biāo)放在上面就會(huì)在右側(cè)出現(xiàn)按鍵的功能。 圖2.3 Arduino IDE運(yùn)行界面 圖2.4就是upload上傳功能。最右邊的圖標(biāo)是我們需要熟知的串口監(jiān)視器,快捷鍵是:Ctrl+Shift+M。點(diǎn)這個(gè)圖標(biāo)有用的前提是插上了串口設(shè)備,當(dāng)然Arduino插在USB上也可以,因?yàn)榘迳系腁tmega16U2就是USB轉(zhuǎn)串口的功能。 圖2.4 upload上傳功能 如圖2.5這就是串口監(jiān)視器的運(yùn)行畫(huà)面相對(duì)于網(wǎng)上流傳的眾多串口調(diào)試軟件,它的功能可以說(shuō)較為簡(jiǎn)單。右下角是波特率,波特率接收端和發(fā)射端要相同,要不然收到的會(huì)是亂碼。 圖2.5 串口監(jiān)視器 如果電腦沒(méi)找到串口或者驅(qū)動(dòng)沒(méi)裝好,就會(huì)有如圖2.6的提示。serial port的意思是串行通訊接口。 圖2.6 Arduino IDE的菜單欄中有很多選項(xiàng),例如“文件”“編輯”等英文界面。其中Sketch是草圖的意思,在Arduino IDE中,每個(gè)Arduino程序都稱(chēng)為sketch,他是一個(gè)可以上傳進(jìn)Arduino Board中的程序包,當(dāng)然經(jīng)過(guò)編譯以后他就不是代碼包了。Tools里面第一項(xiàng),自動(dòng)格式,當(dāng)你把一段從網(wǎng)上下載的源代碼放到sketch里面,會(huì)有一些縮進(jìn)的亂碼,這時(shí),Auto Format就起到了很好的作用。 當(dāng)我們編寫(xiě)好程序后,點(diǎn)擊Update, IDE會(huì)自動(dòng)編譯,上傳。如果程序有錯(cuò)誤,就會(huì)有如圖2.7的顯示,標(biāo)出了行號(hào)。修改程序后就可以繼續(xù)編譯上傳了。 圖2.7 2.4 實(shí)驗(yàn)前期準(zhǔn)備 搭建小車(chē)的零件清單如下: 1.減速電機(jī) 2個(gè) 2.優(yōu)質(zhì)輪胎2個(gè) 3.電機(jī)固定件2個(gè) 4.萬(wàn)向輪1個(gè) 5.100*150*2.6MM有機(jī)玻璃板 2片 6.L298N電機(jī)驅(qū)動(dòng)板1個(gè) 7.ARDUINO 328給力板 1個(gè) 8.云臺(tái) 1個(gè) 9.舵機(jī) 1個(gè) 10.超聲波模塊1個(gè) 11.迷你面包板1個(gè) 12.6節(jié)5號(hào)電池盒一個(gè) 13.杜邦線 12條 14.1米長(zhǎng)USB線1條 15.銅柱 35MM長(zhǎng) 3個(gè) 12MM 4個(gè) 16.3MM螺絲螺母若干 第三章 硬件模塊 3.1 各模塊的的基本性能 3.1.1 單片機(jī)模塊 本設(shè)計(jì)采用Atmel Atmega328微處理控制器。其性能為:Digital I/O 數(shù)字輸入/輸出端共 0~13。Analog I/O 模擬輸入/輸出端共 0~5。支持ISP下載功能。輸入電壓:接上電腦USB時(shí)無(wú)須外部供電,外部供電7V~12V 直流電壓輸入。輸出電壓:5V 直流電壓輸出和3.3V 直流電壓輸出。 圖3.1 Arduino單片機(jī)實(shí)物圖 3.1.2 電機(jī)、電機(jī)驅(qū)動(dòng)模塊 本設(shè)計(jì)采用由雙極性管組成的H橋電路(L298N)。用單片機(jī)控制晶體管使之工作在占空比可調(diào)的開(kāi)關(guān)狀態(tài),精確調(diào)整電機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H橋電路保證了可以簡(jiǎn)單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子開(kāi)關(guān)的速度很快,穩(wěn)定性也很高。而且它有更強(qiáng)的驅(qū)動(dòng)能力。而且L298N有過(guò)電流保護(hù)功能,當(dāng)出現(xiàn)電機(jī)卡死時(shí),可以保護(hù)電路和電機(jī)。這種調(diào)速方式有調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、過(guò)載能力大,能承受頻繁的負(fù)載沖擊,還可以實(shí)現(xiàn)頻繁的無(wú)級(jí)快速啟動(dòng)、制動(dòng)和反轉(zhuǎn)等優(yōu)點(diǎn)。因此決定采用使用功率三極管作為功率放大器的輸出控制直流電機(jī)。 圖 3.2 L298N引腳圖 圖3.3 L298N電路原理圖 圖3.4 L298N實(shí)物圖 3.1.3避障模塊 本設(shè)計(jì)采用HC-SR04超聲波測(cè)距模塊,該原件可提供2CM-400CM的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器,接收器和控制電路。 基本工作原理:(1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2; 圖3.5避障模塊實(shí)物圖 3.1.4電源模塊 本設(shè)計(jì)采用的電源為車(chē)載電源。為保證電源工作可靠,單片機(jī)系統(tǒng)與動(dòng)力伺服系統(tǒng)的電源采用了大功率、大容量的蓄電池;而傳感器的工作電源則采用了小巧輕便的干電池。 圖3.6 電源模塊實(shí)物圖 3.2 小車(chē)的基本搭建 舵機(jī),云臺(tái)和超聲波的連接步驟如下圖: 1.如圖3.7準(zhǔn)備好云臺(tái)舵機(jī)超聲波安裝所需配件。 圖3.7 2.圖3.8取出舵機(jī)配件之一“十字膠體”將十字剪成四邊對(duì)等的長(zhǎng)度,打磨成寬度一樣。 圖3.8 3.將2*8mm的和1.2*5mm的螺絲安裝到十字的第二個(gè)孔,裝到云臺(tái)底座上。在云臺(tái)底部的螺絲位套上螺母,并用熱熔膠固定如圖3.9。 圖3.9 4.將舵機(jī)裝上云臺(tái)的兩個(gè)邊翼,并用螺絲緊固如圖3.10。 圖3.10 5.將裝好的舵機(jī)放進(jìn)固定好的十字膠體調(diào)整好方向后,從舵機(jī)組件包里取出2*6mm的螺絲安裝到舵機(jī)固定孔中。完成云臺(tái)安裝后用扎帶將超聲波模塊固定在云臺(tái)前端如圖3.11。 圖3.11 6.將6mm銅柱裝在云臺(tái)底座安裝孔并將裝好的云臺(tái)組件直接安裝到小車(chē)底盤(pán)上,小車(chē)搭建成品如圖3.12。 圖3.12 小車(chē)搭建成品 3.3連線 3.3.1電機(jī)的連線 L298N的供電處理: 用6節(jié)5號(hào)電池盒取一路電源給L298N電機(jī)驅(qū)動(dòng)模塊供電,另一路給ARDUINO主板供電給L298N電機(jī)驅(qū)動(dòng)模塊供電的電源+極接L298N的VMS接口,電源的-接L298N的GND接口,L298N板上的+5V接口放空不接。電機(jī)一接L298N的MOTOA,電機(jī)二接L298N的MOTOB。 圖3.13 電機(jī)的連線 3.3.2舵機(jī)的連線 首先設(shè)置函數(shù):myservo.attach(5); // 定義伺服馬達(dá)輸出第5腳位。 舵機(jī)需要連接的有三條線,分別是+,-,信號(hào)。三條線均直接連接到Arduino板上。 接線方法:將+5V接到J5位,-位接到J6位,信號(hào)位接到J4位PWM口的第五腳。 連線方式如圖3.14所示: 圖3.14舵機(jī)的連線 3.3.3超聲波的連線 超聲波傳感器有四個(gè)腳,如圖3.15所示: 四個(gè)引腳的功能分別是: 1:VCC 接+5V。 2:TRIQ 信號(hào)輸入。 3:ECHO信號(hào)輸出。 4:GND 接地。 圖3.15超聲波的引腳示意圖 超聲波模塊四個(gè)引腳直接與Arduino單片機(jī)連接,接線方法如圖3.16所示: 圖3.16超聲波與Arduino單片機(jī)接線 3.3.4 Arduino超聲波小車(chē)總體連線圖: 電機(jī)A和電機(jī)B將正負(fù)兩端接在L298N電機(jī)驅(qū)動(dòng)板上,若正負(fù)兩級(jí)接反則車(chē)輪反轉(zhuǎn)。電機(jī)驅(qū)動(dòng)板、舵機(jī)、超聲波模塊直接與Arduino核心控制板相連,電源模塊分別給電機(jī)驅(qū)動(dòng)板和Arduino板供電。 圖3.17 Arduino超聲波小車(chē)總體連線圖 第四章 軟件模塊 4.1 軟件設(shè)計(jì)思路 在軟件設(shè)計(jì)方面,采用Arduino語(yǔ)言編程,編寫(xiě)程序流程圖4.1 圖4.1 軟件編譯流程圖 4.2 電機(jī)前進(jìn)模塊 在定義好各個(gè)引腳之后,進(jìn)入主程序的編寫(xiě)部分。我在程序控制模塊里主要編寫(xiě)的是電機(jī)的控制函數(shù)。本程序中提及的digitalWrite函數(shù)的作用是設(shè)置引腳的輸出的電壓為高電平或低電平。該函數(shù)也是一個(gè)無(wú)返回值的函數(shù),函數(shù)有兩個(gè)參數(shù)pin和value,pin參數(shù)表示所要設(shè)置的引腳,value參數(shù)表示輸出的電壓HIGH(高電平)或LOW(低電平)。 首先定義為advance前進(jìn)函數(shù): void advance(int a) { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為低電平,即不給電: digitalWrite(pinRB,LOW); 編寫(xiě)模擬信號(hào),定義馬達(dá)右前動(dòng)作為高電平: digitalWrite(pinRF,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為低電平: digitalWrite(pinLB,LOW); 編寫(xiě)模擬信號(hào),定義馬達(dá)左前動(dòng)作為高電平: digitalWrite(pinLF,HIGH); 定義延時(shí),即將前進(jìn)動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 delay(a * 100); 延時(shí) } 4.2 電機(jī)后退模塊 將函數(shù)定義為back后退函數(shù) void back(int g) //后退 { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為高電平: digitalWrite(pinRB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)右前動(dòng)作為低電平: digitalWrite(pinRF,LOW); 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為高電平: digitalWrite(pinLB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左前動(dòng)作為低電平: digitalWrite(pinLF,LOW); 定義延時(shí),即將電機(jī)的后退動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 delay(g * 100); } 4.3 電機(jī)停止工作模塊 將函數(shù)定義為stopp停止函數(shù) void stopp(int f) { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為高電平: digitalWrite(pinRB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)右前動(dòng)作為高電平 digitalWrite(pinRF,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為高電平 digitalWrite(pinLB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左前動(dòng)作為高電平 digitalWrite(pinLF,HIGH); 定義延時(shí),即將電機(jī)的停止動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 delay(f * 100); } 4.4 電機(jī)左轉(zhuǎn)模塊 將函數(shù)定義為left左轉(zhuǎn)函數(shù) void left(int c) { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為高電平 digitalWrite(pinRB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)右前動(dòng)作為高電平 digitalWrite(pinRF,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為低電平 digitalWrite(pinLB,LOW); 編寫(xiě)模擬信號(hào),定義馬達(dá)左前動(dòng)作為高電平 digitalWrite(pinLF,HIGH); 定義延時(shí),即將電機(jī)的左轉(zhuǎn)動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 delay(c * 100); } 4.5 電機(jī)右轉(zhuǎn)模塊 將函數(shù)定義為right右轉(zhuǎn)函數(shù) void right(int b) { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為低電平 digitalWrite(pinRB,LOW); 編寫(xiě)模擬信號(hào),定義馬達(dá)右前動(dòng)作為高電平 digitalWrite(pinRF,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為高電平 digitalWrite(pinLB,HIGH); 編寫(xiě)模擬信號(hào),定義馬達(dá)左前動(dòng)作為高電平 digitalWrite(pinLF,HIGH); 定義延時(shí),即將電機(jī)的右轉(zhuǎn)動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 delay(b * 100); } 4.6 防卡死模塊 該模塊為防止避障小車(chē)卡死的編譯,即當(dāng)小車(chē)發(fā)生與障礙物距離過(guò)近的情況而無(wú)法轉(zhuǎn)彎時(shí),該程序會(huì)指引小車(chē)向后倒退,倒退一定距離后左轉(zhuǎn)前進(jìn),若仍有障礙物則繼續(xù)倒退,若無(wú)障礙物則左轉(zhuǎn)后直行。即可防止車(chē)在行進(jìn)途中卡在死巷里。 if(directionn == 2) //假如directionn(方向) = 2(倒車(chē)) { back(8); // 倒退(車(chē)) turnL(2); //些微向左方移動(dòng)(防止卡在死巷里) Serial.print(" Reverse "); //顯示方向(倒退) } 第五章 實(shí)驗(yàn)及結(jié)果分析 5.1預(yù)期目標(biāo) 總體來(lái)說(shuō)本次試驗(yàn)達(dá)到預(yù)期目標(biāo)。 (1)在車(chē)前方?jīng)]有障礙物時(shí),小車(chē)沿直線向前走。 (2)在車(chē)前方有障礙物時(shí),小車(chē)能避開(kāi)障礙物,避障方法如下:超聲波檢測(cè)到障礙物后,先向左邊旋轉(zhuǎn),檢測(cè)。如果旋轉(zhuǎn)后前面沒(méi)有檢測(cè)障礙物,則沿直線向前走;如果旋轉(zhuǎn)后檢測(cè)到前方仍有障礙物,則繼續(xù)旋轉(zhuǎn),如果前面沒(méi)有障礙物,則沿直線向前行走; 但是該超聲波避障小車(chē)還存在著許多的不足,比如說(shuō)只能對(duì)正前方一定角度內(nèi)進(jìn)行探測(cè),使用的是一路超聲波而不是多路超聲波探測(cè),并且為了簡(jiǎn)化,默認(rèn)的只是向同一個(gè)方向轉(zhuǎn)彎等,這些都是有待進(jìn)一步發(fā)展和提高的。 5.2遇到的問(wèn)題和解決方法 在此之前我們并沒(méi)有制作過(guò)任何智能的機(jī)器人。初定避障小車(chē)這個(gè)題目時(shí),最初我們采用樂(lè)高機(jī)器人搭建了一個(gè)循跡避障的機(jī)器人,由于操作較為簡(jiǎn)單,后來(lái)我們決定嘗試采用Arduino芯片,利用超聲波傳感器搭建出一臺(tái)智能的避障小車(chē)。最初我們對(duì)硬件的原理不夠明白,不知道采用哪些原件,課程設(shè)計(jì)指導(dǎo)書(shū)上介紹的也并不詳細(xì),因此我們利用大量時(shí)間去圖書(shū)館查閱了許多資料,對(duì)其電機(jī)驅(qū)動(dòng)、Arduino控制板以及超聲波傳感器的引腳、電路設(shè)計(jì)等各方面都做了近一步的了解之后才開(kāi)始進(jìn)行小車(chē)的搭建。 在選擇硬件設(shè)施上,我們也花了很大功夫。在最初我們?cè)O(shè)計(jì)了兩個(gè)驅(qū)動(dòng)方案的選擇。一個(gè)是采用ULN2003驅(qū)動(dòng),它是由7組達(dá)林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二極管網(wǎng)絡(luò)構(gòu)成,具有同時(shí)驅(qū)動(dòng)7組負(fù)載的能力,一般用于高速大功率驅(qū)動(dòng)電路。另個(gè)一就是采用由雙極性管組成的H橋電路(L298N)。用單片機(jī)控制晶體管使之工作在占空比可調(diào)的開(kāi)關(guān)狀態(tài),精確調(diào)整電機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H橋電路保證了可以簡(jiǎn)單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子開(kāi)關(guān)的速度很快,穩(wěn)定性也很高。而且它有更強(qiáng)的驅(qū)動(dòng)能力。此驅(qū)動(dòng)板體積小,重量輕,而且它有一個(gè)外加的續(xù)流二極管,可以防止電機(jī)線圈在斷電時(shí)的方向電勢(shì)損壞芯片,同時(shí)也也安裝有散熱片能使芯片溫度降低,盡量防止他自動(dòng)斷電,讓驅(qū)動(dòng)性能更加穩(wěn)定。板子設(shè)有兩個(gè)電流反饋檢測(cè)接口、內(nèi)邏輯取電選擇端、4個(gè)上拉電阻選擇端、2路直流電機(jī)接口、控制電機(jī)方向指向燈等等。這個(gè)板子不僅適用于智能程控小車(chē)、輪式機(jī)器人等,還可以配合各種控制器使用。因此經(jīng)過(guò)一番對(duì)比和考慮,最終我們選擇了L298N電機(jī)驅(qū)動(dòng)板。在超聲波的選擇上我們也出現(xiàn)了分期,本設(shè)計(jì)最終采用的是HC-SR04超聲波測(cè)距模塊。而最初我們選擇的事紅外傳感裝置。之所以最終沒(méi)有選擇紅外線傳感,是因?yàn)榧t外線對(duì)使用環(huán)境有較高的要求,當(dāng)遇上淺色或是深色的家居物品它無(wú)法反射回來(lái),會(huì)造成機(jī)器人無(wú)法正常避障。而這款HC-SR04則采用仿生超聲波技術(shù),類(lèi)似鯨魚(yú),蝙蝠采用聲波來(lái)偵測(cè)判斷障礙物以及及空間方位,該超聲波避障模塊包括超聲波發(fā)射器,接收器和控制電路,靈敏度較高,但技術(shù)成本也較高。 在搭建方面,我們完成程序的編譯通電之后,小車(chē)發(fā)生了原地旋轉(zhuǎn)的現(xiàn)象,經(jīng)過(guò)觀察,我們發(fā)現(xiàn)小車(chē)在感應(yīng)障礙物方面并沒(méi)有問(wèn)題。問(wèn)題出現(xiàn)在左側(cè)輪前轉(zhuǎn),而右側(cè)輪后轉(zhuǎn)。所以我們將控制右側(cè)車(chē)輪的電機(jī)的接線進(jìn)行改接,這個(gè)問(wèn)題便得以解決。 在軟硬件調(diào)試方面,我們也遇到了一些問(wèn)題。首先是避障小車(chē)的旋轉(zhuǎn)角度不夠,也許是因?yàn)榈孛婺Σ亮Φ年P(guān)系,小車(chē)的旋轉(zhuǎn)角度并達(dá)不到我們所設(shè)定的左轉(zhuǎn)九十度。后來(lái)我們又將程序進(jìn)行改進(jìn),設(shè)置的旋轉(zhuǎn)角度比九十度多一些,小車(chē)就可正常避障了。還有一個(gè)問(wèn)題就是小車(chē)在遇到障礙物之后的反應(yīng)速度并不是很快,需要障礙物在前面平行持續(xù)1,2秒才可以做出轉(zhuǎn)向的判斷,這個(gè)延遲反應(yīng)也經(jīng)常造成小車(chē)和障礙物發(fā)生碰撞,這也是我們遇到的最大問(wèn)題,在這個(gè)問(wèn)題上我們做了很多程序上的調(diào)試,但終究達(dá)不到很理想的效果,在后續(xù)的試驗(yàn)中,我們準(zhǔn)備嘗試換一個(gè)感測(cè)避障模塊進(jìn)行嘗試改進(jìn)。 5.3 硬件的調(diào)試與整合 5.3.1調(diào)試思路 本設(shè)計(jì)的智能避障小車(chē),難點(diǎn)重點(diǎn)有兩大模塊。分別是:L298驅(qū)動(dòng)模塊和超聲波測(cè)距模塊。我們?cè)谡{(diào)試的時(shí)候我們把兩大模塊分別調(diào)試,最后再把所有模塊和硬件組合起來(lái)再進(jìn)行最后的整機(jī)調(diào)試這樣一個(gè)調(diào)試的思路。 5.3.2調(diào)試超聲波模塊 超聲波模塊一共有四個(gè)腳,一個(gè)是VCC,一個(gè)是GND,還有兩個(gè)分別是超聲波的發(fā)射和接收引腳。連接電路時(shí)候只需引出四根插線,分別連接到89S52的對(duì)應(yīng)引腳,燒制好測(cè)試程序,測(cè)試結(jié)果圖如5.2.2。本設(shè)計(jì)四根插線分別連接到VCC,GND,還有發(fā)射和接收引腳分別為:P3.0和P3.2。 5.3.3電機(jī)調(diào)試 在電機(jī)驅(qū)動(dòng)板上。有EA,I1,I2,EB,I3,I4六個(gè)端子用于控制電機(jī)。EA,EB為兩路電機(jī)的控制使能,通過(guò)PWM可以控制電機(jī)轉(zhuǎn)速,高電平有效。我們完成程序的編譯通電之后,小車(chē)發(fā)生了不停地旋轉(zhuǎn)的現(xiàn)象,我們觀察到小車(chē)在感應(yīng)障礙物方面并沒(méi)有問(wèn)題。問(wèn)題出現(xiàn)在左側(cè)輪前轉(zhuǎn),而右側(cè)輪后轉(zhuǎn)。所以我們將控制右側(cè)車(chē)輪的電機(jī)的接線進(jìn)行修改,這個(gè)問(wèn)題便得以解決。 圖5.1電機(jī)驅(qū)動(dòng)板的引腳及其功能 5.4 心得體會(huì) 通過(guò)這次的項(xiàng)目實(shí)訓(xùn),我學(xué)習(xí)到了很多的電子知識(shí),提高了我對(duì)于陌生硬件的學(xué)習(xí)能力。超聲波傳感器在此之前我沒(méi)有接觸過(guò),對(duì)我來(lái)說(shuō)非常的陌生,從一無(wú)所知慢慢查資料到能夠熟練應(yīng)用,讓我知道了面對(duì)新的硬件應(yīng)該怎么學(xué)習(xí),在以后的工作學(xué)習(xí)中,我一定會(huì)遇到非常多的不熟悉的硬件,我相信,通過(guò)不斷地鍛煉積累,學(xué)習(xí)能力會(huì)進(jìn)一步提高。這次實(shí)訓(xùn)同時(shí)還加強(qiáng)了我實(shí)踐動(dòng)手能力,特別培養(yǎng)了出現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力,我相信這些能力的提高對(duì)我以后在從事任何工作都將會(huì)有極大的幫助。 這次的項(xiàng)目實(shí)訓(xùn)讓我感觸最深的是:作為電子愛(ài)好者,電子制作中不管遇到什么問(wèn)題和困境都要有一顆平靜的心和堅(jiān)持不懈的精神,一顆浮躁的心是不會(huì)到達(dá)成功的彼岸。這次課程設(shè)計(jì),給我更多的是一種模塊化的思想,將系統(tǒng)按我們所需的功能和系統(tǒng)所能提供的功能進(jìn)行模塊化的分類(lèi),將會(huì)使我們的工作變得一目了然,非常清晰。比如說(shuō)這次我選的避障小車(chē),可以分成超聲波測(cè)速模塊,電機(jī)驅(qū)動(dòng)模塊,單片機(jī)核心模塊三個(gè),三個(gè)部分各司其職,無(wú)論從硬件上還是軟件上,都能夠比較清晰地將他們的功能區(qū)分開(kāi),從而有利于硬件的連接和程序的編寫(xiě)。 從以后工作來(lái)看,這種模塊化處理問(wèn)題的方式將會(huì)更加的有用,在公司和以后得科研項(xiàng)目中,系統(tǒng)一定是越來(lái)越復(fù)雜,不可能一個(gè)人完成所有的任務(wù),一定是一個(gè)團(tuán)隊(duì)來(lái)做這些系統(tǒng)的設(shè)計(jì),所以模塊化之后,能夠?qū)⑷蝿?wù)分配給每個(gè)人,最后大家還能夠很好的綜合到一起,大大的縮短了開(kāi)發(fā)周期。這次的畢設(shè)實(shí)踐學(xué)習(xí)讓我受益匪淺。 第六章 設(shè)想與展望 隨著科技的迅猛發(fā)展,智能已經(jīng)成為了現(xiàn)在的高科技的熱詞,智能機(jī)器人可以解決無(wú)數(shù)人類(lèi)無(wú)法或者是很難解決的難題。本智能小車(chē)系統(tǒng)最誘人的前景就是可用于未來(lái)的智能汽車(chē)上了,當(dāng)駕駛員因疏忽或打瞌睡時(shí)這樣的智能汽車(chē)的設(shè)計(jì)就能體現(xiàn)出它的作用。如果汽車(chē)偏離車(chē)道或距障礙物小于安全距離時(shí),汽車(chē)就會(huì)發(fā)出警報(bào),提醒駕駛員注意,如果駕駛員沒(méi)有及時(shí)作出反應(yīng),汽車(chē)就會(huì)自動(dòng)減速或??坑诼愤叄@樣就大大增大了駕車(chē)的安全系數(shù),想的再長(zhǎng)遠(yuǎn)一點(diǎn),這個(gè)避障功能可以作為無(wú)人駕駛機(jī)動(dòng)的一個(gè)基本功能。無(wú)人駕駛的機(jī)動(dòng)車(chē)行駛在路上,擁有定位和導(dǎo)航的功能后就可以將人或物品送到我們所需要送到的位置。這樣智能機(jī)器人的應(yīng)用,就大大的減少了人力和物力,并且方便了更多不會(huì)駕駛機(jī)動(dòng)車(chē)的市民。 這樣的避障小車(chē)還可以用于月球探測(cè)等的無(wú)人探月車(chē),幫助我們傳達(dá)月球上更多的信息,讓我們更加的了解月球,為將來(lái)登月做好充分準(zhǔn)備。這樣的小車(chē)在科學(xué)考察探測(cè)車(chē)上也有廣闊的應(yīng)用前景,在科學(xué)考察中,有很多危險(xiǎn)且人們無(wú)法涉足的地方,這時(shí),智能科學(xué)考察車(chē)就能夠派上用場(chǎng),在它上面裝上攝像機(jī),代替人們進(jìn)行許多無(wú)法進(jìn)行的工作。智能車(chē)的應(yīng)用減少了人們的工作危險(xiǎn)系數(shù),解決了惡劣環(huán)境下勘探的需求,實(shí)現(xiàn)了即是沒(méi)有人操作應(yīng)用機(jī)器也能很好的完成工作,這項(xiàng)研發(fā)可謂是一舉多得。 在未來(lái)的社會(huì)中智能也是大勢(shì)所趨,而智能車(chē)作為智能機(jī)器人中一類(lèi)必不可少的組成部分。最近幾年發(fā)展更是迅速,各個(gè)國(guó)家更是投入大量資金。它廣泛涉及人工智能、計(jì)算機(jī)視覺(jué)、自動(dòng)控制、精密儀器、傳感和信息等一系列學(xué)科的創(chuàng)新研究,其研究成果可廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、醫(yī)藥、軍事、航空、信息技術(shù)等實(shí)際領(lǐng)域,智能機(jī)器人的發(fā)展水平可反映出一個(gè)國(guó)家的高科技水平和綜合國(guó)力,是國(guó)家綜合國(guó)力強(qiáng)大的標(biāo)志,也是人類(lèi)文明進(jìn)步的標(biāo)志。在我們未來(lái)的工作與生活中,會(huì)越來(lái)越多的需要機(jī)器人代替人力來(lái)工作和完成一些難度較大或較為費(fèi)力的任務(wù),對(duì)這些實(shí)用的機(jī)器人的需求也會(huì)越來(lái)越大。因此,機(jī)器人研發(fā)的前景是不可估量的。 參考文獻(xiàn) [1] 袁新娜,與紅英編著.超聲波傳感器在智能小車(chē)避障系統(tǒng)中的應(yīng)用.[A]中北大學(xué) (2009)08-0085-04 [2] 邵貝貝. 單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M].北京.清華大學(xué)出社.2004 [3] 王曉明. 電動(dòng)機(jī)的單片機(jī)控制[M].北京. 北京航空航天大學(xué)出版社.2002 [4] 臧杰,閻巖. 汽車(chē)構(gòu)造[M]. 北京. 機(jī)械工業(yè)出版社.2005 哈爾濱工業(yè)大學(xué)課程設(shè)計(jì)說(shuō)明書(shū) [5] 安鵬,馬偉.S12單片機(jī)模塊應(yīng)用及程序調(diào)試[J]. 電子產(chǎn)品世界. 2006.第211期. 162-163 [6] 童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京. 高等教育出版社.2000 [7] 沈長(zhǎng)生.常用電子元器件使用一讀通[M].北京. 人民郵電出版社.2004 [8] 宗光華.機(jī)器人的創(chuàng)意設(shè)計(jì)與實(shí)踐[M].北京. 北京航空航天大學(xué)出社.2004 [9] 張偉等.Protel DXP高級(jí)應(yīng)用[M].北京. 人民郵電出版社.2002 [10] 張文春. 汽車(chē)?yán)碚揫M].北京.機(jī)械工業(yè)出版社.2005 [11] 江海波,王卓然,耿德根編著.深入淺出AVR單片機(jī).中國(guó)電力出版社,2008. 致謝 歷時(shí)三個(gè)月的畢業(yè)設(shè)計(jì)已經(jīng)告一段落。在我和我組成員張碩的共同努力下,本避障小車(chē)的任務(wù)已經(jīng)基本完成。在這段時(shí)間里,非常感謝在遇到困難時(shí)我的同學(xué)們所給予的支持和鼓勵(lì),給我提供專(zhuān)業(yè)的意見(jiàn)和建議。還有和我同組的同學(xué)張碩,我們共同查閱資料,克服許多在選擇小車(chē)部件、小車(chē)搭建和編程上的種種困難。也正是這次畢業(yè)設(shè)計(jì)使我深刻地認(rèn)識(shí)到學(xué)好專(zhuān)業(yè)知識(shí)的重要性,也理解了理論聯(lián)系實(shí)際的含義,并且檢驗(yàn)了大學(xué)四年的學(xué)習(xí)成果。我更明白了團(tuán)隊(duì)合作的重要性。兩個(gè)人不僅有兩個(gè)大腦和更多的主意和知識(shí),最重要的事能夠在遇到困難時(shí)可以相互鼓勵(lì)學(xué)習(xí),互相分擔(dān)。也正是這種團(tuán)結(jié)合作的精神促使了我們這次畢設(shè)任務(wù)的圓滿成功。 這三個(gè)月的設(shè)計(jì)是對(duì)過(guò)去所學(xué)知識(shí)的系統(tǒng)提高和擴(kuò)充的過(guò)程,為今后的發(fā)展打下了良好的基礎(chǔ)。也非常感謝指導(dǎo)老師徐老師的支持和指導(dǎo),每次我給徐老師發(fā)郵件她都會(huì)認(rèn)真的給我批改,指出我的不足。也正是因?yàn)樵诶蠋煹闹笇?dǎo)下我的論文進(jìn)行不斷的改正,才有機(jī)會(huì)變得越來(lái)越好。 由于自身水平有限,設(shè)計(jì)中一定存在很多不足之處。雖然這次的畢業(yè)設(shè)計(jì)對(duì)于知識(shí)的運(yùn)用和銜接還不夠熟練,但是我將在以后的工作和學(xué)習(xí)中繼續(xù)努力、不斷完善。敬請(qǐng)各位老師批評(píng)指正。 附錄 超聲波智能避障車(chē)程序(ARDUINO) L = 左 R = 右 F = 前 B = 后 */ #include- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
32 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 Arduino 單片機(jī) 小車(chē) 機(jī)器人 畢業(yè)論文
鏈接地址:http://m.zhongcaozhi.com.cn/p-1171757.html