<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于ATmega128的迷你數控雕刻機系統設計

          基于ATmega128的迷你數控雕刻機系統設計

          作者:時間:2016-10-16來源:網絡收藏

          摘要:為了實現對迷你數控的控制,提出了一種基于的迷你數控系統設計方案,并完成系統了的硬件電路設計和軟件設計。該系統的硬件電路設計部分主要是電源電壓轉換電路以及以單片機為主控芯片的控制主板與各模塊相連電路;軟件設計部分主要是利用AVR Studio開發環境編程,實現單片機對步進電機、主軸電機、等部件的控制以及實現與PC機握手。重點設計了利用鍵盤操作板對雕刻頭的初步定位系統。實際應用表明,該系統具有操作簡便、安全可靠等特點,達到了設計要求。

          本文引用地址:http://www.ex-cimer.com/article/201610/308188.htm

          隨著藝術模型、機械加工、工裝模具等產業的飛速發展,對加工設備提出的要求越來越高,作為上述產業的重要組成部分也發生了快速的發展。

          目前,傳統雕刻機體積大、操作復雜、售價高。不僅需要專門的計算機搭載專門的軟件,還需要專業操作人員進行控制,而且傳統雕刻機主要用于批量生產,對于一些雕刻機愛好者和模具設計師想利用雕刻機雕刻單件自己設計的作品,傳統雕刻機專業性強,費用高,不切實際。此外,一些傳統的雕刻機使用之前需要人工通過轉動三軸方向的手輪對雕刻頭進行初步定位,精度、效率低。還有一些高端雕刻機采用軟件對雕刻頭初步定位,但是設備昂貴。

          鑒于此,精心設計了一種迷你數控雕刻機系統。該系統不僅操作簡單、方便,而且雕刻頭初步定位精度精確、效率高。

          1 系統的總體設計

          為滿足該迷你數控雕刻機系統能夠在非黑色金屬材料上完成圖案、文字的雕刻加工需求。設計了一款以ATmega128單片機為主控芯片的雕刻機系統,該系統包括步進電機驅動器模塊、LCD12864液晶顯示模塊、鍵盤操作板模塊、ATmega128單片機最小系統模塊、、電源、串口通訊模塊等幾部分組成。

          系統結構框圖如圖1所示。

          基于ATmega128的迷你數控雕刻機系統設計

          在本系統設計中,采用了ATMEL公司生產的ATmega128單片機作為主控芯片。該單片機屬于AVR系列單片機中一種,擁有128 kB程序存儲器,自帶產生PWM波模塊,方便對步進電機、主軸電機的控制。其中,PC機用于利用MACH3軟件實現待加工物G代碼的解釋,實現相關數據格式的轉換,然后通過串口通訊模塊下載到以ATmega128單片機為主控芯片的控制主板里。由于在雕刻機工作之前需要對雕刻頭的初步定位,系統中設計了按鍵操作板,通過對按鍵操作板上的上下、左右、前后等六個按鍵的操作即可完成對雕刻頭的初步定位,提高了加工效率以及節省材料。系統還設計了LCD12864液晶顯示屏,便于對雕刻機在加工時雕刻頭位置坐標以及加工用時等參數的觀察。對三軸上的步進電機的控制,本系統中利用ATmega128單片機自帶PWM模塊產生的PWM波對步進電機驅動器的控制,從而實現對三軸的步進電機的精確控制。

          2 功能模塊選擇

          2.1 ATmega128單片機最小系統模塊

          ATmega128是由ATMEL公司設計的一款8位微處理器,具有128K字節的系統內可編程Flash,53個可編程的I/O口線,滿足本設計中眾多I/O口的需求,無需再擴展。此外,該單片機還擁有六路分辨率可編程的PWM,便于產生標準的脈沖信號。另外還擁有六個外部中斷端口,可用于防碰撞設計。最小系統原理圖如圖2所示。

          基于ATmega128的迷你數控雕刻機系統設計

          2.2 LCD12864液晶顯示模塊

          為了觀察雕刻機在加工時雕刻頭位置坐標以及加工用時等參數,本系統設計了LCD12864液晶顯示模塊。LCD12864液晶顯示屏可以顯示漢字、大小寫字母、其他各種符號等,滿足設計要求。本設計中,利用ATmega128單片機來控制LCD12864,其中PC口作為并行數據口使用,向LCD12864并行串口傳送數據。PF口作為控制片選、讀寫、復位、串并數據傳送方式選擇使用。LCD12864液晶顯示模塊如圖3所示。

          基于ATmega128的迷你數控雕刻機系統設計

          2.3 步進電機驅動模塊

          步進電機是一種將電脈沖信號轉化為角位移的電磁機械裝置,是數控系統常用的驅動執行組件。步進電機必須有驅動器和控制器才能正常的工作,驅動器的作用是對控制脈沖進行環行分配、功率放大,使步進電機繞組按一定順序通電,控制電機轉動。

          本系統設計中,使用BL-210作為步進電機的驅動器,該驅動器實現高頻斬波,恒流驅動,具有很強的抗干擾性、高頻性能好、起動頻率高、控制信號與內部信號實現光電隔離、電流可選、結構簡單、運行平穩、可靠性好、噪聲小,可帶動1.0 A以下所有的步進電機。此外,細分數可選(1/2,1/4,1/8),對應的微步距角分別為(0.9°/STEP、0.45°/STEP、0.225°/STEP)。BL-210步進電機驅動器電路圖如圖4所示。A+、A-接步進電機A相.B+、B-接步進電機B相。CW-信號傳,反之發轉。CP-信號控制步進電機的速度,ATmega128單片機產生的PWM波從此端口輸入,當PWM波頻率高時,步進電機速度較快,反之較慢。CP+、CW+為輸入控制信號的公共陽端,都接高電平。

          基于ATmega128的迷你數控雕刻機系統設計

          2.4 鍵盤操作板模塊

          在雕刻加工之前,我們都要對雕刻機的雕刻頭進行初步定位,使雕刻頭處于一個理想的初始加工位置,這樣做的主要的目的是為了節省原材料以及提高加工效率。在本設計系統中,設計了上下、左右、前后等6個按鍵,這6個按鍵與單片機的PA口連接。我們通過對這6個按鍵的操作即可完成對三軸步進電機的正反轉,從而完成對雕刻機的雕刻頭的初步定位。鍵盤操作板電路圖如圖5所示。

          基于ATmega128的迷你數控雕刻機系統設計

          3 軟件設計

          在本系統軟件設計中,選用AVR Studio作為嵌入式開發環境,C作為編寫語言。AVR Studio集成開發環境包括了AVR Assembler編譯器、AVR Studio調試功能、AVRProg串行、并行下載功能和JTAG ICE仿真等功能。利用這些功能我們可以在線編輯源代碼,并在AVR器件上運行,方便AVR單片機開發者進行開發。C語言作為高級語言的一種,編寫程序效率高,易懂。在編寫程序中,采用模塊化編寫思想,整個軟件系統由串口通訊模塊、PWM波模塊、LCD12864液晶顯示模塊、鍵盤掃描模塊、引起中斷等幾部分組成。系統軟件設計的程序流程圖如圖6所示。

          基于ATmega128的迷你數控雕刻機系統設計

          4 防碰撞設計

          實踐生產表明,雕刻機在工作中經常會發生碰撞事故。造成碰撞的事故原因有很多,例如上位機產生的G代碼不正確、雕刻頭初步定位時操作不當、參數設置錯誤等。雕刻機一旦發生碰撞,輕則雕刻刀斷裂,重則步進電機燒毀,甚至控制主板損壞。這樣事故的發生不僅會造成不必要的經濟損失,還會耽誤工作、生產。因此在控制系統中也有必要設計一種裝置,避免這樣的碰撞事故的發生。

          為了解決上述問題,在本設計中,主要是在每根滾珠絲杠的兩端各安裝了一個超聲波傳感器。當三軸方向上的移動平臺快移動到邊緣處,超聲波傳感器將會產生一個信號,并將這個信號傳遞給控制主板,控制主板隨即停止產生脈沖信

          號,步進電機停止工作。

          5 結束語

          雕刻機作為一種典型機電一體化設備,要求精度高,系統穩定。本設計采用了AVR系列產品中的ATmega128作為該系統的主控芯片,性能穩定,使用方便。本系統設計的按鍵操作板對雕刻頭進行初步定位,方便、高效。經通過對自制的迷你數控雕刻機的實驗,控制效果穩定,滿足設計的需求。



          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();