版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
華中科技大學(xué)2016年硬件課設(shè)--智能小車控制系統(tǒng)總結(jié)報告智能小車控制系統(tǒng)華中科技大學(xué)2016智能小車控制系統(tǒng)華中科技大學(xué)2016硬件課設(shè)專業(yè):[通信工程13**]學(xué) 號:[U2013*****]學(xué)生姓名:[***]指導(dǎo)教師:[***完成時間:Time\@"yyyy年M月d日"2016年8月30日1課題名稱:智能小車自動控制系統(tǒng)【摘要】本次課程設(shè)計以MSP430超低功耗單片機系列MSP430F5529為主控制器,附加電機、電池、傳感控制模塊等,完成二驅(qū)小車自由運動、檢測黑線沿軌跡運動、自動避開障礙物等功能。機械結(jié)構(gòu)搭建選用兩個主動輪在前,后輪換為一個萬向輪以增加其靈活性。利用單片機產(chǎn)生PWM波,控制小車的速度,選用L298N芯片驅(qū)動電路,使用三路紅外對接管檢測黑白線。使用一個超聲波實現(xiàn)測距避障功能,使用三個光敏電阻傳感器進(jìn)行尋光操作?;诳煽坑布O(shè)計和優(yōu)化軟件算法,在實現(xiàn)本課設(shè)的基本要求基礎(chǔ)上,實現(xiàn)部分?jǐn)U展功能?!娟P(guān)鍵詞】MSP430F5529超聲波測距壁障循跡尋光概述隨著科技的發(fā)展,智能系統(tǒng)越來越多的在生活中普及。智能小車系統(tǒng)運用了控制技術(shù)、傳感技術(shù)、計算機、機械等專業(yè)領(lǐng)域的知識,使小車能夠?qū)崿F(xiàn)自動控制,完成所設(shè)定好的任務(wù),實現(xiàn)智能化。MSP-EXP430F5529實驗板是MSP430F5529單片機的實驗開發(fā)平臺,為最新一代的具有集成USB2.0模塊基于閃存的MSP430器件。其中MSP430F5529單片機為能量收集、無線傳感及自動抄表基礎(chǔ)設(shè)施(AMI)等應(yīng)用,提供了低工作功耗的集成USB、可擴(kuò)展內(nèi)存、高達(dá)25MHZ的系統(tǒng)時鐘。工作電壓范圍在1.8V到3.6V,在工作電壓范圍內(nèi)性能高達(dá)25MIPS,超低功耗。MSP-EXP430F5529實驗板的實物如圖1.1所示。圖1.1MSP-EXP430F5529實驗板實物圖利用開發(fā)板自身的優(yōu)點,加入紅外對接管、超聲波測距模塊、陀螺儀模塊以實現(xiàn)沿黑白軌道行走,檢測并躲避前方障礙物。使用兩節(jié)干電池給開發(fā)板供電,電機等部分使用7.2V充電電池供電。設(shè)計與實現(xiàn)背景單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。本次電路系統(tǒng)使用MSP430F5529單片機作為主控芯片,通過GPIO口與外圍傳感設(shè)備相連接,通過數(shù)據(jù)交換,以完成設(shè)定的各項功能。本次項目我們使用MSP430f5529a單片機,設(shè)計實現(xiàn)智能小車循跡避障、尋光開車功能。循跡避障小車可在路面上沿黑膠帶所連軌跡行駛,遇到障礙可繞過,在現(xiàn)實生活的自動行駛應(yīng)用中具有很大的前景。尋光開車功能在黑暗情況下有具體的應(yīng)用場景,可作為礦井中的智能機器人使用。項目功能指標(biāo)3.1基本功能各個電路模塊自行設(shè)計完成,機械模塊自己準(zhǔn)備,購買或找老師申請已有模塊小車能夠根據(jù)外部傳感器的輸入信息,自動沿著一定軌跡運行。能夠控制二驅(qū)小車自由運動使用MSP430作為開發(fā)板由電池供電利用超聲波模塊實現(xiàn)小車避障功能利用陀螺儀實現(xiàn)小車的導(dǎo)航功能3.2擴(kuò)展功能利用紅外線發(fā)射及接收對管檢測黑白線,以實現(xiàn)循跡功能光傳感器實現(xiàn)尋光,定點停車功能團(tuán)隊分工首先同時查閱資料,熟悉msp430的相關(guān)使用方法,學(xué)習(xí)理解編程語言,之后按照模塊來劃分任務(wù),以實現(xiàn)并行性工作,提高工作效率。首先對不同的模塊進(jìn)行相互間的接口定義,定義完成之后即可相對獨立的工作。我們劃分的了三大模塊。電機控制及循跡,超聲波測距避障模塊,陀螺儀導(dǎo)航模塊。徐水靈負(fù)責(zé)超聲波測距避障模塊的電路與程序設(shè)計和調(diào)試;小車組裝;整機調(diào)試吳佳琪負(fù)責(zé)紅外循跡模塊程序的設(shè)計與調(diào)試;小車組裝;整機調(diào)試梁潔負(fù)責(zé)尋光模塊程序的設(shè)計與調(diào)試;文檔編寫;小車組裝;元器件購買硬件電路框圖5.1系統(tǒng)整體框圖整個電路系統(tǒng)分為紅外對管循跡、光敏電阻傳感器尋光、超聲波測距避障、電機驅(qū)動控制。設(shè)置了兩種工作模式,通過開發(fā)板上的按鍵來選擇,硬件電路板上使用開關(guān)來控制硬件線路的導(dǎo)通和斷開。模式一為紅外循跡避障,模式二為尋光。模式一中首先利用紅外對接管對路面信號進(jìn)行檢測,檢測結(jié)果送入主芯片,輸出相應(yīng)信號給驅(qū)動芯片,驅(qū)動電機轉(zhuǎn)動,從而控制整個小車的運動。同時,超聲波模塊檢測前方是否有障礙,并將搜集到的實時信息傳到主控芯片,及時避開障礙物。尋光模塊中,小車先首先原地轉(zhuǎn)圈尋找光源,一但找到光源就順著光源方向前進(jìn),丟失光源后再次轉(zhuǎn)圈尋找光源。主控芯片主控芯片MSP430F5529超聲波測距超聲波避障電機驅(qū)動光敏傳感器尋光復(fù)位電路電源電路時鐘電路紅外對管循跡陀螺儀圖5.1系統(tǒng)硬件框圖5.2超聲波模塊功能框圖超聲波模塊得到小車與障礙物的距離,將數(shù)據(jù)交給單片機判斷是否需要避開障礙物,即單片機控制電機,驅(qū)動小車運動。超聲波模塊超聲波模塊單片機驅(qū)動電路電動機返回信號圖5.2超聲波模塊功能框圖5.3紅外對管循跡模塊用于小車循跡黑線紅外檢測電路紅外檢測電路單片機驅(qū)動電路電動機信號圖5.3紅外對管循跡模塊5.4光敏電阻傳感器模塊用于小車的尋光光檢測電路光檢測電路單片機驅(qū)動電路電動機信號圖5.4紅外對管循跡模塊5.5電機驅(qū)動模塊用于控制小車的前進(jìn)、后退、停止等基本功能。并且實現(xiàn)PWM波對轉(zhuǎn)速進(jìn)行控制。單片機單片機驅(qū)動電路電動機PWM波圖5.5電機驅(qū)動模塊小車的基本結(jié)構(gòu)如下 5.6開發(fā)板管腳分配開發(fā)板管腳分配模塊名稱引腳號引腳功能硬件連接電機模塊P2.0TA1CCR1(中斷標(biāo)志)電機模塊ENA(輸出)P2.1TA1CCR2電機模塊ENB(輸出)P4.0I/O電機模塊IN1(輸出)P4.1I/O電機模塊IN2(輸出)P4.2I/O電機模塊IN3(輸出)P4.3I/O電機模塊IN4(輸出)避障模塊P7.5TB0CCR3超聲波測距模塊Echo(輸入)P2.4TA2CCR1超聲波測距模塊Trig(輸出))循跡模塊P3.0I/O左紅外對管循跡(輸入)P3.1I/O中間紅外對管循跡(輸入)P3.2I/O右紅外對管循跡(輸入)尋光模塊P4.4I/O左尋光模塊(輸入)P4.5I/O中尋光模塊(輸入)P4.6I/O右尋光模塊(輸入)開關(guān)模塊P1.7按鍵中斷按鍵S1模塊工作原理主要器件選擇6.1電機驅(qū)動芯片:L298N板載L298n芯片,是一款雙橋驅(qū)動芯片,支持兩路直流電機和一個步進(jìn)電機的驅(qū)動,最高工作電壓46V,額定電流2A,額定功率25W.可以驅(qū)動兩個二相電機,直接通過電壓調(diào)節(jié)輸出電壓。通過單片機的I/O輸入改變芯片控制端的電平,即可對電機進(jìn)行正反轉(zhuǎn)、停止的操作。其OUT1、OUT2、OUT3、OUT4分別接2個電機,IN1,IN2.IN3,IN4引腳從單片機接入控制電平,控制電平的正反轉(zhuǎn),ENA,ENB接控制使能端,控制電機的停轉(zhuǎn)。邏輯功能如下表:電機轉(zhuǎn)動狀態(tài)編碼右電機左電機左電機右電機電動車運行狀態(tài)IN1IN2IN3IN41010正轉(zhuǎn)正轉(zhuǎn)前進(jìn)1001正轉(zhuǎn)反轉(zhuǎn)左轉(zhuǎn)1011正轉(zhuǎn)停止以左電機為中心原地左轉(zhuǎn)0110反轉(zhuǎn)正轉(zhuǎn)右轉(zhuǎn)1110停止正轉(zhuǎn)以右電機為中心原地右轉(zhuǎn)0101反轉(zhuǎn)反轉(zhuǎn)后退表:6.1L298N可以直接對電機進(jìn)行控制,無需隔離電路,能滿足直流減速電機的大電流的要求,調(diào)試時,可以通過設(shè)置不同的PWM波占空比,以實現(xiàn)相應(yīng)的動作,對電機的調(diào)速使用PWM波調(diào)速的方式。電機驅(qū)動電路的電路圖和實物圖如下圖6.1(a)L298N驅(qū)動電路圖圖6.1(b)電機驅(qū)動實物圖6.2紅外循跡模塊74HC04D紅外對管傳感器利用反射紅外光的強度來識別黑線白線,黑線時為低電平,白線時輸出高電平,小車行駛時必然會產(chǎn)生偏移,可通過查詢或者中斷的方式檢測紅外對管傳感器的返回值,以改變小車的行駛軌跡。紅外對管特點是價格低、體積小、質(zhì)量輕、對小車的轉(zhuǎn)向不會造成影響,其抗光干擾能力強,靈敏度高響應(yīng)快,光電轉(zhuǎn)換速度快,故此次課設(shè)我們使用紅外對管傳感器進(jìn)行循跡。
我們使用的紅外模塊74HC04D芯片主要為智能小車、機器人等自動化機械裝置提供一種多用途的紅外線探測系統(tǒng)的解決方案。該模塊共有四路可用循跡模塊。該模塊使用紅外線發(fā)射和接收管等分立元器件組成探頭,并使用LM339
電壓比較器(加入了遲滯電路更加穩(wěn)定)做為核心器件構(gòu)成中控電路,射器是一個紅外發(fā)光二極管,接收器是一個高度靈敏度、平面光電三極管,兩者集為一體,使探測器結(jié)構(gòu)緊湊,易于單片機接口。該模塊易于安裝,使用簡便,各路循跡分別獨立工作,工作時不受數(shù)量限制。
主要參數(shù)如下:模塊高度≤10
毫米
安全工作電壓范圍在
3伏特至
6
伏特之間
各路全開工作電流
30
毫安至
55
毫安之間
各管腳的作用:VCC、GND:電源接線端
IN(1—4)、OUT:探頭與中控板連接端
OUT1、OUT2、OUT3、OUT4 紅外模塊工作時的紅外發(fā)射管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,紅外接收管一直處于關(guān)斷狀態(tài),此時模塊的TTL輸出端為高電平,相應(yīng)指示二極管一直處于熄滅狀態(tài);當(dāng)被檢測物體出現(xiàn)在檢測范圍內(nèi)時,紅外線被反射回來且強度足夠大,紅外接收管導(dǎo)通,此時模塊的TTL輸出端為低電平,指示二極管被點亮。電路圖、實物圖如下圖6.2(a)紅外對管電路圖圖6.2(b)紅外對管實物圖6.3超聲波模塊:HC-SR04由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現(xiàn)。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達(dá)到工業(yè)實用的要求,因此在移動機器人研制上也得到了廣泛的應(yīng)用。我們使用的超聲波模塊HC-SR04采用IO口TRIG觸發(fā)測距,至少給10us的高電平信號后,會自動發(fā)送8個40khz的方波,自動檢測是否有信號返回。信號返回后,超聲波模塊通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。所測距離是脈寬的線性函數(shù),測試距離=(高電平時間*聲速(340M/S))/2其電氣參數(shù)如下:供電電壓為DC5V最遠(yuǎn)射程
4m
最近射程
2cm
測量角度
15°
輸入觸發(fā)信號
10us的TTL脈沖
輸出回響信號
輸出TTL電平信號,與射程成比例超聲波電路圖、實物圖如下:圖6.3(a)超聲波電路圖圖6.3(b)超聲波實物圖6.4光敏電阻傳感器尋光模塊1光敏電阻模塊對環(huán)境光強最敏感,一般用來檢測周圍環(huán)境的亮度和光強。2模塊在無光條件或者光強達(dá)不到設(shè)定閾值時,DO口輸出高電平,當(dāng)外界環(huán)境光強超過設(shè)定閾值時,模塊D0輸出低電平;3數(shù)字量輸出D0可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環(huán)境的光強改變;光敏電阻電路圖、實物圖如下6.4(a)光敏電阻電路圖6.4(b)光敏電阻實物圖關(guān)鍵技術(shù)7.1硬件小車架構(gòu)7.1.1小車車身結(jié)構(gòu)方案一:使用一層小車結(jié)構(gòu)可保證小車快速行駛時的重心穩(wěn)定,缺點是硬件模塊擺放會過于緊密,不方便增加刪除硬件模塊方案二:使用二層小車需要考慮小車重心問題,小車的硬件架構(gòu)需要合理設(shè)計。優(yōu)點為結(jié)構(gòu)清晰、布線清楚,方便硬件模塊的增改。 由于我們需要安裝三個光敏電阻模塊、兩個超聲波模塊、三個紅外對管,還有電機驅(qū)動板和紅外板等等硬件模塊。所需空間較多,并且考慮到開發(fā)板與電池的預(yù)留空間,我們最終選擇第二種方案。 設(shè)計好硬件擺放方式之后,我們尋找了廢舊硬置電路板,使用銅柱支起二層小車。并自己規(guī)劃打孔位置,自主打孔后使用銅柱螺釘、綁帶等將光敏電阻模塊、超聲波模塊、紅外模塊安裝在小車上,保證電池大致在驅(qū)動輪的正上方,個模塊的安裝對稱,不會對智能小車的重心產(chǎn)生影響。7.1.2硬件擺放為降低小車重心,電機驅(qū)動板和紅外板、電機驅(qū)動電池固定放在下層,開發(fā)板、兩節(jié)干電池以及焊接的短路板放在二層。尋光模塊在小車上層車頭中間放置一個、車身左右兩邊各放置一個,超聲避障模塊放在下層車頭兩邊,兩個紅外循跡模塊放在小車最下方進(jìn)行循跡。小車最終安裝示意圖如圖7.1.2所示:(a)小車底層架構(gòu) (b)小車上層架構(gòu)圖7.1.2小車硬件架構(gòu)電源供電本次硬件課程設(shè)計,由于我們使用的模塊較多、不同模塊之間的電壓有很大的區(qū)別,且需考慮電源之間的屏蔽、電源穩(wěn)定度的問題,我們選用控制電路、電機驅(qū)動雙電源供電的模式。選用供電方式如下:開發(fā)板供電:MSP430f5529有四種供電方案可選擇。其中調(diào)試時可將撥碼開關(guān)調(diào)至ez,使用eZ-FETUSB供電,供電電壓為3.6V;小車在進(jìn)行循跡避障、尋光功能時,將撥碼開關(guān)調(diào)至JTAG/BATT,兩個1.5的七號電池串聯(lián)電池盒,使用堿性電池給開發(fā)板供電。此種供電方法不需要加穩(wěn)壓,但是供電時間比較短,電量較少。本次課設(shè)使用的MSP430f5529本身帶有低功耗設(shè)計,故使用兩節(jié)1.5v干電池串聯(lián)供電。電機供電:電機驅(qū)動電壓電池使用7.9v的可充電電池,該電池實際提供電壓約為6.9v,經(jīng)過測試,可使電機穩(wěn)定運行。傳感器供電:紅外對管控制電路、光敏傳感器模塊、超聲波測距模塊都需5v電源供電。考慮到干電池可用功率較小、電量較少,難以同時給多個傳感器供電,并且也需要調(diào)整干電池的安裝部位使智能小車的重心不偏移,所以干電池供電的方法執(zhí)行較困難。而電機驅(qū)動模塊上有電壓為5v的輸出引腳,該電壓由7.9v的電機驅(qū)動電池分壓產(chǎn)生,經(jīng)測試,電壓雖然達(dá)不到5v,但是電壓平穩(wěn),受外界干擾較小。故可用電機驅(qū)動模塊的輸出5v電壓向超聲模塊、紅外模塊、尋光模塊傳感器供電。7.3軟件算法7.3.1系統(tǒng)軟件框圖7.3.2紅外循跡模塊方案1:使用兩組紅外對管,左邊檢測到黑線右轉(zhuǎn),右邊檢測到黑線左轉(zhuǎn),在軌道上行駛時雙邊傳感器檢測到白線,小車直走。由于紅外對管傳感器黑線時為低電平,白線時輸出高電平,兩路傳感器若一直已正常狀態(tài)在軌跡上行駛則狀態(tài)一直是低電平,不會產(chǎn)生電平的上升下降沿跳變。產(chǎn)生跳變則說明小車偏離軌道??墒褂弥袛嗟姆绞剑趥鞲衅鞣祷刂涤猩仙靥儠r進(jìn)入中斷,在中斷中利用延時的方式讓小車產(chǎn)生適合角度的偏轉(zhuǎn),回到正常軌跡直行。此種方案需要使用單片機上帶中斷的引腳,引腳資源十分有限,但使用中斷方式功耗較低,不受軟件代碼長度影響。方案2:使用三組紅外對管,用查詢方式檢測三組紅外對管返回信號,共有九種組合方式,其中可能出現(xiàn)的有其中組合形式。當(dāng)左邊或右邊檢測到黑線時,小車左(右)轉(zhuǎn),當(dāng)中間的紅外對管傳感器檢測到黑線,且兩邊紅外對管沒有檢測到黑線時,小車直行。查詢方式響應(yīng)較快,邏輯簡單,能使得控制精度得以提高。
缺點為查詢的效果與軟件代碼長度有關(guān)。我們使用的MSP430f5529a單片機可用帶中斷的I0口只有P1和P2兩個引腳向量,引出單片機的引腳只有P1.0、P2.0、P2.1、P2.3、P2.4、P2.6,其中P2.0、P2.1用于輸出pwm波改變電機的速度,P2.4用于超聲模塊。并且使用中斷的邏輯復(fù)雜,響應(yīng)較慢,經(jīng)過考慮我們使用查詢方式進(jìn)行紅外模塊三個紅外對管的檢測,即選用方案二。使用引腳p3.0、p3.1、p3.2,作為左邊紅外對管、右邊紅外對管、中間紅外對管的輸入信號引腳,設(shè)置其模式為輸入。具體實現(xiàn)流程描述:1.初始化尋光模塊,設(shè)置p3.0、p3.1、p3.2為輸入引腳且不使用引腳功能2.模式選擇后進(jìn)入查詢避障模式,判超聲模塊的返回信號標(biāo)志位是否為0,若是則表明前方無障礙物阻擋,進(jìn)入循跡。讀入三引腳的狀態(tài),根據(jù)采集到的狀態(tài)做出相應(yīng)反應(yīng),具體改變?nèi)缦拢盒≤囆旭偁顟B(tài)與紅外傳感器返回狀態(tài)關(guān)系循跡模塊左紅外傳感器中紅外傳感器右紅外傳感器小車狀態(tài)狀態(tài)1010緩慢前進(jìn)狀態(tài)2100右大偏狀態(tài)3110右小偏狀態(tài)4001左大偏狀態(tài)5011左小偏狀態(tài)6111后退右轉(zhuǎn)狀態(tài)7000前進(jìn)循跡模塊偏向與向左右輪輸出pwm波占空比數(shù)值、轉(zhuǎn)彎延時、電機正反轉(zhuǎn)狀態(tài)關(guān)系循跡模塊右輪PWM波占空比數(shù)值左輪PWM波占空比數(shù)值延時(空循環(huán)數(shù)值)電機正反轉(zhuǎn)狀態(tài)狀態(tài)12002003000左前右前狀態(tài)24504505000左前右退狀態(tài)34504505000左前右退狀態(tài)44504505000右前左退狀態(tài)54504505000右前左退狀態(tài)62002003000右退左退2002003000右前左退狀態(tài)72002003000右前左前此時輸出pwm波周期計數(shù)至設(shè)置為1024,時鐘選擇ACLK,13Mhz。實現(xiàn)流程圖:7.3.3光敏電阻尋光模塊方案1:使用一個光敏電阻模塊,返回高電平,即沒有檢測到足夠大的光強時持續(xù)右轉(zhuǎn)指導(dǎo)檢測到光強。檢測到光強后持續(xù)直走,直到接近光源。當(dāng)返回電平值產(chǎn)生上升沿下降沿時觸發(fā)IO端口終端,在中斷處理函數(shù)中改變電機的狀態(tài)。采用該方案的優(yōu)點是中斷只在電平發(fā)生變化時進(jìn)入,不占用主函數(shù)處理時間,功耗較小。缺點是靈敏度較低,快速右轉(zhuǎn)時難以檢測到光源,且檢測到光源后有延時,導(dǎo)致無法進(jìn)入直走尋光階段。且使用中斷方式收到帶中斷接口的限制,無法添加更多的光敏電阻模塊。方案2:使用三個光敏電阻模塊,利用查詢的方式在主函數(shù)中重復(fù)檢測三引腳輸入電平,若只有一個點光源,則在同一時間只會有一個光敏電阻模塊檢測到點光源,輸出低電平。檢測到低電平之后根據(jù)檢測到光敏電阻位置左(右)轉(zhuǎn)向,正前方光敏電阻檢測到光源時前進(jìn)。此種方法覆蓋角度大,反應(yīng)靈敏。理由同紅外對管循跡模塊,我們采用方案二實現(xiàn)尋光功能。使用引腳P4.4、P4.5、P4.6,作為左邊紅外對管、右邊紅外對管、中間紅外對管的輸入信號引腳,設(shè)置其模式為輸入。具體實現(xiàn)流程描述:1.初始化尋光模塊,設(shè)置P4.4、P4.5、P4.6為輸入引腳且不使用引腳功能2.模式選擇后若進(jìn)入尋光開車模式,則循環(huán)讀入P4.4、P4.5、P4.6三引腳的狀態(tài),根據(jù)采集到的狀態(tài)做出相應(yīng)反應(yīng)。傳感器狀態(tài)與小車運動狀態(tài)關(guān)系如下:小車行駛狀態(tài)與光傳感器返回狀態(tài)關(guān)系尋光模塊左側(cè)光傳感器前方光傳感器右側(cè)光傳感器小車狀態(tài)狀態(tài)1110右中心轉(zhuǎn)狀態(tài)2101前進(jìn)狀態(tài)3011左中心轉(zhuǎn)狀態(tài)4000持續(xù)右轉(zhuǎn)尋光模塊偏向與向左右輪輸出pwm波占空比數(shù)值、轉(zhuǎn)彎延時、電機正反轉(zhuǎn)狀態(tài)關(guān)系尋光模塊右輪PWM波占空比數(shù)值左輪PWM波占空比數(shù)值延時(空循環(huán)數(shù)值)電機正反轉(zhuǎn)狀態(tài)狀前右停狀態(tài)2102410241000左前右前狀態(tài)37007001000右前左停狀態(tài)4450450800左前右停此時輸出pwm波周期計數(shù)至設(shè)置為2048。又因小車左右輪性能的不平衡,為保持尋光左右轉(zhuǎn)時速度大致相同,狀態(tài)1右側(cè)檢測到障礙物與狀態(tài)3左側(cè)檢測到障礙物時輸出速度選擇不同。此模塊轉(zhuǎn)向方式采用中心轉(zhuǎn),讓小車單輪不動,檢測范圍會比非中心轉(zhuǎn)大且靈敏度高。實現(xiàn)流程圖:7.3.4電機驅(qū)動模塊方案1:使用定時器的比較模式計數(shù),用置位/復(fù)位的輸出模式輸出占空比可調(diào)的pwm波,將pwm波接至點擊啟動模塊ENA、ENB端,實現(xiàn)對電機的調(diào)速。該方案可實現(xiàn)電機的速度可調(diào),便于循跡、避障、尋光功能的實現(xiàn),但須使用IO引腳功能、占用定時器IO引腳,為多傳感器的使用帶來不便。方案2:ENA、ENB端直接加+5v電壓使能電機驅(qū)動,不采用對電機的調(diào)速。優(yōu)點是可空出定時器IO引腳,但是耗電太大、不能調(diào)速,不便于模塊功能的實現(xiàn)。在這兩種方案中我們選擇第一種方案。因為在速度不可調(diào)、速度較快情況下,因為輸入信號變化時間短,小車的正確行使對傳感器的靈敏度要求較高,為了提高靈敏度需要加入多個傳感器,并使傳感器之間相互協(xié)調(diào)。善于利用電機驅(qū)動模塊輸出pwm波調(diào)速的功能能在模塊邏輯簡單的情況下實現(xiàn)基本功能,用輸入信號變化慢、時間長的優(yōu)點彌補傳感器靈敏度的不足。當(dāng)然,可調(diào)速度、且能加入多個傳感器使靈敏度提高的方法優(yōu)于此種方法,但奈何使用的MSP430f5532引腳資源十分有限,難以實現(xiàn)最優(yōu)方法。具體實現(xiàn)流程描述:1.首先初始化電機驅(qū)動模塊:設(shè)置六個引腳P2.0、P2.1、P4.1、P4.2、P4.3、P4.4模式為輸出,其中P2.0、P2.1作為ENA、ENB,分別對應(yīng)驅(qū)動右輪、左輪的使能端,使用引腳功能。2.初始化完成后,該模塊主要在其他各模塊中被調(diào)用,調(diào)用時可通過寫響應(yīng)引腳的比較寄存器,更改pwm的輸出周期和占空比,各模塊使用不同速度便于功能的實現(xiàn)。實現(xiàn)流程圖:7.3.5超聲波模塊方案1:使用一個超聲波模塊,放置于車頭正前方。利用定時器的比較模式周期輸出超聲波模塊的Trig信號,利用定時器捕獲模式計算返回信號脈寬,在中斷中計算距離,判斷距離是否小于定值、是否需要避障,若需避障則將標(biāo)志位置1,返回主函數(shù)執(zhí)行避障函數(shù)。該方案只使用了一個超聲波模塊,所以測距范圍比較小,靈敏度較低。優(yōu)點是邏輯簡單,使用定時器發(fā)出的周期性Trig信號較為穩(wěn)定。方案2:使用兩個超聲波模塊,分別放置于車頭左前方和右前方。同樣使用定時器捕獲模式計算返回信號脈寬并計算距離。左右超聲波使用不同的定時器中斷,測得距離小于一定值則分別置位左右標(biāo)志位。返回主函數(shù),根據(jù)不同標(biāo)志位執(zhí)行避障函數(shù)。該方案的避障范圍寬、避障精度高,但是由于單片機的引腳限制,需要使用軟件觸發(fā)Trig。軟件觸發(fā)Trig方式與主函數(shù)代碼執(zhí)行速度有關(guān),超聲波模塊無法周期性地測距。方案3:將返回信號echo分別接至兩個兩個中斷使能的IO口,輸入信號上升沿時進(jìn)入中斷,直到輸入信號變?yōu)榈碗娖酵顺鲋袛?,記錄時間間隔,即脈沖寬度,以此測出距離。該方案只需使用兩個可以使用中斷的IO口,所以可以使用定時器發(fā)出周期性的Trig信號測距。但是在脈沖寬度為高時,程序會一直在中斷函數(shù)內(nèi),無法執(zhí)行主函數(shù)代碼,脈沖寬度過長時程序陷入中斷,可能使其他模塊功能產(chǎn)生錯誤。不利于程序的快速運行。三種方案的選擇需要仔細(xì)考慮引腳資源,開發(fā)板MSP430F5529a外接引腳資源如下圖所示(部分):MSP430F5529a部分外接引腳說明引腳說明引腳(左)引腳(右)引腳說明(RF_STE)P2.6P3.0(RF_SIMO)(RF_SOMI)P3.1P3.2(RF_SPI_CLK)TA2.0P2.3P2.1TA1.2TB0.3P7.5GNDGNDGPIOP4.7P2.4TA2.1(RXD)P4.5P4.6GPIO(TXD)P4.4P4.0UCx1xx(LED1)P1.0P2.0TA1.1GNDGNDRF_PWRRF_PWR可以看到,帶定時器功能的引腳為P2.0(對應(yīng)TA1.1)、P2.1(TA1.2)、P2.3(TA2.0)、P2.4(TA2.1)、P7.5(TB0.3)。其中P2.0、P2.1使用TA1的比較模式,輸出PWM波至電機驅(qū)動模塊ENA、ENB調(diào)速,可使用定時器為TB0(P7.5)、TA2(P2.3、P2.4),資源十分有限。實際可執(zhí)行方案如下:1.采用方案一:使用一個超聲模塊測距,將echo信號輸入開發(fā)板P7.5引腳,開啟引腳功能,使定時器TB0比較寄存器TB0CCR3工作在捕獲模式,用于捕捉echo信號的上升、下降沿;將開發(fā)板引腳P2.4接至超聲模塊Trig,使TA2CCR1、TA2CCR0工作在比較模式,用于產(chǎn)生信號Trig2.采用方案二:使用兩個超聲模塊測距,將兩個模塊的echo信號分別輸入開發(fā)板P7.5、P2.4引腳,使定時器比較寄存器TB0CCR3、TA2CCR1工作在捕獲模式,用于捕捉左、右超聲模塊返回信號echo的上升、下降沿;由于僅剩一個有外接端口的比較寄存器,無法完成PWM波的周期性輸出,需使用普通IO輸出接口,用軟件延時的方式產(chǎn)生觸發(fā)信號Trig3.采用方案三:定時器都工作在比較模式,將echo信號輸入開發(fā)板P2.3、P2.6引腳,使用TA2、TB0在中斷中記錄P2.3、P2.6端口的高電平時間;使用P2.4引腳功能,用于輸出Trig三種方案中,若使用方案二、三,需改進(jìn)算法以實現(xiàn)兩個超聲模塊之間的協(xié)調(diào),且軟件輸出Trig信號方式的輸出周期十分不穩(wěn)定,影響對距離的判斷。方案三一直將程序陷在中斷中的方法在軟件設(shè)計中十分不可取,也許會導(dǎo)致程序?qū)崿F(xiàn)功能的紊亂。于是我們最終選擇方案一。具體實現(xiàn)流程描述:初始化超聲模塊,設(shè)置P2.4引腳為輸出,P7.5引腳為輸入,使用P2.4、P7.5引腳功能;設(shè)置TB0定時器比較寄存器TB0CCR3工作在捕獲模式、在模式為循跡避障時初始化開中斷;設(shè)置TA2定時器比較寄存器TA2CCR1工作在比較模式,輸出為置位、清零模式。P2.4周期性發(fā)出Trig信號,超聲波模塊被觸發(fā),發(fā)出40Hz脈沖,遇到障礙物后返回信號echo至P7.5。P7.5引腳接收到上升沿,觸發(fā)中斷,中斷函數(shù)判斷觸發(fā)中斷的為上升沿,并記錄上升沿發(fā)生時間。當(dāng)echo信號持續(xù)一定脈沖寬度,從高電平跳為低電平,產(chǎn)生下降沿時,再次進(jìn)入中斷函數(shù),并記錄該下降沿發(fā)生時間。下降沿發(fā)生時間與上升沿發(fā)生時間相減,計算出超聲模塊返回信號echo的脈沖寬度。根據(jù)返回信號的脈沖寬度計算距離distance。判斷距離distance,當(dāng)距離小于一定值時將標(biāo)志位置1,表示前方有障礙,否則置0。退出中斷函數(shù)。在主函數(shù)中判斷標(biāo)志位是否為1,是則進(jìn)入相應(yīng)避障函數(shù);否則進(jìn)入循跡,循跡時打開定時器中斷。若進(jìn)入避障函數(shù),則進(jìn)入避障函數(shù)后關(guān)閉定時器中斷,通過更改左右電機轉(zhuǎn)向和速度,延時實現(xiàn)避障功能。在避障路線完成后開中斷,繼續(xù)判斷有無障礙物。實現(xiàn)流程圖:7.3.6模式選擇設(shè)計方案:由于尋光、循跡兩種模式不能同時進(jìn)行,且在尋光的同時避障在現(xiàn)實生活中缺少相應(yīng)的應(yīng)用場景,本次硬件課設(shè)我們設(shè)計的智能小車選用了兩種模式:循跡避障和尋光開車。這兩種模式通過s1按鍵切換。s1對應(yīng)P1.7引腳,按下按鍵,產(chǎn)生下降沿跳變,進(jìn)入中斷處理函數(shù),在中斷處理函數(shù)中更改模式標(biāo)志位的值并開關(guān)超聲模塊定時器中斷。具體實現(xiàn)流程描述:初始化按鍵P1.7,對應(yīng)s1按鍵,啟用P1.7口上拉電阻,未進(jìn)入終端時為高電平,并設(shè)置P1.7口下降沿觸發(fā)中斷按鍵按下,進(jìn)入中斷處理函數(shù)。判斷目前模式標(biāo)志位,對模式標(biāo)志位、超聲波時鐘中斷使能做出相應(yīng)更改實現(xiàn)流程圖:模塊測試及結(jié)果8.1超聲波測試8.1.1硬件模塊測試測試該模塊時,用信號發(fā)生器同步輸出脈沖信號,保證脈沖信號的高電平寬度大于10us,且周期能夠比一個返回信號的脈寬要長。經(jīng)過測試,超生模塊能夠正確返回信號echo,如下圖所示8.1.2軟件模塊測試對單個模塊進(jìn)行測試,小車在遇到障礙物時能夠正確檢測出距離,將避障標(biāo)志位置1進(jìn)行避障操作。但避障操作部分對小車的控制仍需反復(fù)修改調(diào)試。最終我們設(shè)置小車避障路徑為:右轉(zhuǎn)小角度→直行→左轉(zhuǎn)小角度→直行→左轉(zhuǎn)大角度→直行。測試發(fā)現(xiàn),軟件設(shè)置延時相同、轉(zhuǎn)速相同情況下,小車轉(zhuǎn)過的角度還與地面摩擦力、電池的供電情況有關(guān)。因此避障操作需量體裁衣,根據(jù)地面摩擦力、電池的供電情況調(diào)整。8.2紅外對管測試8.2.1硬件模塊測試
實驗之前,我們需根據(jù)安裝位置調(diào)整紅外模塊電位計,使之能夠檢測到黑線、白線并正確返回信號值。首先將小車放置于白線上,發(fā)現(xiàn)標(biāo)志返回電平高低的二極管亮,即返回電平為低,為正確返回值。再將小車放置在黑線上,緩慢調(diào)節(jié)電位計,使返回電平為高,此時模塊二極管滅,紅外對管能夠正確檢測出黑線、白線。循跡只需探測地面返回光強,可用黑膠帶將紅外對管四周圍住,使室內(nèi)光強不影響紅外對管判斷地面黑線、白線。8.2.2軟件模塊測試對單個模塊進(jìn)行測試,小車在循跡時能夠慢速沿著軌道循跡,說明該模塊邏輯正確。但由于循跡部分也是用延時控制小車的偏轉(zhuǎn)角度,所以遇到的問題與超聲避障函數(shù)相同,循跡部分檢測到偏離軌跡后的偏轉(zhuǎn)延時、偏轉(zhuǎn)速度需要根據(jù)地面摩擦力、電池的供電情況調(diào)整。8.3光敏電阻傳感器測試8.3.1硬件模塊測試使用光傳感器前需要首先根據(jù)室內(nèi)光強,對傳感器敏感度進(jìn)行調(diào)整。使傳感器在室內(nèi)光照下返回高電平,即沒有檢測到光源;在強度大于室內(nèi)光強的點光源照射下返回低電平,即檢測到光源。具體調(diào)整方法同紅外模塊。8.3.2軟件模塊測試對單個模塊進(jìn)行測試,小車能夠在短時間內(nèi)正確尋光,并跟隨光源行駛。說明該模塊邏輯清晰,能夠緊密跟隨光源,靈敏度較高。8.4電機驅(qū)動測試8.4.1硬件模塊測試直接在電機驅(qū)動模塊IN1、IN2、IN3、IN4引腳加高、低電平,分別測試電機驅(qū)動模塊的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)功能,測試時ENA、ENB接+5v,即不在使能端進(jìn)行調(diào)速。測試得電機功能完好,左右輪轉(zhuǎn)速差距不太明顯,這種差距可通過軟件編程輸出不同占空比值彌補。8.4.2軟件模塊測試對電機進(jìn)行測試,為了找到能夠使小車直走的輸出占空比,我們用專門代碼輸出不同占空比,逐漸縮小左右輪之間的差距。經(jīng)測試發(fā)現(xiàn),在輸出計數(shù)值為1024時,調(diào)節(jié)左輪占空比計數(shù)值為630、右輪為612時小車能夠直走。小車左右輪的差異與電池供電同樣有關(guān),不過不像循跡、避障模塊那樣,不同電池狀態(tài)供電差異不大。實施描述(使用說明)根據(jù)引腳分配表連接好電路,兩節(jié)干電池給開發(fā)板供電,開發(fā)板的撥碼開關(guān)JTAG/BATT,撥碼開光撥至power,給電機驅(qū)動使用7.9v電池供電。短路板上把2.3引腳引出的線與紅外模塊引線短接。小車開始默認(rèn)模式為紅外避障循跡,按下按鍵S1后,軟件模式切換為尋光,短路板上2.3引腳與尋光模塊DO短接,即進(jìn)入尋光模塊運行。主要器件清單及經(jīng)費使用情況原件名稱個數(shù)來源自費價格(元)MSP430F55291申請萬向輪1申請電機2申請輪子2申請電機驅(qū)動2申請電機驅(qū)動電源(池)1申請干電池2自費5紅外傳感器(循跡/避障)3申請光敏傳感器(尋光)3自費18.9超聲波傳感器(避障)2申請陀螺儀(導(dǎo)航)1自費12.5帶接頭導(dǎo)線若干自費4.8螺母若干申請銅柱若干自費2.8墊片若干申請螺絲若干申請綁帶一捆自費1小車支架1申請黑膠帶2自費6合計51項目實施總結(jié)及心得體會經(jīng)歷了這次的硬件課設(shè),我的切身體會就是:只知道理論大方向是不行的,實踐才是檢驗真理的唯一標(biāo)準(zhǔn)。因為旁聽過同學(xué)的智能小車選修課,我們組對小車循跡、避障的基本方法邏輯都有一定的了解。在開始本次的智能小車設(shè)計時,我們都預(yù)想了要加入很多模塊、實現(xiàn)各種不同的功能。但是經(jīng)過九天的調(diào)試,開始的時候看似邏輯簡單的東西,實現(xiàn)起來卻有太多需要考慮的細(xì)節(jié)。 在硬件方面,如何使用單片機引腳功能、如何調(diào)試、如何供電都是剛開始時我們遇到的問題,后來我們查閱了大量資料,弄清了單片機的結(jié)構(gòu)和引腳,對單片機的編程有了基本的了解。進(jìn)行硬件模塊測試時,我們發(fā)現(xiàn)一個紅外對管的控制電路壞了,無法返回正確值,最終只能使用三個紅外模塊。在小車安裝方面,我們初始配件不足,連螺釘、銅柱等都需要東拼西湊,而且因為一層小車無法安裝下電池和多個傳感器模塊,我們最初在調(diào)試單個模塊時只能跟隨小車一起跑。為了解決這個問題,我們在廢電路板上打孔,購買銅柱將小車變成兩層,自己焊短路線、設(shè)計布線方式使小車看起來不那么雜亂。在綜合測試小車功能的時候,可能由于需要供電的傳感器太多,電池經(jīng)常沒電,這也對我們進(jìn)行小車的測試產(chǎn)生了很大的影響。開始時電機左右輪性能差距也比較大,輸出相同周期相同占空比時都無法直走,這也是我們放棄直接使能電機驅(qū)動模塊的原因之一。后來我們聯(lián)系老師,更換了新的電機,這個問題才有所改善。我們的功能模塊實現(xiàn)方案也是從以中斷為主流變成了以查詢?yōu)橹髁?,主要原因就是帶中斷的外接引腳、帶有定時器引腳功能的外接引腳太少。就這樣,因為中途方案改變,加上許許多多的小問題,并不算太長的代碼我們晝夜不息地調(diào)了九天時間。總結(jié)這次硬件課設(shè)的經(jīng)驗,我們雖然實現(xiàn)了循跡避障、尋光的功能且能實現(xiàn)模式轉(zhuǎn)換,但是卻因為時間原因,目標(biāo)避障的功能沒有完成,確實十分遺憾。在完成此類項目時,首先要確定實現(xiàn)功能、確定實現(xiàn)功能的大致方法,并分析其可行性,再選定方案,最后開始著手單個模塊的編程??尚行苑治鍪擒浖O(shè)計中非常重要的一個環(huán)節(jié),讓我們設(shè)計單個模塊時也能夠考慮到全局。因為這次硬件課設(shè)我們幾乎是從零起步,在慢慢摸索的過程中出現(xiàn)了很多問題,我也積累了很多軟件調(diào)試、硬件測試的經(jīng)驗,收獲還是非常大的,也算是為之后的畢業(yè)設(shè)計積累了一點信心吧。12.參考文獻(xiàn)[1]顧志華,戈惠梅,徐曉慧,廉美琳,張金龍.基于多傳感器的智能小車避障系統(tǒng)設(shè)計[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2014,01:12-17.[2]馬世典,孔令晶,韓牟,吳狄,唐鑫.基于多傳感器協(xié)同的智能循跡小車控制系統(tǒng)設(shè)計[J].制造業(yè)自動化,2013,22:143-148.[3]魏一博.競賽中智能小車的設(shè)計技巧[J].電子制作,2012,03:60-65.[4]鄭輝.基于MSP430單片機的智能小車尋跡模塊研究[J].現(xiàn)代電子技術(shù),2013,13:105-107.[5]施保華,趙娟,田???MSP430單片機入門與提高[M].中國·武漢:華中科技大學(xué)出版社,2013.[6]任保宏,徐科軍.MSP430單片機原理與應(yīng)用[M].中國·北京:電子工業(yè)出版社,2014.13.附錄(電路圖、源碼清單)開發(fā)板電路圖中可見開關(guān)S1引腳號為1.7源代碼/**main.c*/#include<stdint.h>#include"msp430.h"staticunsignedintmode_flag=0;//1循跡避障,0尋光staticintultrasonic;//標(biāo)志位,此變量根據(jù)超聲波判斷的距離的設(shè)為不同的值staticfloatstart=0,end=0;staticfloatdistance=0;//初始化電機驅(qū)動電路voidInit_PWM_Driver(){ P4DIR|=BIT0+BIT1+BIT2+BIT3;//IN1~IN4驅(qū)動電機四個信號 P2DIR|=BIT0+BIT1;//復(fù)用p2.0為使能端ENA,復(fù)用p2.1為使能端ENB P2SEL|=BIT0+BIT1;//選擇模式 TA1CTL|=MC_1+TASSEL_1+ID_0; TA1CCTL1=OUTMOD_7; TA1CCTL2=OUTMOD_7;////輸入輸出模式為復(fù)位/置位模式接上:比較模式,中斷禁止,最后一位表示是否有中斷掛起 TA1CCR0=2048;//置位 TA1CCR1=1044;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=1024;//計數(shù)到ccr2復(fù)位右輪的占空比}//初始化超聲波模塊voidInit_ultrasonic(){ //初始化超聲避障模塊使用引腳P2.0發(fā)出trig、P7.5接收echo P7DIR&=~(BIT5); P7SEL|=BIT5; P2DIR|=BIT4; P2SEL|=BIT4;//使用內(nèi)部功能 //TB0.3P7.5引腳對應(yīng) TB0CTL=TBSSEL_2+MC_2+TBCLR+ID_1;//;+TBIE;//SMCLK,連續(xù)計數(shù)模式,中斷使能,二分頻
TB0CCTL3=CAP+CCIS_0+CM_3+SCS;//+CCIE;//捕獲模式,選擇CCIxA,上升下降沿都捕獲,使能捕獲中斷,同步捕獲
TB0CCR3=0;//清空比較寄存器CCR3 //TA2.1P2.4引腳對應(yīng) TA2CCR0=3000; TA2CCR1=20; TA2CCTL1=OUTMOD_7; TA2CTL=TASSEL_2+MC_1;//SMCLK、比較計數(shù) //TA0、TB0二分頻(這里不知道有什么作用,感覺沒啥作用) TA0EX0=BIT0; TB0EX0=BIT0;}//初始化循跡voidInit_followline(){ P3DIR&=~BIT0;//p3.0為輸入P3DIR&=~BIT1;//p3.1為輸入P3DIR&=~BIT2;//p3.2為輸入}voidInit_followlight(){ P4DIR&=~BIT4;//p4.4為左輸入 P4DIR&=~BIT5;//p4.5為中輸入 P4DIR&=~BIT6;//p4.6為右輸入}//初始化按鍵1.7,s1按鍵voidInit_Button(){ P1REN|=BIT7; P1OUT|=BIT7;//以上兩句為啟用P1.7口上拉電阻。未進(jìn)入終端時為高電平 P1IES|=BIT7;//P1.7口下降沿觸發(fā)中斷 P1IFG&=~BIT7;//清除1.7中斷標(biāo)志位 P1IE|=BIT7;}/*轉(zhuǎn)彎部分*/voidTurn_Right_Center()//右轉(zhuǎn)0100{ P4OUT&=~(BIT0+BIT1+BIT3); P4OUT|=BIT2; TA1CCR0=2048;//置位 TA1CCR1=800;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=800;//計數(shù)到ccr2復(fù)位右輪的占空比}voidTurn_Right()//右轉(zhuǎn)0110{ P4OUT&=~(BIT0+BIT3); P4OUT|=BIT2+BIT1; TA1CCR0=1024;//置位 TA1CCR1=400;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=400;//計數(shù)到ccr2復(fù)位右輪的占空比}voidTurn_Left_Center()//左轉(zhuǎn)0001{ P4OUT&=~(BIT1+BIT2+BIT3); P4OUT|=BIT0; TA1CCR0=1024;//置位 TA1CCR1=400;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=400;//計數(shù)到ccr2復(fù)位右輪的占空比}voidTurn_Left()//左轉(zhuǎn)1001{ P4OUT&=~(BIT1+BIT2); P4OUT|=BIT0+BIT3; TA1CCR0=1024;//置位 TA1CCR1=400;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=400;//計數(shù)到ccr2復(fù)位右輪的占空比}voidTurn_Back()//1010{ P4OUT&=~(BIT0+BIT2); P4OUT|=BIT1+BIT3;TA1CCR0=1024;//置位 TA1CCR1=512;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=512;//計數(shù)到ccr2復(fù)位右輪的占空比}voidTurn_Normal()//0101{ P4OUT|=(BIT0+BIT2); P4OUT&=~(BIT1+BIT3); TA1CCR0=1024;//置位 TA1CCR1=512;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=512;//計數(shù)到ccr2復(fù)位右輪的占空比}//剎停函數(shù)voidStop(){ P4OUT|=BIT0+BIT1+BIT2+BIT3;//p4out=1}voidTurn_Right_Center_low(){ P4OUT&=~(BIT0+BIT1+BIT3); P4OUT|=BIT2; TA1CCR0=1024;//置位 TA1CCR1=300;//計數(shù)到ccr1復(fù)位左輪的占空比增增計數(shù)模式的最大 TA1CCR2=300;//計數(shù)到ccr2復(fù)位右輪的占空比}#pragmavector=PORT1_VECTOR//按鍵中斷函數(shù)__interruptvoidP1_ISR(void){ switch(mode_flag) { case0://尋光模式跳至循跡避障模式 TB0CTL|=TBIE; TB0CCTL3|=CCIE;//打開超聲模塊時鐘中斷 mode_flag=1; break; case1://循跡避障模式跳至尋光模式 TB0CTL&=~TBIE; TB0CCTL3&=~CCIE;//關(guān)閉超聲模塊時鐘中斷 mode_flag=0; break; } P1IFG&=~BIT7;//清除1.7中斷標(biāo)志位}#pragmavector=TIMER0_B1_VECTOR__interruptvoidTimer0_B1(void){ floattemp; switch(TB0IV)//查看中斷向量,判斷是否是Timer0_B
CC3產(chǎn)生的中斷
{ case6://CCR3捕獲寄存器中斷入口,上升沿下降沿都能產(chǎn)生中斷
{ if(TB0CCTL3&CCI)//捕獲上升沿 { start=TB0CCR3;//記錄此時CCR1的數(shù)據(jù)
break; } else //捕獲下降沿 { end=TB0CCR3; temp=end-start;//為其間間隔的差值 distance=temp*0.0175;//將該數(shù)據(jù)轉(zhuǎn)換成距離
if(distance>8) { ultrasonic=0; } elseif(distance<8&&distance>0) { ultrasonic=1; } } break; } case4: break;//
case10: break;//
} TB0CCTL3&=~CCIFG; return;}voidmain(){ WDTCTL=WDTPW|WDTHOLD;//
關(guān)閉看門狗計時器
Init_PWM_Driver(); Init_Button(); Init_followline(); Init_ultrasonic(); Init_followlight(); _EINT();//中斷使能 longintz; while(1) { if(mode_flag==1)//循跡避障 { switch(ultrasonic)//為0則障礙物較遠(yuǎn),為1則障礙物較近,需要避障 { case0: TB0CTL|=TBIE; TB0CCTL3|=CCIE; switch(P3IN&0x07)//00000111右中左 { case0x03://往右邊拐彎0011 TA1CCR0=1024; TA1CCR1=450; TA1CCR2=450; Turn_Right(); for(z=0;z<5000;z++){} break; case0x06://往左拐彎0110 Turn_Left(); TA1CCR0=1024; TA1CCR1=450; TA1CCR2=450; for(z=0;z<5000;z++){} break; case0x00://全白0000 Turn_Normal(); TA1CCR0=1024; TA1CCR1=250; TA1CCR2=250; for(z=0;z<5000;z++){} break; case0x05://不正常情況0101 Turn_Normal(); TA1CCR0=1024; TA1CCR1=250; TA1CCR2=250; for(z=0;z<3000;z++){} break; case0x02://正常情況0010 Turn_Normal(); TA1CCR0=1024; TA1CCR1=250; TA1CCR2=250; for(z=0;z<3000;z++){} break; case0x01://右偏左拐0001 Turn_Left(); TA1CCR0=1024; TA1CCR1=450; TA1CCR2=450; for(z=0;z<5000;z++){} break; case0x04://左偏右拐0100 Turn_Right(); TA1CCR0=1024; TA1CCR1=450; TA1CCR2=450; for(z=0;z<5000;z++){} break; case0x
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北省建筑安全員-A證考試題庫及答案
- 2025河南省建筑安全員A證考試題庫
- 《家禽常見病資料》課件
- 《法醫(yī)檢驗相關(guān)》課件
- 單位人力資源管理制度集粹匯編十篇
- 單位人力資源管理制度呈現(xiàn)大合集十篇
- 北方華創(chuàng)刻蝕和薄膜沉積設(shè)備領(lǐng)域優(yōu)勢突出打造平臺型設(shè)備龍頭
- 2025年人形機器人行業(yè)投資策略報告:量產(chǎn)元年曙光將現(xiàn)
- 單位管理制度收錄大全人事管理十篇
- 單位管理制度收錄大合集員工管理篇十篇
- 來料檢驗員工作總結(jié)
- 工商企業(yè)管理專業(yè)教學(xué)資源庫申報書-專業(yè)教學(xué)資源庫備選項目材料
- 智能充電樁的管理與優(yōu)化調(diào)度
- 急診科副主任個人工作述職報告
- 硬件工程師年終總結(jié)報告
- 最全全國各省市縣名稱
- 音樂盛典策劃方案
- 學(xué)校新媒體管理制度規(guī)章
- 狐貍的生物學(xué)
- 全球氣候變化和應(yīng)對措施
- 小麥冬季管理技術(shù)意見
評論
0/150
提交評論