【正文】
究,其研究成果可廣泛應(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)志。這樣的小車(chē)在科學(xué)考察探測(cè)車(chē)上也有廣闊的應(yīng)用前景,在科學(xué)考察中,有很多危險(xiǎn)且人們無(wú)法涉足的地方,這時(shí),智能科學(xué)考察車(chē)就能夠派上用場(chǎng),在它上面裝上攝像機(jī),代替人們進(jìn)行許多無(wú)法進(jì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è)基本功能 。 從以后工作來(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í)訓(xùn)同時(shí)還加強(qiáng)了我實(shí)踐動(dòng)手能力,特別培養(yǎng)了出現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力,我相信這些能力的提高對(duì)我以后在從事任何工作都將會(huì)有極大的幫助。問(wèn)題出現(xiàn)在左側(cè)輪前轉(zhuǎn),而右側(cè)輪后轉(zhuǎn)。 電機(jī)調(diào)試 在電機(jī)驅(qū)動(dòng)板上。我們?cè)谡{(diào)試的時(shí)候我們把兩 大模塊分別調(diào)試,最后再把所有模塊 和硬件 組合起來(lái)再進(jìn)行最后的整機(jī)調(diào)試這樣一個(gè)調(diào)試的思路。后來(lái)我們又將程序進(jìn)行改進(jìn),設(shè)置的旋轉(zhuǎn)角度比九十度多一些,小車(chē)就可正常避障了。問(wèn)題出現(xiàn)在左 側(cè)輪前轉(zhuǎn),而右側(cè)輪后轉(zhuǎn)。 而最初我們選擇的事紅外傳感裝置。板子設(shè)有兩個(gè)電流反饋檢測(cè)接口、內(nèi)邏輯取電選擇端、 4 個(gè)上拉電阻選擇端、 2 路直流電機(jī)接口、控制電機(jī)方向指向燈等等。用單片機(jī)控制晶體管使之工作在占空比可調(diào)的開(kāi)關(guān)狀態(tài),精確調(diào)整電機(jī)轉(zhuǎn)速。 在選擇硬件設(shè)施上,我們也花了很大功夫。如果旋轉(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ā)展和提高的。 //些微向左方移動(dòng) (防止卡在死巷里 ) ( Reverse )。 } 首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 25 防卡死模塊 該模塊為防止避障小車(chē)卡死的編譯,即當(dāng)小車(chē)發(fā)生與障礙物距離過(guò)近的情況而無(wú)法轉(zhuǎn)彎時(shí),該程序會(huì)指引小車(chē)向后倒退,倒退一定距離后左轉(zhuǎn)前進(jìn),若仍有障礙物則繼續(xù)倒退,若無(wú)障礙物則左轉(zhuǎn)后直行。 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為高電平 digitalWrite(pinLB,HIGH)。 定義延時(shí),即將電機(jī)的左轉(zhuǎn) 動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 } 電機(jī)左轉(zhuǎn) 模塊 將函數(shù)定義為 left 左轉(zhuǎn) 函數(shù) void left(int c) { 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 24 編寫(xiě)模擬信號(hào),定義馬達(dá)右 后動(dòng)作為高電平 digitalWrite(pinRB,HIGH)。 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為高電平 digitalWrite(pinLB,HIGH)。 定義延時(shí),即將電機(jī)的后退動(dòng)作保持一段時(shí)間,直到開(kāi)始執(zhí)行下一程序。 延時(shí) } 電機(jī)后退 模塊 將函數(shù)定義為 back 后退函數(shù) void back(int g) //后退 { 編寫(xiě)模擬信號(hào),定義馬達(dá)右后動(dòng)作為高電平: digitalWrite(pinRB,HIGH)。 編寫(xiě)模擬信號(hào),定義馬達(dá)左后動(dòng)作為低電平: digitalWrite(pinLB,LOW)。 本程序中提及的 digitalWrite 函數(shù)的作用是設(shè)置引腳的輸出的電壓為高電平或低電平。 圖 超聲波的引腳示意圖 超聲波 模塊四個(gè)引腳直接 與 Arduino 單片機(jī) 連接, 接線方法如圖 所示 : 圖 超聲波與 Arduino 單片機(jī)接線 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 20 Arduino 超聲波小車(chē)總體連線圖: 電機(jī) A 和電機(jī) B 將正負(fù)兩端接在 L298N 電機(jī)驅(qū)動(dòng)板上,若正負(fù)兩級(jí)接反則車(chē)輪反轉(zhuǎn)。 連線方式如圖 所示: 圖 舵機(jī)的連線 首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 19 超聲波的連線 超聲波傳感器有四個(gè)腳,如圖 所示: 四個(gè)引腳的功能分別是: 1: VCC 接 +5V。 // 定義伺服馬達(dá)輸出第 5 腳位 。 首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 17 圖 6mm 銅柱裝在云臺(tái)底座安裝孔 并將裝好的云臺(tái)組件直接安裝到小車(chē)底盤(pán)上,小車(chē)搭建成品如圖 。在云臺(tái)底部的螺絲位套上螺母,并用熱熔膠固定 如圖 。為保證電源工作可靠,單片機(jī)系統(tǒng)與動(dòng)力伺服系統(tǒng)的電源采用了大功率、大容量的蓄電池;而傳感器的工作電源則采用了小巧輕便的干電池。 基本工作原理: (1)采用 IO 口 TRIG 觸發(fā)測(cè)距,給至少 10us 的高電平信號(hào) 。 而且 L298N 有過(guò)電流保護(hù)首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 13 功能,當(dāng)出現(xiàn)電機(jī)卡死時(shí),可以保護(hù)電路和電機(jī) 。 圖 Arduino 單片機(jī)實(shí)物圖 電機(jī)、電機(jī)驅(qū)動(dòng)模塊 本設(shè)計(jì) 采用由雙極性管組成的 H 橋電路( L298N)。 Analog I/O 模擬輸入 /輸出端共 0~5。如果程序有錯(cuò)誤,就會(huì)有如圖 的顯示,標(biāo)出了行號(hào)。 圖 Arduino IDE 的菜單欄中有很多選項(xiàng),例如“文件”“編輯”等英文界面。 圖 upload 上傳 功能 如圖 這就是串口監(jiān)視器的運(yùn)行畫(huà)面相對(duì)于網(wǎng)上流傳的 眾多 串口調(diào)試軟件, 它的 功能可以說(shuō) 較為簡(jiǎn)單。當(dāng)我們把鼠標(biāo)放在上面就會(huì)在右側(cè)出現(xiàn)按鍵的功能。另外有提供9V 直流電源輸入 ;在 應(yīng)用方面,利用 Arduino,突破以往只能使用鼠標(biāo),鍵盤(pán), CCD 等輸入的裝置進(jìn)行互動(dòng)內(nèi)容的設(shè)計(jì),可以更簡(jiǎn)單地達(dá)成單人或多人游戲互動(dòng)。 Arduino 的 功能 : 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 8 Arduino 可以 讓我們 快速使用與 Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider 等軟件結(jié)合,作出互動(dòng)作品。 Arduino 支持 ISP 在線燒,可以將新的“ bootloader”固件燒入 AVR 芯片。當(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ē)的避障功能。 硬件設(shè)計(jì) 本小車(chē)的硬件部分分為幾個(gè)模塊:超聲波傳感器、 Arduino 單片機(jī)、電源、兩個(gè)直流電動(dòng)機(jī)、電機(jī)驅(qū)動(dòng)板、車(chē)身。其間是通過(guò) AT89S52 單片機(jī)產(chǎn)生脈寬可調(diào)的脈沖信號(hào)并輸入到 L298 驅(qū)動(dòng)芯片來(lái)控制直流電機(jī)工作的。當(dāng)機(jī)器人在行走過(guò)程中遇到前方障礙時(shí) ,能夠根據(jù)有效范圍內(nèi)的距離作出相應(yīng)處理 ,由單片機(jī)軟件發(fā)出轉(zhuǎn)彎、直行、后退指令 ,避免機(jī)器與障礙物 相撞。 項(xiàng)目主要研究?jī)?nèi)容 本設(shè)計(jì)題目為《 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 》是 以 Arduino 單片機(jī)為控制核心, 主要研究小車(chē)的避障功能。我國(guó)作為一個(gè)世界大國(guó),在高科首都師范大學(xué)本科畢業(yè)設(shè)計(jì)論文 5 技領(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)先地位具有重要作用。歐洲各國(guó)在智能移動(dòng)機(jī)器人的研究和應(yīng)用方面在世界上處于公認(rèn)的領(lǐng)先地位。 智能移動(dòng)機(jī)器人涉及到許 多關(guān)鍵技術(shù),這些技術(shù)關(guān)系到智能移動(dòng)機(jī)器人的智能性的高低。 Arduino 機(jī)器人發(fā)展現(xiàn)狀 我國(guó) 目前 的發(fā)展現(xiàn)狀是 研制中的智能移動(dòng)機(jī)器人智能水平并不高,只能說(shuō)是智能移動(dòng)機(jī)器人的初級(jí)階段。類(lèi)似的,如果你需要的話,你也可以直接往你的 Arduino 程序中添加 AVRC 代碼。 初學(xué)者很容易就能學(xué)會(huì)使用 Arduino 編程環(huán)境,同時(shí)它又能為高級(jí)用戶提供足夠多的高級(jí)應(yīng)用。最便宜的Arduino 版本可以自己動(dòng)手制作,即使是組裝好的成品,其價(jià)格也不會(huì)超過(guò) 200 元。 我們 為什么要使用 Arduino?有很多的單片機(jī)和單片機(jī)平臺(tái)都適合用做交互式系統(tǒng)的設(shè)計(jì)。 3) Arduino 支持 ISP 在線燒,可以將新的 “bootloader”固件燒入 AVR 芯片。 Arduino 也可以獨(dú)立運(yùn)作成為一個(gè)可以跟軟件溝通的接口,例如說(shuō): flash、 processing、 Max/MSP、 VVVV 或其他互動(dòng)軟件 …。對(duì) Arduino 的編程是利用 Arduino 編程語(yǔ)言 (基于 Wiring)和 Arduino 開(kāi)發(fā)環(huán)境 (based on Processing)來(lái)實(shí)現(xiàn)的。 它 包含兩個(gè)主要的部分:硬件部分是可以用來(lái)做電路連接和 Arduino 電路板;另外一個(gè)則是 Arduino IDE,你的計(jì)算機(jī)中的程序開(kāi)發(fā)環(huán)境。 因此,在本次的設(shè)計(jì)中,我們將設(shè)計(jì)出一個(gè)能夠避障 機(jī)器人 ,在具有這個(gè)基本功能的基礎(chǔ)上,我們就可以為他附加更多的功能,賦予它更多的實(shí)用價(jià)值。人們將計(jì)算機(jī)技術(shù)更加廣闊的運(yùn)用的人類(lèi)生活中,制造能替代人勞動(dòng)的機(jī)器一直是人類(lèi)的夢(mèng)想,并一直在為之努力。 關(guān)鍵詞: Arduino 單片機(jī);超聲波傳感器;避障 基于行為設(shè)計(jì)的移動(dòng)機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) II ABSTRACT This paper describes the design of mobile robot behaviorbased design and implement A new ultrasoundbased integrated development environment Arduino obstacle avoidance car works. These include the implementation of car ponents, 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 exter