?

基于FPGA的繪圖滑臺設計

2017-11-27 10:50馮坤蔣婷邱玉泉劉世偉
物聯網技術 2017年11期
關鍵詞:步進電機滑臺

馮坤+蔣婷+邱玉泉+劉世偉

摘 要:文中設計了一種集FPGA、步進電機和滑臺導軌為一體的圖像繪制方案。設計將兩相四線步進電機和由亞克力材質制定的小型電機支架作為硬件支撐。為完成二維平面上的作業,滑臺設計包括兩個平面內移動的步進電機,一個電機帶動繪圖使用的鉛筆,另一個電機帶動載有放置紙張的平臺,兩個電機同時工作,使鉛筆在紙張上完成繪制。由FPGA通過驅動板給兩個電機輸入設定脈沖以控制步進電機,同時運用逐點比較插補法對路徑進行規劃。

關鍵詞:FPGA;步進電機;滑臺;逐點比較插補法

中圖分類號:TP273;TN402 文獻標識碼:A 文章編號:2095-1302(2017)11-00-03

0 引 言

近年來,3D打印機風潮席卷全球,小到機械零件,大到房屋建筑,都可以通過3D打印機完成。3D打印機以數字模型文件為基礎[1],通過逐層打印的方式來構造物體。受3D打印機工作方式的啟發,本文以FPGA為控制芯片,以步進電機為驅動電機,完成一個通過算法繪制圖像的設計。

步進電機在我們的生產生活中隨處可見,而FPGA可以很好地完成一系列對步進電機的控制[2]。本設計使用Verilog HDL語言編程,本著用最簡單的資源完成最有效的設計的思想,在硬件方面使用FPGA學習板與Xilinx公司生產的XC6SLX16開發板芯片,而步進電機則選用常見的電腦光驅步進電機[3]。

1 系統總體設計

本系統包括電機控制和路徑規劃兩部分,根據驅動板與電機參數產生的相應脈沖控制電機。電機運行的軌跡分為直線和曲線兩種,在給定坐標點的情況下,通過逐點比較插補法進行路徑規劃,完成指定圖像繪制。

2 FPGA對步進電機的控制

本設計采用常用計算機的光驅步進電機,即兩相四線步進電機,易于控制且工作性能穩定。電機驅動板采用帶有A4988芯片的帶轉換器和過流保護的DMOS微步驅動器[4],該產品可在全、半、1/4、1/8及1/16步進模式時操作雙級步進電機。轉換器是A4988易于實施的關鍵,只要在“步進”輸入中輸入下一個脈沖,即可驅動步進電機產生微步[5],故FPGA只需向驅動板輸入連續脈沖即可。設定步進電機轉動一圈的時間為0.8 s,由于提供的FPGA晶振為50 MHz,故只需做一個6×105分頻的分頻電路即可,在此不再贅述。圖1所示為FPGA控制電機部分的RTL視圖。

3 逐點比較插補法

逐點插補法是目前數控機床在進行輪廓設計時較常用的一種插補方法。而在CNC數控機床中逐點比較法是常用的控制方法[6],其各種曲線輪廓加工都可以通過插補算法實現,插補計算的任務就是在輪廓線起點到終點之間密集地計算出有限個坐標點,動點沿著這些坐標點移動,用折線逼近所要加工的曲線。

3.1 逐點比較直線插補法

所謂逐點比較直線插補法,就是每走一步都要與給定運動軌跡上相應的坐標值比較,觀察該點位于直線上方還是下方,比較結果稱為偏差函數F[7],根據偏差的正、負決定下一步的進給方向。實質上這是一種用階梯折線來逼近直線的算法,它與規定運動軌跡之間的最大誤差為一個脈沖當量,因此,只要把脈沖當量設計得足夠小,就可以達到提升精度的要求[5]。

第一象限直線插補在一個單位時間(及脈沖當量)內運行的軌跡如圖2所示。設點P是運動點,點E是終點,若點P在直線OE上方,則線段OP的斜率大于OE的斜率,即(Ym/Xm)>(Ye/Xe);若點P在線段OE下方,則線段OP的斜率小于OE的斜率,即(Ym/Xm)<(Ye/Xe),設偏差函數Fm為:

第一象限直線插補的過程可歸納為:當偏差Fm<0時,點P在直線下方,點P向Y軸正方向移動,將Ym+1=Ym+1代入偏差函數可得簡化公式為:

當偏差Fm>0時,點P在直線上方,點P向X軸正方向移動,將Xm+1=Xm+1代入偏差函數可得簡化公式為:

同理可得其他象限的偏差函數,推導過程與上述過程完全相同。

根據直線插補法的原理編寫程序,對算法的仿真如圖3所示。

由于FPGA通過驅動板給電機的輸入脈沖為連續脈沖,因此,根據對電機轉速的要求,對輸入時鐘進行分頻即可達到轉速要求。在實際運用中,只需在程序中給定坐標點,則X、Y軸電機即可合作完成直線段組成圖形[8]。

3.2 逐點比較圓弧插補法

圓弧插補法同直線插補法的工作原理相似,但圓弧插補法的工作過程分為四步,即偏差判別、坐標進給、偏差計算、終點判別[9]。通常要考慮制作路程為順時針還是逆時針,以及圖像的象限。為方便讀者了解,以一個第一象限1/4圓弧順時針為例進行講解。

如圖4所示,加工半徑為R的第一象限,坐標原點定在圓心,A(X0,Y0)為圓弧起點,B(Xe,Ye)為圓弧終點,Pi(Xi,Yi)為加工動點。

圓弧方程滿足:X2+Y2=Xo2+Yo2,設偏差函數Fi為:

若點P在圓弧上方或圓弧上,即Fi≥0,則向-X方向進給一步;若點P在圓弧下方,即Fi<0,則向+Y方向進給一步。由偏差函數可得第一象限內圓弧偏差的遞推公式。

圖4 圓弧插補法運行軌跡

若Fi≥0,向-X方向進給一步,點P的坐標由Pi(Xi,Yi)移動到Pi+1(Xi+1,Yi),則新動點的坐標變為Xi+1=Xi-1,代入偏差函數得Pi+1點的偏差為:

若Fi<0,向+Y方向進給一步,點P的坐標由Pi(Xi,Yi)移動到Pi+1(Xi,Yi+1),則新動點的坐標變為Yi+1=Yi+1,代入偏差函數得Pi+1點的偏差為:

同理,可推出逆時針的遞推公式、不同象限的遞推公式,在此不一一贅述。最后,根據X、Y坐標方向要走的步數(因為步進電機輸入連續脈沖,所以在程序中則為判定運動時間)來判斷是否到達終點[10]。

根據上述原理,運用Verilog HDL語言完成逐點比較圓弧插補法的仿真,如圖5所示。

4 實驗結果及實物展示

本文做了逐點比較直線插補法和圓弧插補法兩個實驗,即通過直線插補法畫出一個六邊形,實驗結果如圖6所示;通過圓弧插補法畫出一個1/4圓弧,實驗結果如圖7所示。完整的設計實物圖如圖8所示。

5 結 語

本文設計的基于PFGA的繪圖滑臺可在給定坐標點的情況下,通過逐點比較插補法進行路徑規劃,完成指定圖像繪制,經試驗,可較好地滿足使用需求。

參考文獻

[1]李青,王青.3D打?。阂环N新興的學習技術[J].遠程教育雜志,2013 (4):29-35.

[2]夏宇聞.Verilog數字系統設計教程[J].單片機與嵌入式系統應用,2003(6):51.

[3]杜浩明,周圣.一種以廢舊光驅制備教學演示用的激光打印機裝置:中國,CN104766532A[P]. 2015-07-08.

[4]孫建仁.CNC系統運動平滑處理與輪廓誤差研究[D].蘭州:蘭州理工大學,2012.

[5]李江昊,陳衛東,朱奇光,等.直流無刷電機微步進控制方法及其FPGA實現[J].燕山大學學報,2013,37(2):170-174.

[6]陳宏臣.基于FPGA技術的數控插補器算法改進研究[D] .成都:西南交通大學,2010.

[7]帥旗.基于最小函數偏差的圓弧及橢圓插補算法[J].科技視界,2014(36):237.

[8]李樂,薛春良,尹海軍.一種導輪開槽成型磨床的雙滑臺進給結構:中國,CN205085828U [P].2016-03-16.

[9]沈旭照,吳一亮.基于FPGA的圓弧插補算法的設計[J].電子世界,2016(24):24,50.

[10]劉強,劉煥,周勝凱,等.一種高精度快速空間圓弧插補方法:中國,CN104155916A[P].2014-11-19.endprint

猜你喜歡
步進電機滑臺
某款汽車復合材料尾門的滑臺分析及優化
基于改進PID控制的機床滑臺運動位移跟蹤誤差研究①
基于PLC的液壓動力滑臺控制系統改進設計
基于Access數據庫的機床滑臺選型系統開發與實踐
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合