版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八屆“飛思卡爾”杯全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽技術(shù)報(bào)告學(xué)校:上海第二工業(yè)大學(xué)隊(duì)伍名稱:電磁一隊(duì)參賽隊(duì)員:趙雪鵬王昌明蘭裕濤帶隊(duì)教師:楊冠群關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說(shuō)明本人完全了解第八屆“飛思卡爾”杯全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽關(guān)保留、使用技術(shù)報(bào)告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁(yè)上收錄并公開(kāi)參賽作品的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車(chē)的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì)出版論文集中。參賽隊(duì)員簽名: 帶隊(duì)教師簽名: 日期:
摘要本智能車(chē)系統(tǒng)以MK60DX256ZVLQ10KinetisAR-CortexM4為核心控制器,通過(guò)電磁傳感器檢測(cè)賽道信息并提取賽道中心引導(dǎo)線位置,通過(guò)光電編碼器檢測(cè)模型車(chē)的實(shí)時(shí)速度,使用PID控制算法調(diào)節(jié)驅(qū)動(dòng)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向舵機(jī)的角度,實(shí)現(xiàn)了對(duì)模型車(chē)運(yùn)動(dòng)速度和運(yùn)動(dòng)方向的閉環(huán)控制。為了提高模型車(chē)的速度和穩(wěn)定性,在IAREmbeddedWorkbenchforARM開(kāi)發(fā)環(huán)境中進(jìn)行軟件開(kāi)發(fā),使用上位機(jī)和無(wú)線藍(lán)牙等輔助調(diào)試工具,進(jìn)行大量硬件與軟件測(cè)試。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)設(shè)計(jì)方案確實(shí)可行。關(guān)鍵詞:Freescale,智能車(chē),電磁,MK60DX256ZVLQ10,PID
目錄摘要 3引言 5第一章 系統(tǒng)總體設(shè)計(jì) 61.1設(shè)計(jì)要求 61.2總體設(shè)計(jì) 61.3整車(chē)布局 7第二章 系統(tǒng)機(jī)械設(shè)計(jì) 82.1車(chē)模結(jié)構(gòu)特點(diǎn) 82.2前輪定位 82.3底盤(pán)高度 82.4舵機(jī)安裝設(shè)計(jì) 92.6差速的調(diào)整 10第三章 系統(tǒng)電路設(shè)計(jì) 123.1電路總體設(shè)計(jì) 123.2主控制器模塊 123.3電源管理模塊 123.4尋跡傳感器電路 163.5尋跡傳感器布局 203.6起跑線檢測(cè)電路 213.7電機(jī)驅(qū)動(dòng)模塊 22第四章 系統(tǒng)軟件設(shè)計(jì) 244.1系統(tǒng)總體流程 244.2控制策略與控制量計(jì)算 244.2.1轉(zhuǎn)向控制 244.2.2車(chē)速控制 254.3程序框架 254.4比賽方案選擇 25第五章 開(kāi)發(fā)工具與調(diào)試過(guò)程 265.1開(kāi)發(fā)工具 265.2上位機(jī)顯示 265.3算法仿真 265.4電路仿真 265.5制作調(diào)試過(guò)程 275.6現(xiàn)場(chǎng)調(diào)試 27第六章 總結(jié) 296.1模型車(chē)的主要技術(shù)參數(shù)說(shuō)明 296.2現(xiàn)存問(wèn)題及改進(jìn)方向 29參考文獻(xiàn) 30附錄A程序源代碼 31引言隨著科學(xué)技術(shù)的不斷發(fā)展進(jìn)步,智能控制的應(yīng)用越來(lái)越廣泛,幾乎滲透到所有領(lǐng)域。智能車(chē)技術(shù)依托于智能控制,前景廣闊且發(fā)展迅速。目前,掌握著汽車(chē)工業(yè)關(guān)鍵技術(shù)的發(fā)達(dá)國(guó)家已經(jīng)開(kāi)發(fā)了許多智能車(chē)的實(shí)驗(yàn)平臺(tái)和商品化的車(chē)輛輔助駕駛系統(tǒng)。有研究認(rèn)為智能汽車(chē)作為一種全新的汽車(chē)概念和汽車(chē)產(chǎn)品,在不久的將來(lái)會(huì)成為汽車(chē)生產(chǎn)和汽車(chē)市場(chǎng)的主流產(chǎn)品。第八屆“飛思卡爾杯”全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽規(guī)定參賽選手須使用競(jìng)賽秘書(shū)處統(tǒng)一指定的車(chē)模套件,采用Freescale半導(dǎo)體公司的8位、16位或32位微控制器作為核心控制單元,自主構(gòu)思控制方案進(jìn)行系統(tǒng)設(shè)計(jì),包括傳感器信號(hào)采集處理、動(dòng)力電機(jī)驅(qū)動(dòng)、轉(zhuǎn)向舵機(jī)控制以及控制算法軟件開(kāi)發(fā)等,完成智能車(chē)工程制作及調(diào)試。大賽分光電、攝像頭、電磁三個(gè)賽題組。本組設(shè)計(jì)的智能車(chē)是基于電磁傳感器的,屬于電磁賽題組。本組的技術(shù)報(bào)告以智能車(chē)的設(shè)計(jì)為主線,包括智能車(chē)的構(gòu)架設(shè)計(jì)、軟硬件設(shè)計(jì),以及控制算法研究等,共為六章。其中,第一章主要介紹了智能車(chē)的總體設(shè)計(jì);第二章對(duì)智能車(chē)的機(jī)械設(shè)計(jì)進(jìn)行了詳細(xì)的介紹;第三章對(duì)智能車(chē)的硬件電路設(shè)計(jì)進(jìn)行了詳細(xì)的介紹;第四章描述了智能車(chē)的軟件設(shè)計(jì)和相關(guān)算法;第五章對(duì)開(kāi)發(fā)工具、制作、安裝、調(diào)試過(guò)程以及模型智能車(chē)的技術(shù)參數(shù)進(jìn)行說(shuō)明;第六章敘述了設(shè)計(jì)的總結(jié)和展望。第八屆全國(guó)大學(xué)生智能汽車(chē)邀請(qǐng)賽技術(shù)報(bào)告系統(tǒng)總體設(shè)計(jì)1.1設(shè)計(jì)要求本次競(jìng)賽中,要求所設(shè)計(jì)的智能車(chē)具有自動(dòng)尋跡功能,以起始線為計(jì)時(shí)點(diǎn),在賽道上高速、穩(wěn)定地跑完一圈后,賽車(chē)需要自動(dòng)停在起始線之后三米內(nèi)的賽道上。賽道為白底黑線,白底寬45cm,黑線寬25mm,比賽允許選手自行設(shè)計(jì)傳感器和控制電路,并編寫(xiě)控制程序,禁止改動(dòng)舵機(jī)和輪胎等智能車(chē)結(jié)構(gòu)。1.2總體設(shè)計(jì)根據(jù)智能車(chē)設(shè)計(jì)的基本要求,設(shè)計(jì)系統(tǒng)結(jié)構(gòu)圖,如圖1.1所示。在滿足比賽要求的情況下,力求系統(tǒng)簡(jiǎn)單高效,因而在設(shè)計(jì)過(guò)程中盡量簡(jiǎn)化硬件結(jié)構(gòu),減少因硬件而出現(xiàn)的問(wèn)題。電磁傳感器電磁傳感器模塊上位機(jī)接口電機(jī)驅(qū)動(dòng)模塊MK60DX256ZVLQ10上位機(jī)接口電機(jī)驅(qū)動(dòng)模塊MK60DX256ZVLQ10光電編碼器舵機(jī)轉(zhuǎn)光電編碼器舵機(jī)轉(zhuǎn)向模塊圖1.1系統(tǒng)結(jié)構(gòu)圖圖1.1系統(tǒng)結(jié)構(gòu)圖
1.3整車(chē)布局(1)車(chē)模底盤(pán)降低,主板接近底板,以降低重心。(2)舵機(jī)臥式放置,降低重心。(3)用不銹鋼管作為電磁支架材料,穩(wěn)定堅(jiān)固。(4)電池安于的后方,有利于重心分布均勻。圖1.2整車(chē)布局圖
系統(tǒng)機(jī)械設(shè)計(jì)2.1車(chē)模結(jié)構(gòu)特點(diǎn)本車(chē)模采用后輪驅(qū)動(dòng),前輪轉(zhuǎn)向。使用隨動(dòng)舵機(jī)帶動(dòng)50cm前瞻的電磁傳感器探測(cè)引導(dǎo)線的位置,另設(shè)干簧管傳感器探測(cè)起止線。電源模塊和MCU的擴(kuò)展電路板置于小車(chē)中部。整個(gè)小車(chē)重心在中部靠后,有較好的穩(wěn)定性。2.2前輪定位為了使模型車(chē)在直線行駛時(shí)更加穩(wěn)定,轉(zhuǎn)向輕便,轉(zhuǎn)向后能自動(dòng)回正,并減少輪胎和轉(zhuǎn)向系零件的磨損等,在轉(zhuǎn)向輪、轉(zhuǎn)向節(jié)和前軸之間形成一定的相對(duì)安裝位置,對(duì)位置的調(diào)整為車(chē)輪定位。其中包括主銷(xiāo)后傾、主銷(xiāo)內(nèi)傾、車(chē)輪外傾和前束。在實(shí)際調(diào)試中,發(fā)現(xiàn)適當(dāng)增大內(nèi)傾角的確可以增大轉(zhuǎn)彎時(shí)車(chē)輪和地面的接觸面積,從而增大車(chē)輪與地面的摩擦程度,使車(chē)轉(zhuǎn)向更靈活,減小因摩擦不夠而引起的轉(zhuǎn)向不足的情況,增大后傾角可提高直線行駛性能和穩(wěn)定性,經(jīng)過(guò)反復(fù)調(diào)試最終得到理想結(jié)果。改裝結(jié)果如下圖所示。圖2.1前輪定位圖2.3底盤(pán)高度在保證順利通過(guò)坡道和障礙的前提下,底盤(pán)盡量降低,從整體上降低模型車(chē)的重心,可使模型車(chē)轉(zhuǎn)彎時(shí)更加穩(wěn)定、高速。底盤(pán)高度如圖2.2所示。圖2.2前輪定位圖2.4舵機(jī)安裝設(shè)計(jì)本組通過(guò)實(shí)驗(yàn)測(cè)試了轉(zhuǎn)向舵機(jī)S3010的幾種安裝方式,以及其動(dòng)作性能隨電壓、控制頻率、力臂長(zhǎng)度的變化規(guī)律,通過(guò)比較最終確定將舵機(jī)臥式放置,豎起力臂延長(zhǎng)至30cm、供電電壓6.5V、控制頻率100HZ。圖2.3舵機(jī)安裝圖第二章系統(tǒng)機(jī)械設(shè)計(jì)2.5傳感器支架大賽規(guī)定電磁組車(chē)模長(zhǎng)度不受限制,所以方案決定以物理方式加長(zhǎng)傳感器支架來(lái)獲得較遠(yuǎn)前瞻??紤]到系統(tǒng)采用感應(yīng)電動(dòng)勢(shì)模擬變化量提取賽道信息,所以希望前端支架穩(wěn)定,抗震,堅(jiān)固,耐撞擊。最初,系統(tǒng)采用普通的碳纖維管,雖然其具備一定的堅(jiān)固性,且質(zhì)量輕,但是其抗震性較差,韌度較小,在高速撞擊的情況下容易折斷。為了保留碳纖維管的優(yōu)點(diǎn),補(bǔ)償缺點(diǎn),通過(guò)對(duì)比試驗(yàn),系統(tǒng)最終采用不銹鋼管代替碳纖維管,架構(gòu)如圖2.4。該方案具有一下特點(diǎn):(1)架構(gòu)簡(jiǎn)單,質(zhì)量輕,強(qiáng)度大。(2)安裝方便,使整車(chē)簡(jiǎn)潔、堅(jiān)固。(3)可以獲得較遠(yuǎn)前瞻,車(chē)模行駛時(shí)傳感器支架抖動(dòng)較小。(4)支架拆卸和維修較為方便,不易折斷,無(wú)需平凡更換。圖2.4不銹鋼支架圖2.6差速的調(diào)整在車(chē)實(shí)際跑的過(guò)程中,后輪的差速相對(duì)松緊程度對(duì)拐彎有很大的影響。差速太緊,則拐彎容易甩尾,速度快的時(shí)候很容易甩出去,但是差速如果太松,雖然會(huì)改善轉(zhuǎn)彎性能,卻會(huì)嚴(yán)重影響了直線上的加減速,而且齒輪的咬合也不是很好,對(duì)齒輪會(huì)有一定的損壞。所以,后面兩個(gè)輪子的相對(duì)松緊程度要適中,經(jīng)過(guò)多次的調(diào)試,將模型車(chē)放到賽道上,用手抓住后輪的一只輪子使其不能轉(zhuǎn)動(dòng),在賽道上推車(chē)子轉(zhuǎn)彎,如果車(chē)子能夠稍輕松的推動(dòng),則此時(shí)的差速器為最適合。當(dāng)然,實(shí)際還需要根據(jù)不同的賽道和車(chē)的機(jī)械性能進(jìn)行相應(yīng)的微調(diào)。圖2.5差速與編碼器安裝圖系統(tǒng)電路設(shè)計(jì)3.1電路總體設(shè)計(jì)模型車(chē)控制電路設(shè)計(jì)是車(chē)模控制設(shè)計(jì)中的基礎(chǔ)環(huán)節(jié)。為保證電路可靠性,按功能劃分,將整個(gè)電路劃分為主控板單元、尋跡傳感器、測(cè)速電路、電機(jī)驅(qū)動(dòng)電路、電源管理電路幾個(gè)部分。各部分間關(guān)系如下圖3.1所示:電源管理電源管理模塊尋跡傳感器電機(jī)驅(qū)動(dòng)模塊主控板單元尋跡傳感器電機(jī)驅(qū)動(dòng)模塊主控板單元測(cè)速電路舵機(jī)轉(zhuǎn)測(cè)速電路舵機(jī)轉(zhuǎn)向模塊圖1.1系統(tǒng)結(jié)構(gòu)圖圖3.1整體電路圖3.2主控制器模塊主控板電路以飛思卡爾公司提供的32位微處理器MK60DX256ZVLQ10KinetisAR-CortexM4為核心,主要包括時(shí)鐘電路、串口電路、OSJTAG下載接口、供電電路、復(fù)位電路、調(diào)試小燈等。其中各個(gè)部分的功能如下:(1)串口的RS-232驅(qū)動(dòng)電路可實(shí)現(xiàn)TTL電平到RS-232電平的電平轉(zhuǎn)換。(2)OSJTAG下載接口讓用戶可以通過(guò)OSJTAG頭向單片機(jī)下載和調(diào)試程序。(3)供電電路主要是給單片機(jī)提供3.3V電源。(4)復(fù)位電路是通過(guò)一個(gè)復(fù)位芯片在電壓達(dá)到正常值時(shí)給單片機(jī)一個(gè)復(fù)位信號(hào)。(5)調(diào)試用小燈和單片機(jī)的IO口相連,供程序調(diào)試使用。對(duì)于工作環(huán)境惡劣、噪聲與干擾強(qiáng),且對(duì)系統(tǒng)的穩(wěn)定性、可靠性有較高要求時(shí),印刷線路板的設(shè)計(jì)可采用多層板。但為降低研制成本,本組采用雙面板印制大前瞻的主傳感器電路和電機(jī)驅(qū)動(dòng)電路,主控板和輔助傳感器電路采用手工焊接的方式制作。在此給出主控PCB圖。圖3.2主控制器模塊圖3.3電源管理模塊電源電路為系統(tǒng)其它各個(gè)模塊提供所需要的電源。設(shè)計(jì)中,除了需要考慮電壓范圍和電流容量等基本參數(shù)外,還要在電源轉(zhuǎn)換效率、降低噪聲、防止干擾和電路簡(jiǎn)單等方面進(jìn)行優(yōu)化。全部硬件電路的電源由7.2V、2A/h的可充電鎳鎘蓄電池提供。由于電路中的不同電路模塊所需要的工作電壓和電流容量各不相同,因此電源模塊應(yīng)該包含多個(gè)穩(wěn)壓電路,將充電電池電壓轉(zhuǎn)換成各個(gè)模塊所需要的電壓。主要包括如下不同的電壓:(1)3.3V電壓。主要為單片機(jī)提供電源,電壓要求穩(wěn)定、噪聲小,電流容量大于500mA。使用穩(wěn)壓芯片TPS79333。第三章系統(tǒng)電路設(shè)計(jì)第三章系統(tǒng)電路設(shè)計(jì)圖3.3分級(jí)穩(wěn)壓原理圖(2)5V電壓。為電磁傳感器和編碼器等電路供電。同樣使用穩(wěn)壓芯片LM2940。圖3.45V穩(wěn)壓原理圖(3)-5V電壓。為電磁傳感器電路供電。由電荷泵MAX660提供。圖3.5-5V穩(wěn)壓原理圖(4)6.5V電壓。這部分主要為轉(zhuǎn)向舵機(jī)提供電源,由芯片LM2941提供。圖3.66.5V穩(wěn)壓原理圖(5)7.2V電壓。這部分直接取自電池兩端電壓,主要為后輪電機(jī)驅(qū)動(dòng)模塊提供電源。(6)12v電壓。這部分主要為電機(jī)驅(qū)動(dòng)電路提供電壓。圖3.612V升壓原理圖電源模塊由若干相互獨(dú)立的穩(wěn)壓電路組成。為了降低電路噪聲和干擾,各級(jí)穩(wěn)壓進(jìn)行隔離,較低電壓采用分級(jí)穩(wěn)壓,降低電池電壓浪涌現(xiàn)象和紋波。此外,為了降低數(shù)字與模擬信號(hào)干擾,對(duì)數(shù)字地與模擬地進(jìn)行隔離,單點(diǎn)接地,起到了很好的效果。PCB設(shè)計(jì)將電源管理模塊集中,分級(jí)穩(wěn)壓與隔離,如下圖所示。圖3.7電源穩(wěn)壓模塊圖3.4尋跡傳感器電路循跡傳感器在車(chē)頭的位置將直接影響循跡效果,由于在引導(dǎo)線周?chē)煌恢?,磁感?yīng)強(qiáng)度的大小和方向不同,所以不同位置上的電感產(chǎn)生的感應(yīng)電動(dòng)勢(shì)也應(yīng)該是不同。據(jù)此,則可以確定電感的大致位置。在傳感器排布設(shè)計(jì)上面較為常用的有兩種方案。(1)采用一排或多排電感。此種方法的采集信息是離散的點(diǎn),不利于精細(xì)的控制,無(wú)法做到流暢的過(guò)彎。如果增加電感的個(gè)數(shù),那么將會(huì)使得整車(chē)重心靠前,轉(zhuǎn)向負(fù)載很大,此外,電感如果靠的太近,互感就是一個(gè)不得不考慮的問(wèn)題。(2)使用3個(gè)電感,測(cè)得感應(yīng)電動(dòng)勢(shì),根據(jù)畢奧薩伐定理精確計(jì)算導(dǎo)線與傳感器的位置??紤]到傳感器的前瞻長(zhǎng),對(duì)于舵機(jī)的轉(zhuǎn)動(dòng)負(fù)載大,又希望得到精確的導(dǎo)線位置,最終系統(tǒng)采用方案(2)。根據(jù)方案(2),確定使用3個(gè)電感作為檢測(cè)導(dǎo)線的傳感器,但是其感應(yīng)信號(hào)較微弱,且混有雜波,所以要進(jìn)行信號(hào)處理。要進(jìn)行以下三個(gè)步驟才能得到較為理想的信號(hào):信號(hào)的濾波,信號(hào)的放大,信號(hào)的提取。(1)信號(hào)的濾波比賽選擇20kHz的交變磁場(chǎng)作為路徑導(dǎo)航信號(hào),在頻譜上可以有效地避開(kāi)周?chē)渌艌?chǎng)的干擾,因此信號(hào)放大需要進(jìn)行選頻放大,使得20kHz的信號(hào)能夠有效的放大,并且去除其它干擾信號(hào)的影響。使用LC并聯(lián)電路來(lái)實(shí)現(xiàn)選頻電路(帶通電路),如圖3.3所示。圖3.8LC并聯(lián)圖其中,E是感應(yīng)線圈中的感應(yīng)電動(dòng)勢(shì),L是感應(yīng)線圈的電感量,R0是電感的內(nèi)阻,C是并聯(lián)諧振電容。電路諧振頻率為:f=12πLC已知感應(yīng)電動(dòng)勢(shì)的頻率f=20kHz,感應(yīng)線圈電感為L(zhǎng)=10mH,可以計(jì)算出諧振電容的容量為C=6.33×10-9F。通常在市場(chǎng)上可以購(gòu)買(mǎi)到的標(biāo)稱電容與上述容值最為接近的電容為6.8nF,所以在實(shí)際電路中選用誤差為±5%的6.8nF電容,并從中挑選出最接近6.33nF(2)信號(hào)鏈精密放大由第一步處理后的電壓波形已經(jīng)是較為規(guī)整的20kHz正弦波,但是幅值較小,隨著距離衰減很快,不利于電壓采樣,所以要進(jìn)行放大,考慮到放大電路的設(shè)計(jì)要求,方案采用儀表放大器。儀表放大器具有顯著的優(yōu)點(diǎn):其輸入阻抗高,共模抑制比非常好,失調(diào)電壓小。但其存在不足:使用方法單一,同時(shí)由于信號(hào)直接接入緩沖運(yùn)放的輸入端,導(dǎo)致輸入共模信號(hào)的范圍較窄,即使具有軌到軌輸入的特點(diǎn),也只能達(dá)到供電電源電壓附近。根據(jù)上述分析,方案最終采用低功耗精密儀表放大器INA129,INA129通過(guò)如斬波穩(wěn)定等方法使其輸入失調(diào)電壓及其漂移非常的低,REF引腳可以使輸出含有一個(gè)固定的直流偏置,方便后端運(yùn)放或ADC電路的設(shè)計(jì),同樣地,使用一個(gè)低阻抗電壓源驅(qū)動(dòng)它。為此,方案給出放大參考電路圖和相應(yīng)參數(shù)表:圖3.9放大電路圖表3.1INA129參數(shù)表表3.2INA129參數(shù)表(3)信號(hào)提取查閱多屆技術(shù)報(bào)告對(duì)比得知,大多數(shù)采用倍壓檢波電路提取信號(hào),將交流信號(hào)整流,小部分采用高速ADC連續(xù)采樣,根據(jù)香農(nóng)采樣定理還原信號(hào)。通過(guò)多次對(duì)比試驗(yàn),得出這兩種方案都存在自身不足。倍壓檢波電路整流存在紋波,并且整流信號(hào)有明顯延時(shí)問(wèn)題。高速ADC連續(xù)采樣方案對(duì)軟件設(shè)計(jì)要求高,占用程序時(shí)間長(zhǎng),且程序相對(duì)復(fù)雜,信息量大,處理較困難。為此,本著“鼓勵(lì)探索,追求卓越”為指導(dǎo)思想,方案經(jīng)過(guò)多次創(chuàng)新與改進(jìn),設(shè)計(jì)出相位采樣法,達(dá)到最終結(jié)果:直接釆得正弦波峰值,采樣基本無(wú)延時(shí),無(wú)紋波等干擾信號(hào)。具有適應(yīng)性好,抗干擾能力強(qiáng),時(shí)時(shí)跟隨性能。方案給出正弦波采樣波形圖:圖3.10正弦波采樣波形圖圖3.10中黃色窄脈沖信號(hào)為單片機(jī)ADC采樣時(shí)間,藍(lán)色正弦半波為電感感應(yīng)波形放大去除負(fù)電壓得到,從圖中可知,單片機(jī)ADC采樣時(shí)間正好和正弦半波峰值信號(hào)同步。所以單片機(jī)只需識(shí)別窄脈沖信號(hào)下降沿即可取得正弦半波峰值信號(hào)。所以具有采樣速度快,抗干擾能力強(qiáng),取得峰峰值電壓誤差小等優(yōu)點(diǎn)。3.5尋跡傳感器布局根據(jù)官方網(wǎng)站提供的雙水平線圈檢測(cè)方案,在車(chē)模前上方水平方向固定兩個(gè)相距L的線圈,兩個(gè)線圈的軸線為水平,高度為h,即可完成基本的控制要求,如下圖所示:圖3.11雙水平線圈檢測(cè)方案圖對(duì)于直導(dǎo)線,當(dāng)裝有小車(chē)的中軸線對(duì)稱的兩個(gè)線圈的小車(chē)沿其直線行駛,即兩個(gè)線圈的位置關(guān)于導(dǎo)線對(duì)稱時(shí),則兩個(gè)線圈中感應(yīng)出來(lái)的電動(dòng)勢(shì)大小應(yīng)相同、且方向亦相同。若小車(chē)偏離直導(dǎo)線,即兩個(gè)線圈關(guān)于導(dǎo)線不對(duì)稱時(shí),則通過(guò)兩個(gè)線圈的磁通量是不一樣的。這時(shí),距離導(dǎo)線較近的線圈中感應(yīng)出的電動(dòng)勢(shì)應(yīng)大于距離導(dǎo)線較遠(yuǎn)的那個(gè)線圈中的。根據(jù)這兩個(gè)不對(duì)稱的信號(hào)的差值,即可調(diào)整小車(chē)的方向,引導(dǎo)其沿直線行駛。對(duì)于弧形導(dǎo)線,即路徑的轉(zhuǎn)彎處,由于弧線兩側(cè)的磁力線密度不同,則當(dāng)載有線圈的小車(chē)行駛至此處時(shí),兩邊的線圈感應(yīng)出的電動(dòng)勢(shì)是不同的。具體的就是,弧線內(nèi)側(cè)線圈的感應(yīng)電動(dòng)勢(shì)大于弧線外側(cè)線圈的,據(jù)此信號(hào)可以引導(dǎo)小車(chē)拐彎。另外,當(dāng)小車(chē)駛離導(dǎo)線偏遠(yuǎn)致使兩個(gè)線圈處于導(dǎo)線的一側(cè)時(shí),兩個(gè)線圈中感應(yīng)電動(dòng)勢(shì)也是不平衡的。距離導(dǎo)線較近的線圈中感應(yīng)出的電動(dòng)勢(shì)大于距離導(dǎo)線較遠(yuǎn)的線圈。由此,可以引導(dǎo)小車(chē)重新回到導(dǎo)線上。由于磁感線的閉合性和方向性,通過(guò)兩線圈的磁通量的變化方向具有一致性,即產(chǎn)生的感應(yīng)電動(dòng)勢(shì)方向相同,所以由以上分析,比較兩個(gè)線圈中產(chǎn)生的感應(yīng)電動(dòng)勢(shì)大小即可判斷小車(chē)相對(duì)于導(dǎo)線的位置,進(jìn)而做出調(diào)整,引導(dǎo)小車(chē)大致循線行駛。采用雙水平線圈檢測(cè)方案,在邊緣情況下,其單調(diào)性發(fā)生變化,這樣存在一個(gè)定位不清的區(qū)域,如圖3.6。同一個(gè)差值,會(huì)對(duì)應(yīng)多個(gè)位置,不利于定位。另外,受單個(gè)線圈感應(yīng)電動(dòng)勢(shì)的最大距離限制,兩個(gè)線圈的檢測(cè)廣度很有限。圖3.12雙線圈差值法圖為此,方案采用三電感方法,補(bǔ)償雙線圈電感方案的不足。三個(gè)電感按“一”字排布,中間垂直放置,兩邊傾斜30°放置,每個(gè)電感相距約為12.5cm,這樣覆蓋賽道范圍約為25cm。三個(gè)電感可以提高檢測(cè)密度和廣度。傾斜放置的電感主要是增大彎道的預(yù)測(cè)能力。3.6起跑線檢測(cè)電路按照比賽規(guī)則,起跑線是6個(gè)按照一定間隔放置的磁鋼(表面磁場(chǎng)強(qiáng)度3000到5000高斯)組成,如果使用干簧管,極性的問(wèn)題就不用考慮。將干簧管的一端接地,一端接IO,然后利用單片機(jī)的內(nèi)部上拉,用程序中斷去檢測(cè)低電平。這樣就可以完全利用Freescale芯片的內(nèi)部資源簡(jiǎn)化電路的設(shè)計(jì)。圖3.13干簧管實(shí)際圖3.7電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電路對(duì)智能車(chē)的加減速性能有著很大的影響。智能車(chē)經(jīng)過(guò)這幾年的發(fā)展,各隊(duì)伍使用的驅(qū)動(dòng)方案也多種多樣,從最開(kāi)始組委會(huì)推薦使用的MC33886,到現(xiàn)在比賽使用各類(lèi)驅(qū)動(dòng)芯片及采用分立元件搭出的驅(qū)動(dòng)電路。但影響驅(qū)動(dòng)能力最主要參數(shù)還是驅(qū)動(dòng)內(nèi)阻,所以在設(shè)計(jì)驅(qū)動(dòng)方案時(shí),力求內(nèi)阻越小越好,同時(shí)兼顧電路的復(fù)雜性及可靠性。為使智能車(chē)行駛在較高的速度水平上,智能車(chē)必須擁有很強(qiáng)的減速性能,所以采用全橋驅(qū)動(dòng)電路方案,于是設(shè)計(jì)了以BTS7960驅(qū)動(dòng)芯片為核心的和以IR2104半橋驅(qū)動(dòng)芯片為核心的全橋驅(qū)動(dòng)電路。BTS7960驅(qū)動(dòng)芯片外圍電路簡(jiǎn)單,控制方便,但是在做反壓制動(dòng)測(cè)試時(shí),BTS7960發(fā)熱厲害,易燒壞。在設(shè)計(jì)以IR2104半橋驅(qū)動(dòng)芯片為核心的H橋驅(qū)動(dòng)電路中,選用IR公司的低Ron增強(qiáng)型N-mosfet來(lái)搭建H橋。一片N-mosfet內(nèi)阻為1.6毫歐,額定工作電流可以輕易達(dá)到100A以上,大大提高了電動(dòng)機(jī)的工作轉(zhuǎn)矩和轉(zhuǎn)速。該驅(qū)動(dòng)器主要驅(qū)動(dòng)電路中一個(gè)電子開(kāi)關(guān)采用兩個(gè)mosfet并聯(lián),故控制電機(jī)轉(zhuǎn)動(dòng)時(shí)驅(qū)動(dòng)電路上下MOS管總內(nèi)阻僅3.2毫歐,遠(yuǎn)遠(yuǎn)小于MC33886的120毫歐,也小于BTS7960的16毫歐。由于此驅(qū)動(dòng)芯片IR2104需要10V以上電壓驅(qū)動(dòng),所以采用MC34063將電池電壓升壓到12V供給IR2104。此外,為了確保系統(tǒng)整體安全性能,系統(tǒng)設(shè)計(jì)PWM信號(hào)輸入接口、邏輯換向電路、死區(qū)控制電路、緩沖保護(hù)電路等。圖3.14全橋驅(qū)動(dòng)原理圖圖3.15全橋驅(qū)動(dòng)實(shí)物圖經(jīng)過(guò)以上設(shè)計(jì),以IR2104半橋驅(qū)動(dòng)芯片為核心的H橋驅(qū)動(dòng)電路最終滿足了設(shè)計(jì)的需求,實(shí)現(xiàn)了很好的加減速性能,并表現(xiàn)出很高的可靠性。第四章系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)總體流程系統(tǒng)軟件設(shè)計(jì)要體系化,模塊化,穩(wěn)定化,目標(biāo)是將硬件電路和機(jī)械性能發(fā)揮到最大,讓車(chē)模用最快的速度完成比賽。在此給出系統(tǒng)總體流程圖:開(kāi)始開(kāi)始程序初始化按鍵檢測(cè)電感電壓采樣舵機(jī)控制電機(jī)控制控制量計(jì)算圖4.1系統(tǒng)總體流程圖4.2控制策略與控制量計(jì)算控制器是控制系統(tǒng)的核心部件,控制算法的好壞直接決定了車(chē)模的性能。車(chē)??刂浦?,轉(zhuǎn)向控制是車(chē)模尋線前進(jìn)的基礎(chǔ),而車(chē)速控制則是提高比賽成績(jī)的關(guān)鍵。兩者缺一不可。本組控制算法的主線是,先做賽道類(lèi)型判斷,用棒棒法計(jì)算出該類(lèi)型賽道上的基準(zhǔn)速度,再用PD算法進(jìn)行適當(dāng)調(diào)整。4.2.1轉(zhuǎn)向控制轉(zhuǎn)向控制采用棒棒法、PD法相結(jié)合的方式。首先根據(jù)當(dāng)前黑線偏移的角度情況及前一段變化的歷史情況,計(jì)算出當(dāng)前轉(zhuǎn)向P項(xiàng)系數(shù)的值,共分直道、小S彎/大圓弧、大S彎、長(zhǎng)直道入彎四種類(lèi)型,之后再根據(jù)黑線偏移角度的變化情況加入微分控制項(xiàng)。達(dá)到了很好的控制效果。(1)比例控制位置控制中的比例控制采用了分段比例控制,位置較小時(shí)與位置較大時(shí)設(shè)置不同的比例帶,原因是傳感器寬度有限,檢測(cè)的位置范圍也就有限,統(tǒng)一的比例帶過(guò)大會(huì)導(dǎo)致小車(chē)振蕩,過(guò)小導(dǎo)致最大控制量偏小,小車(chē)轉(zhuǎn)向不足,過(guò)彎時(shí)沖出賽道。使用分段比例控制既方便又可以解決以上兩種問(wèn)題。(2)微分控制傳感器輸出模擬量的情況下檢測(cè)的位置連續(xù)性較好,因此不再需要不完全微分的PD控制,用一般形式的位置微分控制即可達(dá)到很好的效果。由于比例帶過(guò)小造成小車(chē)振蕩時(shí),適當(dāng)增加微分控制;振蕩頻率較高時(shí)則應(yīng)該減小微分控制,因?yàn)榇藭r(shí)D控制量過(guò)大。此外,加大微分控制可以避免小車(chē)的速度影響舵機(jī)在拐彎處的拐角,使小車(chē)穩(wěn)定性和跟隨性變好,防止沖出賽道。4.2.2車(chē)速控制車(chē)速控制亦采用棒棒法、PD法相結(jié)合的方式。首先根據(jù)當(dāng)前黑線偏移的角度情況及前一段變化的歷史情況,計(jì)算出當(dāng)前速度的基準(zhǔn)值,共分短直道、長(zhǎng)直道、小S彎/大圓弧、大S彎、入大S彎、長(zhǎng)直道入彎六種類(lèi)型,之后再在基準(zhǔn)速度的基礎(chǔ)上根據(jù)黑線偏移角度的變化情況加入微分控制項(xiàng)。達(dá)到了很好的控制效果。4.3程序框架由于本方案在不同的賽道情況下,采樣周期會(huì)有所變化。而電磁車(chē)又限于傳感器寬度,這樣算法周期過(guò)長(zhǎng)的情況下會(huì)導(dǎo)致丟線,這是致命的。因此本方案采用固定的算法周期,并且盡量的縮短算法周期。4.4比賽方案選擇為適應(yīng)比賽規(guī)則及賽道情況,制定了多個(gè)比賽方案,利用按鍵開(kāi)關(guān)進(jìn)行方案選擇。方案一:高速算法,采用在實(shí)驗(yàn)室測(cè)得的在賽道難度不高時(shí)成功率較高的控制策略。方案二:中速算法,考略到某種意外情況導(dǎo)致賽車(chē)方案一不成功則采用降低一檔速度的策略。方案三:低速算法,針對(duì)“如果智能車(chē)第二圈沖出賽道,繼續(xù)比賽只能再跑一圈”的比賽規(guī)則,設(shè)定了在賽道較難的情況下的控制策略。另外還設(shè)計(jì)了對(duì)以上方案中的速度進(jìn)行微調(diào)、取消起跑線識(shí)別等輔助參數(shù)設(shè)定。第五章開(kāi)發(fā)工具與調(diào)試過(guò)程開(kāi)發(fā)工具與調(diào)試過(guò)程5.1開(kāi)發(fā)工具程序開(kāi)放在IAREmbeddedWorkbenchIDE下進(jìn)行,EmbeddedWorkbenchforARM是IARSystems公司為ARM微處理器開(kāi)發(fā)的一個(gè)集成開(kāi)發(fā)環(huán)境(下面簡(jiǎn)稱IAREWARM)。比較其他的ARM開(kāi)發(fā)環(huán)境,IAREWARM具有入門(mén)容易、使用方便和代碼緊湊等特點(diǎn)。EWARM中包含一個(gè)全軟件的模擬程序(simulator)。用戶不需要任何硬件支持就可以模擬各種ARM內(nèi)核、外部設(shè)備甚至中斷的軟件運(yùn)行環(huán)境。從中可以了解和評(píng)估IAREWARM的功能和使用方法。5.2上位機(jī)顯示LabVIEW是一種程序開(kāi)發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開(kāi)發(fā)的,類(lèi)似于C和BASIC開(kāi)發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語(yǔ)言的顯著區(qū)別是:其他計(jì)算機(jī)語(yǔ)言都是采用基于文本的語(yǔ)言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語(yǔ)言G編寫(xiě)程序,產(chǎn)生的程序是框圖的形式。LabVIEW
提供很多外觀與傳統(tǒng)儀器(如示波器、萬(wàn)用表)類(lèi)似的控件,可用來(lái)便地創(chuàng)建用戶界面。用戶界面在LabVIEW
中被稱為前面板。使用圖標(biāo)和連線,可以通過(guò)編程對(duì)前面板上的對(duì)象進(jìn)行控制。這就是圖形化源代碼,又稱G代碼。LabVIEW
的圖形化源代碼在某種程度上類(lèi)似于流程圖,因此又被稱作程序框圖碼。在本項(xiàng)目中使用LABVIEW編寫(xiě)上位機(jī)界面,通過(guò)上位機(jī)可以方便觀測(cè)指定變量,以波形顯示,直觀明了。同時(shí)可以實(shí)時(shí)對(duì)車(chē)模下達(dá)指令或者修改參數(shù)。此外,通過(guò)藍(lán)牙模塊與電腦或手機(jī)相連便于調(diào)試和參數(shù)的整定。圖5.2藍(lán)牙模塊圖5.3算法仿真直接在單片機(jī)上運(yùn)行算法具有以下幾個(gè)缺點(diǎn):可視性差、浪費(fèi)大量時(shí)間在程序下載上。使用MATLAB可以進(jìn)行方便的仿真和計(jì)算,參數(shù)整定也可以使用MATLAB的相關(guān)函數(shù)進(jìn)行計(jì)算。使用MATLAB方便的繪圖能力,通過(guò)串口回傳數(shù)據(jù),并在MATLAB上進(jìn)行繪圖,觀測(cè)信號(hào)的質(zhì)量和變化規(guī)律。MATLAB是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。5.4電路仿真Multisim是美國(guó)國(guó)家儀器(NI)有限公司推出的以Windows為基礎(chǔ)的仿真工具,適用于板級(jí)的模擬/數(shù)字電路板的設(shè)計(jì)工作。它包含了電路原理圖的圖形輸入、電路硬件描述語(yǔ)言輸入方式,具有豐富的仿真分析能力。Tina
Pro是一款EDA軟件,用于模擬及數(shù)字電路的仿真分析。具有交直流分析、瞬態(tài)分析、正弦穩(wěn)態(tài)分析、傅立葉分析、可以繪制零、極點(diǎn)圖、相量圖等等,功能強(qiáng)大,類(lèi)似的還有軟件如multisim,ORCAD的Pspice,采用的模型為標(biāo)準(zhǔn)的Pspice。比multisim更接近于實(shí)際。圖5.5TINA圖因?yàn)樵趯?shí)際設(shè)計(jì)中,電路設(shè)計(jì)相對(duì)復(fù)雜繁瑣,特別在設(shè)計(jì)前期,對(duì)電路需進(jìn)行大量的焊接和試驗(yàn),如果沒(méi)有仿真,手動(dòng)焊接并測(cè)試將是一件工作量非常大的事,考慮到時(shí)間和設(shè)計(jì)要求,必要的仿真能帶來(lái)很大的便捷,也能提供一定的參數(shù)參考和創(chuàng)新基礎(chǔ)。從中收獲不少。5.5制作調(diào)試過(guò)程本次比賽的準(zhǔn)備工作從2012年12月份開(kāi)始,制作調(diào)試持續(xù)了8個(gè)月之久,為了保證順利完成比賽任務(wù),工作主要分為一下幾個(gè)階段:第一階段:在寒假期間搜集、整理資料,包括購(gòu)買(mǎi)競(jìng)賽指導(dǎo)用書(shū)、關(guān)注大賽網(wǎng)站信息及智能車(chē)論壇中智能車(chē)的相關(guān)介紹等,并分工閱讀,做好詳盡筆記。第二階段:本學(xué)期開(kāi)學(xué)后,制作智能車(chē)的基本模塊,包括電源模塊、尋跡和測(cè)速傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、舵機(jī)控制模塊等,完成外圍電路的PCB制板。購(gòu)買(mǎi)車(chē)模后,對(duì)智能車(chē)進(jìn)行安裝,加載各模塊后編寫(xiě)程序整體調(diào)試,對(duì)各種尋跡和測(cè)速傳感器方案測(cè)試比較,以實(shí)現(xiàn)各種資源優(yōu)化配置。第三階段:暑假期間研究大賽的最新規(guī)則,制定多個(gè)比賽方案;按大賽要求制作較為規(guī)范的賽道,繼續(xù)調(diào)試程序,以保證智能車(chē)在各種賽道上穩(wěn)定、快速行駛,以最好狀態(tài)參加華東賽區(qū)比賽。第四階段:根據(jù)分賽區(qū)比賽取得的經(jīng)驗(yàn)對(duì)智能車(chē)的硬件、軟件設(shè)計(jì)做出調(diào)整,以求在總決賽中取得好成績(jī)。5.6現(xiàn)場(chǎng)調(diào)試由于長(zhǎng)期在自行設(shè)計(jì)的賽道上調(diào)試智能車(chē),因此與現(xiàn)場(chǎng)賽道摩擦力大小有區(qū)別,這就帶了參數(shù)不適應(yīng)等隱患,嚴(yán)重可能導(dǎo)致智能車(chē)無(wú)法順利完成比賽,為此,有必要設(shè)計(jì)一套可以現(xiàn)場(chǎng)調(diào)試工具。在基本程序完成之后還需要在現(xiàn)場(chǎng)對(duì)程序進(jìn)行微調(diào)。所以系統(tǒng)設(shè)計(jì)了按鍵和顯示屏等模塊,便于現(xiàn)場(chǎng)調(diào)試。此外,使用液晶顯示各個(gè)電感的電壓數(shù)值,方便臨時(shí)通過(guò)主板上設(shè)置的可調(diào)電位器對(duì)信號(hào)采集后放大倍數(shù)的調(diào)整。圖5.6液晶屏模塊圖第六章總結(jié)總結(jié)6.1模型車(chē)的主要技術(shù)參數(shù)說(shuō)明項(xiàng)目參數(shù)路徑檢測(cè)方法(賽題組)電磁車(chē)模幾何尺寸(長(zhǎng)、寬、高)(毫米)755、250、230車(chē)模軸距/輪距(毫米)200/140車(chē)模平均電流(勻速行駛)(毫安)1000電路電容總量(微法)1500傳感器種類(lèi)及個(gè)數(shù)電感3個(gè)光電編碼器一個(gè)新增加伺服電機(jī)個(gè)數(shù)無(wú)賽道信息檢測(cè)空間精度(毫米)20賽道信息檢測(cè)頻率(次/秒)200主要集成電路種類(lèi)/數(shù)量MK60DX256ZVLQ10最小系統(tǒng)板一塊系統(tǒng)控制主板一塊Mosfet電機(jī)驅(qū)動(dòng)電路一塊車(chē)模重量(帶有電池)(千克)0.95kg表6.1模型車(chē)的主要技術(shù)參數(shù)6.2現(xiàn)存問(wèn)題及改進(jìn)方向經(jīng)過(guò)幾個(gè)月時(shí)間的籌備,本組順利完成了智能車(chē)的設(shè)計(jì)與制作,實(shí)現(xiàn)了智能車(chē)的尋跡自動(dòng)行駛功能。在此過(guò)程中,完成了傳感器布置方案的比較和確定、測(cè)速傳感器的比較和確定、MCU外圍電路的設(shè)計(jì)、控制算法的編寫(xiě)、對(duì)直流電機(jī)以及舵機(jī)的PD控制等工作。由于知識(shí)水平和制作條件的限制,本組智能車(chē)還存在一些問(wèn)題。(1)采用機(jī)械隨動(dòng)式尋跡方案,總體造價(jià)高,系統(tǒng)壽命短,重心也偏高導(dǎo)致高速入彎有翻車(chē)的危險(xiǎn)。因此將來(lái)應(yīng)該繼續(xù)開(kāi)發(fā)降低重心方案。(2)在實(shí)際調(diào)試中發(fā)現(xiàn)同一型號(hào)的不同電池,其效果差別較大。對(duì)所有電池的靜態(tài)性能和動(dòng)態(tài)響應(yīng)性能進(jìn)行測(cè)試,得出其放電曲線后從中挑選出放電穩(wěn)定、動(dòng)態(tài)響應(yīng)等綜合性能較好的使用,成效顯著。但是由于時(shí)間倉(cāng)促且資源有限,所作的測(cè)試只是簡(jiǎn)單初步的,將來(lái)應(yīng)該進(jìn)一步做實(shí)驗(yàn)深入測(cè)試,使供電能力得到提高。(3)在實(shí)際調(diào)試過(guò)程中還發(fā)現(xiàn),電機(jī)發(fā)熱后車(chē)模的運(yùn)行效果會(huì)下降很多,主要體現(xiàn)在加減速性能上。在同樣的賽道上跑完一圈,其他參數(shù)不變,電機(jī)發(fā)熱與不發(fā)熱兩種情況下有時(shí)會(huì)相差1S以上。電機(jī)使用時(shí)間久以后,性能也會(huì)類(lèi)似的下降。目前只能根據(jù)定性的分析來(lái)適時(shí)的對(duì)電機(jī)進(jìn)行更換或散熱,將來(lái)應(yīng)該做實(shí)驗(yàn)進(jìn)行定量的測(cè)試,用數(shù)據(jù)來(lái)指導(dǎo)方向。參考文獻(xiàn)[1]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M].北京.清華大學(xué)出版社.2004.[2]王曉明.電動(dòng)機(jī)的單片機(jī)控制[M].北京.北京航空航天大學(xué)出版社.2002.[3]臧杰.閻巖.汽車(chē)構(gòu)造[M].北京.機(jī)械工業(yè)出版社.2005.[4]安鵬.馬偉.S12單片機(jī)模塊應(yīng)用及程序調(diào)試[J].電子產(chǎn)品世界.2006.第211期.162-163.[5]童詩(shī)白.華成英.模擬電子技術(shù)基礎(chǔ)[M].北京.高等教育出版社.2000.[6]沈長(zhǎng)生.常用電子元器件使用一讀通[M].北京.人民郵電出版社.2004.[7]宗光華.機(jī)器人的創(chuàng)意設(shè)計(jì)與實(shí)踐[M].北京.北京航空航天大學(xué)出版社.2004.[8]張偉等.ProtelDXP高級(jí)應(yīng)用[M].北京.人民郵電出版社.2002.[9]張文春.汽車(chē)?yán)碚揫M].北京.機(jī)械工業(yè)出版社.2005.[10]金鐘夫.AVRATmega128單片機(jī)C程序設(shè)計(jì)與實(shí)踐[M]北京航空航天大學(xué)出版社.2010.[11]孫同景.十六位單片機(jī)原理及嵌入式開(kāi)發(fā)技術(shù)[M]機(jī)械工業(yè)出版社2008年.[12]佚名.基于STM32的雙輪機(jī)器人控制系統(tǒng)研究與設(shè)計(jì).[13]卓晴.電磁組智能車(chē)調(diào)試方案V2.0.[14]施頌椒.陳學(xué)中.杜秀華編著.現(xiàn)代控制理論(第二版)高等教育出版社2009年.附錄A附錄A程序源代碼主函數(shù)#include"include.h"http://函數(shù)聲明//voidInit_all(void);voiduart_int16_send(u16data);voiduart_picture_send(u16data0,u16data1,u16data2,u16data3,u16data4);//主函數(shù)//voidmain(void){DisableInterrupts;gpio_init(PORTD,8,GPO,0);Init_all();/*while(!(gpio_get(PORTA,0)));Dly_ms(100);while(gpio_get(PORTA,0));Dly_ms(100);while(!(gpio_get(PORTA,2)));Dly_ms(100);while(gpio_get(PORTA,2));Dly_ms(20000);Run_flag=1;*/EnableInterrupts;while(1){if(Stop_count>=3500){//Stop_count=3500;//Run_flag=300;}OutData[0]=Speed_count*100;OutData[1]=Speed_Pwm*100;OutData[2]=Center_e0_2;OutData[3]=Center_e;OutPut_Data();//uart_picture_send(Sensor0,Sensor1,0,Sensor2,0);Dly_ms(250);AD0=ADresult0*3.3/65535;AD1=ADresult1*3.3/65535;AD2=ADresult2*3.3/65535;Display8x16Str(0,0,"");LCD_P6x8Str_int(0,0,(int)(AD0*100));LCD_P6x8Str_int(50,0,ADresult0);Display8x16Str(2,0,"");LCD_P6x8Str_int(0,2,(int)(AD1*100));LCD_P6x8Str_int(50,2,ADresult1);Display8x16Str(4,0,"");LCD_P6x8Str_int(0,4,(int)(AD2*100));LCD_P6x8Str_int(50,4,ADresult2);Display8x16Str(6,0,"");LCD_P6x8Str_int(0,6,Stop_open);LCD_P6x8Str_int(50,6,Speed_count);}}//函數(shù)定義//voidInit_all(){Dly_ms(100);OledInit();//oled初始化Dly_ms(100);Stop_count=0;gpio_init(PORTB,10,GPI,1);gpio_init(PORTC,0,GPI,0);//電磁傳感器信號(hào)出發(fā)IO初始化gpio_init(PORTC,1,GPI,0);gpio_init(PORTC,2,GPI,0);gpio_init(PORTC,3,GPI,0);gpio_init(PORTE,3,GPO,1);//電磁傳感器AD采樣標(biāo)識(shí)信號(hào)gpio_init(PORTE,2,GPO,1);gpio_init(PORTE,1,GPO,1);gpio_init(PORTE,0,GPO,1);adc_init(ADC1,SE10);//電磁傳感器AD采樣端口初始化adc_init(ADC1,SE11);adc_init(ADC1,SE12);adc_init(ADC1,SE13);exti_init(PORTA,0,falling_up);//按鍵0中斷初始化exti_init(PORTA,1,falling_up);//按鍵1中斷初始化exti_init(PORTA,2,falling_up);//按鍵2中斷初始化exti_init(PORTA,3,falling_up);//按鍵3中斷初始化pit_init_ms(PIT0,1);//定時(shí)器初始化uart_init(UART5,9600);//串口初始化LocPIDInit();//位置式PID初始化FTM_PWM_init(FTM0,CH4,100,DUOJI_Center);//舵機(jī)PWM初始化IncPIDInit();//增量式PID初始化lptmr_counter_init(LPT0_ALT2,10000,2,LPT_Rising);//測(cè)速初始化lptmr_counter_clean();//清除計(jì)數(shù)器gpio_init(PORTA,10,GPO,0);//電機(jī)正轉(zhuǎn)FTM_PWM_init(FTM1,CH0,10000,0);}voiduart_int16_send(u16data){u8data_h=0,data_l=0;data_h=(data&0xff00)>>8;//16位得到高8位data_l=data&0x00ff;//16位得到低8位uart_putchar(UART5,data_h);//串口發(fā)送高8位uart_putchar(UART5,data_l);//串口發(fā)送低8位}voiduart_picture_send(u16data0,u16data1,u16data2,u16data3,u16data4){uart_putchar(UART5,0xff);uart_putchar(UART5,0xff);uart_int16_send(data0);uart_int16_send(data1);uart_int16_send(data2);uart_int16_send(data3);uart_int16_send(data4);}中斷函數(shù)//聲明//#defineN20#defineSignalCount1160#defineSignalCount2320#defineSensor_valve_max60000#defineSensor_valve_min5000u8PITCount=0,turn_flag=0,uphill_flag=0;u16SignalCount=0;u8coe[N]={1,2,3,4,5,6,7,8,9,10,11,12};u8sum_coe=1+2+3+4+5+6+7+8+9+10+11+12;u16ADresult_fil0[N],ADresult_fil1[N],ADresult_fil2[N],ADresult_fil3[N];floatCenter_fil[N];voidSensor_AD(void);u32ADresult_data_fil(u16vlue,u16data[]);//隊(duì)列濾波voidADuniform(void);//傳感器限幅與歸一化voidCenter_get(void);//提取中心線s32Uniformization_DuoJi(s32data_in);//舵機(jī)轉(zhuǎn)換voidClimbing(void);voidSpeed_get(void);s32Uniformization_DianJi(void);voidSpeed_set(void);//函數(shù)定義//voidPIT0_IRQHandler(void){PIT_Flag_Clear(PIT0);//清中斷標(biāo)志位if(PITCount==0){PITCount++;gpio_turn(PORTD,8);Sensor_AD();ADuniform();Center_get();}elseif(PITCount==1){Stop_count++;PITCount=0;gpio_turn(PORTD,8);Speed_get();FTM_PWM_Duty(FTM0,CH4,DUOJI_Center+Uniformization_DuoJi(LocPIDCalc(Center_e)));//if(Run_flag==1){Speed_Pwm=IncPIDCalc(Speed_count);Speed_Pwm=Uniformization_DianJi();if(uphill_flag==1)//坡道檢測(cè)Speed_Pwm=0;Speed_set();}elseif((Run_flag>1)&&(Run_flag<300)){gpio_init(PORTA,10,GPO,1);//電機(jī)反轉(zhuǎn)FTM_PWM_Duty(FTM1,CH0,30000);Run_flag++;}elseif(Run_flag==300){gpio_init(PORTA,10,GPO,0);FTM_PWM_Duty(FTM1,CH0,0);}}}PID控制函數(shù)//數(shù)據(jù)結(jié)構(gòu)typedefstructPID{floatSetPoint;//設(shè)定目標(biāo)DesiredValuefloatSumError;//誤差累計(jì)floatProportion;//比例常數(shù)ProportionalConstfloatIntegral;//積分常數(shù)IntegralConstfloatDerivative;//微分常數(shù)DerivativeConstfloatLastError;//Error[-1]floatPrevError;//Error[-2]}PID;staticPIDLocPID,IncPID;staticPID*sptr=&LocPID;staticPID*pointer=&IncPID;//位置式PID參數(shù)初始化voidLocPIDInit(void){sptr->SumError=0;sptr->LastError=0;//Err
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省峨眉山市二中2025屆物理高二第一學(xué)期期中復(fù)習(xí)檢測(cè)模擬試題含解析
- 2025屆名師名卷10 物理高二第一學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含解析
- 河南省安陽(yáng)市滑縣2025屆物理高一第一學(xué)期期末聯(lián)考模擬試題含解析
- 2025屆湖北省孝感市七校教學(xué)聯(lián)盟物理高一上期末監(jiān)測(cè)模擬試題含解析
- 2025屆四川省成都市棠湖中學(xué)高一物理第一學(xué)期期中經(jīng)典模擬試題含解析
- 2025屆宜賓市重點(diǎn)中學(xué)物理高三上期中質(zhì)量檢測(cè)模擬試題含解析
- 2025屆黑龍江省重點(diǎn)中學(xué)物理高三第一學(xué)期期中綜合測(cè)試模擬試題含解析
- 2025屆四川省眉山車(chē)城中學(xué)物理高三第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2025屆云南省普洱市景東彝族自治縣一中高二物理第一學(xué)期期中預(yù)測(cè)試題含解析
- 磁編碼器基礎(chǔ)知識(shí)單選題100道及答案解析
- 常見(jiàn)矩形管規(guī)格表
- 冷庫(kù)工程特點(diǎn)施工難點(diǎn)分析及對(duì)策
- Python-Django開(kāi)發(fā)實(shí)戰(zhàn)
- 小學(xué)道法小學(xué)道法1我們的好朋友--第一課時(shí)ppt課件
- 路由和波長(zhǎng)分配PPT課件
- 光伏組件開(kāi)路電壓測(cè)試記錄
- 配電箱安裝規(guī)范
- AP1000反應(yīng)堆結(jié)構(gòu)設(shè)計(jì)
- 中英文商務(wù)派遣函樣板
- 彎臂車(chē)床夾具設(shè)計(jì)說(shuō)明書(shū)
- 企業(yè)員工健康管理存在的問(wèn)題與解決途徑探討
評(píng)論
0/150
提交評(píng)論