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

正文內(nèi)容

基于飛思卡爾16位單片機(jī)電磁型智能小車的設(shè)計(jì)_畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2025-06-30 09:25本頁(yè)面

【導(dǎo)讀】本文是以飛思卡爾智能車競(jìng)賽為背景設(shè)計(jì)的一個(gè)智能小車運(yùn)行系統(tǒng)。本文著重闡述了道路信息的獲取,處理和識(shí)別過(guò)程,并設(shè)計(jì)出PID控制器,該系統(tǒng)通過(guò)光電傳感器獲取當(dāng)前道路信息,通過(guò)有效的數(shù)字圖像處理算法。對(duì)原始圖像進(jìn)行處理,對(duì)主要的有用信息進(jìn)行分析和提取。智能汽車賽事概況------------------------------------------------------1. 本課題的研究?jī)?nèi)容------------------------------------------------------2. 直立行走任務(wù)分解------------------------------------------------------3. 角速度傳感器-陀螺儀-----------------------------------------12. 智能車硬件設(shè)計(jì)-------------------------------------------------------16. 單片機(jī)最小系統(tǒng)-----------------------------------------------17

  

【正文】 MotorSpeedCount。 計(jì)算得到 g_nLeftMotorSpeedOut, g_nRightMotorSpeedOut。 由于速度控制子程序是每 100 毫秒才調(diào)用一次。所以程序并沒(méi)有直接更新 g_nLeftMotorSpeedOut , g_nRightMotorSpeedOut 的數(shù)值, 而是通過(guò)調(diào)用函數(shù) CalculateMotorSpeedOut()更新上面的數(shù)值。函數(shù) CalculateMotorSpeedOut()是每 5 毫秒被調(diào)用一次,所以程序是將速度控制的變化量平均到 20 次進(jìn)行更新。這樣可以降低速度控制對(duì)于車模直立控制的影響。 速度控制子程序代碼如下: void MotorSpeedAdjustCal(void) { int nLeftSpeed, nRightSpeed。 int nDeltaValue, nP, nI。 int nSpeed。 nLeftSpeed = (int)g_nLeftMotorSpeedCount。 nRightSpeed = (int)g_nRightMotorSpeedCount。 nSpeed = (nLeftSpeed + nRightSpeed) / 2。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 33 nDeltaValue = g_nMotorSpeedSet nSpeed。 nP = mult_r(nDeltaValue, MOTOR_SPEED_P_INT)。 nI = mult_r(nDeltaValue, MOTOR_SPEED_I_INT)。 g_nMotorOutSpeedOld = g_nMotorOutSpeedNew。 g_nMotorOutSpeedKeep = nI。 g_nMotorOutSpeedNew = (g_nMotorOutSpeedKeep 3) nP。 if(g_nMotorOutSpeedKeep MOTOR_OUT_MAX) g_nMotorOutSpeedKeep = MOTOR_OUT_MAX。 if(g_nMotorOutSpeedKeep MOTOR_OUT_MIN) g_nMotorOutSpeedKeep = MOTOR_OUT_MIN。 } void CalculateMotorOutSpeed(void) { int nValue。 nValue = g_nMotorOutSpeedNew g_nMotorOutSpeedOld。 nValue = nValue * (g_nCarMotionCount + 1) / (CAR_MOTION_PERIOD 1) + g_nMotorOutSpeedOld。 g_nLeftMotorOutSpeed = g_nRightMotorOutSpeed = nValue。 }。 程序 車模速度控制子程序 車模方向控制子程序 車模方向控制是通過(guò)比較車模兩個(gè)電感檢波電壓進(jìn)行的。這個(gè)調(diào)節(jié)函數(shù)調(diào)用周期為 5 毫秒。 以下算法中,采用了比例控制算法。 首先計(jì)算兩個(gè)電感電壓差除以兩個(gè)電感電壓之和所得到的比例。這個(gè)數(shù)值在 至 之間。然后再乘以一個(gè)比例系數(shù) CMA_P_MAX。 CMA_P_MAX 可以通過(guò)實(shí)驗(yàn)逐步確定一個(gè)合適的取值。 車模方向控制子程序代碼如下程序 的: void CarMagicAdjust(void) { int nP。 long lnDelta。 int nSigma。 lnDelta = g_nCarMagicRightAverage g_nCarMagicLeftAverage。 nSigma = (g_nCarMagicLeftAverage / 2) + (g_nCarMagicRightAverage / 2)。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 34 if(nSigma == 0) return。 nP = (int)(lnDelta * CMA_P_MAX / nSigma) / 2。 g_nMotorLeftRightDiff = nP。 } 程序 車模方向控制子程序 中斷服務(wù)程序 void TI1_OnInterrupt(void){ unsigned int nLeftMotorSpeed, nRightMotorSpeed。 g_nCarSpeedCount ++。 if(g_nCarSpeedCount = CAR_SPEED_PERIOD) { g_nCarSpeedCount = 0。 GetMotorSpeed(amp。nLeftMotorSpeed, amp。nRightMotorSpeed)。 ClearMotorSpeed()。 g_nLeftMotorSpeed = (int)nLeftMotorSpeed。 g_nRightMotorSpeed = (int)nRightMotorSpeed。 if(!MOTOR_LEFT_SPEED_POSITIVE) g_nLeftMotorSpeed = g_nLeftMotorSpeed。 if(!MOTOR_RIGHT_SPEED_POSITIVE) g_nRightMotorSpeed = g_nRightMotorSpeed。 g_lnCarLeftPosition += g_nLeftMotorSpeed。 g_lnCarRightPosition += g_nRightMotorSpeed。 g_nLeftMotorSpeedCount += g_nLeftMotorSpeed。 g_nRightMotorSpeedCount += g_nRightMotorSpeed。 } else if(g_nCarSpeedCount == 1) { ADC_Measure(0)。 } else if(g_nCarSpeedCount == 2) { CarVoltageGet()。 CarAngleAdjust()。 } else if(g_nCarSpeedCount == 3) { g_nCarMotionCount ++。 if(g_nCarMotionCount = CAR_MOTION_PERIOD) { g_nCarMotionCount = 0。 MotorSpeedAdjust()。 g_nLeftMotorSpeedCount = 0。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 35 g_nRightMotorSpeedCount = 0。 CalculateMotorLeftRightDiff()。 CalculateMotorOutSpeed()。 } else if(g_nCarSpeedCount == 4) { g_nCarMagicLeftAverage = (int)CV_MAGNETLEFT_VAL。 g_nCarMagicRightAverage = (int)CV_MAGNETRIGHT_VAL。 CarMagicAdjust()。 } 程序 中斷服務(wù)子程序 程序調(diào)試與參數(shù)整定 前面給出的算法程序存在很多參數(shù),雖然從理論 上可以對(duì)這些參數(shù)進(jìn)行優(yōu)化計(jì)算。但是由于受到車模模型精度的影響,計(jì)算所得到的參數(shù)也只能夠作為參考值 —— 調(diào)試的起始范圍。實(shí)際優(yōu)化參數(shù)需要通過(guò)一定的工程步驟最終確定,這個(gè)過(guò)程稱為參數(shù)整定。 以下為程序參數(shù)調(diào)試步驟: ( 1)電機(jī) PWM 輸出調(diào)試:程序給出兩個(gè)電機(jī)固定的 PWM 輸出。測(cè)試電機(jī)轉(zhuǎn)速以及轉(zhuǎn)向是否符合設(shè)定的要求。在此過(guò)程中,測(cè)試車模電機(jī)死區(qū)補(bǔ)償電壓數(shù)值: MOTOR_OUT_DEAD_VAL。 ( 2)陀螺儀和加速度計(jì)零偏調(diào)試:獲得這兩個(gè)傳感器零點(diǎn)的偏移量。保持車模直立靜止。讀取兩個(gè)傳感器 AD 轉(zhuǎn)換值,記錄下來(lái) ,作為后面程序中的零偏常量。 ( 3)測(cè)試車模直立判斷程序和跌倒判斷程序。此時(shí)禁止車模直立控制環(huán)節(jié),通過(guò)讀取加速度計(jì)的數(shù)值,判斷車模是否直立或者跌倒,通過(guò)外部的 LED 顯示結(jié)果。一般情況下,車模直立要求,車模傾角在正負(fù) 10 度之內(nèi),保持 2 秒鐘。車模跌倒判斷車模的傾角大于 45 度。 ( 4)車模直立控制調(diào)試:只啟動(dòng)車模直立控制,調(diào)整兩個(gè)控制參數(shù):傾角比例和角速度比例,使得車模能夠穩(wěn)定的直立。此時(shí)由于沒(méi)有速度控制,車??赡軙?huì)朝一個(gè)方向加速行駛??梢酝ㄟ^(guò)微調(diào)加速度計(jì)的零偏值,減小車模在直立的時(shí)候朝一個(gè)方向的加速度 。盡量控制車模靜止。 ( 5)車模速度控制調(diào)試: 啟動(dòng)車模的直立控制和速度控制,調(diào)節(jié)速度控制的 PI 參數(shù),使得車模能夠靜止穩(wěn)定在一個(gè)地點(diǎn)。然后再給定一個(gè)設(shè)定速度,車??梢苑€(wěn)定的前行或者后退。 ( 6) 車模方向控制調(diào)試:?jiǎn)?dòng)車模的直立控制、速度控制和方向控制。將車模放在電磁導(dǎo)引跑道上,車模可以穩(wěn)定在跑道上運(yùn)行。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 36 智能車機(jī)械設(shè)計(jì) 車模簡(jiǎn)化改裝 ( 1)去掉前輪及其支撐部件,去掉后輪懸掛緩沖支架拆卸后的情況如 圖 、 圖 。 圖 完整的 C 型車模底盤 圖 :簡(jiǎn)化后的 C 型車模底盤。 ( 2) 固定車模底盤與后輪支架 原有車模為了減輕后輪振動(dòng)對(duì)于車體的影響,后輪的支架與底盤之間采用了活動(dòng)連接方式。但是,為了保證車模直立車體穩(wěn)定性,需要將原有車模地盤與后輪支架固定在一起。最簡(jiǎn)便的方式就是可以使用熱熔膠在后輪支架與底盤之間的縫隙處進(jìn)行粘接。這樣后輪與車體之間形成一個(gè)剛體,便于進(jìn)行直立控制。圖 所示為熱熔膠粘接的位置。 圖 使用熱熔膠粘接后輪支架與底盤。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 37 ( 3) 去掉后輪,準(zhǔn)備安裝電機(jī)測(cè)速光碼盤 拆裝后輪可以使用原車模配備的十字套筒扳手。拆卸后 的車模如圖 所示。 圖 拆掉后輪之后的車模 傳感器安裝 車模中的傳感器包括有:速度傳感器,車模姿態(tài)傳感器(陀螺儀、加速度計(jì))以及電磁檢測(cè)感應(yīng)線圈。 速度傳感器安裝 速度傳感器是安裝在驅(qū)動(dòng)電機(jī)輸出軸上的光電碼盤以及相配合的光電對(duì)管。固定光電碼盤可以使用復(fù)合膠水,將光電碼盤的塑料軸與電機(jī)的輸出銅軸粘合。如圖 所示 圖 使用復(fù)合膠水將光電碼盤固定在電機(jī)輸出軸上 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 38 粘合碼盤之后,再固定檢測(cè)光電對(duì)管。此時(shí)可以使用熱熔膠將光電對(duì)管固定在后輪支架上固定光電對(duì)管,使得光電 碼盤在對(duì)管的中間縫隙中通過(guò)。如圖 所示。 圖 固定好碼盤和光電對(duì)管的后輪 由于電機(jī)在運(yùn)行過(guò)程中發(fā)熱,而且振動(dòng)大,碼盤的固定一定要使用熱穩(wěn)定性比較好復(fù)合膠水。測(cè)速傳感器固定完畢之后,便可以將后輪重新安裝在后輪的支架上。 電磁傳感器安裝 電磁傳感器為兩個(gè)工字型的 10 毫亨電感。為了能夠更好的檢測(cè)前面的道路,一般將這兩個(gè)工字型的電感盡可能的安裝在車模運(yùn)行前方較遠(yuǎn)的地方。由于車模是直立運(yùn)行,可以考慮如下的參考方案,如 。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 39 圖 電磁傳感器安裝支架示意圖 為了避免車模在通過(guò)十 字交叉線路口時(shí)受到的影響,在固定兩個(gè)電感線圈的時(shí)候,盡量保持這兩個(gè)線圈呈水平位置。 車模傾角傳感器 車模傾角傳感器包括陀螺儀和加速度計(jì)。它們都是表貼元器件,固定在電路板上。一般建議將這塊帶有陀螺儀和加速度計(jì)的電路板固定在整個(gè)車模中間質(zhì)心的位置。這樣可以最大程度減少車模運(yùn)行時(shí)前后振動(dòng)對(duì)于測(cè)量?jī)A角的干擾。 注意事項(xiàng) 由于車模直立運(yùn)行,在制作電路板的時(shí)候盡可能減少電路板的尺寸,一方面便于固定,另一方面可以減少車模的慣量。 固定電路板應(yīng)盡可能貼近車模的底盤,使其能夠穩(wěn)固。 為了避免車模運(yùn)行過(guò)程中傾 倒,摔壞車模及其上的電路板,在車模機(jī)械設(shè)計(jì)的時(shí)候,需要考慮在車模前后安裝有防撞支架或者緩沖物,一旦車模傾倒或者失控,防撞支架可以保護(hù)車模機(jī)械的安全性。 此外,也可以在防撞支架上安裝車模跌倒檢測(cè)開(kāi)關(guān),一旦車模傾倒,控制電路便立即停止運(yùn)行。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 40 結(jié)論 本文基于飛思卡爾 MC9S12XS128 為控制核心設(shè)計(jì)了以傳感器識(shí)別路線的智能車系統(tǒng),實(shí)現(xiàn)了智能小車按給定速度沿黑色引導(dǎo)線行走。 在小車的硬件設(shè)計(jì)部分,采取了模塊化的設(shè)計(jì),其組成部分為單片機(jī)最小系統(tǒng)、傾角傳感器電路、速度傳感器電路、電機(jī)驅(qū)動(dòng)電路、電磁線檢測(cè)電路。軟件部分的設(shè)計(jì)影響小車正常高速的穩(wěn)定運(yùn)行,主要包括單片機(jī)初始化模塊、車模運(yùn)行狀態(tài)檢測(cè)、電機(jī)輸出、車模運(yùn)行控制等。使得小車正常運(yùn)行的控制算法主要是舵機(jī)控制和小車速度控制,其中舵機(jī)通過(guò)控制輸出的 PWM 信號(hào)進(jìn)行開(kāi)環(huán)控制,采用 PID 控制調(diào)節(jié)速度。分段比例控制能使小車更好的通過(guò)彎道,更好的進(jìn)行加速減速,以提高小車的運(yùn)行狀態(tài)。 通過(guò)這次設(shè)計(jì)我更進(jìn)一步認(rèn)識(shí)到自動(dòng)控制的理論以及設(shè)計(jì),提高了我的理論水平和實(shí)踐能力,也使我認(rèn)識(shí)到只有通過(guò)不斷的探討改進(jìn)才能真正獲得能力上的提升,在失敗的時(shí)候如果不能克服困難、抵住壓力,那么任何設(shè)計(jì)都進(jìn) 毫無(wú)進(jìn)展。 由于時(shí)間的限制,仍有許多地方需要完善。對(duì)于那些不足之處還望老師多多包涵。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 41 附錄 程序代碼 void SetMotorVoltage(int nLeftVol,
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1