丁承君, 趙澤羽, 尹雷鵬
(河北工業大學 機械工程學院, 天津 300130)
基于STM32的三噴頭彩色3D打印機系統設計
丁承君, 趙澤羽, 尹雷鵬
(河北工業大學 機械工程學院, 天津 300130)
針對目前3D打印機控制系統中存在的處理速度慢、電路復雜、打印質量不高、斷電重新打印等缺點,設計了一款基于STM32的彩色3D打印機的控制系統,該方案實現了上位機通信、數據處理、信號控制、斷電續打、彩色打印等功能,選用DRV8825步進電機驅動器實現了對步進電機的細分驅動;使用PID調節的方式調節加熱床的溫度。重點論述了控制系統的主要硬件電路設計和軟件實現流程。系統表現良好且能縮短大量打印時間。
3D打印機; STM32; 斷電續打; PID調節
3D打印技術又叫快速成型技術[1-3],作為一門新型的技術已被應用在各行各業,大到航空航天,小到生物醫學方面都有3D打印的影子。目前使用的打印機大多是單噴頭單色打印,采用的AVR單片機工作頻率低、外設少。本文設計了三噴頭的彩色3D打印機,可根據三基色原理自動進行顏色的配比[4],真正實現了無間斷無縫隙的彩色打印。
1.1 設計方案概述
設計的基于STM32的彩色3D打印機[5],主要以STM32為控制核心,通過讀取三維模型的數據信息,由單片機發出相應的指令來完成動作。由加熱噴頭和熱床上升到指定溫度后,擠出系統配合X、Y、Z軸電機進行聯動控制,逐層打印各個切片平面,最后堆疊成型[6]。本次設計的擠出系統采用的是三噴頭式,即通過3個擠出電機控制3種材料的進給速度來實現彩色打印的功能。
1.2 系統硬件組成
本系統主要由電源模塊、加熱模塊、溫度檢測模塊、SD卡模塊、屏幕顯示模塊、STM32控制模塊、上位機通信模塊、運動控制模塊、斷絲檢測以及斷電續打等8個子系統模塊構成。系統結構框圖見圖1。

圖1 3D打印機系統的結構框圖
系統以STM32控制模塊為核心,完成各個子模塊的協同工作。STM32通過讀取預先存儲在SD卡模塊里的三維數據模型,然后控制加熱模塊對噴頭和加熱床進行加熱,并通過溫度檢測部分將噴頭和打印平臺的溫度與預先設定好的溫度進行比較,若到達設定值,則將控制信號傳遞給運動控制系統,由運動控制系統來控制電機完成規定的運動軌跡;同時,上位機可通過USB接口實現與上位PC機進行可靠快速通信,保證打印數據文件及時正確傳輸,上位機也可通過USB接口給系統發送控制命令。顯示部分用于顯示當前打印機的各個工作狀態,并且可以通過控制按鈕來控制打印機的速度、溫度等各種功能。斷絲檢測用于在打印過程中突然出現打印材料中途斷絲的情況,以防影響打印進度。斷電續打模塊用于突然斷電時,系統自動記錄當前的打印狀態,當再次上電時會提示是否繼續打印,這樣,不僅節約了成本,同時也省去了大量的時間。
2.1 STM32F103ZET6微控制器電路
STM32F103ZET6使用32位工作系統,頻率為72 MHz,I/O引腳豐富,工作電壓在2~3.6 V,可用工作溫度-40~85 ℃。STM32F103ZET6微控制器電路如圖2所示,其工作電壓為3.3 V,主頻振蕩器接8 MHz晶振,作為CPU的時鐘源;RTC振蕩器頻率為32.768 kHz、提供給RTC時鐘,作為CPU和監視定時器的時鐘源;TIM定時器端口用于控制加熱電路;SD_CS、SPI1_SCK、SPI1_MISO 、SPI1_MOSI端口連接SD卡電路;DIR、STEP、ENABLE等端口分別接7路步進電機驅動器;PC12、PC13端口用于連接斷電續打以及斷絲檢測電路。
2.2 步進電機驅動電路設計
本次使用的電機是兩相四線混合式步進電機,其工作電壓是24 V,額定電流是1.7 A,最大可承受2.5 A瞬間電流;其驅動芯片采用DRV8825的微雙極步進電機驅動器,具有可調電流限制、過流和過熱保護。可在整步、半步、1/4-step、1/8-step、1/16-step、1/32-step細分[7]模式下操作步進電機,驅動性能可達45 V及2.5 A,可提供足夠輸出功率[8]。內置穩壓器,可在慢或混合模式下工作。
DRV8825步進電機驅動器及外圍電路見圖3。STM32F103RCT6微控制器只需要控制EN、DIR、STEP這3路端口就能實現步進電機的運動。滑動變阻器用于控制驅動電流的大小。ENABLE端口用于使能DRV8825內部的FET輸出,當ENABLE為高時,不使能輸出,電機處于鎖緊狀態;當ENABLE為低時,使能輸出,電機運動。DIR端口用于控制步進電機的正反轉。STEP端口輸入微步信號,表示每輸入一個脈沖步進電機每步走的距離,通過M0、M1、M2控制細分步進量,細分方法見表1。

圖2 STM32F103ZET6微控制器電路

圖3 步進電機驅動電路

表1 驅動器細分表
2.3 上位機接口模塊
本文采用USB轉串口模塊用于連接上位PC機,通信電路如圖4所示。一般打印機的USB接口只能實現下載或者通信一種功能。本文采用了FT232RL芯片,其既可以通過次USB進行程序的更新,同時也可以連接到上位機,實現上位機與控制器的快速可靠通信。
2.4 加熱模塊
此次通過N溝道的MOSFET組成的開關電路實現PWM波形的輸出,通過改變PWM波的占空比達到調節噴頭和加熱床的目的。加熱電路見圖5。

圖4 上位機通信電路

圖5 加熱電路
2.5 斷電續打模塊
斷電續打模塊為AC220 V和開關電源的中轉區,一端接插座220 V,另一端接開關電源,通過繼電器控制它們之間的通短。斷電續打電路見圖6。其核心思想是當突然斷電時,利用其儲存在電容里的余電對微控制器芯片發送斷電指令,通知單片機此刻斷電以保存當前時刻的位置信息,當再次上電時,可以繼續打印上次未打印完成的模型。使用繼電器實現弱電控制強電,光電耦合器PC817隔離前后級電路,防止強電部分對弱電部分的干擾。Single端輸出高電平時為正常狀態。由于光耦反應速度在幾微妙左右,所以當突然斷電時,Single會瞬間發出一個低電平通知單片機來完成保存數據的命令,此時,單片機利用存儲在電容里的余電進行數據的保存。經驗證,此功能實現了單片機可順利完成數據的存儲功能。

圖6 斷電續打電路
系統涉及到的功能包括通信、數字信號控制和讀取與處理、電機的控制、斷電續打等。系統的主程序包括:系統的初始化;通過SP1接口讀取SD卡中的數據信息并將其保存到SD卡緩存區中,或者通過USB接口接受上位機發送的數據并將其保存到串口接受緩存區;然后處理接收到的數據;當在處理數據過程中出現突然斷電的情況下,斷點保存模塊會瞬間通知單片機,使其保存當前正在打印模型的信息到Flash存儲芯片內,當下次來電時,會顯示是否繼續上次未完成的模型信息繼續打印,否則可以重新選擇模型,是則讀取Flash內模型的信息繼續未完成的模型打印,直至打印完成;最后關閉功能并停機。主程序流程見圖7。
3.1 步進電機控制程序
由于步進電機正常狀態下的運行速度比較快,而對于剛啟動的情況,為了避免電機的振動,其啟動速度不能太快。在電機整個運轉過程中,電機需經過加速-恒速-減速-停止的運轉過程,要避免對電機的不良使用。在整個周期下,速度的控制是通過控制系統的脈沖頻率來實現的。步進電機的控制采用定時器中斷來實現。通過中斷讀取存儲在串口緩存區或者存儲在SD卡緩存區中的數據來計算出步進電機需要運行的總步數、加速步數、恒速步數、減速步數以及步進電機運行的方向[9],然后通過程序給出判斷并給方向引腳和脈沖引腳發出命令信號。步進電機的控制流程見圖8。

圖7 主程序流程

圖8 步進電機控制流程
3.2 溫度控制程序
溫度控制主要實現對加熱床和擠出機溫度的控制。通過定時器的中斷來獲得溫度傳感器采集的信號,單片機采集到信號將其轉換成數字量形式,對照溫度轉換表就可以獲得對應的溫度值,再與設定的參考溫度進行比較,通過PID方式來對溫度偏移進行檢測[10],實現對溫度的準確控制,提高打印質量。溫度控制流程見圖9。

圖9 溫度控制流程
圖10和圖11為無PID調節和有PID調節[11]時噴頭溫度曲線;比較兩圖可以看出,無PID調節溫度的時候,溫度曲線在設定溫度值上下徘徊,大約有十幾度的波動;當有PID調節溫度的時候,溫度曲線趨近于設定的溫度,上下偏差在0.6 ℃以內。
3.3 斷電續打控制程序
斷電續打控制程序實現斷電上電無間斷打印。當正在打印模型時出現斷電情況下,斷電續打模塊模塊會發出斷電信號并通知單片機,使得此刻單片機立刻進入外部中斷,將此刻模型的名稱、正在打印的溫度、XYZ的坐標信息保存到Flash外部存儲芯片上,當下次上電的時候,系統提示是否繼續未完成該模型打印,提高了打印速度。斷電打印流程見圖12。

圖10 無PID調節的溫度曲線

圖11 有PID調節的溫度曲線

圖12 斷電續打流程
3.4 實驗結果
實驗樣機見圖13,打印的彩色樣品見圖14。

圖13 實驗樣機

圖14 樣品
3D打印機技術已應用于生活中的各大領域,包括產品設計、模具制造、醫學領域等,3D技術已初步形成一套完整的技術體系。本文以彩色打印為基礎,外加斷電續打等功能,以ARM Cortex-M3系列芯片的STM32F103ZET6的微控制器芯片實現了三噴頭彩色3D打印機的控制系統設計,提高了處理數據信息的能力,打印速度有了保障。通過PID調節加熱床和噴頭溫度。由于打印機的快速性和斷電續打功能,因而大大縮短了其模型設計到實現的周期。
References)
[1] 朱建軍,徐新成,趙中華.快速成型工藝探索[J].實驗室研究與探索,2013,32(8):261-264
[2] 張龍. 3D打印過程的計算機仿真研究[D]. 蘭州:蘭州理工大學,2014.
[3] 張國玲,吳濤,張功國. 快速成型訓練項目的建設與實踐[J]. 實驗室研究與探索,2011,30(3):314-316,325.
[4] 胡威捷.現代顏色技術原理及應用[M].北京:北京理工大學出版社,2007
[5] 王振華,薛嚴冰,許琳娜. 基于STM32的立體式3D打印機控制系統設計[J]. 自動化技術與應用,2017,36(3):130-134.
[6] 劉欣靈 .3D 打印機及其工作原理 [J]. 網絡與信息 ,2015(2):45-46.
[7] 許延濤. 3D打印技術:產品設計新思維[J]. 電腦與電信,2012,(9):36-37.
[8] 古麗萍 . 蓄勢待發的 3D 打印機及其發展 [J]. 數碼印刷,2011(10):12-13.
[9] 劉厚才,莫健華,劉海濤. 三維打印快速成形技術及其應用[J]. 機械科學與技術,2008(9):1184-1190.
[10] 王雪瑩 .3D 打印技術與產業的發展及前景分析[J]. 中國高新技術企業,2012(26):3-5.
[11] 張岱,寧永海,馬源. 智能化PID控制實驗系統[J]. 實驗技術與管理,1995,12(3):45-48.
Design of three-nozzles 3D color printer system based on STM32
Ding Chengjun, Zhao Zeyu, Yin Leipeng
(College of Mechanical Engineering, Hebei University of Technology, Tianjin 300130, China)
In view of the shortcomings of the current 3D printer control system such as slow processing speed, complex circuit, rather poor printing quality, re-printing because of power failure, etc., a control system of the 3D color printer based on STM32 is designed. This scheme realizes the functions such as the upper computer communication, data processing, signal control, continuous printing after power failure, color printing, etc. The DRV8825 stepping motor driver is adopted to achieve the subdivision drive of the stepping motor, and the temperature of the heating bed is adjusted by means of the PID regulation. The main hardware circuit design and the software flow chart of the control system are discussed. The system performs well and shortens the printing time.
3D printer; STM32; continuous printing after power failure; PID regulation
10.16791/j.cnki.sjg.2017.11.026
TP334.8
A
1002-4956(2017)11-0106-08
2017-05-20
天津市科技支撐計劃項目(14ZCDZGX00811);天津市科技支撐計劃項目(13ZCZDGX01200);天津市產學研合作項目(14ZCZDSF00025,13RCHZGX01116); 天津市863成果轉化項目(14RCHZGX00862);天津市科技支撐計劃項目(15ZXHLGX0210)
丁承君(1973—),男,河北邯鄲,教授,博士生導師,主要研究方向為移動機器人智能控制、嵌入式計算機系統.
E-mail444014187@qq.com