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

正文內(nèi)容

基于ccd智能車入庫(kù)與出庫(kù)系統(tǒng)的軟件設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-23 17:11 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 出黑線。 最終采用的自動(dòng)閾值的方案是方案四,剛開始做的時(shí)候沒有使用圖像邊緣檢測(cè),因?yàn)楦杏X圖像邊緣檢測(cè)編程序很麻煩,但是,一次次測(cè)試,最終方案四實(shí)驗(yàn)成功的時(shí)候,才發(fā)現(xiàn),這種方法很像是利用邊緣檢測(cè)確定出閾值,再根據(jù)閾值將圖像進(jìn)行二值化。但這種方法也有優(yōu)點(diǎn),就是編程較為簡(jiǎn)單。 濾波,濾掉無(wú)用的信號(hào),留下有用的信號(hào)。在圖像中,濾波完成的任務(wù)有去處噪點(diǎn),判斷提取的黑線是否是正確的黑線,判斷黑線的類型是直道,彎道還是圓弧。 由于攝像頭的制作工藝或者現(xiàn)場(chǎng)環(huán)境等的影響,攝像頭采集到的圖像會(huì)出現(xiàn)一些噪點(diǎn),在攝像頭的問題上,CCD攝像頭基本上沒有什么噪點(diǎn),那么,要處理的就剩下賽道上的噪點(diǎn)了,我們?cè)谔崛『诰€的時(shí)候,并不是所有的點(diǎn)全部使用,而是使用黑線左邊和黑線右邊的點(diǎn)共10個(gè)點(diǎn),這十個(gè)點(diǎn)就是用搜索的方法確定的。搜索算法流程圖如圖26所示:開始第一行圖像所有的點(diǎn)全部處理第二行圖像搜索的中心位置是第一行黑線的位置將上一行黑線中心位置加上上一行同上兩行的差值當(dāng)做當(dāng)前行要搜索圖像的中心位置搜索到黑線是否是否搜索到的黑線多于一個(gè)設(shè)置標(biāo)志位,在程序中進(jìn)行其它處理否是取離搜索位置最近的點(diǎn)當(dāng)做黑線的中心位置是確定黑線位置否結(jié)束圖26 搜索算法流程圖 按照?qǐng)D中方式確定要進(jìn)行搜索的區(qū)域,確定搜索區(qū)域之后首先按照上面閾值確定的方法確定出此行的閾值,然后用閾值對(duì)圖像進(jìn)行二值化,并求得黑線的中心位置。如果沒有找到黑線,則設(shè)置標(biāo)志位,在程序中進(jìn)行分類特殊處理。使用搜索的方法確定黑線的位置可以濾掉場(chǎng)地上的大部分干擾,并且程序的處理量小。 本系統(tǒng)是通過計(jì)算采集到的十字線的次數(shù)來(lái)計(jì)算小車所跑的圈數(shù),并對(duì)小車做精確出入庫(kù)定位做依據(jù)。攝像頭看到的十字線的情況如圖27所示:圖27 攝像頭看到的十字線的情況對(duì)于十字線的檢測(cè),網(wǎng)上流傳的方法主要有: (1)兩個(gè)上升沿法,即從左到右進(jìn)行檢測(cè),如果檢測(cè)到有兩次的灰度值增加較大,則認(rèn)為是十字線。 (2)在一定的范圍內(nèi)求出二值化圖像中黑點(diǎn)的總數(shù),當(dāng)總數(shù)在某個(gè)范圍內(nèi)的時(shí)候則認(rèn)為是十字線。 以上兩種方法都有道理,對(duì)于第一種方法,如果起跑線正好在圖中的位置的時(shí)候,當(dāng)然能檢測(cè)到,但是,如果起跑線稍微斜一點(diǎn),就不好檢測(cè)了;對(duì)于第二種方法,將某一個(gè)區(qū)域內(nèi)的所有的點(diǎn)統(tǒng)計(jì)一便,如果總數(shù)在某個(gè)范圍內(nèi)的時(shí)候則認(rèn)為是十字線,這種方法比較簡(jiǎn)便,所以我們采用這種方法檢測(cè)十字線。(1)舵機(jī)的基本控制方式如圖28所示:(x0,y0)(x2,y2)(x1,y1)圖28 舵機(jī)的基本控制方式 取黑線上的第一行的中心點(diǎn)(x0,y0),最后一點(diǎn)(x2,y2),3/4位置處取一點(diǎn)(x1,y1),則舵機(jī)的控制量為在程序中kp1,kp2和kp3是這樣定義的:define kp1 17;define kp2 150;define kp3 290,給舵機(jī)賦的值時(shí)pwm的占空比,這個(gè)值的范圍為從1010~1330。在程序中,計(jì)算出舵機(jī)的控制量之后,使用小車直線行駛時(shí)的舵機(jī)位置的占空比的值減去舵機(jī)的控制量當(dāng)做賦給舵機(jī)的值。 上面的計(jì)算控制量的方法是一種最簡(jiǎn)單的方法,kp1的值越大,則小車對(duì)線的跟隨性越好,但是如果太大了,會(huì)造車小車在直線上行駛的時(shí)候左右擺動(dòng)。kp3的值越大,小車在進(jìn)入彎道的時(shí)候會(huì)提前轉(zhuǎn)彎,kp3的值越大,提前的越多,但是不能提前太多,容易從內(nèi)道沖出。調(diào)節(jié)kp2的值可以使小車在走小S彎的時(shí)候基本上沿著直線行走。我們?cè)谶@種方法的基礎(chǔ)之上,做了一些改動(dòng)。 (2)在我們使用上述方法調(diào)試的時(shí)候,發(fā)現(xiàn)直道入彎的時(shí)候,小車提前轉(zhuǎn),造成了從內(nèi)道進(jìn)入彎道,由于車模轉(zhuǎn)向的問題,如果彎道的半徑太小,小車轉(zhuǎn)不過來(lái),會(huì)從外道沖出賽道。如圖29所示:圖29 為了解決圖中所示的問題,我們?cè)谛≤噺闹钡肋M(jìn)入彎道的時(shí)候,讓小車向反方向轉(zhuǎn)一下,使小車在入彎的時(shí)候從外道或者沿線入彎,這樣就保證了小車在出彎的時(shí)候能夠在賽道上。如圖30所示:圖30 方法有了,但是怎樣判斷小車是從直道進(jìn)入彎道呢?由于攝像頭的前瞻不夠高,在大S彎的時(shí)候,也會(huì)將賽道的某一部分當(dāng)做直線,這樣,如果還利用上面的策略,就會(huì)造成大S彎上來(lái)回?cái)[動(dòng)。為了區(qū)分大S和直道入彎,我們?cè)诔绦蛑屑恿艘粋€(gè)變量linecount,此變量記錄一段時(shí)間內(nèi)的直道連續(xù)出現(xiàn)的次數(shù),一旦進(jìn)入彎道,就將此變量清零。這樣,我們就可以根據(jù)linecount的大小來(lái)判斷是直線入彎還是大S彎。在程序中,當(dāng)linecount5時(shí),判斷為直道入彎。 (3)舵機(jī)的基本控制算法是一種帶有預(yù)測(cè)的算法,這也就造成了小車沿線的能力不好,如果賽道的圓弧的半徑太大,小車就會(huì)一直走內(nèi)道,有沖出賽道的危險(xiǎn),如圖31所示:圖31 為了防止這種情況發(fā)生,讓小車沿線嚴(yán)格一些,我們使用了圖像中的第28行對(duì)小車的轉(zhuǎn)向進(jìn)行了PD控制。 選取第28行的原因:這時(shí)從光電小車上找到的靈感,因?yàn)槲覀冊(cè)谡{(diào)試的時(shí)候發(fā)現(xiàn),攝像頭的小車轉(zhuǎn)彎的時(shí)候沒有光電的靈活,因此,我們就測(cè)量了光電小車的前瞻距離,然后將其移植到攝像頭的小車上,對(duì)應(yīng)的是圖像的第28行,所以,我們使用28行對(duì)舵機(jī)進(jìn)行PD控制。 電機(jī)的控制 (1)對(duì)電機(jī)的控制也就是對(duì)小車速度的控制,對(duì)小車速度的控制采用的是棒棒控制與PD控制相結(jié)合的方法:當(dāng)偏差較大的時(shí)候,采用棒棒控制,偏差較小的時(shí)候采用增量式PD控制進(jìn)行微調(diào),在調(diào)節(jié)PD參數(shù)的時(shí)候,允許有一定的超調(diào),小車會(huì)跑的更好。 (2)電機(jī)速度設(shè)定值的確定。 在程序初始化的時(shí)候,將設(shè)定速度的最大值與最小值,在程序中,根據(jù)道路的信息確定速度的控制量,然后用最大速度減去控制量當(dāng)做速度的設(shè)定值。具體的思想是這樣的:在直道上的時(shí)候,控制量較??;直道入彎的時(shí)候,由于直道上速度較高,所以要增大控制量,在入彎之前將速度降下來(lái);在彎道中,舵機(jī)轉(zhuǎn)到位之后,可以將速度稍微提高。 寫程序不可能一次都寫好,需要不斷地調(diào)試,不斷地完善,有一個(gè)好的程序的調(diào)試方法能夠使調(diào)試的過程事半功倍。將程序中需要用到的并且可能需要修改的常量利用宏定義引出。 例如,在智能車程序的編寫過程中,要用到攝像頭的中心位置,并且這個(gè)中心位置在程序中的許多地方都用到,并且當(dāng)硬件有偏差時(shí),還需要修改這個(gè)常數(shù)。這種情況下,就可以使用宏定義define Center 30定義完成后,在程序中要用到攝像頭中心位置的時(shí)候,使用Center代替,而不是用30。這樣當(dāng)要修改程序的時(shí)候,只需要修改一個(gè)地方就行了,簡(jiǎn)單并且不會(huì)出錯(cuò)。如果沒有宏定義,修改一個(gè)常量就要到程序的不同地方去找,很浪費(fèi)時(shí)間且容易出錯(cuò)。結(jié)束語(yǔ) 該CCD智能車系統(tǒng)以MC9S12XS128單片機(jī)為主控制器,運(yùn)用到了CCD攝像頭的圖像采集算法,高速AD轉(zhuǎn)換,圖像處理算法,舵機(jī)PD控制,LCD液晶顯示等知識(shí),通過本次設(shè)計(jì),使我對(duì)16位單片機(jī)的認(rèn)識(shí)和運(yùn)用能力又提升了一個(gè)新臺(tái)階,由于知識(shí)和能力有限,在小車的制作和調(diào)試過程中也遇到了不少問題,最終通過從各方面查閱資料,解決一個(gè)又一個(gè)問題,這個(gè)過程使我感到無(wú)比的愉快和充實(shí)。 和往屆飛思卡爾CCD智能車相比,我這次的設(shè)計(jì)在技術(shù)上還有明顯的不如之處,例如在賽道類型的識(shí)別算法和閉環(huán)速度控制方面該系統(tǒng)都沒實(shí)現(xiàn),這也是我以后要努力學(xué)習(xí)的方向,通過這些我也認(rèn)識(shí)到了,對(duì)于一個(gè)綜合的控制系統(tǒng),它的技術(shù)核心在于控制算法,硬件只是基礎(chǔ),系統(tǒng)性能的好壞,主要取決于它的控制算法是否優(yōu)越,是否先進(jìn)。 由于知識(shí)水平有限該系統(tǒng)的設(shè)計(jì)和說明方面難免有不足和缺陷,敬請(qǐng)各位高手前輩,批評(píng)指教。參考文獻(xiàn)[1] 全國(guó)大學(xué)生飛思卡爾比賽論壇[2] 黃智偉 全國(guó)大學(xué)生電子設(shè)計(jì)大賽電路設(shè)計(jì)錦集【M】. 北京理工大學(xué)出版社 2009[3] 林曉飛,劉彬,張輝.基于Freescale 9s12十六位單片機(jī)應(yīng)用開發(fā)與實(shí)例教程[M].北京理工大學(xué)出版社2007[4] 高有堂 電子電路設(shè)計(jì)制板與仿真【M】.鄭州大學(xué)出版社[5] 吳岳. C語(yǔ)言程序設(shè)計(jì)大全[M].北京:清華大學(xué)出版社 2009[6] 竇振中.基于單片機(jī)的嵌入式系統(tǒng)工程設(shè)計(jì)[M].北京:中國(guó)電力出版社 2008[7] Motorola, Refrence Manual,.[8] Freescal Semiconductor, Device Guide ,2005.[9] RaulRojas:Omnidirectional Control,FreieUniversityBerlin,Technical Report B1003, 2003.附錄A 主要芯片模塊及數(shù)量序號(hào)器件名稱數(shù)量備注1CCD攝像頭1圖像采集2MC9S12XS128最小系統(tǒng)1主控制器3TLC55101高速AD轉(zhuǎn)換4LM29401電源穩(wěn)壓芯片5轉(zhuǎn)向舵機(jī)1方向控制6升壓模塊171小車電源8LCD液晶顯示1黑白背光液晶(5510)9LM18811視頻解碼10LM10851舵機(jī)+6V穩(wěn)壓供電11BTS7960B2電機(jī)驅(qū)動(dòng)1274LS2441信號(hào)隔離13飛思卡爾智能車模1骨架14直流電機(jī)1小車動(dòng)力源B MC9S12XS128單片機(jī)接口分配表單片機(jī)引腳名稱連接器件引腳名稱備注VCC+5V電源GND+5V地線PP774LS244的15引腳智能車反向行走信號(hào)PP274LS244的19引腳智能車正向行走信號(hào)PP3TLC5510的CLOCK引腳AD時(shí)鐘信號(hào)PP1舵機(jī)PWM控制輸出控制轉(zhuǎn)向PT2LM1881的場(chǎng)同步輸出捕捉場(chǎng)中斷信號(hào)PT6LM1881的行同步輸出捕捉行中斷信號(hào)PT7旋轉(zhuǎn)編碼器脈沖輸出測(cè)速PA0PA7TLC5510的并行信號(hào)輸出轉(zhuǎn)換完的數(shù)字信號(hào)輸出PB0LCD液晶屏的復(fù)位信號(hào)PB1LCD液晶屏的片選信號(hào)PB2LCD液晶屏的數(shù)據(jù)/命令選擇PB3LCD液晶屏的串行數(shù)據(jù)線PB4LCD液晶屏的時(shí)鐘信號(hào)PE4按鍵1PE3按鍵2PE2按鍵3C 智能車整車電路原理圖D USBDM 驅(qū)動(dòng)安裝示意圖:插入U(xiǎn)SB接口彈出如下窗口:點(diǎn)“是,僅這一次(Y)”出現(xiàn)下面對(duì)話框:點(diǎn)“否,暫時(shí)不”出現(xiàn)下面對(duì)話框:選“從列表或指定位置安裝(高級(jí))”點(diǎn)“下一步”出現(xiàn)下邊對(duì)話框:選擇“C:USBDmreLeasc20091118Drlver”點(diǎn)下一步:點(diǎn)“完成”即完成驅(qū)動(dòng)安裝。E 智能車程序源代碼:include /* mon defines and macros */include /* derivativespecific definitions */ /*使用模數(shù)轉(zhuǎn)換進(jìn)行圖像采集*//*由PWM3提供時(shí)鐘信號(hào) PT2捕捉場(chǎng)中斷 PT6捕捉行中斷 PB0輸出使能信號(hào) PROTA接收數(shù)據(jù)*/define lcd_rst PORTB_PB0 //復(fù)位信號(hào)線 define lcd_ce PORTB_PB1 //片選信號(hào)線define lcd_dc PORTB_PB2//數(shù)據(jù)/命令選擇define lcd_dat PORTB_PB3//串行數(shù)據(jù)線define lcd_sck PORTB_PB4 //時(shí)鐘信號(hào)線define LED_1 PORTE_PE5define LED_2 PORTE_PE6define K1 PORTE_PE4 //按鍵1define K2 PORTE_PE3 //按鍵2define K2 PORTE_PE2 //按鍵3define left_max 1010define right_max 1330define Angle_center 1170define MIN(a,b) ((a)(b)?(b):(a))define MAX(a,b) ((a)(b)?(a):(b))//全局變量//byte img[48][60]。 //存放圖像byte coord[48]=0。//黑線中心坐標(biāo)word n=0。byte ov=0。word m=0。byte flag=0。 //送液晶顯示標(biāo)志位byte page[6][60]。//送LCD顯示圖片byte field_over=0。 //二值化結(jié)束標(biāo)志位word pulse=0。 //旋轉(zhuǎn)編碼器脈沖數(shù)word pulsebuf=0。 //上次脈沖數(shù)byte value=40。//初設(shè)閾值byte error=0。//圖像采集錯(cuò)誤標(biāo)志byte dif=0。 //兩書的絕對(duì)值byte zero_num=0。byte zero=0。byte cross=0。//byte centre=30。//中心坐標(biāo)word Steer。//舵機(jī)控制量byte Speed=150。byte Kp=1。 //舵機(jī)分段PD控制比例參數(shù)byte Kp1=2。byte Kp2=3。b
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1