基于H8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于H8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于H8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于H8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于H8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于h8-3048單片機(jī)的智能車驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)摘要 本系統(tǒng)以日本瑞薩科技公司開發(fā)的h8-3048微控制器為控制核心。介紹了智能車的數(shù)據(jù)采集、路徑識(shí)別、電機(jī)速度測算、控制的基本原理。通過對(duì)定時(shí)器、中斷、io端口理論的深刻理解,實(shí)現(xiàn)了智能車路徑數(shù)據(jù)的紅外采集、電機(jī)以及舵機(jī)的程序驅(qū)動(dòng)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)設(shè)計(jì)方案可行。關(guān)鍵詞: h8-3048;智能循跡;電機(jī)驅(qū)動(dòng);紅外傳感器abstract the system ,to h8-3048 microcontroller as the core of control which developed by renesas technology corpora

2、tion in japan. introduce the basic principle of data acquisition 、path recognition、the estimated and control of motor speed with the smart car.through the deep understanding of theory with timer 、interrupt 、io ports , realized infrared collection of the paths data and the drive of the motor and the

3、servo. the experimental results shows that the system design is feasible.key words h8-3048; intelligent tracking; motor driver; infrared sensor目錄1.前言 42.系統(tǒng)硬件部分 5 2.1總體硬件方案設(shè)計(jì) 5 2.1.1 硬件選型 52.2 總體硬件設(shè)計(jì)框圖 52.3 傳感器板模塊 62.3.1 傳感器器件的選型原則 62.3.2 路徑識(shí)別原理 62.4 閘門傳感器模塊 72.5 速度編碼盤模塊 82.5.1 方案選擇 92.5.2 速度編碼盤原理及速度

4、計(jì)算 102.6 驅(qū)動(dòng)電機(jī)原理 112.6.1 電機(jī)速度控制的原理 112.6.2 電機(jī)正反轉(zhuǎn)、制動(dòng)的原理 122.7 伺服機(jī)的控制原理 122.8 智能車的規(guī)格參數(shù) 13 2.9 系統(tǒng)硬件部分總結(jié) 133.軟件設(shè)計(jì)部分 143.1 軟件環(huán)境選型 143.2 程序引導(dǎo)部分 143.3 路徑識(shí)別的數(shù)據(jù)采集驅(qū)動(dòng)部分 143.4 閘門傳感器的程序 153.5 速度傳感器程序及設(shè)置 153.5.1 設(shè)計(jì)中斷函數(shù) 153.5.2 速度計(jì)算 163.6 電機(jī)與伺服機(jī)的驅(qū)動(dòng)設(shè)計(jì) 173.6.1 設(shè)置pwm 模式 173.6.2 左電機(jī)速度設(shè)置 193.6.3 右電機(jī)速度設(shè)置 193.6.4 伺服電機(jī)轉(zhuǎn)角控制

5、 203.7 定時(shí)器驅(qū)動(dòng)設(shè)計(jì) 203.7.1 寄存器設(shè)置 20 3.7.2 中斷函數(shù)設(shè)計(jì) 214.結(jié)論 224.1 解決的問題 224.2 改進(jìn)方向 22致謝 23參考文獻(xiàn) 241.前 言智能車的研究是一個(gè)時(shí)下非常熱門的話題,應(yīng)用前景也是非常的廣闊。智能車研究的成功能夠有效避免不必要的交通擁擠、減少交通意外。而智能車多媒體體驗(yàn),包括車載多媒體系統(tǒng)、駕駛員信息系統(tǒng)、語音系統(tǒng)、智能交通系統(tǒng)(its)、車輛導(dǎo)航系統(tǒng)(gps/dgps等)、計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)、狀態(tài)監(jiān)側(cè)與故障診斷系統(tǒng)等則給駕駛者以方便與娛樂。本設(shè)計(jì)研究的范圍包括:智能小車的電機(jī)驅(qū)動(dòng)控制,其中有正向速度控制,反向速度控制,左右馬達(dá)的差速控制;

6、智能小車的舵機(jī)轉(zhuǎn)向控制,其中包括,左轉(zhuǎn)向、右轉(zhuǎn)向;前排傳感器的驅(qū)動(dòng)以及數(shù)據(jù)采集;智能車的速度傳感器的硬件設(shè)計(jì)以及軟件驅(qū)動(dòng)設(shè)計(jì);采用在硬件開始的初始化部分,利用匯編指令引導(dǎo)小車啟動(dòng),初始化硬件環(huán)境,然后立即進(jìn)入c語言編程環(huán)境。電機(jī)的驅(qū)動(dòng)電路使用的是h型全橋式電路,這種驅(qū)動(dòng)電路可以很方便實(shí)現(xiàn)直流電機(jī)的四象限運(yùn)行,分別對(duì)應(yīng)正轉(zhuǎn)、正轉(zhuǎn)制動(dòng)、反轉(zhuǎn)、反轉(zhuǎn)制動(dòng)。這種設(shè)計(jì)在入彎需要減速時(shí)非常實(shí)用,通過控制反轉(zhuǎn)制動(dòng)可以迅速把速度降低。同時(shí)常用的pwm(脈沖寬度調(diào)制)控制, 它基于的原理是,電機(jī)的轉(zhuǎn)速與電機(jī)兩端的電壓成比例,而電機(jī)兩端的電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成比例,占空比越大,電機(jī)轉(zhuǎn)

7、得越快,當(dāng)占空比1時(shí),電機(jī)轉(zhuǎn)速最大。舵機(jī)轉(zhuǎn)向控制方面,本質(zhì)上也是用的這個(gè)原理。 前排紅外傳感器數(shù)據(jù)采集與速度編碼盤的硬件原理,本質(zhì)上也是一樣的。通過紅外線的收發(fā)來完成數(shù)據(jù)采集。速度編碼盤則是紅外傳感器的一個(gè)巧妙應(yīng)用。小車速度的測定還需要軟件配合定時(shí)器定時(shí),以及外部中斷來計(jì)數(shù)算出一定時(shí)間內(nèi)的脈沖數(shù)最后根據(jù)小車輪子參數(shù)計(jì)算出小車的當(dāng)前速度。本課題主要解決了,智能小車電機(jī)以及伺服機(jī)的精確和靈活控制。賽道路徑數(shù)據(jù)的穩(wěn)定快速采集以及智能小車電機(jī)速度的有效精確測量。為智能小車實(shí)現(xiàn)pid的閉環(huán)控制、模糊控制等提供最有效、穩(wěn)定的平臺(tái)基礎(chǔ)。2.系統(tǒng)硬件部分2.1總體硬件方案設(shè)計(jì)作為一個(gè)完整的電器控制系統(tǒng),穩(wěn)定性

8、和可靠性是其最為重要的一個(gè)目標(biāo)之一。要使該系統(tǒng)達(dá)到穩(wěn)定、可靠最直接有效的是對(duì)系統(tǒng)進(jìn)行模塊化設(shè)計(jì)。用模塊化的方法把系統(tǒng)的主干構(gòu)建起來,避免不必要的細(xì)節(jié)影響整體的設(shè)計(jì)。硬件設(shè)計(jì)與器件選擇盡量簡單化,有利于快速有效地把握控制系統(tǒng)的復(fù)雜度。使系統(tǒng)性能處于最穩(wěn)定可靠的狀態(tài)。2.1.1 硬件選型mcu 選型:智能小車使用的微控制器為日本瑞薩科技公司開發(fā)的renesas h8/3048f-one底板: ry3048f-one電機(jī):采用mabuchi公司制造的rc-260ra18130 型號(hào)電機(jī)伺服機(jī):采用韓國hitec公司制造的hs-425bb型號(hào)伺服機(jī)紅外傳感器:發(fā)射采用tln119 接收則采用 s713

9、62.2 總體硬件設(shè)計(jì)框圖硬件部分主要包括:cpu主板模塊 、電機(jī)驅(qū)動(dòng)板模塊 、閘門傳感器模塊、傳感器板模塊。(如圖2.1)圖2.1 總體硬件設(shè)計(jì)圖2.3 傳感器板模塊2.3.1 傳感器器件的選型原則智能小車系統(tǒng)包括最主要的,數(shù)據(jù)采集、數(shù)據(jù)分析、控制輸出等部分。因此傳感器模塊作為系統(tǒng)的數(shù)據(jù)采集模塊其重要性不言而喻。其作用主要用來,識(shí)別賽道上的黑白標(biāo)識(shí)線以實(shí)現(xiàn)路況的判斷,給控制模塊的判斷作出重要依據(jù)??梢孕蜗蟮乇扔鳛槿说奈骞佟B窂阶R(shí)別方案最常用的是但ccd傳感器以及光電傳感器兩種,ccd的優(yōu)點(diǎn)是可以更遠(yuǎn)更早地感知賽道的變化,但ccd 傳感器的價(jià)格、體積和使用方式上并不占優(yōu)勢。光電傳感器體積小、價(jià)

10、格低廉、安裝靈活方便且不易受可見光的干擾,因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中本系統(tǒng)考慮使用8個(gè)紅外傳感器路徑檢測元件是一種實(shí)用有效的方法。2.3.2 路徑識(shí)別原理路徑識(shí)別主要是通過賽道上黑線對(duì)紅外線的吸收,白線對(duì)紅外線的發(fā)射來實(shí)現(xiàn)的。工作原理如圖2.2圖 2.2 路徑識(shí)別原理圖紅外反射式光電傳感器由一個(gè)發(fā)射管和一個(gè)接收管組成, 相應(yīng)于不同的路面條件(主要是反射程度), 接收管接收到地面漫反射紅外線后其兩端電壓將有所不同。其電壓大小與路面情況有關(guān):當(dāng)路面的顏色為白色時(shí),反射光較強(qiáng), 電壓較高;當(dāng)路面的顏色為黑色時(shí),反射光較弱, 電壓較低。然后通過ad/da轉(zhuǎn)換器變成數(shù)字信號(hào),便能夠通過程

11、序來判斷賽道的路況。原理如圖2.3圖2.3 傳感器電路圖光電傳感器使用過程中要注意幾個(gè)問題。首先, 要提高器件的一致性:一是發(fā)射/接收器件兩者的波長特性一致;二是發(fā)射/接收傳感器組對(duì)時(shí), 各方面性能應(yīng)盡量比較接近;三是安裝狀態(tài)一致, 如各對(duì)傳感器的間距、高低、偏角等, 因?yàn)檫@些因素都會(huì)影響光的反射和接收。其次, 光電傳感器應(yīng)盡量靠近地面, 以便減少外界光源對(duì)傳感器的干擾。垂直高度為5-10mm為宜, 離地面過遠(yuǎn), 光反射信號(hào)差, 信號(hào)不強(qiáng);離地面過近, 會(huì)導(dǎo)致反射角度太大, 加劇光漫射干擾的影響, 故應(yīng)適當(dāng), 以保證傳感器具有最佳的反應(yīng)。2.4 閘門傳感器模塊閘門傳感器模塊,主要是用來識(shí)別比賽

12、時(shí)檔在智能小車前面的閘門。該模塊的原理和路徑識(shí)別用的紅外傳感原理相同。原理如圖2.4圖 2.4 閘門傳感器原理圖閘門在比賽之前是關(guān)閉的,在智能小車前端放置和路徑識(shí)別一樣的紅外傳感器就能判別閘門的開閉狀態(tài)。當(dāng)閘門處于關(guān)閉狀態(tài)時(shí)有:檢測到反射、閘門處于關(guān)閉、小車等待當(dāng)閘門處于打開狀態(tài)時(shí)有:沒有檢測到反射、閘門處于打開、小車出發(fā)其中閘門傳感器的電路原理如圖2.5圖 2.5 閘門傳感器電路原理圖2.5 速度編碼盤模塊為了配合進(jìn)行pid的閉環(huán)控制,所以必須要制作一個(gè)能用于測量智能小車后輪左右電機(jī)轉(zhuǎn)速的裝置。2.5.1 方案選擇由于要測的是電機(jī)的速度考慮到要把速度編碼盤裝置安裝在后輪電機(jī)附近,因此應(yīng)該考慮

13、使用體積小、重量輕、抗干擾能力強(qiáng)的速度編碼器。照目前,智能小車方面來看最常用的方案有:1.光電型速度編碼器 2.霍爾型速度編碼盤 。而光電型又可以分為,光電傳感器型和光電編碼器型。光電傳感器,常用在后輪左右驅(qū)動(dòng)齒輪表面上貼上黑白間隔的彩帶,然后將反射型光電傳感器安裝在齒輪附近,當(dāng)黑白彩帶交替通過時(shí),產(chǎn)生一系列電脈沖,然后通過定時(shí)器計(jì)算時(shí)間和在中斷函數(shù)里面記錄到的脈沖數(shù)算出電機(jī)的轉(zhuǎn)速。也可以對(duì)齒輪打孔,采用直射型光電傳感器,通過間斷接受到的紅外光,產(chǎn)生電脈沖信號(hào),然后通過定時(shí)器計(jì)算時(shí)間和在中斷函數(shù)里面記錄到的脈沖數(shù)算出電機(jī)的轉(zhuǎn)速。優(yōu)點(diǎn)是,體積小,重量輕,不增加后輪負(fù)載,反射型方案對(duì)原有器件不需要

14、再加工且不會(huì)受到電機(jī)的電磁干擾。不足,是后輪安裝位置較小不易于安裝且精度會(huì)受到光電管體積的限制光電編碼器,通過直接購買光電編碼器安裝在主驅(qū)動(dòng)齒輪上,通過齒輪傳過來的轉(zhuǎn)動(dòng)信息以及通過定時(shí)器計(jì)算時(shí)間和在中斷函數(shù)里面記錄到的脈沖數(shù)算出電機(jī)的轉(zhuǎn)速。優(yōu)點(diǎn)是,獲取信息準(zhǔn)確,精度高,搭建容易。但同樣不足的是光電編碼器體積較大難以安裝到后輪的相應(yīng)位置上,且會(huì)增加后輪負(fù)載?;魻栃退俣染幋a盤,通過在左右后輪驅(qū)動(dòng)齒輪處打孔,將幾塊很小的稀土磁鋼鑲在里面,然后將霍爾元件安裝在附近,通過檢測磁場變化,可以得到電脈沖信號(hào)。然后通過定時(shí)器計(jì)算時(shí)間和在中斷函數(shù)里面記錄到的脈沖數(shù)算出電機(jī)的轉(zhuǎn)速。優(yōu)點(diǎn)是,得到的數(shù)據(jù)準(zhǔn)確、體積小、

15、重量輕而且不會(huì)增加后輪的負(fù)載。但因?yàn)榫幋a盤要安裝在靠近后輪左右電機(jī)的地方因此很容易受到電磁干擾的影響而且對(duì)齒輪打孔很容易會(huì)損壞齒輪。綜合以上3種方案,首先考慮到穩(wěn)定性應(yīng)該排在首位,首先可以排除霍爾型速度編碼方案,而且后輪的齒輪是塑料質(zhì)地打孔很容易會(huì)將齒輪損壞。同理可以排除光電編碼器,還因?yàn)槭忻嫔虾茈y買到體積較小的光電編碼器。因此,最終選定了發(fā)射型光電傳感器方案,精度方面雖然不能盡如人意但由于比賽對(duì)速度參數(shù)的精度要求不是很高,因此該方案是最適合的一種方案。2.5.2 速度編碼盤原理及速度計(jì)算反射型光電傳感器檢測速度的原理和檢測賽道黑白線時(shí)的原理是一樣的。當(dāng)黑色環(huán)經(jīng)過經(jīng)過傳感器時(shí)不反射紅外線,當(dāng)白

16、色環(huán)經(jīng)過時(shí)反射紅外線。當(dāng)圓盤隨著齒輪轉(zhuǎn)動(dòng)時(shí),光電管接收到的反射光強(qiáng)弱交替變化,由此可以得到一系列高低電脈沖,然后通過設(shè)置io口的中斷方式為下降沿或者上升沿觸發(fā)。同時(shí)捕捉光電管輸出的電脈沖的上升沿和下降沿。通過累計(jì)一定時(shí)間內(nèi)的脈沖數(shù),或者記錄相鄰脈沖的間隔時(shí)間,可以得到和速度等價(jià)的參數(shù)值。電路原理如圖2.6:圖2.6 光電型速度傳感器電路原理圖在后輪上粘貼的自制12等分紙質(zhì)圓盤如圖2.7圖2.7 自制12等分紙質(zhì)圓盤當(dāng)紙質(zhì)圓盤的黑色環(huán)部分經(jīng)過反射式紅外傳感器時(shí)因?yàn)楹谏环瓷浼t外線,npn-photo相當(dāng)于開路圖2.6的1中為高電平通過74c14反相器后將得到低電平。而當(dāng)紙質(zhì)圓盤的白色環(huán)部分經(jīng)過反

17、射式紅外傳感器時(shí)因?yàn)榘咨瓷浼t外線,npn-photo相當(dāng)于通路,圖2.6的1和”接地”處于等勢體因此為低電平,經(jīng)過74c14反相后得到高電平。因此,總的來說當(dāng)紙質(zhì)圓盤的黑色環(huán)經(jīng)過時(shí)mcu的io口會(huì)得到低電平,白色環(huán)經(jīng)過時(shí)則得到高電平。在高低電平之間就會(huì)產(chǎn)生上升沿或者下降沿,通過該原理我們?cè)O(shè)置io口為上升沿觸發(fā)或者下降沿觸發(fā),就能在中斷函數(shù)里面來計(jì)算脈沖數(shù)。已知:后輪直徑為d mm ,上升沿或者下降沿一圈n個(gè),因此兩個(gè)脈沖之間為n等分的周長,兩個(gè)脈沖之間間隔的時(shí)間設(shè)為t。因此速度v為:公式 2.1 電機(jī)轉(zhuǎn)速計(jì)算公式由公式可以知道黑白間隔的條紋數(shù)越多,兩個(gè)脈沖之間的間隔越短而速度檢測的分辨率就越

18、高。而條紋增多后,相鄰脈沖間的持續(xù)時(shí)間會(huì)變短,脈沖檢測的可靠性會(huì)因相鄰脈沖的干擾而受到影響,權(quán)衡速度檢測分辨率和可靠性兩方面,根據(jù)實(shí)驗(yàn)檢測的效果我們采用12 等分的圓盤。2.6 驅(qū)動(dòng)電機(jī)原理電機(jī)的驅(qū)動(dòng)是由驅(qū)動(dòng)板來驅(qū)動(dòng)的。原因是來自微控制器的信號(hào)一般都比較微弱無法正常驅(qū)動(dòng)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止等。于是,就需要電機(jī)驅(qū)動(dòng)板把信號(hào)加強(qiáng)后再去控制電機(jī)的行為。2.6.1 電機(jī)速度控制的原理對(duì)于電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)以及停止可以很容易的通過電壓來控制實(shí)現(xiàn)。例如,正轉(zhuǎn)我們可以給電機(jī)一個(gè)正向電壓,反轉(zhuǎn)我們可以給電機(jī)一個(gè)反向的電壓,停止則可以不提供電壓。但是,在智能小車比賽里面我們還有一個(gè)需求那就是控制電機(jī)速度的快慢。

19、這就需要利用pwm原理來實(shí)現(xiàn)了。pwm(pulse width modulation)控制技術(shù)就是對(duì)脈沖的寬度進(jìn)行調(diào)制的技術(shù),即通過對(duì)一系列脈沖的寬度進(jìn)行調(diào)制,來等效的獲得所需要的波形(含形狀和幅值);面積等效原理是pwm技術(shù)的重要基礎(chǔ)理論;如圖2.8所示圖 2.8 脈沖寬度調(diào)制的原理圖從中可以看到,工作的比例為duty = on width/(on width + off width)公式 2.2 工作比例公式如果電壓在這個(gè)周期都持續(xù)在工作脈沖狀態(tài),那么工作比例為100%,相反則為0% 。因此電壓的等效值就等于輸入等于乘以工作比例。于是在理論上就可以得到-u到u之間的如何電壓。其中u為輸入電

20、壓。這就是pwm 脈沖寬度調(diào)制的優(yōu)勢所在。2.6.2 電機(jī)正反轉(zhuǎn)、制動(dòng)的原理電機(jī)的正反轉(zhuǎn)、制動(dòng)的關(guān)鍵利用的是h橋芯片來實(shí)現(xiàn)的。如圖 2.9圖 2.9 h橋?qū)崿F(xiàn)電機(jī)正反轉(zhuǎn)、制動(dòng)原理圖2.7 伺服機(jī)的控制原理伺服機(jī)的控制類似與電機(jī)的控制,同樣是常用了pwm 脈沖寬度調(diào)制的原理。不過稍有不同的是這里控制的是角度,所以得通過機(jī)械傳動(dòng)設(shè)備轉(zhuǎn)換成角度輸出。原理如圖 2.10圖 2.10 轉(zhuǎn)動(dòng)角度與脈沖關(guān)系圖2.8 智能車的規(guī)格參數(shù)a)車重:1.5kg 長:384mm 寬:185mm 高:47mm b)傳感器種類:反射式紅外光電傳感器 數(shù)目:8個(gè)c)舵機(jī)個(gè)數(shù):1個(gè)d)電機(jī)個(gè)數(shù):2個(gè)e)前后輪直徑:53 mm

21、2.9 系統(tǒng)硬件部分總結(jié)本設(shè)計(jì)中的各個(gè)硬件模塊的設(shè)計(jì)為智能車的軟件開發(fā)、控制算法的設(shè)計(jì)、給智能車行駛的穩(wěn)定性和可靠性提供了堅(jiān)實(shí)的平臺(tái)基礎(chǔ),各個(gè)功能模塊的調(diào)試與功能實(shí)現(xiàn)都符合大賽相關(guān)規(guī)定。3.軟件設(shè)計(jì)部分3.1 軟件環(huán)境選型源程序編譯環(huán)境:選用的是瑞薩科技公司的集成開發(fā)環(huán)境(high-performance embedded workshop)falsh 芯片燒寫軟件:選用的是組委會(huì)提供的cpuwriter程序的串口調(diào)試程序:選用的是windows下的tera term pro程序3.2 程序引導(dǎo)部分首先,設(shè)置中斷向量表。然后設(shè)置程序的跳轉(zhuǎn)直接跳轉(zhuǎn)到c語言程序的main函數(shù)里面。程序如下rese

22、t_start: mov.l #hffff10,er7 ; 設(shè)置堆棧 jsr _main ; 跳轉(zhuǎn)到c語言的main()函數(shù)3.3 路徑識(shí)別的數(shù)據(jù)采集驅(qū)動(dòng)部分因?yàn)榍芭艂鞲衅魍ㄟ^傳感器子板反相后接到了mcu的port 7端口因此要設(shè)置相關(guān)參數(shù)。如port 7的輸入輸出方向,因?yàn)閜ort 7只是作為簡單的輸入io口使用,因此沒有數(shù)據(jù)方向寄存器所以不用設(shè)置。為了讀取port 7的數(shù)據(jù)寄存器方便,因此對(duì)其進(jìn)行宏定義如下:#define p7dr (*(volatile unsigned char*)0xfffce)使用的時(shí)候直接可以用p7dr來代替port 7的數(shù)據(jù)寄存器。由于,傳感器板上led燈的排

23、列方向和數(shù)據(jù)表示的高低位方向剛好相反 。為了處理習(xí)慣的方便必須把順序轉(zhuǎn)換正常。使用如下的轉(zhuǎn)換:in 作為輸入的8位值 ,ret 作為返回的最終結(jié)果。for( i = 0; i = 1; /* 返回值右移1位 */ ret |= in & 0x80; /* 將in的最高位給ret */ in = 3;3.5 速度傳感器程序及設(shè)置3.5.1 設(shè)計(jì)中斷函數(shù)首先設(shè)計(jì)左右電機(jī)的中斷函數(shù):/*左馬達(dá)中斷計(jì)數(shù)*/#pragma interrupt( l_count )void l_count( void )isr &= 0xf7; /* 清除中斷服務(wù)寄存器的標(biāo)志位,允許下一個(gè)中斷進(jìn)入*/this_cnt_l

24、sec=cnt_lsec;cnt_lsec=0;/*右馬達(dá)中斷計(jì)數(shù)*/#pragma interrupt( r_count )void r_count( void )isr &= 0xfb; /*清除中斷服務(wù)寄存器的標(biāo)志位,允許下一個(gè)中斷進(jìn)入*/this_cnt_rsec=cnt_rsec;cnt_rsec=0;然后,設(shè)置中斷向量表讓mcu在中斷的上升沿或者下降沿到來時(shí)自動(dòng)調(diào)用左右電機(jī)的中斷函數(shù)。.import _l_count ;左馬達(dá)中斷.import _r_count ;右馬達(dá)中斷.data.l _r_count ; 14 h000038 外部中斷 irq2.data.l _l_coun

25、t ; 15 h00003c 外部中斷 irq3最后,設(shè)置中斷的申請(qǐng)方式iscr = 0x0c; /*觸發(fā)方式,上升沿*/ier |= 0x0c; /*開中斷*/3.5.2 速度計(jì)算右電機(jī)轉(zhuǎn)動(dòng)速度獲取函數(shù):/*賦值rspeed*/int getrspeed()if(this_cnt_rsec) rtemp=(d*pi*0.125)/(this_cnt_rsec*0.2);/以0.2ms為步進(jìn) if(rtemp5)rspeed=rtemp; return 1;左電機(jī)速度獲取函數(shù):/*賦值lspeed*/int getlspeed()if(this_cnt_lsec) ltemp=(d*pi*0.

26、125)/(this_cnt_lsec*0.2); /以0.2ms為步進(jìn) if(ltemp= 0 ) pbdr &= 0xfb; /*設(shè)置轉(zhuǎn)動(dòng)方向?yàn)檎D(zhuǎn)*/ itu3_brb = (unsigned int)(speed_max * accele_l / 100); /* */ else pbdr |= 0x04; /*設(shè)置轉(zhuǎn)動(dòng)方向?yàn)榉崔D(zhuǎn)*/ accele_l = -accele_l; itu3_brb = (unsigned int)(speed_max * accele_l / 100);3.6.3 右電機(jī)速度設(shè)置:/* right motor */if( accele_r = 0 ) p

27、bdr &= 0xf7; /*設(shè)置轉(zhuǎn)動(dòng)方向?yàn)檎D(zhuǎn)*/ itu4_bra = (unsigned int)(speed_max * accele_r / 100); else pbdr |= 0x08; /*設(shè)置轉(zhuǎn)動(dòng)方向?yàn)榉崔D(zhuǎn)*/ accele_r = -accele_r; itu4_bra = (unsigned int)(speed_max * accele_r / 100); /* */ 3.6.4 伺服電機(jī)轉(zhuǎn)角控制void handle( float angle ) if(angle 42) angle = 42; else if(angle 40.69 ns, 0x21-81.38 n

28、s, 0x22-162.76 ns 0x23-325.52 ns 本設(shè)計(jì)中用的是0x23itu0_gra用于設(shè)計(jì)計(jì)數(shù)值,以產(chǎn)生1ms的定時(shí)。在本設(shè)計(jì)中,有(1 10-3) (325.52 10-9) = 3071itu0_ier定時(shí)器使能,設(shè)置為itu0_ier = 0x01;itu_str用于控制內(nèi)部定時(shí)器單元0-4的計(jì)數(shù)開始與結(jié)束。bit 7 6 5 4 3 2 1 0 itu4 itu3 itu2 itu1 itu0 使用 使用 使用0 0 0 0 1 0 1 1因此有itu_str = 0x0b;程序設(shè)置如下:#define timer_cycle 3071itu0_tcr = 0x2

29、3;itu0_gra = timer_cycle;itu0_ier = 0x01;同樣道理,itu1的設(shè)置類似,程序設(shè)置如下:#define timer1_cycle 614itu1_tcr = 0x23;itu1_gra = timer1_cycle;itu1_ier = 0x01;3.7.2 中斷函數(shù)設(shè)計(jì)設(shè)計(jì)itu0的中斷函數(shù):#pragma interrupt( interrupt_timer0 ) void interrupt_timer0( void ) itu0_tsr &= 0xfe; /* 清標(biāo)志位 */ cnt0+; cnt1+; cnt2+; 設(shè)置中斷向量表:.data.l

30、 _interrupt_timer0 ; 24 h000060 itu0 imia0設(shè)計(jì)itu1的中斷函數(shù):#pragma interrupt( interrupt_timer1 ) void interrupt_timer1( void ) itu1_tsr &= 0xfe; /* clear the flag */ cnt_lsec+; cnt_rsec+; 設(shè)置中斷向量表:.data.l _interrupt_timer1 ; 28 h000070 itu1 imia1之后,只要內(nèi)部定時(shí)器單元每申請(qǐng)一次中斷就執(zhí)行一次該中斷函數(shù)。4.結(jié)論4.1 解決的問題本系統(tǒng)基于瑞薩科技的h8-3048

31、f-one mcu 實(shí)現(xiàn)了智能小車的快速、穩(wěn)定運(yùn)行。在基本功能上能進(jìn)行前向加速、減速以及后向的快速制動(dòng)。能夠檢測左直角彎、右直角彎、左變線區(qū)、右變線區(qū)以及閘門的開閉情況。能較好的適應(yīng)各種類型賽道,設(shè)計(jì)上具有較大的靈活性與通用性。在賽道信息的數(shù)據(jù)采集上主要是利用了紅外傳感的相關(guān)原理實(shí)現(xiàn)的??刂戚敵錾蟿t用了目前比較流行的pwm 脈沖寬度調(diào)制來完成,該方式的調(diào)制具有較好的適用性,有很好的控制優(yōu)勢。硬件以及驅(qū)動(dòng)的設(shè)計(jì)實(shí)現(xiàn)了基本的數(shù)據(jù)采集、閘門檢測、速度獲取、電機(jī)驅(qū)動(dòng)的速度控制以及伺服機(jī)的靈活轉(zhuǎn)向。設(shè)計(jì)具有簡單性、可靠與穩(wěn)定性,給智能小車的控制提供了最基礎(chǔ)、最穩(wěn)定可靠的平臺(tái)。4.2 改進(jìn)方向在速度測量方面,由于是自制的紙質(zhì)圓盤因此精度上還是稍欠不足。同時(shí),速度計(jì)算采用兩個(gè)相鄰脈沖之間的時(shí)間間隔來計(jì)算。當(dāng)小車速度較快時(shí)精度和準(zhǔn)確性就可能受到影響。而另一張測量方式則可以采用在相等時(shí)間段里計(jì)算脈沖數(shù)來算出電機(jī)的轉(zhuǎn)速,不足之處在于低速的時(shí)候,精度和準(zhǔn)確性不夠。因此,可以綜合之間的優(yōu)缺點(diǎn)。在高速的時(shí)候采用相等時(shí)間段里計(jì)算脈沖數(shù)的方法,低速時(shí)采

溫馨提示

  • 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)論