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

正文內(nèi)容

懸掛運動控制系統(tǒng)e題資料設(shè)計報告-wenkub

2023-04-10 00:05:55 本頁面
 

【正文】 機脈沖sbit Motor_Left_DIR=P1^1。測試結(jié)果表明,本設(shè)計很好地完成了題目基本部分和發(fā)揮部分的全部要求,速度快、精度高。解決辦法是根據(jù)力學(xué)分析采用機械的辦法保證繞線不重疊,并且使用半徑小的牽引線使繞線在橫向延伸的距離減少,從而減少誤差。作品使用了直接測量一段距離和步進個數(shù)再求平均值的辦法降低誤差。本作品以減小其半徑的辦法降低誤差。本系統(tǒng)使用的步進距離是5毫米,效果很好。0和0224。1和保持不變的傳感器信號是一定的,故對8個方向上的調(diào)整策略用一個靜態(tài)數(shù)組的形式保存起來,調(diào)整時直接查表即可,方便編程。由于只有8個運動方向,所以對Direct的運算需在模8的范圍內(nèi)(0~7)進行。如圖38,定義了物體循跡時運動的8個方向,圖中黑箭頭(1號方向上)表示物體當(dāng)前的循跡方向。各象限插補公式如下在實際操作中,可以以圓心為假設(shè)的坐標(biāo)原點,再根據(jù)上面的原理設(shè)計算法。(3)畫圓算法:畫圓算法采用圓弧插補法。由此可得第一象限直線逐點比較法插補的原理是:從直線的起點出發(fā),當(dāng)0時,沿+x軸方向走一步;當(dāng)0時,沿+y軸方向走一步;當(dāng)兩方向所走的步數(shù)與終點坐標(biāo)(,)相等時,發(fā)出終點到信號,停止插補。(2)直線算法: 目前畫直線的算法也算是有很多,比如:逐點比較直線插補,脈沖增量插補和數(shù)據(jù)采集插補,本設(shè)計根據(jù)實際所學(xué)知識,選擇了逐點比較直線插補法,具體如下:逐點比較法的基本原理是,在刀具按要求軌跡運動加工零件輪廓的過程中,不斷比較刀具與被加工零件輪廓之間的相對位置,并根據(jù)比較結(jié)果決定下一步的進給方向,使刀具向減小偏差的方向進給。由圖8 解得:      如圖8為物體在畫板某一位置,則有:  低電平驅(qū)動器無電流輸出,電機處于自由狀態(tài)?!預(yù)+,A端為電機A相,B+,B端為電機B相。圖34單片機電源電路(5)步進電機驅(qū)動電路本設(shè)計采用57BYG0074型步進電機和專用高細(xì)分步進電機驅(qū)動器SM60作為動力裝置。光電傳感器輸出電平后接反相器74LS04以穩(wěn)定電平和增大驅(qū)動能力??梢枣I入1—9的數(shù)字,即可以輸入點的坐標(biāo)值(X,Y),以及清除,確定,等功能按鍵。本設(shè)計使用方案2。方案2:采用軟件的方法確定物體位置。 方案1:在物體上安裝水平和垂直方向的兩只激光筆,在板邊緣每條坐標(biāo)線旁邊安裝一光電傳感器,物體坐標(biāo)所在處的傳感器接收到激光筆,即可確定物體位置。LCD有明顯的優(yōu)點:微功耗、尺寸小,超薄輕巧、顯示信息量大、字跡清晰、美觀、視覺舒適?;谏厦娴挠懻?,選用了抗干擾能力強的方案二。因為光敏電阻探測到黑線時,黑線上方的電阻值發(fā)生變化,經(jīng)過電壓比較器比較將信號送給單片機處理,從而控制物體做相應(yīng)的動作。 方案2:采用專用步進電機驅(qū)動器及與其配套的步進電機。普通直流電機由于其自身結(jié)構(gòu)的限制,控制精度很低,無法達到系統(tǒng)要求的指標(biāo),這里不予采用。即由單片機、電機驅(qū)動電路及電機等組成系統(tǒng)。二、方案論證與選擇方案一:FPGA/CPLD方式。 基本要求:(1)控制系統(tǒng)能夠通過鍵盤或其他方式任意設(shè)定坐標(biāo)點參數(shù);(2)控制物體在80cm100cm的范圍內(nèi)作自行設(shè)定的運動,運動軌跡長度不小于100cm,物體在運動時能夠在板上畫出運動軌跡,限300秒內(nèi)完成;(3)控制物體作圓心可任意設(shè)定、直徑為50cm的圓周運動,限300秒內(nèi)完成;(4)物體從左下角坐標(biāo)原點出發(fā),在150秒內(nèi)到達設(shè)定的一個坐標(biāo)點(兩點間直線距離不小于40cm)。在一白色底板上固定兩個滑輪,兩只電機(固定在板上)通過穿過滑輪的吊繩控制一物體在板上運動,運動范圍為80cm100cm。懸掛運動控制系統(tǒng)(E題)設(shè)計報告摘要:本懸掛控制系統(tǒng)是一個電機控制系統(tǒng),控制物體在80cm100cm的范圍內(nèi)作直線、圓、尋跡等運動,并且在運動時能顯示運動物體的坐標(biāo)。物體的形狀不限,質(zhì)量大于100克。發(fā)揮部分(1)能夠顯示物體中畫筆所在位置的坐標(biāo);(2)控制物體沿板上標(biāo)出的任意曲線運動(見示意圖),曲線在測試時現(xiàn)場標(biāo)出,~,總長度約50cm,顏色為黑色;曲線的前一部分是連續(xù)的,長約30cm;后一部分是兩段總長約20cm的間斷線段,間斷距離不大于1cm;沿連續(xù)曲線運動限定在200秒內(nèi)完成,沿間斷曲線運動限定在300秒內(nèi)完成;(3)其他。即用FPGA/CPLD完成鍵盤定義與識別、電機工作狀態(tài)選擇與切換、液晶電路的驅(qū)動與控制等功能。使用單片機也可以完成鍵盤定義與識別、電機工作狀選擇與切換等功能,組成的系統(tǒng)規(guī)模較小,有一定靈活性,而且可以使用我們比較熟悉的單片機最小系統(tǒng)電路板,減少了工作量。用這種方案的控制精度、效率和可靠性都很高。但由于光敏電阻對環(huán)境光的識別,容易受到外界環(huán)境光的影響。方案一:采用LED數(shù)碼管顯示器。本設(shè)計中采用1602字符型LCM。位置傳感模塊用于實現(xiàn)顯示畫筆位置的功能。可見本方案共需要180個光電傳感器,造成此方案幾乎不可實現(xiàn)。單片機控制物體從某個已知的坐標(biāo)位置出發(fā),并且記錄步進電機的每一次移動情況,就可以通過一定的算法計算出物體的位置。 三、系統(tǒng)具體設(shè)計實現(xiàn)硬件電路的設(shè)計(1)系統(tǒng)的總體設(shè)計方案  如圖31所示采用AT89S52單片機作為運動物體的控制中心,進行數(shù)學(xué)計算、對光電傳感器送來的信號進行處理來控制運動物體的運行方向、計算運行物體的坐標(biāo)位置、LCD數(shù)據(jù)顯示、鍵盤控制等。 本設(shè)計采用8個紅外傳感器實現(xiàn)對黑線的檢測,通過并口轉(zhuǎn)串口芯片74LS165將數(shù)據(jù)串行傳送到單片機。57BYG0074型步進電機為四相混合式步進電機,由于實驗室現(xiàn)有電機驅(qū)動器為兩相的,固步進電機作兩相使用?!頓IR端為方向控制信號,電平高低決定電機運行方向。軟件及算法設(shè)計(1)物體位置的計算圖 35 物體位置示意圖  坐標(biāo)點參數(shù)的計算  將畫筆所在的位置設(shè)定為整個物體的位置?!   〗獾肵軸點位置和h為  解得   圖36 第一象限直線如圖36所示,設(shè)直線的起點為坐標(biāo)原點,終點坐標(biāo)為A(,),點m (,)為加工點(動點)??梢詫⑸厦嫠x的偏差公式進一步簡化,推導(dǎo)出偏差的遞推公式。圓弧插補法也是在繪圖系統(tǒng)中常用的一種方法,它和直線插補法原理相同,也是逐點比較算法。(4)循跡黑線的探測及循跡算法在以畫筆為中心,半徑20毫米的圓周上安裝了8個反射式紅外對管作為軌跡探測傳感器,安裝方式如圖3所示。循跡時,使用變量Direct表示當(dāng)前物體運動方向,物體每次運動時先按當(dāng)前方向向前步進一段固定的距離,然后檢測采樣傳感器信號并調(diào)整Direct,再沿新的Direct方向步進。現(xiàn)在考慮如何決定左偏或右偏的問題,使用上述調(diào)整辦法只需要根據(jù)Direct的前后方向及左右方向的四個信號對Direct調(diào)整即可。這種循跡算法大大地減少了循跡運動的調(diào)試時間,為整個作品成功的完成打下了基礎(chǔ)。7的轉(zhuǎn)變作特殊處理,否則可能出錯。(5)系統(tǒng)主程序流程框圖上電,初始化液晶顯示等待按鍵,選擇所需的功能1直線2正方形 3圓 4循跡輸入起 點終點坐 標(biāo)按照事先設(shè)定運 行設(shè)定圓心手動到 點手動到循跡起始 點執(zhí) 行 部 件返回顯示程序按鍵確認(rèn),進入對應(yīng)程序圖39系統(tǒng)主程序流程框圖四、系統(tǒng)測試1.測試儀器DT9205A型數(shù)字萬用表;秒表、卷尺;+12V直流穩(wěn)壓電源。同時,進行坐標(biāo)變換時,單片機在計算精度上也會引進誤差,由于使用浮點運算,該誤差不大。(4)牽引線引入的誤差,包括拉伸誤差和由松弛產(chǎn)生的誤差。(6)讀數(shù)誤差。整個系統(tǒng)從軟件到硬件都體現(xiàn)優(yōu)良簡約的風(fēng)格。 //左步進電機方向控制端sbit Motor_Right_CP =P1^2。sbit S_clk = P1^6。 //1602的數(shù)據(jù)/sbit RW=P3^4。uchar code table0[16]={ 2 Rectan}。uchar code table5[16]={Follow the Line }。 r= cm }。uchar code table11[16]={Rectan perform. }。uchar code wrong[16]={Wrong Coordinate}。/*******************************************************************///函數(shù)聲明void Delay_1ms(int time)。 //把數(shù)據(jù)顯示在LCD1602的指定位置void Init_LCD1602()。void Motor_Left_Step(bit Dir)。//當(dāng)前顯示void linedisp(int,int,int,int,int)。//void buchang(float,float,float,float)。//循跡電機驅(qū)動函數(shù)/*******************************************************************///延時函數(shù),延時時間=1ms*time(晶振12MHz)void Delay_1ms(int time){ uchar i,j。j20。 RW=1。amp。}/**************************************************///LCD1602寫數(shù)據(jù)和寫指令函數(shù)//把寫數(shù)據(jù)和指令二個合在一起,用一個變量mand來判斷void Write_LCD1602(uchar udata,bit mand){ LCD1602_Busy_Check()。 //E=高脈沖,把數(shù)據(jù)/指令寫入 LCD_Data=udata。 //如果沒有加0X40則顯示第一行 Write_LCD1602(x,0)。 Write_LCD1602(0x01,0)。 P2=0xf0。 //逐行掃描 while(scancode!=0xef) //還沒有掃描完4行 { P2=scancode。0x0f)。 } else scancode=(scancode1)|0x01。 case 0xdd: return 2。 case 0xbb: return 6。 case 0xee: return 10。 Delay_1ms(1)。 Motor_Right_CP=1。}/*************************************************//* 圓形當(dāng)前坐標(biāo)顯示模塊*/void currentdisp(int line,int x,int y){ Write_Byte_Locate(1,line,number[x/10])。}/* *********** 直線當(dāng)前坐標(biāo)實現(xiàn)模塊*************** *//* “(,);(,)” */void linedisp(int line,int x,int y,int xz,int yz){ display(table6,line)。 Write_Byte_Locate(5,line,number[y%10])。 Write_Byte_Locate(13,line,number[yz%10])。 yb=(sqrt(()*()+()*())sqrt(()*()+()*()))/stepy。 fhz=0。 fhy=1。 } /*float sumz1=。void buchang(float x,float y,float nextx,float nexty)//,int *znum1,int *ynum1){ float zb,yb。 yb=(sqrt(()*()+()*())sqrt(()*()+()*()))/stepy。 if(sumz1=1) { sumz1=1。 sumz2+=d。 } else znum=abs((int)(zb))。 if(sumy1=1) { sumy1=1。 sumy1+=d。 } else ynum=abs((int)(yb))。 }*//****************************************************************//***************** 畫直線函數(shù) *************************/void line(int a0,int b0,int a1,int b1){ int t。 int t1。fm=0。 zy=abs(b1b0)。 nexty=y。 nexty=y。 nextx=x。amp。 fm=fmzy。 fm=fm+zx。 nexty=y。 nextx=x。amp。 fm=fmzy。 fm=fm+zx。 nexty=y+b0。 }
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1