機械制造課程實踐(基于Matlab上位機的自動捕捉裝置)_第1頁
機械制造課程實踐(基于Matlab上位機的自動捕捉裝置)_第2頁
機械制造課程實踐(基于Matlab上位機的自動捕捉裝置)_第3頁
機械制造課程實踐(基于Matlab上位機的自動捕捉裝置)_第4頁
機械制造課程實踐(基于Matlab上位機的自動捕捉裝置)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

./《機械制造基礎(chǔ)》課程實踐報告機械工程學(xué)院機械電子工程XX班指導(dǎo)老師:XXX20XX11月18日目錄一.系統(tǒng)總體設(shè)計3〔一設(shè)計目標(biāo)及完成功能3〔二系統(tǒng)結(jié)構(gòu)設(shè)計3二.詳細(xì)設(shè)計4〔一人員任務(wù)分配4〔二各子功能設(shè)計5串口通信設(shè)計8微控制器電機控制設(shè)計9電路設(shè)計11三.使用說明11四.測試11模式二進行測試:12附件一:模式Ⅰ電腦端程序〔Matlab2014A版13附件二:模式Ⅱ電腦端程序〔Matlab2014A版16附件三:微處理器電機控制程序〔AT89C52RCKeil編譯19一.系統(tǒng)總體設(shè)計〔一設(shè)計目標(biāo)及完成功能設(shè)計搭建一個小型機電系統(tǒng)。由伺服電機、微處理器、無線圖傳模塊、藍(lán)牙模塊、圖像采集器、個人電腦組成。在不同模式下實現(xiàn)如下功能:模式一,運動跟蹤:在電腦端實時顯示視頻采集器的視頻信息。對圖簽采集器視野圍的物體運動進行捕捉??刂茍D像采集器對目標(biāo)進行跟蹤,使目標(biāo)保持在采集器視野中心。模式二,動態(tài)監(jiān)控:在電腦端實時顯示視頻采集器的視頻信息。在視頻瀏覽窗口,通過移動鼠標(biāo)控制采集器采樣角度?!捕到y(tǒng)結(jié)構(gòu)設(shè)計1.信息流設(shè)計計算機計算機單片機舵機視頻采集器無線圖傳藍(lán)牙圖圖SEQ圖\*ARABIC1系統(tǒng)信息流2.各部分功能設(shè)計:計算機:信息綜合處理。響應(yīng)用戶要求。接收無線圖像信號。顯示圖像信息。根據(jù)用戶不同要求和圖像信息計算控制數(shù)據(jù)。發(fā)送控制信號。藍(lán)牙模塊:數(shù)據(jù)傳輸。接收計算機控制信號。將收到信號發(fā)送給單片機。單片機:信息處理與控制。接收控制信息。處理接收信息。電平輸出,控制舵機運動。舵機:運動執(zhí)行。執(zhí)行控制命令,調(diào)整圖像采集器空間狀態(tài)。視頻采集器:采集視頻信號。采集器與舵機固定連接。將采集的信號傳送至無線圖傳模塊。無線圖傳模塊:傳送圖像信息。接收采樣信息。傳送采樣信息至電腦端。二.詳細(xì)設(shè)計〔一人員任務(wù)分配XXX:模式二電腦端程序編寫,項目報告匯總。XXX:微處理器串口程序編寫,幻燈片制作。XXX:模式一電腦端程序編寫、微處理器控制程序編寫,幻燈片制作。XXX:元件安裝、固定,小組討論記錄?!捕髯庸δ茉O(shè)計模式一一、概述通過采集一定時間差的兩幀圖像,然后將其做差運算,將所得數(shù)據(jù)處理之后便可知道視野中有無運動物體‘二、具體實現(xiàn)Step1:捕獲圖像主要函數(shù):getsnapshot<vid>圖像a圖像bStep2:將所得兩組數(shù)據(jù)作差Step3:二值化所得圖像,以便后續(xù)處理主要函數(shù):im2bwStep1:作差所得圖像step2:二值化所得圖像Step4:對數(shù)據(jù)處理后,求出移動區(qū)域圍及其質(zhì)心主要函數(shù):regionprops最終所得結(jié)果模式二任務(wù):在制定窗口處于激活狀態(tài)時,獲得鼠標(biāo)實時窗口坐標(biāo)。按照要求處理獲得坐標(biāo),生成發(fā)送數(shù)據(jù)。按要求發(fā)送生成數(shù)據(jù)至下一模塊。任務(wù)目的:支持實時控制監(jiān)視視角的功能,為后續(xù)控制伺服電機提供依據(jù)。環(huán)境:Matlab運行環(huán)境。實現(xiàn)原理: 任務(wù)1.創(chuàng)建Matlab下的窗口,獲得句柄。設(shè)置窗口大小及其他參數(shù)。綁定鼠標(biāo)移動事件,通過系統(tǒng)調(diào)用獲得鼠標(biāo)坐標(biāo)信息。任務(wù)2.將獲得的坐標(biāo)按比例縮放。任務(wù)3. 1.將處理后數(shù)據(jù),延時發(fā)送。詳細(xì):任務(wù)二中,最大輸出值20,按比例縮放。考慮參數(shù)的傳遞和系統(tǒng)性能,將坐標(biāo)計算部分放置在定時處理中。優(yōu)化用戶體驗,設(shè)置無效區(qū),在該區(qū)域的鼠標(biāo)坐標(biāo)無效,發(fā)送使電機停止的數(shù)據(jù)。延遲發(fā)送控制數(shù)據(jù),降低系統(tǒng)負(fù)荷。不能在鼠標(biāo)事件處理例程中進行延時操作。使用定時事件代替延時操作。設(shè)置窗口關(guān)閉事件例程,清理系統(tǒng)資源,增強健壯性。對更新速度快的鼠標(biāo)坐標(biāo)資源用定向傳送代替global聲明,降低切換開銷。鼠標(biāo)事件分為鼠標(biāo)移動事件,鼠標(biāo)點擊事件鼠標(biāo)移動事件:獲得鼠標(biāo)坐標(biāo)。使用‘UserData’屬性,定向傳送坐標(biāo)。鼠標(biāo)點擊事件:直接發(fā)送串口控制信號??紤]到使用頻率低,串口句柄由global標(biāo)識符導(dǎo)入。10.定時事件 a> 檢查坐標(biāo)信息。 b> 若信息有效,進行比例縮放。C> 若信息無效,進行置位。 d> 通過串口發(fā)送控制信息。11.窗口關(guān)閉事件 a> 獲取各資源句柄。 b> 清除各資源。C> 退出程序。圖SEQ圖\*ARABIC2模式二電腦端流程圖串口通信設(shè)計要實現(xiàn)在線控制單片機,就需要與單片機相互傳輸數(shù)據(jù)。這樣就會用到通信。實現(xiàn)數(shù)據(jù)傳遞給單片機有串行通信,并行通信等,并行通信傳輸速度快,串行通信速度較慢,但是相對并行通信其傳輸成本較低。我選擇使用串行通信實現(xiàn)數(shù)據(jù)傳輸,整體過程是:首先編寫接收數(shù)據(jù)程序,將程序下載至單片機部,使得單片機可以接收數(shù)據(jù),且接收到數(shù)據(jù)后執(zhí)行一個操作〔比如點亮一個LED燈,代表數(shù)據(jù)傳輸成功;然后通過串口助手,發(fā)送數(shù)據(jù)給單片機;觀察燈亮/滅。關(guān)于串口通信參數(shù)設(shè)置:串口通信必須要設(shè)置串口工作方式,設(shè)置哪個定時器產(chǎn)生波特率,設(shè)置定時器時鐘頻率、工作方式、初值,設(shè)置波特率是否翻倍。要實現(xiàn)數(shù)據(jù)的傳輸,就要保證發(fā)送端和接收端波特率一致,晶振頻率一致才不會出錯。關(guān)于數(shù)據(jù)接收程序:采用中斷程序來接收數(shù)據(jù),這樣做的好處在于單片機不用一直處于等待接收數(shù)據(jù)狀態(tài),直到串口有數(shù)據(jù)進入時,中斷執(zhí)行接收數(shù)據(jù)程序,將接收到的數(shù)據(jù)存儲于變量中。微控制器電機控制設(shè)計a.矩形波的產(chǎn)生1由功能需要可知,單片機要產(chǎn)生兩路占空比分別可調(diào)、周期為20ms的矩形波信號。通過分析,可將20ms分為三部分,如下圖所示,用單片機定時器依次得到三個時間片,并在合適的時間片中將對應(yīng)的I/O口〔P1^0,P1^1置相應(yīng)的電平即可。1Time2Time2舵機1舵機1P1^0:0Time3Time1Time3Time1舵機2P1^1舵機2P1^1:20ms20ms圖圖SEQ圖\*ARABIC3電機控制時序電平示意圖b.舵機速度控制為了實現(xiàn)向任意方向轉(zhuǎn)動,必須控制兩個舵機的速度大小,以合成任意方向的合速度。在相同的時間段,兩個矩形波占空比的增加量不同,則舵機轉(zhuǎn)動的角度也會不同。將時間段縮小后,在宏觀的連續(xù)時間上看,兩個舵機的轉(zhuǎn)動速度也會不同?;诖怂悸?設(shè)計算法,將從串口中得到的兩軸轉(zhuǎn)動速度量與上述增加量對應(yīng),便可實現(xiàn)上位機對轉(zhuǎn)動方向的控制?!沧⒁?在上述時間段占空比的最大增加量應(yīng)小于舵機全速轉(zhuǎn)動相同時間所對位置的占空比增量 3.激光及蜂鳴器的控制激光與蜂鳴器均由通訊協(xié)議中的第三個字節(jié)控制。激光:檢查每次接收的第三個字節(jié),當(dāng)為1時,使控制激光的單片機引腳置高電平,否則,置低電平。蜂鳴器:產(chǎn)生一定占空比和周期的矩形波,將此信號與接收數(shù)據(jù)的第三個字節(jié)求"與"運算,將結(jié)果對應(yīng)到控制蜂鳴器的端口。電路設(shè)計三.使用說明1.在matlab2014版環(huán)境下運行。 2.運行DNMV.m 3.根據(jù)界面提示使用。四.測試模式一進行測試:1.實現(xiàn)基本功能。2.響應(yīng)速度有待提高。模式二進行測試:1.反應(yīng)速度與用戶體驗度合理。2.圖像顯示流暢。附件一:模式Ⅰ電腦端程序〔Matlab2014A版clccloseallclearvidc51=serial<'COM3','BAUD',9600,'OutputBufferSize',3>;vid=videoinput<'winvideo',1>;triggerconfig<vid,'manual'>;start<vid>;h=strel<'disk',10>;pause<1>;data2=getsnapshot<vid>;timeout=5;fopen<c51>;whiletimeoutticdata1=getsnapshot<vid>;%??è?í???êy?Youtim=imabsdiff<data1,data2>;%á????à??BW=im2bw<outim,0.2>;BW=bwareaopen<BW,50>;BW=imclose<BW,h>;BW=int8<BW>;STATS=regionprops<BW,'BoundingBox','Centroid'>;tocimshow<data1>;holdonif~isempty<STATS>plot<STATS<1>.Centroid<:,1>,STATS<1>.Centroid<:,2>,'r*'>;rectangle<'Position',STATS<1>.BoundingBox,'LineWidth',2,'EdgeColor','b'>;writedate=int8<[001]>;fwrite<c51,writedate,'int8'>;endholdoffif~sum<BW>timeout=timeout-1;[a,b,c]=size<outim>;text<b/2,a/2,['\color{red}',num2str<timeout>],'FontSize',a/2,'HorizontalAlignment','center'>;writedate=int8<[000]>;fwrite<c51,writedate,'int8'>;pause<0.5>;elsetimeout=4;endtocdata2=getsnapshot<vid>;tocendfclose<c51>;flushdata<vid,'all'>;delete<vid>clearvid附件二:模式Ⅱ電腦端程序〔Matlab2014A版h=figure<'CloseRequestFcn',figure_close_handler,'WindowButtonMotionFcn',ButtonMotionFcn,'WindowButtonDownFcn',ButtonDown_handler>;holdon;globalII.p=[640480;...5050];pt=[00];I.s_port=serial<'COM3','BAUD',9600,'OutputBufferSize',3>;set<h,'UserData',pt>;xlim<[0I.p<1,1>]>;ylim<[0I.p<1,2>]>;axisij;winvideoinfo=imaqhwinfo<'winvideo'>;k=length<winvideoinfo.DeviceIDs>;fori=1:kusb_candidancy<i+1>={winvideoinfo.DeviceIDs{i}};endusbvid=videoinput<'winvideo',winvideoinfo.DeviceIDs{1},winvideoinfo.DeviceInfo<1>.SupportedFormats{7}>;usbvidRes=get<usbvid,'videoResolution'>;nBands=get<usbvid,'NumberOfBands'>;h_image=image<zeros<usbvidRes<2>,usbvidRes<1>,nBands>>;preview<usbvid,h_image>;globaltimer_1timer_1=timer<'Period',0.1,'BusyMode','queue','ExecutionMode','fixedRate'>;timer_1.TimerFcn={timer_handle,I,h};start<timer_1>;functiontimer_handle<~,~,I,h>globalP;pt=get<h,'UserData'>;if<<isempty<pt>>||<sqrt<<pt<1,1>-.5*I.p<1,1>>^2+<I.p<1,2>-pt<1,2>-.5*I.p<1,2>>^2><I.p<2,1>>>P=[00]elsex=pt<1,1>-.5*I.p<1,1>;y=<I.p<1,2>-pt<1,2>>-.5*I.p<1,2>;P=round<[xy]./15>endfunctionButtonMotionFcn<src,event>pt=get<gca,'CurrentPoint'>;set<src,'UserData',[pt<1,1>pt<1,2>]>;functionfigure_close_handler<src,event>tryglobalIglobaltimer_1;stop<timer_1>;delete<timer_1>;fcose<I.s_port>;delete<I.s_port>;catchdelete<gcf>;end附件三:微處理器電機控制程序〔AT89C52RCKeil編譯#include"STC89C5xRC.H"sbitpwm0=P1^0;sbitpwm1=P1^1;sbitlaser=P1^2;sbitbuzzer=P1^3;unsignedchardelay1h=0XFA;unsignedchardelay1l=0X9A;unsignedchardelay2h=0XFF;unsignedchardelay2l=0XFF;unsignedchardelay3h=0XBD;unsignedchardelay3l=0X66;intzkb0=1382;intzkb1=1382;charmark=1;signedcharA[3]={0,0,0};chari=0;bittick=0;bitbuzzer_mark=0;voidtimeINT<>{ TMOD=0X01; TH0=delay1h; TL0=delay1l; ET0=1; TR0=1;}//初始計數(shù)器、串口工作方式voidserialINT<void> //9600bps11.0592MHz{ PCON&=0x7F; //波特率不倍速 SCON=0x50; //8位數(shù)據(jù),可變波特率 AUXR&=0xBF; //定時器1時鐘為Fosc/12,即12T AUXR&=0xFE; //串口1選擇定時器1為波特率發(fā)生器 TMOD&=0x0F; //清除定時器1模式位 TMOD|=0x20; //設(shè)定定時器1為8位自動重裝方式 TL1=0xFD; //設(shè)定定時初值 TH1=0xFD; //設(shè)定定時器重裝值 ET1=0; //禁止定時器1中斷 ES=1; TR1=1; //啟動定時器1}voidtime1<>interrupt1{ switch<mark> { case1: if<zkb0==zkb1> { pwm0=0; pwm1=0; mark=3; TH0=delay3h; TL0=delay3l; } else { if<zkb0>zkb1> pwm1=0; else pwm0=0; mark=2; TH0=delay2h; TL0=delay2l; } buzzer=0; break; case2: if<zkb0>zkb1> pwm0=0; else pwm1=0; mark=3; TH0=delay3h; TL0=delay3l; break; case3: pwm0=1; pwm1=1; mark=1; TH0=delay1h; TL0=delay1l; tick=1; buzzer=buzzer_mark; break; default: break; }}//中斷接收數(shù)據(jù)存入數(shù)組A[i]voidreceive<void>interrupt4{ A[i]=SBUF; i++; if<i==3> { i=0; } if<A[2]> { laser=1; buzzer_mark=1; } else { laser=0; buzzer_mark=0; } RI=0;}voidmain<>{ intsysm=0; EA=1; timeINT<>; serialINT<>; laser=0; buzzer=0; while<1> { if<tick> { zkb0+=A[0]; if<zkb0>=1844> zkb0=1843; if<zkb0<=921> zkb0=922; if<zkb0>zkb1> { delay2h=<65536-<zkb0-zkb1>>/256; delay2l=<65536-<zkb0-zkb1>>%256; delay3h=<65536-<18432-zkb0>>/256; delay3l=<65536-<18432-zkb0>>%256; } elseif<zkb0==zkb1> { delay1h=<65536-zkb0>/256; delay1l=<65536-zkb0>%256; delay2h=0XFF; delay2l=0XFF; delay3h=<65536-<18432

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論