新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 具有上位機(jī)通信功能的數(shù)控分度頭

具有上位機(jī)通信功能的數(shù)控分度頭

作者: 時間:2012-08-07 來源:網(wǎng)絡(luò) 收藏

 1 引言

本文引用地址:http://www.butianyuan.cn/article/154191.htm

  分度頭是機(jī)械加工中的重要裝備,是銑床主要附件之一,應(yīng)用十分廣泛。許多零件如齒輪、離合器、花鍵軸及刀具開齒等在銑削時都需要利用分度頭進(jìn)行分度。常用的機(jī)械分度頭主要是通過計算然后通過人工手動分度完成,分度速度慢,勞動強(qiáng)度高;市面上的度頭準(zhǔn)確可靠但是投資較大,而且購買的度頭體積大,無法和中小型銑床配合加工尺寸較小的零件。

  在項(xiàng)目實(shí)施過程中,需要在諸多圓盤上非等角度鉆孔 15 個。鑒于市售分度頭價位較高(5000-6000 元),筆者萌發(fā)了制造一臺簡易、高精度度頭的想法。根據(jù)實(shí)際需求,我們設(shè)計了一種體積較小能夠同實(shí)驗(yàn)室內(nèi)現(xiàn)有銑床配合、機(jī)的低成本數(shù)控分度頭。分度的計算工作由機(jī)來完成,分度速度快、精度高。機(jī)械加工、裝配都是在實(shí)驗(yàn)室內(nèi)完成,節(jié)約了大量成本。

  2 系統(tǒng)結(jié)構(gòu)與機(jī)械精度

  系統(tǒng)結(jié)構(gòu)如圖1 所示,單片機(jī)作為主控制器向步進(jìn)電機(jī)驅(qū)動器發(fā)送脈沖、使能、方向三個信號來驅(qū)動步進(jìn)電機(jī)工作。脈沖的個數(shù)以及頻率由機(jī)軟件完成計算,通過串行口發(fā)送給單片機(jī),由單片機(jī)的一個定時器進(jìn)行輸出比較匹配,完成脈沖的發(fā)送,分度速度快。步進(jìn)電機(jī)通過機(jī)械減速器和同步帶驅(qū)動卡盤實(shí)現(xiàn)精確分度。


圖 1 數(shù)控分度頭結(jié)構(gòu)圖

  分度頭的誤差是由于在實(shí)際進(jìn)行分度的時候有可能所分的度數(shù)不能整除,出現(xiàn)小數(shù),單片機(jī)只能處理整數(shù)的脈沖數(shù),小數(shù)部分就要舍去,由此導(dǎo)致分度頭的精度誤差。最大的誤差值就相當(dāng)于舍去了一個完整的脈沖δ=θ/i,式中δ表示單片機(jī)發(fā)送一個脈沖卡盤所轉(zhuǎn)過的角度,θ表示步進(jìn)電機(jī)的步進(jìn)角,i 表示機(jī)械傳動裝置的減速比。系統(tǒng)采用的步進(jìn)電機(jī)步進(jìn)角是1.8°,經(jīng)過1000 細(xì)分驅(qū)動器的驅(qū)動,實(shí)際的步進(jìn)角是0.36°,機(jī)械減速比是75:1,所以分度頭的最大誤差值是0.36°/ 75 = 0.0048°= 17.28″,比一般的手動分度頭45″的精度要高出一倍以上。減小步進(jìn)電機(jī)的步進(jìn)角和增大機(jī)械減速比還可以進(jìn)一步提高系統(tǒng)的精度,但是這樣做會降低分度速度。在實(shí)際的應(yīng)用中所選取的電機(jī)細(xì)分?jǐn)?shù)和機(jī)械減速比已經(jīng)提供了足夠高的機(jī)械精度,能夠滿足實(shí)際加工需要。

  3 與上位機(jī)

  系統(tǒng)采用RS232 接口與上位機(jī)進(jìn)行。一般的USART 收發(fā)程序,往往是一段采用輪循方式完成數(shù)據(jù)收發(fā)的簡單代碼。采用這種方式不僅大大降低了MCU 運(yùn)行效率,而且也不適合于與其他的實(shí)際應(yīng)用代碼相融合,無法實(shí)現(xiàn)結(jié)構(gòu)化、模塊化的程序設(shè)計。根據(jù)AVR 單片機(jī)自身特點(diǎn)(片內(nèi)含有高速大容量RAM),我們在片內(nèi)RAM 中設(shè)置了一個接收緩沖區(qū),采用一種底層驅(qū)動+中間層函數(shù)的結(jié)構(gòu),把USART 接口部分相對地獨(dú)立出來,更加方便系統(tǒng)軟件的編寫。

  針對接收緩沖區(qū)的設(shè)計,我們采用一個類似于環(huán)形隊列的結(jié)構(gòu),讀寫緩沖區(qū)各用一個指針,再設(shè)一個計數(shù)器記錄緩沖區(qū)中未讀出的數(shù)據(jù)個數(shù)。主程序中每次讀取一個數(shù)據(jù),讀指針指向下一個數(shù)據(jù),計數(shù)器減1,每次發(fā)生接收中斷,寫指針指向下一個數(shù)據(jù),計數(shù)器加1。當(dāng)主程序調(diào)用中間層函數(shù)接收數(shù)據(jù)時,如果接收緩沖區(qū)為空,單片機(jī)不必等待,可以繼續(xù)執(zhí)行其他操作。而USART 硬件接收完一個數(shù)據(jù)以后,中斷函數(shù)將接收到的數(shù)據(jù)存入接收緩沖區(qū),當(dāng)主程序中的其他操作結(jié)束后由中間層函數(shù)來讀取。

  控制命令由上位機(jī)發(fā)出,由五個字節(jié)組成一條完整的控制命令,格式如表 1 所示。


  D0:控制字的起始字節(jié),規(guī)定每個控制字的起始字節(jié)都是固定值0x42,即ASCII 碼中的‘B’,用來代表開始;

  D1:規(guī)定脈沖個數(shù)的高字節(jié),在單片機(jī)中,我們用一個16 位的int 型變量存儲每一條控制命令的脈沖數(shù),所以,上位機(jī)發(fā)過來的脈沖數(shù)就要被拆分成兩個字節(jié);

  D2:規(guī)定脈沖個數(shù)的低字節(jié);

  D3:這個字節(jié)的高四位中的第四位用來代表電機(jī)的轉(zhuǎn)動方向(1 代表順時針,0 代表逆時針);低四位用來代表電機(jī)的轉(zhuǎn)動速度,分為15 個等級;

  D4:控制字的結(jié)束字節(jié),規(guī)定結(jié)束字節(jié)都是固定值0x45,即ASCII 中的‘E’,用來代表一條控制命令的結(jié)束。

  系統(tǒng)的上位機(jī)界面如圖2所示,在上位機(jī)界面中可以方便地設(shè)置旋轉(zhuǎn)角度、電機(jī)轉(zhuǎn)速、電機(jī)的轉(zhuǎn)動方向,并按照使用意圖進(jìn)行運(yùn)動。實(shí)物圖如圖3所示。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉