王淼軍++韋海成++肖明霞+魏鑫



摘 要: 針對3D打印機熱床人工手動調節步驟繁瑣及精度低的問題,提出一種自動平衡調節的方法,并設計了調平裝置。此調平裝置以Arduino mega 2560為主控模塊,使用步進電機作為調平動作單元,結合螺桿傳動,實現打印機熱床平臺的平衡調節;使用接觸式限位開關,實現熱床平臺下降原點的定位;通過測試的方法編寫校正路徑程序,以模擬打印的方式實現3D打印設備與調平裝置的協同工作。實驗表明,采用的細分驅動可實現步距角為0.112 5°微調,大大提高了3D打印機熱床平衡調節的精度;使用雙重濾波的方法實現了通信脈沖序列的有效計數,并從軟件層面解決了步進電機的抖動問題。
關鍵詞: Arduino; 自平衡; 步進電機; 細分驅動
中圖分類號: TN305.94?34 文獻標識碼: A 文章編號: 1004?373X(2017)12?0108?05
Abstract: Aiming at the problems of tedious step and low accuracy of the hot bed mannual regulation for 3D printer, a autobalance regulation method is proposed, and a leveling device is designed. In order to realize the balance regulation of hot bed platform of the printer, the Arduino mega2560 is taken as main?control module of the leveling device, and the stepping motor is used as the leveling action unit in combination with screw drive. The contact?type limit switch is used to locate the descending origin of the hot bed platform. The test method is adopted to compile the path correct procedure to realize the cooperative work between 3D printing equipment and leveling device in the manner of simulation print. The experimental results show that the subdivision driving can realize the fine tuning with 0.1125° step angle, improve the regulation accuracy of hot bed balance of 3D printer greatly. Effective count of the communication pulse sequence was realized with the dual?filtering method, and the vibration problem of the stepper motor was solved with software .
Keywords: Arduino; self?balance; stepping motor; subdivision driving
0 引 言
3D打印技術越來越受到人們的重視,被廣泛應用于加工制造、航空航天、醫療修復、教育科研等相關領域[1?4]。隨著開源電子設計平臺的興起,許多電子發燒友也相繼開發出各種各樣的3D打印機,使得3D打印技術在人們的日常生活中越來越普及。目前常用的3D成型技術多為FDM(Fused Deposition Modeling),即熔融沉積技術[5],通過熱塑性材料加熱融化逐層堆積的方式實現3D物品的打印成型。與傳統的磨具制造相比,3D成型具有加工周期短、成本投入低、材料利用率高等優點[6]。但與此同時,在3D打印的操作過程中普遍存在打印熱床平衡調節的問題。針對平臺調平問題,謝志江等人通過對4點支撐伺服平臺調平的研究,提出了“預置點”的調平概念[7]。何冰懷等人通過可編程計算機控制器(PCC)結合雙軸傾角傳感器,以交流伺服電機為執行機構,對多點調平系統進行了研究[8]。張芳等人采用“逐追式”算法設計了四點支撐剛性平臺,實現了高精度的平臺調平控制[9]。王艷波等人設計了采用雙邊半直圓柔性鉸鏈實現調平、單邊半直圓柔性鉸鏈實現調心的自動調平裝置[10]。
然而上述研究的調平多是以水平面作為參照系,但3D打印機的調平是指3D打印機噴頭同一打印層運動路徑與熱床平面之間的相對平行,傳統的調節方式是通過人工手動調節3D打印機熱床四個角的羊角螺母,實現3D打印機熱床平衡的調節。但對于高精度的3D打印產品而言[11],傳統的人眼目測、手工調節不僅步驟繁瑣,而且精準度低。
針對此問題,本文提出了一種3D打印機熱床自動平衡調節的方法,并基于開源的電子原型平臺Arduino設計了自動平衡調節裝置,實現了3D打印機熱床高精度的自動平衡調節。
1 調平原理
實物如圖1所示,調平裝置以Arduino mega 2560作為主控單元[12],用于完成與3D打印機的通信協作以及調平裝置對應點的升降操作。升降點的執行機構包括步進電機和限位開關,步進電機用于驅動螺桿推動螺母完成平臺校正點的升降,限位開關用于確定點校正過程中下降操作的原點位置。
熱床自動平衡的調節方法如圖2所示,根據調平裝置的四個升降點A,B,C,D坐標位置,編寫3D打印機校正路徑文件。校正路徑文件一方面用于3D打印機與調平裝置的協同動作(調平裝置通過對3D打印機通信脈沖序列的計數選擇升降調節的動作點),另一方面用于控制3D打印機噴頭完成調平裝置限位開關下降原點的觸發。
當開啟熱床調平時,首先通過3D打印上位機控制軟件pronterface使噴頭原點復歸,然后使用模擬打印的方式加載路徑校正文件。為了使在調平過程中不發生機械碰撞損壞,在編寫路徑校正文件時,先使噴頭在原點處上升3 mm,然后在此平面內,噴頭依次經過各點的上方,逐次完成各點高度的校正。
為實現對各點動作順序的控制,在路徑校正文件中加入3D打印供料動作,通過擠出頭步進電機模擬供料的方式發出脈沖序列,調平裝置主控單元通過對脈沖序列的有效計數選擇校正點(本設計中脈沖序列的計數1,2,3,4分別對應A點、B點、C點、D點)。
在校正點的升降調節過程中,3D打印機噴頭每到達一個點的上方,便發出脈沖序列,然后在升降點上方停滯6 s。調平裝置主控單元根據脈沖序列計數,控制校正點步進電機帶動平臺校正點限位開關上升,直至此點的限位開關被3D打印機噴頭觸發。觸發后調平主控單元以觸發點為原點,控制平臺校正點下降3 mm,完成當前點高度的校正。
2 系統設計
2.1 硬件系統設計
調平裝置的硬件系統組成如圖3所示。A,B,C,D四個升降校正點的執行機構分別使用不同的I/O端口進行控制,主控單元采用Arduino mega 2560,其工作電壓為5 V,內部自帶16 MHz的晶振時鐘,具有54路的數字輸入/輸出接口,16路的模擬輸入接口,I/O口驅動電流可達40 mA。通信方面支持多種串口傳輸方式。在具體設計中,脈沖接收端口用于對3D打印噴頭脈沖序列的計數。主控單元通過步進電機驅動模塊A4988對校正點的步進電機進行控制[13],四路限位開關分別完成不同校正點的限位觸發。為了提高調平精度,傳動機構使用螺距為1 mm的螺桿。
2.2 軟件系統設計
調平裝置的軟件設計使用Arduino語言,在Arduino IDE開發環境下完成程序的調試編譯及下載[14]。軟件總體設計流程如圖4所示,開啟調平后,調平裝置主控單元先進行復位,主要包括與限位開關連接的I/O口高低電平設置、脈沖計數器的清零、脈沖序列計數器的清零、步進電機驅動模塊A4988工作模式的選擇等。復位完成之后調平裝置主控模塊開始對3D打印機通信脈沖序列進行掃描并計數,然后根據計數值的不同選擇相應的點進行高度的校正調節。待通信脈沖序列計數等于4時,完成最后一個點(D點)的校正,調平動作結束。
為了防止外部干擾引起調平裝置升降點的誤動作,在程序設計中,通過定義全局變量lock,在逐點校正的子程序中不斷改變全局變量lock的值,并將其作為下一個校正點子程序調用判斷條件的一部分,以此從軟件層面進一步確保了升降點動作順序的正確性,從而防止誤動作。
3 功能模塊設計
3.1 校準路徑文件設計
3D打印機熱床平衡的調節是以打印噴頭在同一z軸高度運動路徑的平面作為參考系,且在平衡調節過程中需要打印噴頭對熱床平面上的限位開關進行觸發,故需要對3D打印機噴頭的運動路徑進行設定。本設計通過編寫G?CODE文件的方式對3D打印機噴頭的運動路徑進行規劃[15],控制3D打印機產生驅動脈沖,實現調平裝置與3D打印設備的協調同步;控制3D打印噴頭在對應升降點上方的停滯(6 s),并完成對限位開關的觸發。在設計中,借助3D打印上位機控制軟件pronterface,使用逐條發送語句的方式對熱床平臺四角限位開關的位置進行空間定位,然后根據空間坐標進行校正路徑文件編寫(G?CODE代碼),其運動路徑如圖5所示。
3.2 脈沖通信模塊設計
要實現調平裝置與3D打印機的協同動作,需對其動作時序進行合理的設定。3D打印機所發出的驅動脈沖是通過擠出機的供料步進電機動作產生,其實質為周期固定的連續脈沖序列,如圖6所示。為了使調平裝置能通過對脈沖序列的有效計數實現對校正點的選擇,在程序設計中,調平裝置主控單元對同一脈沖序列的前3個有效脈沖進行計數,當脈沖計數變量pluseNumber大于3時,脈沖序列變量pluseSerialNumber計數加1,然后根據pluseSerialNumber的值控制對應點的步進電機進行升降調節。
程序使用順序結構,當步進電機進行升降調節時,不再對當前脈沖序列的后續脈沖進行計數。在步進電機完成升降動作之后還要進行短時間延時,預留一定的時間裕度,以避開對當前脈沖序列后續脈沖的計數,直至下一脈沖序列的到來。
為了避免噪聲擾動引起的誤計數,在脈沖序列計數程序設計中,當采集到脈沖高電平之后要進行2個50 μs的延時;在每個50 μs的延時后分別對脈沖信號的電平進行采集。當3次采樣的結果均為高電平時,才進行一次有效的脈沖計數。
3.3 步進電機驅動模塊設計
步進電機是一種將電脈沖信號轉化為角位移或線位移的開環控制機構[16],當步進引腳接收到一個脈沖信號時,就會在方向引腳指定的方向運動一個步距角。其步進距離僅由驅動脈沖個數決定,步距精度在3%~5%之間,且步與步之間的誤差不會累加,具有較高的定位精度。本設計采用兩相四線制混合式42系列步進電機,其工作電流為12 V,額定工作電流為1.5 A,步距角為1.8°,具備短時間的耐高壓能力,最大徑向力可達28 N(20 mm邊緣為標準)。
為提高調平裝置的調節精度,本設計選用A4988驅動模塊對步進電機進行細分驅動處理,其步進角選擇方式如表1所示。A4988輸出電壓高達35 V,輸出電流為2 A,具有較強的驅動能力。本文通過將A4988的模式控制引腳MS1,MS2,MS3全部設置為高電平,選用1/16的步進模式。此模式下步進角僅為0.112 5°,大大提高了3D打印機熱床的調平精度。
A4988內部自帶換向器,通過對步進模式設定以后,只需對“步進引腳(STEP)”、“方向引腳(DIR)”進行控制即可完成對步進電機的驅動操作,大大地降低了電路的設計難度,同時簡化了程序設計。電路連接如圖7所示,A4988的邏輯電壓VDD及GND由Arduino mega 2560的5 V供電引腳提供;電機驅動電源引腳VCCMOT與GNDMOT使用12 V的外接直流電源供電。STEP引腳決定步進電機的行程,DIR引腳的邏輯電平決定步進電機的轉向。本設計中,DIR引腳低電平時步進電機帶動調平裝置對應點限位開關上升,高電平時下降。設計中,為實現步進電機的消抖處理,將步進電機的使能引腳EN使用專門的I/O口進行控制。
3.4 升降點控制模塊設計
升降點高度校正的好壞直接影響3D打印機熱床平衡調節的精度,程序設計流程如圖8所示。在系統上電復位后時,調平裝置主控單元根據對3D打印機通信脈沖序列的計數,控制對應點步進電機進行升降校正。在使能A4988驅動模塊時,DIR引腳默認為低電平,先使步進電機帶動平臺校正點向上移動。為了提高校正精度,步進電機每進一步都要進行限位開關的觸發判斷,使其步距角控制在0.112 5°。當限位開關觸發時,根據觸發信號,將DIR引腳設置為高電平,此時步進電機以觸發點為原點,帶動平臺校正點向下移動3 mm,完成當前點的高度校正。
為避免在升降調節過程中因過調導致調平裝置的機械損壞,在程序設計中通過設置步進計數變量stepperNumber,將步進電機上升的調整范圍設定在5 mm。當stepperNumber=48 000時,即在步進電機帶動校正點上升5 mm的過程中,對應點的限位開關未被觸發,則通過蜂鳴器進行報警提示。
為了消除步進電機在靜態情況下的抖動現象,在程序設計中,初始化階段并未對A4988進行使能。而是在對應點步進電機需要動作時,在其子程序內部才對其進行使能。待步進電機完成動作退出子程序時,重新對其使能端進行關斷,這樣有效消除了步進電機在靜態情況下的抖動。
4 功能實現及分析
對調平裝置各分模塊設計的可行性進行驗證,然后對系統進行聯調并測試分析。
4.1 脈沖通信功能的實現
脈沖通信主要完成3D打印機與自動調平裝置的協同工作,測試結果如圖9所示。
3D打印機發出的脈沖為周期固定的脈沖序列,脈沖序列之間的間隔大約為6 s,每個脈沖序列中的脈沖的高電平持續時間約為200 μs。在檢波程序中,每一個脈沖序列,對其高電平時間持續100 μs的脈沖進行有效計數,當1個脈沖序列中存在3個以上的有效脈沖時,脈沖序列數計數加1。通過串口輸出測試,檢波程序可很好地完成脈沖序列的計數。主程序通過脈沖計數值的不同,調用對應點步進電機動作的子程序,完成此點的高度校正。
4.2 對應點升降校對功能的實現
對應點的升降校正是通過對步進電機的控制來完成,調平裝置的調節精度主要取決于限位開關觸發的實時性,此部分功能主要是對步進電機在限位開關觸發后的反轉特性進行驗證。功能測試結果如圖10所示。
當升降校正啟動時,步進電機DIR引腳為低電平,步進電機帶動平臺對應點上升;當限位開關被觸發時,DIR引腳立刻由低電平轉化為高電平,且STEP引腳停止脈沖輸出,步進電機立刻停轉,具有很好的觸發實時性。經過100 ms延時之后,步進電機STEP引腳繼續輸出驅動脈沖,此時DIR引腳為高電平,步進電機反向運動,帶動平臺下降3 mm。
4.3 步進電機消抖功能實現
針對調試過程中步進電機靜態情況下的抖動問題,本設計從軟件編程層面予以解決,對步進電機在靜態情況下驅動引腳的電壓輸出波形進行測試,結果如圖11所示。在靜態情況下,未進行消抖處理前,步進電機驅動管腳的制動電壓波形具有較明顯的毛刺,步進電機產生較大的抖動噪聲。在進行消抖處理之后,步進電機制動電壓的輸出波形明顯平穩,步進電機無抖動現象。
4.4 聯調結果
經上位機加載聯調測試,3D打印機噴頭可按照G?CODE文件設定的路徑運動,并產生通信脈沖序列與調平裝置協同動作;調平裝置在收到脈沖以后可對脈沖序列進行有效計數,并控制相應點的步進電機完成當前點高度的校正,最終實現3D打印機熱床的自動平衡調節。使用陀螺儀對噴頭路徑平面及熱床調平前后相對于地面的傾斜角度分別進行測量,結果如表2所示。
由測量結果可知,經自動調平以后,熱床相對于地面的傾斜角度與噴頭路徑平面相對于地面的傾斜角度基本一致,空間三軸的傾斜誤差分別為:Δx=0.14°,Δy= 0.22°,Δz=0.06°。
5 結 語
針對3D打印機熱床平衡調節的問題,本文提出了一種自動平衡的調節方法,并進行了調平裝置的軟硬件設計與實現。與傳統人眼目測手工調節相比,本文所提出的自動平衡調節方法具有速度快、精度高、操作簡單等優點。此調平方法直接對熱床與打印噴頭的運動平面進行調平,對設備的機械結構精度要求依賴較低,不僅在3D打印機,而且在車床、銑床、點膠機等工業設備,此調平方法及裝置都具有一定的參考及實用價值。
參考文獻
[1] 李小麗,馬劍雄,李萍,等.3D打印技術及應用趨勢[J].自動化儀表,2014(1):1?5.
[2] 吳復堯,劉黎明,許沂,等.3D打印技術在國外航空航天領域的發展動態[J].飛航導彈,2013(12):10?15.
[3] 楊帆,楊延坤,鄭宏.3D打印技術在先天性心臟病診療中的應用[J].中國介入影像與治療學,2014(9):629?631.
[4] 薛芳,韓瀟,孫東華.3D打印技術在航天復合材料制造中的應用[J].航天返回與遙感,2015(2):77?82.
[5] 唐通鳴,張政,鄧佳文,等.基于FDM的3D打印技術研究現狀與發展趨勢[J].化工新型材料,2015(6):228?230.
[6] 周勇,傅蔡安.基于DEFORM?3D的微型螺釘冷成形過程有限元分析[J].機械設計與制造,2008(3):109?111.
[7] 謝志江,高健,劉小波,等.4點支撐伺服平臺自動調平機理研究[J].機械制造,2011(9):67?70.
[8] 何兵懷.多點調平系統的研究[D].成都:電子科技大學,2014.
[9] 張芳.高精度平臺調平控制系統研究[D].太原:中北大學,2008.
[10] 王艷波.自動調平調心精密平臺的研究[D].西安:西安工業大學,2013.
[11] 蘭紅波,李滌塵,盧秉恒.微納尺度3D打印[J].中國科學:技術科學,2015(9):919?940.
[12] KOENKA I J, S?IZ J, HAUSER P C. Instrumention: an open?source modular Python framework for controlling Arduino based experimental instruments [J]. Computer physics communications, 2014, 185(10): 2724?2729.
[13] 藍杰,張浩然.基于STM32的微型步進電機驅動控制器設計[J].微型機與應用,2015(1):43?46.
[14] 劉楚紅,董鎮,錢宇捷,等.基于Arduino的倒車雷達系統設計[J].現代電子技術,2014,37(17):148?150.
[15] 劉沖,楊代華,張曉婷.基于工控機的G代碼編譯程序設計[J].機械設計與制造,2007(5):60?62.
[16] 古志堅.基于單片機的步進電機控制系統研究[D].廣州:華南理工大學,2013.