走迷宮智能小車的研究與實(shí)現(xiàn)_第1頁
走迷宮智能小車的研究與實(shí)現(xiàn)_第2頁
走迷宮智能小車的研究與實(shí)現(xiàn)_第3頁
走迷宮智能小車的研究與實(shí)現(xiàn)_第4頁
走迷宮智能小車的研究與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘要走迷宮御能小車主要是基于自主反應(yīng)式御能系統(tǒng)原理。利用反射式紅外傳感器來導(dǎo)引,采用與地血顏色有較大差別的導(dǎo)引線,紅外一體化接 收頭來檢測(cè)障僻物的位置,通過改變單片機(jī)產(chǎn)生的PWM方波的占空比,使其能在設(shè)計(jì)范圍內(nèi)可實(shí)現(xiàn)任意角度移動(dòng),實(shí)現(xiàn)小車識(shí)別路線,進(jìn)行白主 迷宮探路,判斷并實(shí)現(xiàn)自動(dòng)避障,選擇正確的行進(jìn)路線。驅(qū)動(dòng)電機(jī)采用直流電機(jī),電機(jī)控制方式為單向PWH開環(huán)控制。控制核心采用MSP430單 片機(jī),僅用一塊單片機(jī)就實(shí)現(xiàn)了信號(hào)采集,路線判斷,電機(jī)控制。該技術(shù)可以應(yīng)用丁-無人工廠,倉庫,服務(wù)機(jī)器人等領(lǐng)域??傮w規(guī)劃對(duì)于走迷宮小車控制系統(tǒng)設(shè)計(jì)主要有三個(gè)方而:一、控制電路設(shè)汁;二、傳感器選擇以及安放位宣設(shè)汁

2、;三、程序設(shè)計(jì)。從總的方而來考慮, 傳感器的使用數(shù)暈應(yīng)該盡暈少以減少單片機(jī)的信號(hào)處理暈,但是乂必須能使小車行駛H如。控制電路耍根據(jù)選用的電機(jī)和傳感器來設(shè)計(jì),主要 考慮穩(wěn)定性,抗干擾性。關(guān)鍵詞:MSP430 迷宮算法避障尋跡PWMAbstractA maze-running intelligent car is mainly based on the principle of automatic response intelligent system. 1( uses reflective infrared sensor to guide and the pilot wires are vary

3、 different from the ground in color I uses infrared receiver to detect the position of the obstacle and is by change of PWM square-wave produced by MCU to realize arbitniry angle moving among the designed range and indentifying the route It can touches maze automatically, judge and avoid the obstacl

4、e automatically, and choose the right marching route It uses DC Motor as the driving motor. The control mode of the motor is unidirectional PWM open-loop control. This control makes MSP430 MCU as its core. It only uses one MCU to realize the signal collection and route estimation and motor control.

5、This Technology can be applied in the fields such as unmanned factory and warehouse and Service Robot.The overall plan:The design of the control system of maze-running intelligent car mainly includes three parts:First: the design of the control circuit; Second: the choosing of the sensor and the des

6、ign of the mount position; Third: Program Design. From a overall perspective, you should use the sensors as few as possible so as to reduce the signal processing amount of the MCU and at the same time you must make the car march freely. The control circuit must be designed according the motors and s

7、ensors chosen, mainly take the stability and the noise immunity into account.尋跡避障小車走迷宮目錄第一章緒論1第二章各部件的工作原理22. 1前輪(導(dǎo)向輪)22.2電機(jī)32.3反射式紅外傳感器32.4紅外一體化接收頭4第三章硬件電路63. 1電機(jī)驅(qū)動(dòng)電路63.2反射式紅外傳感器電路73.3紅外一體化接收頭電路83.4處理器電路8第四章電路原理圖10第五章控制算法115.1黑線位置判別115.2巡線算法115.3搜線算法125.4障礙物位置判別125.5 轉(zhuǎn)彎控制135.6迷宮探路控制13第六章 相關(guān)軟件14第七章總結(jié)

8、177.1木文總結(jié)177.2進(jìn)一步的工作17致謝18參考文獻(xiàn)錯(cuò)誤!未定義書簽。1919附錄 附錄二第一章緒論當(dāng)今社會(huì),科學(xué)技術(shù)日新月異,時(shí)代前進(jìn)的步伐越邊越寬,應(yīng)用自動(dòng)化設(shè)備,計(jì)算機(jī)處理,現(xiàn)代化通訊,數(shù)字化信息,現(xiàn)代化顯示設(shè)備等高新技 術(shù)而建立的現(xiàn)代化稗能,監(jiān)控等系統(tǒng)己經(jīng)得到充分的發(fā)展與應(yīng)用,智能機(jī)器人也就應(yīng)運(yùn)而生。同時(shí),在建設(shè)以人為木的和諧社會(huì)的過程中,御能服 務(wù)機(jī)器人能夠完成考古發(fā)掘,海底揭密,宇宙探索等危險(xiǎn)作業(yè),以保證人身安全。國家中長(zhǎng)期科學(xué)和技術(shù)發(fā)展規(guī)劃綱耍-文指出:猶能服務(wù) 機(jī)器人是在非結(jié)構(gòu)環(huán)境下為人類提供必耍服務(wù)的多種高技術(shù)集成的智能化裝備。以服務(wù)機(jī)器人和危險(xiǎn)作業(yè)機(jī)器人應(yīng)用需求為重

9、點(diǎn),研究設(shè)計(jì)方法、 制造工藝、智能控制和應(yīng)用系統(tǒng)集成等共性基礎(chǔ)技術(shù)。重點(diǎn)研究低成本的口組織網(wǎng)絡(luò),個(gè)性化的智能機(jī)器人。2006-2020年,既是國家中長(zhǎng)期技 術(shù)發(fā)展計(jì)劃實(shí)現(xiàn)階段,也是我們最具有活力和最激情洋溢的時(shí)段。該智能小車模型是一輛完全山PCB拼裝的小車。所有的機(jī)械結(jié)構(gòu)利零部件都安裝固定在電路板上。因此完全不需要機(jī)械加工,非常適介實(shí)驗(yàn) 階段機(jī)器人的研制。本文簡(jiǎn)述了智能巡線避障小車自主走迷宮的設(shè)計(jì)思路和實(shí)現(xiàn)過程。包括小車的機(jī)械結(jié)構(gòu)、電路、軟件、控制算法、調(diào)試方法 等??勺鳛橐话愕脑O(shè)計(jì)參考。小車的左右后輪分別由2只6V直流減速電機(jī)提供動(dòng)力;前導(dǎo)向輪是一只萬向輪。430單片機(jī)的PWM發(fā)生器產(chǎn)生4路

10、(分為兩組)占空比可變 的方波,經(jīng)三極管進(jìn)行擴(kuò)流后分別駁動(dòng)后輪左右電機(jī)??刂?路PWM的比例,不僅可以調(diào)節(jié)小車向前運(yùn)動(dòng)的速度,還可通過4路PWM占空比的差 界,改變小車運(yùn)動(dòng)方向。5只反射式紅外傳感器位于小車前方,3只位于小車后方,小車周圍還分布冇7個(gè)紅外-體化接收頭來實(shí)現(xiàn)測(cè)距功能,將物體與小車的距離分為 八個(gè)階段,當(dāng)物體離小車很近時(shí)實(shí)行和應(yīng)的程序以躲避障礙,并用反射式紅外傳感器查找黑線位置,避免英脫離。第二章各部件的工作原理2. 1前輪(導(dǎo)向輪)前輪是決定小車能否靈活拐彎的關(guān)鍵部分。這輛小車和汽車不同,不是靠前輪擺舵來控制轉(zhuǎn)彎,而是靠左右片輪速度差來實(shí)現(xiàn)轉(zhuǎn)彎控制。這 樣前輪實(shí)際上是從動(dòng)輪。下圖

11、中,當(dāng)小車左輪的速度高丁右輪時(shí),小車右轉(zhuǎn)彎;反之,當(dāng)小車右輪的速度高丁-左輪時(shí),小車左轉(zhuǎn)彎。前輪的速度可以分解為前進(jìn)的速度和水平側(cè)移的速度。普通的定軸的前輪只能垂直方向前進(jìn),水平方向是無法左右滑動(dòng)的。因此小 車不可能實(shí)現(xiàn)拐彎(實(shí)際的結(jié)果是:因?yàn)榍拜啿荒芑顒?dòng),右輪也成了從動(dòng)輪,兩輪速度一樣,直線前進(jìn))。所以前輪一定要能夠側(cè)滑,并能轉(zhuǎn)向。最簡(jiǎn)單的方法是使用萬向輪。一般機(jī)械上使用的萬向輪非常的笨重,實(shí)驗(yàn)效果很不理想。這里我們?cè)O(shè)計(jì)了一種簡(jiǎn)易的萬向輪:用一根鍍鋅鐵 絲彎成半圓形作為支架,穿一個(gè)小輪。當(dāng)小車右轉(zhuǎn)彎時(shí),小輪相對(duì)丁支架左滑動(dòng)(其實(shí)是小輪因?yàn)榈孛婺Σ炼粍?dòng),支架右滑),轉(zhuǎn)彎角也隨之改變;小輪還會(huì)

12、根據(jù)轉(zhuǎn)彎量口動(dòng)地調(diào) 整到合適的角度。這種結(jié)構(gòu)小輪是自山的,只要有輕微的力,就能使小輪滑動(dòng),轉(zhuǎn)向菲常靈活。前輪速度方向普通定軸前輪一種簡(jiǎn)易但高效的萬向輪左右輪速度差控制轉(zhuǎn)彎前輪速度方向 可分解為水平 S垂直兩方向 的速度滑動(dòng)圖2. 1前輪的結(jié)構(gòu)需要注意的是萬向輪的安裝。要將U世半関支架平行于地面,否則當(dāng)小車左右轉(zhuǎn)時(shí)極易發(fā)生坍塌現(xiàn)彖。而且前輪對(duì)小車的運(yùn)行軌跡影響很大,所以出了在安裝時(shí)要保證U世支架平行于地面外,還需要對(duì)I:型支架作相應(yīng)的 處理,比如潤(rùn)滑、將U型支架兩端持平,以及還應(yīng)保證前輪的活動(dòng)空間,避免與前端的傳感器和后端的電池盒發(fā)生碰撞、摩擦。實(shí)際我們所用的力用輪中間的孔較大,所以很容易發(fā)主側(cè)

13、移,我們可以用皮箱下而的小輪來代替現(xiàn)在我們所用的前輪,效果可能會(huì)好很多。2.2電機(jī)電機(jī)是我們的生活中不可缺少的動(dòng)力源,常用的冇交流電機(jī)和直流電機(jī)。這里小車的動(dòng)力采用玄流減速電機(jī)直接驅(qū)動(dòng),省去了齒輪組、傳 動(dòng)部件等復(fù)雜的機(jī)械結(jié)構(gòu)。這里選擇了 6V/300rpm的電機(jī),速度和力矩都比較適中。直流電機(jī)的構(gòu)造:在繞有線圈的鐵芯(轉(zhuǎn)子)的外周,有相同數(shù)目的定子(永久磁鐵)相向包由。通過整流器的電刷轉(zhuǎn)子斷續(xù)地得到電流, 轉(zhuǎn)子與定子的永久磁鐵反復(fù)相吸、排斥,結(jié)果無論他們的相互位置如何,轉(zhuǎn)子始終能夠沿著一定的方向冋轉(zhuǎn)。在永久磁鐵(NS)之間的線圈有電 流通過時(shí),產(chǎn)生電磁力,對(duì)應(yīng)于永久磁恢產(chǎn)生的磁場(chǎng),N極產(chǎn)生向

14、上的力,S極產(chǎn)生向下的力。結(jié)果導(dǎo)致線圈旋轉(zhuǎn)。在線圈旋轉(zhuǎn)的同時(shí),整流器也隨Z旋轉(zhuǎn),這樣就能保證電流流向的H動(dòng)切換以便維持轉(zhuǎn)子向同一方向的連續(xù)轉(zhuǎn)動(dòng)。于是,線圈屮不斷地產(chǎn) 生和同方向的旋轉(zhuǎn)力。直流電機(jī)中的電刷與整流器實(shí)際上屬于機(jī)械接觸,由于在轉(zhuǎn)軸轉(zhuǎn)動(dòng)的過程中他們的接觸狀態(tài)不斷發(fā)生變化,往往產(chǎn)生電氣噪聲,這可能成 為誘發(fā)CPU電路誤動(dòng)作的原因,因此為了克服噪聲干擾,一般在電機(jī)電源端子上并聯(lián)一個(gè)電容器。電機(jī)的安裝采用焊接。電機(jī)背血2個(gè)電源端子用粗銅絲焊在電路板上,克服電機(jī)自由轉(zhuǎn)動(dòng)。電路板上刻冇一比電機(jī)略長(zhǎng)的槽口,卡住電機(jī),圖2. 3 電機(jī)改進(jìn):減速電機(jī)成本高,H 300rpm以上的電機(jī)需12V供電,不方

15、便。競(jìng)速車可改為錄音機(jī)的磁帶驅(qū)動(dòng)電機(jī)(約3000rpm,車輪要減?。S糜诠潭姍C(jī)的銅絲一般應(yīng)用多股細(xì)銅絲線。若用單股而比較粗的銅線的話有可能會(huì)因?yàn)樾≤嚨亩秳?dòng)而使電機(jī)發(fā)生滑動(dòng),從而需要不斷的對(duì) 電機(jī)進(jìn)行加固。2.3反射式紅外傳感器反射式紅外傳感器ST 188采用高發(fā)射功率紅外廣電二極管和高靈敏度光電晶體管組成。檢測(cè)距離可調(diào)整范圍為415mm;采用非接觸檢測(cè)方 式。可用于IC卡電度農(nóng)脈沖數(shù)據(jù)采集、集中抄農(nóng)系統(tǒng)數(shù)據(jù)采集和傳真機(jī)紙張檢測(cè)等。走迷宮智能小車的研究與實(shí)現(xiàn)圖2. 4反射式紅外傳感器工作原理反射式紅外傳感器屮包含一個(gè)發(fā)射器LED和一個(gè)光探測(cè)器(光敏二極管/光敏三極管)。著兩個(gè)元件被封裝在同一

16、個(gè)塑料殼體中,并且排列 成適合他們工作的理想位置。LED發(fā)出的一束光被一個(gè)表面反射后又回到探測(cè)器中。圖1.4是反射式紅外傳感器的丄作原理圖。封裝在矩形殼體中的是發(fā)射器LED (由左側(cè)的白色方塊表示)和探測(cè)器裝置(在右側(cè))。虛線表示 光線從發(fā)射器LED中發(fā)出并反射回探測(cè)器:探測(cè)器檢測(cè)到的光強(qiáng)人小取決于物體表而的反射率,而這一光強(qiáng)就是傳感器的輸出值。如圖所示,選通信號(hào)(高電平)經(jīng)過三極管擴(kuò)流后送到傳感器的K腳,如果檢測(cè)到黑線,傳感器C腳輸出高電平:否則輸出為低電平。圖2.5轉(zhuǎn)換效率有效值4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 檢測(cè)距離(mm) |f=8A反射式

17、紅外傳感器及其檢測(cè)距離與轉(zhuǎn)換效率的關(guān)系圖反射式傳感器在高度受控的理想環(huán)境下的工作性能更好,因?yàn)橛绊懰敵龅耐饨缫蛩饔泻芏啵绛h(huán)境光的變動(dòng)、傳感器與被探測(cè)物體Z間的 距離,以及被探測(cè)物體的反射率等。為了減少環(huán)境光的干擾,首先需要調(diào)整傳感器的方位使環(huán)境光不能直接射到探測(cè)器。反射式紅外傳感器ST188的最佳探測(cè)距離為G-Minino所以將傳感器垂直于地而并且調(diào)整傳感器與地而的距離,大約在10mm左右。傳感器引 腳很細(xì),容易晃動(dòng),需要穿過一塊支撐板以增加強(qiáng)度;同時(shí)還可以通過銅柱的高度或增加桀片來細(xì)調(diào)傳感器離地血的距離。主機(jī)板地面圖2. 6傳感器安裝圖2.4紅外一體化接收頭電視機(jī)、唱機(jī)等家電中廣泛使用紅

18、外線遙控器。紅外遙控器發(fā)出38K1IZ調(diào)制的紅外線,在接收端,被一體化紅外接收頭接收,解調(diào)出原始鍵 碼值。因?yàn)榧t外遙控使用廣泛、成熟、人批量,所以相關(guān)紅外接收、發(fā)射元件價(jià)格很低。本方案使用通用遙控器的一體化紅外接收頭作為檢測(cè)元件。VddTLTL38. OKHzHR If QLEDVssVis圖2. 7 一體化紅外接收頭工作原理一體化接收頭內(nèi)部集成冇帶通濾波器,它只允許大約38 kHz的紅外信號(hào)通過。這種僅對(duì)38KHz敬感的特性,冇助于消除環(huán)境光對(duì)遙控器接 收的影響。如圖,當(dāng)紅外線發(fā)射管IR LED)發(fā)出的38KHz的紅外線被一體化接收頭接收時(shí),接收頭輸出“0”。當(dāng)沒有偵測(cè)到紅外線,或非38KH

19、z 紅外線(如日光燈干擾),輸出1”利用一體化紅外接收頭在38KI1Z附近靈敏度的衰減的特性,可以實(shí)現(xiàn)測(cè)距功能。圖2顯示的是某品牌的紅外線探測(cè)器(Panasonic PNA4602M)在38Kllz附近的靈敏度如果紅外LED發(fā)送頻率為42 kllz,接收頭的靈敏度是頻 率為3& 5 kHz的20%左右。在非38KHz頻率下,探測(cè)器的靈敏度下降,為了讓探測(cè)器探測(cè)到紅外線的反射,物體必須離探測(cè)器更近,才能使反射的紅外光更亮。B.PJ ircqvtntv tharaucrisliis圖2. 8接收頭在38KI1Z附近靈敏度曲線那么,戢高靈敬度的頻率可以探測(cè)戢遠(yuǎn)距離的物體,較低靈敬度的頻率可以探測(cè)較近

20、距離物體。距離探測(cè)功能得以實(shí)現(xiàn)。選擇8個(gè)不同頻率,從 最拓靈敏度到最低靈敏度進(jìn)行依次探測(cè)。首先嘗試最高靈敏度頻率,如果物體被探測(cè)到了,就讓僅次丁它的爲(wèi)靈敏度頻率測(cè)試,觀察是否可以探 測(cè)到。依賴丁-不能再讓探測(cè)器檢測(cè)到的紅外線頻率,我們就可以大致推斷物體距離處丁-哪個(gè)區(qū)域圖2. 9紅外線測(cè)距原理如果需要更髙的分辨率,述可通過扌頻法找到臨界頻率,從而更粘:確的得到物體位逢。下表是本人實(shí)測(cè)的頻率距離關(guān)系(測(cè)量條件:紅外發(fā)光管通過5mA電流,用一張A4的白紙當(dāng)障礙物):頻率38KHZ41 KHZ44KHZ48KHZ54KHZ60KHZ67KHZ69KHZ69KHZ頻率距離關(guān)系該方法的缺點(diǎn)是粘度差,且對(duì)

21、物體顏色深淺比較敏感。對(duì)丁地圖繪制等精度要求較高的場(chǎng)合不適文域267KHZ 2/區(qū)域V 54KHZ.區(qū)域、448KHZ區(qū)域5.44KHZ區(qū)域641KHZ 區(qū)域1-38KHZ ,6走迷宮智能小車的研究與實(shí)現(xiàn)用。但對(duì)丁-機(jī)器人避障功能或路徑選擇來說,已經(jīng)足夠。第三章硬件電路3. 1電機(jī)驅(qū)動(dòng)電路此部分是整個(gè)小車的大腦,是整個(gè)小車運(yùn)行的核心部件,起著控制小車所有運(yùn)行狀態(tài)的作用。通常選用單片機(jī)作為小車的核心控制單元。 這里選用MSP430X149單片機(jī)(如下有介紹)??紤]到小車必須能夠前進(jìn)、倒退、停止,并能靈活專性,在左右兩輪各裝一個(gè)電機(jī)分別進(jìn)行驅(qū)動(dòng)。當(dāng)左輪電機(jī)轉(zhuǎn)速高于右輪電機(jī)轉(zhuǎn)速時(shí)小 車向右轉(zhuǎn),反Z則

22、向左轉(zhuǎn)。為了能控制車輪的轉(zhuǎn)速,左右兩輪的轉(zhuǎn)速,可以采取PWM調(diào)速法,即由單片機(jī)的TAi和TBi輸出系列頻率固定的方 波,再通過功率放大來驅(qū)動(dòng)電機(jī),在單片機(jī)中編程改變輸出方波的占空比就可以改變加到電機(jī)上的平均電圧,從而可以改變電機(jī)的轉(zhuǎn)速。左右兩 輪兩個(gè)電機(jī)轉(zhuǎn)速的配合就可以實(shí)現(xiàn)小車的前進(jìn)、倒退、傳彎等功能。這里采用簡(jiǎn)單小電流II橋集成功放電路。如圖所示:該電路上半部分采用S9013NPN三極管,下半部分采用S9012PNP三極管。它是一個(gè)既可 靠乂簡(jiǎn)單的電路,它的接口很簡(jiǎn)單,一是因?yàn)樗鼉H冇兩個(gè)輸入(A和B);二是因?yàn)楫?dāng)H橋集成功放電路的兩邊都導(dǎo)通時(shí)也不會(huì)造成電源短路(因 為同邊上下的三極管不會(huì)同時(shí)

23、導(dǎo)通)。該H橋集成功放電路比任何將PNP三極管安習(xí)在上邊的電路(該電路不會(huì)發(fā)生自動(dòng)偏壓)的效率都更高。該H橋集成功放電路工作時(shí),若將A端置為高電平,而將B端置為低電平,電機(jī)將按-定的方向轉(zhuǎn)動(dòng)(參見圖)。若將A端和B端電位對(duì)調(diào), 電機(jī)將朝另一方向傳動(dòng)。如果A端和B端的電位相同,電機(jī)將自山旋轉(zhuǎn)。電路控制的真值示于表中?!?”為低電平,“1”為高電平。圖3.1電機(jī)驅(qū)動(dòng)電路如圖所示,將PWM_L1加到A端,PWM_L2加到B端。當(dāng)PWM_L1為高PWM丄2為低時(shí),MG2通電開始順時(shí)針轉(zhuǎn)動(dòng);當(dāng)PWM L1為低PWM L2為高時(shí) MG2逆時(shí)針轉(zhuǎn)動(dòng)??刂芇WM U和PWM 1.2信號(hào)高低電平的時(shí)間比,就可以

24、控制MG 2的轉(zhuǎn)速。同樣的方法控制右輪。利用左右輪的速度莖還可以轉(zhuǎn) 向。需要注意的是:被二極管分流到電源兩端的電力將造成主板電壓的瞬變或噪聲。更嚴(yán)重的是當(dāng)采用PWM信號(hào)控制電機(jī)時(shí),每次關(guān)斷都會(huì)產(chǎn)生 這種影響。如果導(dǎo)通三極管又重新開啟,同時(shí)反向電動(dòng)勢(shì)電流仍然存在,結(jié)果三極管將直接導(dǎo)通電源正極和地。這一現(xiàn)象時(shí)間的長(zhǎng)短取決于續(xù)流 二極管的關(guān)斷時(shí)間。這一電流稱作過沖電流,它同樣會(huì)產(chǎn)生噪聲。基于以上原因,一條重要的對(duì)策是需要在H橋集成功放電路上加高速的旁路電 容(瓷質(zhì)電容或鈕電容)來保護(hù)電路中的電子元件乃至電池。旁路電容的作用是平滑電流脈動(dòng)和電源電壓的瞬變。當(dāng)電壓出現(xiàn)尖峰時(shí),電容將迅 速地吸收這一能量,

25、從而使電壓保持恒定。當(dāng)電壓降低時(shí),電容將向電路中回饋能量,從而使電圧有所回升。改進(jìn):該電路是用PWM來控制電機(jī)的。經(jīng)試驗(yàn)驗(yàn)證該電路只有開關(guān)的作用,從單片機(jī)出來的P仙電圧大約在3. 5V左右,加到電機(jī)兩邊垠多只有 3V,這遠(yuǎn)遠(yuǎn)低于其耐壓,因此轉(zhuǎn)速也很慢,稍有燃擦就轉(zhuǎn)不動(dòng)了。因此需要再增加兩個(gè)三極管來進(jìn)行擴(kuò)流,具體電路如下所示:電機(jī)狀杏A I B停00噸時(shí)針族轉(zhuǎn)01逆時(shí)針族轉(zhuǎn)10停11圖3.2 改進(jìn)的電機(jī)驅(qū)動(dòng)電路3.2反射式紅外傳感器電路這里的尋跡是指小下在白色地板上尋黑線行走,通常采用的方法是紅外探測(cè)法。即利用紅外線在不同顏色的物體衣面具冇不同的反射性質(zhì)的 特點(diǎn),在小車行駛過程中不斷地向地而發(fā)射

26、紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被安裝在小車上的接收管接收;如呆遇到黑線則紅外光被吸收,小車 上的接收管接收不倒紅外光。單片機(jī)就是否反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線。紅外探測(cè)器探測(cè)的距離有限,一般最 大不應(yīng)超過15cm。這里用反射式紅外傳感器ST188。當(dāng)小車在白色地面行駛時(shí),裝在車下的紅外發(fā)射管發(fā)射紅外線信號(hào),經(jīng)白色反射后,被接收管接收,一旦 接收管接收到信號(hào),輸出端將輸出低電平;當(dāng)小車行駛到黑線時(shí),紅外線信號(hào)被黑色吸收后,將輸出高電平,從而實(shí)現(xiàn)了通過紅線檢測(cè)信號(hào)的功 能。將檢測(cè)到的佶號(hào)送到單片機(jī)的I/O 口,當(dāng)1/0 口檢測(cè)到的佶號(hào)為高電平時(shí),表明

27、紅外光被地上的黑線吸收了,表明小車處在黑色的引線上: 同理,當(dāng)I/0U檢測(cè)到的信號(hào)為低電平時(shí),表明小車行駛在白色地面上。為了提高控制將度,要求傳感器排列緊密,越緊越好。但傳感器排列緊密,傳感器發(fā)射管的光線可能會(huì)從地面反射進(jìn)入臨近傳感器的接收管。 所以不能同時(shí)開啟這些傳感器。下圖是傳感器電路的一部分。其中6和7好傳感器是用來記錄車輪轉(zhuǎn)過的圈數(shù),以便于記錄下小車走過的路徑距 離。ISEM尋跡電路STI22STI22STISSSTI8S圖3. 3反射式紅外傳感器屯路傳感器采取脈沖掃描式讀。例如某時(shí)刻P SEN1高屯平,其余P SEN25低,這樣1、4號(hào)傳感器的紅外發(fā)射管亮,其余傳感器不發(fā)射紅外線。等

28、 待數(shù)據(jù)穩(wěn)定后,讀取1、4號(hào)傳感器的數(shù)據(jù)。然厲關(guān)閉1、4號(hào)傳感器,打開2、5號(hào)傳感器電源,依次類推,讀取5個(gè)傳感器的數(shù)據(jù)。這樣可以 保證任何時(shí)刻都不會(huì)有臨近的傳感器同時(shí)工作。從而保證了相鄰傳感器之間不會(huì)互相干擾。同時(shí),紅外發(fā)射管是除了電機(jī)之外耗電最大的器件, 脈沖工作方式可以大大減少耗電量。走迷宮智能小車的研究與實(shí)現(xiàn)3.3紅外一體化接收頭電路為了感應(yīng)360度范圍內(nèi)的障礙物,傳感器排布采用如卜-結(jié)構(gòu)。圖3.4 紅外測(cè)距環(huán)的傳感器布置上圖注意應(yīng)把發(fā)射管安在接受管后面,防止小車行走時(shí)被破壞。每個(gè)傳感器組由一只紅外發(fā)射管、一只一體化紅外接收頭,和一只電容構(gòu)成。 可以測(cè)量該方向是否存在障礙物和判斷障礙物

29、的跖離。電容用來穩(wěn)定電路,防止電源和地發(fā)生短路。碩件原理:采用一片MSP430X149作為控制器。利用TIMERA (fj頻率發(fā)生器模式,產(chǎn)生38KlIz附近的若干頻率,從P6. 5輸出方波。該方波經(jīng)過 晶體管Q18擴(kuò)流來增加驅(qū)動(dòng)能力,給7個(gè)紅外LED供電。為防止互相干擾,7只LED輪流點(diǎn)亮,每次只亮一只LED,由IRE選擇哪支紅外LED被 點(diǎn)亮。如果接收到反射回來的紅外線,接收端將輸出TTL電平,被單片機(jī)接收,然厲執(zhí)行相應(yīng)的避障措施。如果未接收到任何信號(hào),將一直輸出 高電平。因?yàn)橐惑w化接收頭只對(duì)38kllz的方波敏感,而且它內(nèi)部帶有帶通濾波器,所以需要在發(fā)送38kllz的時(shí)候發(fā)送一段時(shí)間關(guān)閉

30、一段時(shí)間,否則傳 感器會(huì)認(rèn)為它是外界光而將返回的信號(hào)當(dāng)作干擾信號(hào)而忽略掉。為了避免各個(gè)傳感器Z間的相互干擾,需要輪流打開接收器。另外,因?yàn)榘l(fā)光管發(fā)出的光是沿卩“而八方發(fā)送的,而口只要打開電源發(fā)射管就會(huì) 工作,所以也為了避免因別的發(fā)光管帶來的干擾,需要將發(fā)光管包的嚴(yán)嚴(yán)實(shí)實(shí)的。如圖所示為紅外一體化接收頭的作原理:上拉電阻一般選用1KQ,如果選用較大的電阻,其上拉的效果也不是很明顯,有點(diǎn)大材小用的效果; 如果選用較小的電阻,有可能方波的低電平就不會(huì)下拉到0附近。通過作試驗(yàn),我們將上拉電阻選用300Q的電阻,結(jié)果38KIIZ的方波的低電平 大約在IV左右,這時(shí)單片機(jī)冇可能會(huì)將它也看作高電平,也就是說相

31、當(dāng)于一直輸出的是高電平。另外,還可以調(diào)整串聯(lián)電阻的大小來調(diào)整傳感 器的測(cè)距范圍。電阻越人,測(cè)量距離越小;電阻越小,測(cè)量距離越人。但因?yàn)閱纹瑱C(jī)接收到的電流一般在5mA左右,所以串聯(lián)電阻也不能很小, 否則會(huì)燒壞單片機(jī)。經(jīng)過試驗(yàn),我們測(cè)得上拉電阻為1KQ串聯(lián)電阻為100Q時(shí)它的測(cè)量距離最遠(yuǎn),可達(dá)到3米以上。這七個(gè)傳感器所起的作用是不同的。前排三個(gè)傳感器用來檢測(cè)前方是否有障礙物。若中間的傳感器檢測(cè)到障礙物,左前方的傳感器再檢測(cè)左 邊是否冇障礙物:如果沒彳j小車左轉(zhuǎn)彎;如果彳j,再判斷右邊是否冇障礙物:如果沒彳j,則小車右轉(zhuǎn)彎;如果彳j小車將向后退,在后退的過程中 傳感器還在不斷的檢測(cè)障礙物,一旦發(fā)現(xiàn)左

32、邊(或右邊)沒冇障礙物時(shí),小車將向左(或右)轉(zhuǎn)彎。小車屮間的兩個(gè)傳感器用來改變小車的轉(zhuǎn)彎 半徑,避免小車在轉(zhuǎn)彎的過程屮撞到障礙物。小車后排的兩個(gè)傳感器是在小車后退的過程屮防止小車撞到后而物體得到。因此,根據(jù)傳感器所起 的作用的不同,它們所要測(cè)量的距離方為也不同。所以分別給它們不同的串聯(lián)電阻。經(jīng)試驗(yàn)我們可以將前而三個(gè)傳感器的串聯(lián)電陌裝成300 Q的; 左右兩邊的1KQ;后面的2KQ。3.4處理器電路小車采用一片MSP430X149作為控制器。它具有3路PWM控制器和串口。用到410個(gè)I/O 口,其中:紅外一體化接收頭傳感器輸入5個(gè)輸出 口 8個(gè),反射式紅外傳感器輸入口 5個(gè)控制口 5個(gè)、電機(jī)控制

33、口 4個(gè)、JT.AG占用1個(gè)I/O 口。MSP430X149的特點(diǎn)是:有五種節(jié)電模式;16位RISC結(jié)構(gòu),125ns指令周期;6個(gè)8位并行端口,且2個(gè)8位端口有中斷能力;保密熔絲的 程序代碼保護(hù):具有2個(gè)捕獲/比校寄存器的16位定時(shí)器TIMER_A, TIMER_B:兩通道串行通信接口可用于界步或同步模式:串行在系統(tǒng)編程:多達(dá) 60KB FLASH ROM 和 2KB RAM 等等。hl hl OCLL / ICLL 紙 SHL旳 N2iL Rb倂B09:9Z 9U1O s s:noas.sd :novbsd HncelxNZ1XIRSKLNE育Ccnon/Ecd 2W0W2 0OWIS2 O

34、MHO.a OES Nma 總s OS 員s 苜 Iws IVJJOVMS OVJXLnovged mlvtEN2SSP5.4/MCLKPS3P5JP5.1P50P4.77TBCLKP4/5P45P4.4P43P42ZTB2P4.1/TE1P4Q/TB0P3.7P3/5P35AJRXD04811471246134514441543164217411840 pwm_r39PWI匸R238PWIL2刃pwi匸iA36 IRD4 - 35 IRE434 IRD533 IRE5ZE 61 胃R RK A須 射 目I 禹 ulfe 冷 I.L!I I-Brld RKgs 7L ZNwrd Kr.F回 R

35、gEd 61rlNws E2.MQ巴 U nms圖3. 5單片機(jī)工作原理系統(tǒng)采用32KHz晶振作為定時(shí)采樣用,主時(shí)鐘用800K左右的DCO。另外留有JTAG 口可以現(xiàn)場(chǎng)編程。并且還有19個(gè)引腳未用到,將來還可以 擴(kuò)展其功能在做PCB板時(shí)已將這些引腳引出,可以直接使丿1扎定時(shí)器TIMERA山一個(gè)十六位定時(shí)器和多路比較/捕獲通道組成。毎一個(gè)比較/捕獲通道都可以十六位定時(shí)器的定時(shí)功能為核心進(jìn)行單獨(dú)的 控制。它還具有以下特性:輸入時(shí)鐘可以冇多種選擇,可是慢時(shí)鐘,快時(shí)鐘以及外部時(shí)鐘。雖然沒有自動(dòng)巫載時(shí)間常數(shù)功能,但產(chǎn)住的定時(shí)脈沖或PWH信號(hào)沒有軟件帶來的誤差。不僅能捕獲外部事件發(fā)生的時(shí)間還可以鎖定其發(fā)生

36、時(shí)的高低電平。町實(shí)現(xiàn)串行通信;完善的屮斷服務(wù)功能;4種計(jì)數(shù)功能選擇;8種輸出方式選擇和支持多時(shí)序控制等。TIMERA共有4種計(jì)數(shù)模式:停止模式、增計(jì)數(shù)模式、連續(xù)計(jì)數(shù)模式和增/減計(jì)數(shù)模式。我們用TIMERA的增計(jì)數(shù)模式來產(chǎn)生38KIIZ的方波。 具體原理為:捕獲/比較寄存器CCRO用作TTMERA増計(jì)數(shù)模式的周期寄存器,因?yàn)镃CRO為16位寄存器,所以該模式適用于定時(shí)周期小于65536 的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)器TAR可以增加計(jì)數(shù)到CCRO的值,當(dāng)計(jì)數(shù)值與CCRO的值相等(或定時(shí)器值大T CCRO的值)時(shí),定時(shí)器復(fù)位并從0開始 重新計(jì)數(shù)。圖2.8說明了增計(jì)數(shù)模式的計(jì)數(shù)過程。當(dāng)定時(shí)器的值等T- CCR

37、O的值時(shí),設(shè)置標(biāo)志位CCIFGO(捕獲比較中斷標(biāo)志)為1,而當(dāng)定時(shí)器從 CCRO計(jì)數(shù)到0時(shí),設(shè)置標(biāo)志位TAIFG (定時(shí)器溢出標(biāo)志)為。圖3. 6増計(jì)數(shù)模式計(jì)數(shù)過程中還可以通過改變CCRO的值來重置技術(shù)周期。當(dāng)新周期人于舊周期時(shí),定時(shí)器會(huì)直接增計(jì)數(shù)到新周期;當(dāng)新周期小于舊周期時(shí), 改變CCRO時(shí)的定值器時(shí)鐘相位會(huì)影響定時(shí)器響應(yīng)新周期的情況。時(shí)鐘為高時(shí)改變CCRO的值,貝I定值器會(huì)在下一個(gè)時(shí)鐘上升沿返回到0,如果時(shí)鐘為低時(shí)改變CCRO的值,則定時(shí)器接受新周期并在返回到0 Z前,繼續(xù)增加一個(gè)時(shí)鐘周期??梢噪S時(shí)間變化任意改變PWM信號(hào)的占空比,具體的做法是:保持CCRO的值不變(周期不變) 改變CC

38、Rx值(改變占空比)圖3. 7增計(jì)數(shù)模式時(shí)的輸出實(shí)例.TIMERA的輸出模式由模式控制位OMxO、OMx和0Mx2決定,共有8種輸出模式。除模式0外,其他的輸出都在定時(shí)器時(shí)鐘上升沿時(shí)發(fā)生變 化。這里我們將輸出模式選為輸出模式7。用該方式產(chǎn)生占空比為50%的38KHZ的方波;也可以通過改變CCRx的值來改變電機(jī)的轉(zhuǎn)速,使其實(shí)現(xiàn)轉(zhuǎn)彎、后退等動(dòng)作。TIMERB的工作原理和TIMERA的相仿。第四章電路原理圖三型尋跡避障種能小車山機(jī)械結(jié)構(gòu)、尋跡電路、避障電路、電機(jī)控制模塊和處理器電路五部分組成。(見附錄三)圖4.1總體結(jié)構(gòu)圖如圖所示為小車的工作原理。打開電源時(shí)先初始化電機(jī)驅(qū)動(dòng)電路、一體化接收頭電路和反

39、射式紅外傳感器電路。剛開機(jī)時(shí)小車的初速度很大, 有可能不會(huì)沿著黑線運(yùn)行,所以先讓它空跑一段時(shí)間。小車在遇到障礙物Z前,會(huì)沿著軌跡前進(jìn),遇到左拐彎時(shí)實(shí)行拐彎程序。若在跑道上放置 障礙物,小車實(shí)行相應(yīng)的避障程序。繞過障用幽時(shí)小車再繼續(xù)按軌跡前進(jìn)。這有點(diǎn)理想化,實(shí)際中不會(huì)很完美的將避障和尋跡兩部分接合起來, 所以對(duì)尋跡算法冇很高的要求,要求當(dāng)小車在繞開障礙物時(shí)一旦檢測(cè)到黑線就能立刻反應(yīng)過來按照黑線的軌跡來運(yùn)行。我們將紅外一-體化接收頭和反射式紅外傳感器分為兩組。第-組包括前排的三個(gè)和Z間的兩個(gè)一體化接收頭以及五個(gè)反射式紅外傳感 器,生要是在小車前進(jìn)中用來檢測(cè)黑線和障礙物位直的:另外一組是在小車后退時(shí)

40、用到的。這兩組傳感器分別作用,即在前進(jìn)中開啟第一組,后退時(shí)再開啟另外一組。這樣 可以冇效的利用單片機(jī),也不會(huì)造成程序的混亂。第五章控制算法5.1黑線位置判別地面的黑線是導(dǎo)引線,位置讀取和計(jì)算的準(zhǔn)確度、穩(wěn)定性將直接影響小車的控制和運(yùn)行。下圖是實(shí)際運(yùn)行中出現(xiàn)的情況,黑塊表示感應(yīng)到黑 線的傳感器。傳感器的排列比較密,可能12個(gè)傳感器都能踩到黑線;轉(zhuǎn)彎處乍身傾斜茯至23個(gè)傳感器都能踩到黑線。應(yīng)該求黑線的中心位 置作為結(jié)果。 Posit=0Posit=-0.5找到第一個(gè)黑色傳感器編j。(i+j)/2就是黑線中心位置。這曾烤的響警小平牛用來丕卉方坷出”我們將結(jié)果放人10倍,再減左Z間位置時(shí)算出來的值。U

41、UI j毬法做個(gè)簡(jiǎn)單的說明:小車是一個(gè)卄常典型的慣性系統(tǒng)。對(duì)于這-類被控對(duì)彖,pid算* Posit=(i+j)/2假設(shè)小車中心線在黑線中心線上,偏差為0.小午止常行緞。如果和、j劉蝕側(cè)土際級(jí)血心 機(jī)女冋zr.轉(zhuǎn)彎;如果檢測(cè)到黑線偏右,就耍向右轉(zhuǎn)。 偏得越多,就要向黑線方向打越大的舵角。這就是比例控制(P)遺憾的是,這種方法并不能將小車穩(wěn)定在線上,因?yàn)樾≤囉袘T性。假設(shè)黑線偏左,說明小車偏右了,盂要左傳舵,等到小車冋到中心的時(shí)候, 停止轉(zhuǎn)舵,可是小下的慣性會(huì)使下身繼續(xù)左轉(zhuǎn),直到?jīng)_過黑線,黑線又偏右。然后控制過程反復(fù),車身是在左右搖擺屮向前行走的。這種搖擺叫 做“超調(diào)”,超調(diào)越人,控制越不穩(wěn)定,容

42、易出軌。為了克服慣性,址簡(jiǎn)單的辦法是任何控制動(dòng)作都提前一點(diǎn)。適當(dāng)調(diào)整提前量可以抵消慣性;另外,即使偏移量相同的惜況廠 在不同半徑的 彎道,也需要不同的舵角。這些都是比例控制不能實(shí)現(xiàn)的。我們除了位置信息之外,還需要知道軌跡的變化趨勢(shì)。為了實(shí)現(xiàn)提詢控制,在時(shí)間上,除非延長(zhǎng)傳感器,否則沒有辦法提詢獲知轉(zhuǎn)彎。那么我們只能在控制量上想辦法。個(gè)函數(shù)的導(dǎo)數(shù),反映了 該函數(shù)的變化趨勢(shì)。同樣我們可以用黑線位克的微分值來提前得到變化趨勢(shì)。用木次位置減去前次位置求出差值,就人致知道偏移量的變化趨勢(shì)。將該旁值和比例和加后-起作為控制量,即可實(shí)現(xiàn)提前控制。這就叫做比例微分控制(PD控制)卜圖是小乍的控制系統(tǒng)框圖:PID

43、算法圖5.2 P1D控制算法傳感器位置求出后,減去中心值,得到和中心的偏差量。該偏差量乘以比例系數(shù)得到比例控制屋。并且計(jì)算和鄰若干次偏差屋Z間的差值, 乘以微分系數(shù),得到微分控制量。將比例控制量和微分控制量和加,作為最終的舵角控制量。積分控制在此系統(tǒng)中沒有使用,原因是舵角到位置之間本身就是積分關(guān)系的,另外積分控制有相當(dāng)大的滯后,對(duì)控制穩(wěn)定性不利。一般在調(diào)節(jié)P和D時(shí)需要先調(diào)節(jié)P的值,因?yàn)楸壤禂?shù)較微分系數(shù)對(duì)小車的影響更大。在調(diào)節(jié)P的值時(shí)可以先將D的值宣為0。當(dāng)發(fā)現(xiàn)小車 在偏離黑線卻可以很快的轉(zhuǎn)回來時(shí),P就調(diào)的差不多了; D的調(diào)節(jié)相對(duì)簡(jiǎn)單。5.3搜線算法當(dāng)小車因慣性、超調(diào)、控制失敗、環(huán)境干擾、黑線

44、屮斷等原因沖出黑線后,需要啟用錯(cuò)誤處理算法,重新搜尋黑線。這里用了一個(gè)最簡(jiǎn)單的方法:當(dāng)判斷傳感器沒冇讀到黑線位置時(shí),不運(yùn)算也不輸出,這樣小年就會(huì)保持沖出黑線前最后一刻的姿態(tài),繼續(xù)前 進(jìn)。如果黑線中斷或被遮扌肖,小車會(huì)沿原定路線走,如果小車因?yàn)槌{(diào)、慣性拐出跑道,會(huì)繼續(xù)滿舵轉(zhuǎn)圈尋找黑線。這種方法簡(jiǎn)單,但很多情況下會(huì)找不到跑道,在原地打轉(zhuǎn)。所以我們應(yīng)該改進(jìn)算法,使小車在若干秒滿舵轉(zhuǎn)圈仍然找不到黑線時(shí)就放大轉(zhuǎn)圈 半徑等。還有,小車如果在轉(zhuǎn)彎時(shí)的速度太快,小車來不及處理,很容易脫離軌道,而且現(xiàn)在我們所采取的程序是讓小車在轉(zhuǎn)彎時(shí)如果彎度太大, 一個(gè)輪的速度就會(huì)為0,而另外一個(gè)的則是全速前進(jìn)。在走直線時(shí),

45、小車的速度也稍仃減慢。所以我們需要對(duì)程序進(jìn)行相應(yīng)的修改,讓小車在走 直線時(shí)能全速前進(jìn);在拐彎時(shí)速度能慢下來。5.4障礙物位置判別1.方案一:如圖所示,將障礙物與小車之間的跖離分為以下八描。當(dāng)小車的正前方離障礙物的位置小于參數(shù)30時(shí),將電機(jī)反轉(zhuǎn)一定時(shí)間然后從左邊繞 用矢量合成法來計(jì)算障礙物與小車Z間的距離,并將其轉(zhuǎn)換為上圖所示的關(guān)系。如上圖所示,將每個(gè)傳感器的數(shù)據(jù)看成一個(gè)推力矢量,并 將它們分解在X軸和Y軸上,Fx=F*cosa, Fy=F*sinao注意:由障礙物產(chǎn)生的矢量由傳感器指向測(cè)距環(huán)中心,而由光線產(chǎn)生的矢量由測(cè)距環(huán)中指 向傳感器。將各個(gè)矢量分解在X軸和Y軸上后,求X軸和Y軸上的矢量和,

46、將Y軸上的矢量和作為兩輪的共同速度,而將X軸上的矢量和作為兩輪的差 速度,這樣就能使小車產(chǎn)生避障的動(dòng)作。這樣算下來箱度不是很高,而且傳感器的位直本來就沒有對(duì)某個(gè)點(diǎn)完全對(duì)稱。2.方案二:用上而的算法會(huì)增加復(fù)雜性。最簡(jiǎn)單的方法是通過改變串聯(lián)電阻的方法來改變傳感器的測(cè)距范圍,這樣,既可以有效地躲避障借物,而且也 不川增加算法來判斷離障礙物的位置,可以更加準(zhǔn)確的躲避障礙物5.5轉(zhuǎn)彎控制前文已述,只耍改變左右兩輪的速度比,即可控制小車的轉(zhuǎn)彎方向。軟件上占空比可設(shè)置為0100.0%,分別対應(yīng)到寄存器數(shù)據(jù)的01000。 按右圖控制左右輪PWM寄存器的值,即可控制轉(zhuǎn)向。左 舵角指令 右圖5.5電機(jī)轉(zhuǎn)向及轉(zhuǎn)速控

47、制改進(jìn):這種方法的速度控制是開環(huán)的。占空比和實(shí)際速度、實(shí)際轉(zhuǎn)彎角之間并是很不嚴(yán)格的線性。加上電機(jī)的差異、負(fù)匝的不同、電池電量的 差別、輪胎大小的差別都會(huì)造成速度的差異。雖然上面的巡線算法可以將這些誤差都包進(jìn)反饋環(huán)而得以校正,但會(huì)造成控制性能的下降。車輪上 可以安裝反射輻條,或者打孔,用紅外傳感器計(jì)算脈沖頻率而測(cè)量速度,并做速度反饋,將輪速嚴(yán)格保持在指令給定的速度上,控制性能會(huì)冇明 顯提高。5.6迷宮探路控制如果迷宮不太復(fù)雜,且主要為縱橫方向的直線,可采用讓小車在路口始終左轉(zhuǎn)或者始終右轉(zhuǎn)的方法走迷宮,也就是讓小車沿迷宮的邊沿走, 只要在出口處放置-個(gè)標(biāo)記,讓小車用光電傳感器識(shí)別即可。另外也可以讓

48、小車在每個(gè)路口處記錄下支路數(shù),以及已經(jīng)走過的支路,如果此路口不通,退回選擇沒有走過的支路。這樣最終也能走處迷宮。 最終我們將要讓小車口主學(xué)習(xí),因?yàn)樾≤囀强亢筝嗱?qū)動(dòng),我們通過兩個(gè)反射式紅外傳感器記錄下兩個(gè)后輪轉(zhuǎn)過的圈數(shù)(或者走過的路徑), 當(dāng)小車第一次走出迷宮之后,再一次走時(shí),他將通過最短的路徑走出迷宮。另外迷宮圖的設(shè)計(jì)如附件所示。(迷宮圖的設(shè)計(jì)是一個(gè)很靈活的東西,制作過程我準(zhǔn)備了更多的材料,我們?cè)诮窈蟮膶?shí)驗(yàn)過程中,可以根據(jù)需要對(duì)迷宮圖加以改進(jìn),比如在復(fù)雜度,在迷宮所走路線的寬度等等都可以加以改進(jìn),當(dāng)然對(duì) 軟件的要求也是越來越高。對(duì)丁-迷宮尋路程序,我們有兩種思路:無記憶口主搜索法和有記憶尋路法

49、.:一)無記憶搜索法:利用小車前面三個(gè)傳感器來檢測(cè)障礙,設(shè)直向前,向左,向右三個(gè)轉(zhuǎn)向優(yōu)先級(jí)的高低,來進(jìn)行自主搜索。直行優(yōu)先級(jí)最高,右邊其次,再向 左,最后進(jìn)入死胡同后,后退調(diào)頭。當(dāng)小車被障礙物擋住,或者是其他原因卡住以后,小車將后退一段距離,然后再繼續(xù)尋路。值得改進(jìn)的地方 是,讓兩邊的傳感器檢測(cè)的距離較近一些,中間的傳感器檢測(cè)距離較遠(yuǎn)一些,對(duì)于迷宮探路更加方便。在這里首先需要改換件電路,讓兩邊給紅 外發(fā)光管定時(shí)掃描的定時(shí)器和中間的紅外發(fā)光管定時(shí)掃描的定時(shí)器不一樣就可以設(shè)置不一樣的檢測(cè)距離。二)冇記憶探路法:既然是有記憶的,就需耍對(duì)小車走過的行的通的路線進(jìn)行記憶存儲(chǔ),首先實(shí)現(xiàn)一個(gè)以鏈表做存儲(chǔ)結(jié)構(gòu)

50、的棧類型,然后編寫一個(gè)求解迷宮的 非歸程序。偽代碼如下:從入口開始do(if(當(dāng)前位究可通)當(dāng)前位置入棧;if (當(dāng)前位置是出口)結(jié)束else取得當(dāng)前位置當(dāng)前方向上的下一位置為當(dāng)前位置;將新當(dāng)前位宣入棧:else從棧中彈出棧頂元索為當(dāng)前位置while(當(dāng)前位置已無下i有效位置&棧不為空)將當(dāng)前位置標(biāo)記為無效,彈出棧頂元索為當(dāng)前位置if (當(dāng)前位建還有下一有效位時(shí))當(dāng)前位置方向調(diào)整:當(dāng)前位置進(jìn)棧;取得當(dāng)前位置當(dāng)前方向上的下一位置為當(dāng)前位置;)I while(棧不為空時(shí))第六章相關(guān)軟件軟件部分我分為兩步來單獨(dú)實(shí)現(xiàn)尋跡和避障功能。尋跡部分現(xiàn)在只開了前而的五個(gè)反射式紅外傳感器,對(duì)丁單獨(dú)進(jìn)行尋跡功能來說

51、這已經(jīng)足 夠了。小車不需要進(jìn)行后退,所以后面的傳感器沒必要打開。若需要打開,其算法和計(jì)算五個(gè)傳感器的算法是一樣的。紅外一體化接收頭現(xiàn)在也 只用到前ifii的三個(gè),用來執(zhí)行簡(jiǎn)單的避障功能。若發(fā)現(xiàn)前ifii仃障礙物,就判斷左邊是否冇障礙物,若沒仃就左轉(zhuǎn)來避開障礙物;若仃就判斷右邊 是否冇障礙物,若沒冇就執(zhí)行右轉(zhuǎn)彎程序;若冇就后退直到發(fā)現(xiàn)左邊或右邊沒冇障礙物為止,然后再向左或右轉(zhuǎn)彎。若前面沒冇障礙物而左邊或 右邊冇,小車就轉(zhuǎn)90然后繼續(xù)前進(jìn)。其具體的程序參見附錄。調(diào)試工作:這一塊使整個(gè)畢設(shè)中花費(fèi)時(shí)間繪多的一塊,首先得保證硬件電路的正確,才能進(jìn)行下一步的軟件編寫與調(diào)試;對(duì)丁軟件的調(diào)試工 作,我對(duì)其進(jìn)行

52、了分模塊調(diào)試,這樣不僅調(diào)試起來比較簡(jiǎn)便一些,也更容易找到問題的所在,以便以及時(shí)解決問題,當(dāng)然這也是在編寫大的工程程序時(shí)所必須的。關(guān)于硬件的調(diào)試:一)用萬用表進(jìn)行一些簡(jiǎn)單的測(cè)試,可以檢測(cè)出是否冇短路,斷路,以及一些元器件的好壞。二)用示波器檢測(cè)傳感器的 好壞,以及能否正常工作,對(duì)于傳感器的正常工作與否,還要通過軟件的調(diào)試與檢測(cè),以便知道CPU能控制傳感器的工作和接受傳感器的信號(hào), 對(duì)整個(gè)系統(tǒng)進(jìn)行控制關(guān)于軟件的調(diào)試:-)對(duì)電機(jī)的控制運(yùn)行調(diào)試;二)對(duì)尋跡傳感器的檢測(cè);三)對(duì)于避障傳感器的檢測(cè),程序如下:#includc #detinePIRE1_H(P2OUT&=BIT5)# definePIREl

53、.L(P2OUTI 二 BIT5)# definePIRE2_H(P2OUT&二 BIT7)#definePIRE2_L(P2OUTI=BIT7)#definePIRE3_H(P6OUT&=B1T5)#detinePIRE3_L(P6OUTI=BIT5)# definePIRE4_H(P3OUT&二 BIT7)# definePIRE4_L(P3OUTI二BIT7)#definePIRE5_H(P3OUT&=BIT5)#definePIRE5.L(P3OUTI=B1T5)#detineIRE1_IN(P2IN&BIT6)# defineIRE2.IN(P3IN&BIT0)# defineIRE

54、3JN(P6IN&BIT6)#defineIRE4JN(P4IN&BIT0)#defineIRE5_IN(P3IN&BIT6)unsigned char Dat5J;打開紅外傳感器1的發(fā)光管P2.5關(guān)閉紅外傳感器1的發(fā)光管打開紅外傳感器2的發(fā)光管P2.7關(guān)閉紅外傳感器2的發(fā)光管打開紅外傳感器3的發(fā)光管P6.5關(guān)閉紅外傳感器3的發(fā)光管打開紅外傳感器4的發(fā)光管P3.7關(guān)閉紅外傳感器4的發(fā)光管打開紅外傳感器5的發(fā)光管P3.5關(guān)閉紅外傳感器5的發(fā)光管/紅外傳感器1的信號(hào)輸入端P2.6/紅外傳感器2的信號(hào)輸入端P3.0/紅外傳感器3的信號(hào)輸入端P6.6/紅外傳感器4的信號(hào)輸入端P4.0 /紅外傳感器5的

55、信號(hào)輸入端P3.6/*初始化一體化接收頭電路*/void Init_Scnsor2()P2DIR 1= BIT5;/IRE1 口選通,即打開傳感器1的發(fā)光管P2DIR 1= BIT7; /IRE2 口選通,即打開傳感器2的發(fā)光管P6DIR 1= BIT5;P3DIR 1= BIT7;/IRE3 口選通,即打開傳感器3的發(fā)光管/IRE6 口選通P3DIR 1= BIT5;/IRE7 口選通P1DIR 1= B1T6;P1SEL 1= BIT6;/P1.6 口為TA1輸出方式,輸出占空比為50%的38KHZ方波TACTL1= TASSEL_2 + TACLR;/TIMER_A 時(shí)鐘源選為 SMCLK,清 TARTACCR0=6&/CCR5約26.3us中斷一次,即產(chǎn)生約38KHZ的PWM輸出TACCTL1 1= OUTMOD_7;/CCR6 輸出為 reset/set 模式TACCR1 =34;產(chǎn)生占空比為50 %的PWMTACTL 1= MC_1; /TIMERA用于增計(jì)數(shù)模式/系統(tǒng)時(shí)鐘設(shè)定/DCO 設(shè)置為 lOOOKHz/ ACLK為L(zhǎng)FXT1 (低頻模式)/ MCLK 為 DCOCLK/ SMLCK 為 DCOCLKvoid InitClock(void)fDC

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論