freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mc9s12xs128微控制器智能車的軟件設(shè)計(jì)-文庫(kù)吧資料

2025-06-29 17:18本頁(yè)面
  

【正文】 ,提前設(shè)定幾個(gè)檔位,可以在比賽中使用最合適的檔位;前瞻可以改用激光收發(fā)管來提高;在車速較慢的時(shí)候是用不到制動(dòng)的,但是如果前瞻大了,就能提高車速,提前減速了,可以通過零輸出,或是短時(shí)間翻轉(zhuǎn)電機(jī)來實(shí)現(xiàn)這一功能。第六章 設(shè)計(jì)總結(jié)通過該設(shè)計(jì)完成的智能循跡小車,能穩(wěn)定快速的行駛,完成比賽。I的作用是調(diào)和,使得誤差為0。對(duì)PID參數(shù)進(jìn)行微調(diào),直到滿足性能要求。如果需要設(shè)定,則與確定Kp的方法相同,取不振蕩時(shí)其值的30%。(3)確定微分時(shí)間常數(shù)Td。比例系數(shù)Kp確定之后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,然后再反過來,逐漸增大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的比例系數(shù)Kp,設(shè)定PID的比例系數(shù)Kp為當(dāng)前值的60%~70%。確定比例系數(shù)Kp時(shí),首先去掉PID的積分項(xiàng)和微分項(xiàng),可以令Ti=0、Td=0,使之成為純比例調(diào)節(jié)。數(shù)組內(nèi)容變量類型及范圍02數(shù)據(jù)包標(biāo)志‘CAR’char string34給定速度(以編碼器脈沖為單位)SetSpeedNint 020056實(shí)時(shí)速度(以編碼器脈沖為單位)RealSpeedNInt7小車狀態(tài)標(biāo)志char8小車?yán)塾?jì)接收數(shù)據(jù)次數(shù)RecevieTimerunsigned chart(續(xù))數(shù)組內(nèi)容變量類型及范圍910舵機(jī)轉(zhuǎn)角(以u(píng)s為單位)RudderOUTint 1000200011設(shè)定坐標(biāo)位置SetOriginchar 11011012黑線坐標(biāo)位置BkLnHistoryPosi[0]char 1101101317控制參數(shù)(0、6)格式為: 標(biāo)志+數(shù)據(jù)(參見下面具體說明)1829光電值A(chǔ)TDData[011]unsigned char array控制參數(shù)0代表速度Kp1代表速度Ti2代表速度Td3代表方向Kp4代表方向Ti5代表方向Td6代表小車運(yùn)行時(shí)間調(diào)試小車選擇無線模塊的依據(jù)是要接口簡(jiǎn)單,體積小適于車載,傳輸速率滿足需要、傳輸可靠,傳輸距離適中,: SZ05系列無線模塊對(duì)于采集到的數(shù)據(jù)可通過上位機(jī)的串口或USB口讀取,然后通過上位機(jī)軟件處理并顯示,: 無線模塊接口示意圖 通過無線數(shù)據(jù)收發(fā),可以實(shí)時(shí)控制和了解車模的各種狀態(tài),配合上位機(jī)(此處不詳述)來調(diào)整PID系數(shù)是非常方便的。(程序詳見附錄8) 無線傳輸小車的調(diào)試是必不可少的過程,調(diào)試過程中需要對(duì)小車運(yùn)行時(shí)的數(shù)據(jù)進(jìn)行分析和修改,以提高小車的行駛速度和穩(wěn)定性。具體的流程,: 增量式PID算法流程圖 使用PID控制算法,可以使得小車的環(huán)境適應(yīng)性增強(qiáng),不需要很詳細(xì)的調(diào)整每只管子對(duì)應(yīng)角度和速度的關(guān)系。 經(jīng)過考慮,最后決定系統(tǒng)采用增量型PID算法,來作為小車方向和速度的控制算法。前者積分項(xiàng)由于要累計(jì)所有原始偏差值,這就造成計(jì)算量過大,以及需要較多的存儲(chǔ)空間來存放這些數(shù)據(jù),這對(duì)MCU來說會(huì)造成資源緊張;后者則是把控制中的控制量以增量的形式給出,這種算法計(jì)算得到的是控制量的增量Δu,計(jì)算中的偏差e只需當(dāng)前及前兩個(gè)采樣時(shí)刻的,如公式(4),所以無需過多空間來儲(chǔ)存偏差,且計(jì)算量小。(t)表示給定值,e(t)表示偏差,u(t)表示計(jì)算得到的控制量,c(t)表示被控輸出?;谖⑻幚砥鞯腜ID控制器是數(shù)字PID控制。(程序詳見附錄7) PID控制算法為了提高控制性,車模采用了車速和方向的閉環(huán)控制,可看出MCU起到控制器的角色,它根據(jù)傳感器的檢測(cè)值和給定值的偏差,經(jīng)計(jì)算產(chǎn)生控制量,驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)去控制小車的行駛狀態(tài)。(程序詳見附錄6) 黑線坐標(biāo)計(jì)算 因?yàn)橛?2只光電管,且采用模擬量,所以每只管子對(duì)應(yīng)的權(quán)值可以設(shè)為L(zhǎng)EDPosition[12]={110,90,70,50,30,10,10,30,50,70,90,110},再設(shè)定一個(gè)最低值(對(duì)應(yīng)白線)LEDLowOutValue[12],和一個(gè)最高值(對(duì)應(yīng)黑線)LEDOutRange[12],以及根據(jù)具體場(chǎng)地來設(shè)定的閥值LEDGateValue[12]。當(dāng)當(dāng)前黑線個(gè)數(shù)大于前1次值,前1次值大于前2次值的時(shí)候,認(rèn)定為駛?cè)胝溃环粗疄轳偝稣馈?因此,當(dāng)檢測(cè)到黑線數(shù)大于3的時(shí)候,先判斷是否為窄道,否則就是十字線,車子保持方向和速度行駛。根據(jù)光電管每個(gè)相隔20㎜的一字排布,可以推斷出通過起始線時(shí)可能出現(xiàn)的狀態(tài),: 通過起始線時(shí)可能出現(xiàn)的狀態(tài) 再進(jìn)行建模和邊沿檢測(cè),可以看出不管狀態(tài)如何,都存在兩個(gè)下降沿和上升沿,因此,可以利用這一特性,輔助檢測(cè)黑管數(shù)目,就能很好的識(shí)別到起始線了。在判斷開關(guān)量的同時(shí),還要判斷上升和下降沿的次數(shù),用于識(shí)別起跑線。(程序詳見附錄5) 黑線識(shí)別 經(jīng)過濾波后的值,算作一次完整的采集過程,ATDData[12]保存了12只管子的AD值,通過根據(jù)每只管子的具體情況,來設(shè)置不同的動(dòng)態(tài)閥值LEDGateValue[12],來得到光電管的開關(guān)值LEDHistoryValue[5] ,LEDHistoryValue[0]表示當(dāng)前值,歷史值往后推移。(程序詳見附錄4) 路面信息采集根據(jù)硬件電路連接,有12只紅外收發(fā)管,軟件設(shè)計(jì)將其分為奇數(shù)和偶數(shù)兩組,交替工作,以減少臨近兩只管子間的干擾,因此設(shè)計(jì)了路面信息采集流程。舵機(jī)的工作頻率理論上是50Hz~300Hz,這里采用50Hz就可以了,電機(jī)的工作頻率可以使用10KHz,設(shè)計(jì)使用PWM通道級(jí)聯(lián),級(jí)聯(lián)02467通道,級(jí)聯(lián)后,PWMPWMPWMPWM7為對(duì)應(yīng)16位輸出通道。 Clock SA = Clock A / (2 * PWMSCLA) 公式(3)7. PWM Channel Period Registers (PWMPERx),PWM通道周期值設(shè)定寄存器。以Clock A為例,: Clock A預(yù)分頻選擇6. PWM Scale Register (PWMSCLx),分為PWMSCLA和PWMSCLB兩個(gè)8位寄存器,用于對(duì)Clock A和B再次分頻,得到Clock SA和SB。每個(gè)PWM通道有兩個(gè)時(shí)鐘源可以選擇,通道0、5可以選擇Clock A或Clock SA,通道7可以選擇Clock B或Clock SB。3. PWM Polarity Register (PWMPOL),極性選擇寄存器,當(dāng)PPOL[7:0]=1時(shí),先輸出高,再輸出低。2. PWM Control Register (PWMCTL),該寄存器的PWMCTL[7:4],是級(jí)聯(lián)使能控制,將8個(gè)8位通道07,級(jí)聯(lián)成4個(gè)16位通道(PWM0PWM2PWM4PWM67),以提升控制精度。(程序詳見附錄3) PWM PWM(PulseWidth Modulator)是脈沖寬度調(diào)制,可以用來控制舵機(jī)和電機(jī)。 這樣就可以確定模塊軟件的編寫了:采樣前放電,8bit精度;采用快速清除標(biāo)志位,禁止外部中斷;每次轉(zhuǎn)換序列為6,轉(zhuǎn)換數(shù)據(jù)右對(duì)齊,非FIFO,F(xiàn)reeze模式下繼續(xù)轉(zhuǎn)換;采樣時(shí)間為4個(gè)ATDCLK;啟用多通道轉(zhuǎn)換,起始通道為通道0。 根據(jù)硬件電路設(shè)計(jì),12只光電管分為偶數(shù)和奇數(shù)兩組,同時(shí),PJ6作為偶數(shù)組和PJ7作為奇數(shù)組的輸入控制,低電平點(diǎn)亮工作,使得兩組管子能夠交替工作,減小干擾。計(jì)算方式如公式(2):fATDCLK=fBUS*(PRS+1) 公式(2)5. ATD Control Register 5 (ATDCTL5),該寄存器的MULT和ATDCTL5[3:0](CD、CC、CB、CA)。4. ATD Control Register 4 (ATDCTL4),該寄存器的PRS[4:0],是AD時(shí)鐘預(yù)分頻設(shè)置控制位。當(dāng)DJM=0時(shí),左對(duì)齊;當(dāng)DJM=1時(shí),右對(duì)齊。2. ATD Control Register 2 (ATDCTL2),該寄存器的第6位(AFFC),是選擇是否使用ATD轉(zhuǎn)換完成標(biāo)志位快速清零,AD轉(zhuǎn)換結(jié)束標(biāo)志的清除方式有兩種:讀結(jié)果寄存器自動(dòng)清零和軟件中斷服務(wù)程序里手動(dòng)寫1清除。本文設(shè)計(jì)使用PIT0作為小車運(yùn)行時(shí)間的中斷定時(shí),周期為5ms;使用PIT1作為光電管采集路徑信息、ADC轉(zhuǎn)換和SCI無線數(shù)據(jù)發(fā)送的中斷定時(shí),周期為250us。7. PIT TimeOut Flag Register(PITTF),該寄存器為溢出標(biāo)志位,當(dāng)某一通道的8位計(jì)數(shù)器和16位計(jì)數(shù)器遞減到0時(shí),該位置1。置1時(shí),相應(yīng)通道使能。6. PIT Interrupt Enable Register(PITINTE),該寄存器為中斷使能寄存器,為不同的PIT通道中斷使能。當(dāng)設(shè)置為0時(shí),對(duì)應(yīng)通道選擇時(shí)基0;置1時(shí),對(duì)應(yīng)通道選擇時(shí)基1。5. PIT Multiplex Register(PITMUX),該寄存器對(duì)定時(shí)器通道的8位時(shí)基進(jìn)行選擇。4. PIT Load Register 0 to 3(PITLD03),該寄存器用于設(shè)置PIT模塊中的16位計(jì)數(shù)器初值,和8位計(jì)數(shù)器配合而成24位計(jì)數(shù)器。3. PIT Micro Timer Load Register 0 to 1 (PITMTLD01),該寄存器用于設(shè)置PIT模塊中的8位計(jì)數(shù)器初值,以實(shí)現(xiàn)24位的計(jì)數(shù)。2. PIT Channel Enable Register(PITCE),該寄存器用于對(duì)PIT模塊中的4個(gè)通道使能進(jìn)行設(shè)置。值得注意的是,設(shè)置PLL模塊后,需要兩個(gè)指令周期左右的時(shí)間,等待鎖相環(huán)穩(wěn)定后再啟用,才能初始化成功。5. CRG Flags Register (CRGFLG),改寄存器是CRG模塊的狀態(tài)位和標(biāo)志位,其中它的第三位LOCK,是IPLL當(dāng)前狀態(tài)標(biāo)志位,寫無效,為1時(shí)說明VCOCLK是在范圍內(nèi)的頻率。3. CRG Reference Divider Register (REFDV),該寄存器為IPLL提供更精確倍頻系數(shù)。如果為0,禁止,則fBUS=fOSC/2;如果為1,使能,則fBUS=fPLL/2。本節(jié)重點(diǎn)介紹下PLL、PIT、ADC和PWM模塊的初始化,因?yàn)檫@幾個(gè)模塊都是主要使用到的,其它模塊就不一一詳述了。 第五章 軟件設(shè)計(jì) 根據(jù)總體設(shè)計(jì)里的程序主體流程圖,可以將智能車的軟件設(shè)計(jì),主要分為:系統(tǒng)模塊初始化、路面信息和速度采集模塊、方向和速度控制模塊等。4. 方向和速度控制。3. 路面信息處理。2. 路面信息和速度采集。 程序主體流程圖 下面介紹下軟件模塊的功能:1. 系統(tǒng)模塊初始化。只有確定了具體硬件,才能設(shè)計(jì)出相應(yīng)的軟件。5. MCU控制模塊,將各個(gè)模塊所采集到的信息進(jìn)行處理,通過相應(yīng)控制算法,得出控制策略,從而保證車模的正常行駛。3. 舵機(jī)驅(qū)動(dòng)模塊,通過MCU直接輸出相應(yīng)的PWM給舵機(jī),使其旋轉(zhuǎn)相應(yīng)角度。各個(gè)模塊的具體功能流程圖,: 硬件模塊功能流程圖下面介紹下硬件模塊的功能:1. 傳感器采集模塊,使用12只光電收發(fā)一體管,每只間隔20㎜,用于對(duì)路面信息的采集,將實(shí)時(shí)路況反饋給MCU控制模塊處理。 通過仔細(xì)的了解規(guī)則,才能準(zhǔn)確的設(shè)計(jì)出符合要求的系統(tǒng)。3. 傳感器。2. 車模。十字交叉線、窄道(第五屆無)、15176。第四章 總體設(shè)計(jì) 競(jìng)賽分為:光電組、攝像頭組、電磁組,因?yàn)樗械脑O(shè)計(jì)均要求在規(guī)則范圍內(nèi)實(shí)現(xiàn),且本文主要介紹光電組智能車的軟件設(shè)計(jì),所以就只介紹光電組相關(guān)的規(guī)則和要求:1. 賽道。在重點(diǎn)代碼完成時(shí),最好加上相應(yīng)注釋,不僅方便自己查找和修改BUG,也能為隊(duì)友的學(xué)習(xí)和改進(jìn)提供幫助。 規(guī)范化代碼 整個(gè)程序也許不是一個(gè)人就能完成的,因此,保持良好的代碼格式很有必要。 C語(yǔ)言主要用來構(gòu)建整個(gè)程序的框架[9],充實(shí)各個(gè)函數(shù),而匯編語(yǔ)言用到的地方相對(duì)來說就要少很多,主要是用在單片機(jī)的軟件復(fù)位和傳感器的信號(hào)采集等,比如攝像頭的采集,如果用C語(yǔ)言的循環(huán)結(jié)構(gòu)來寫的話,可能會(huì)出現(xiàn)采集到的信號(hào)不完整,或是完全采集不到信號(hào)的情況,這是因?yàn)槠鋱?zhí)行效率不夠高、速度不夠快的原因,在很短的周期內(nèi),根本執(zhí)行不完所有的代碼。RealTime Debugger 編程語(yǔ)言 CodeWarrior目前支持C、C++和匯編語(yǔ)言,可以根據(jù)自己的喜好來選擇。它還能顯示程序各個(gè)變量的值和標(biāo)志位,以及匯編代碼、內(nèi)存地址數(shù)據(jù),是整個(gè)調(diào)試工具的界面。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1