譚秀騰,郭小定,李小龍,余亮
湖南科技大學(xué)信息與電氣工程學(xué)院,湖南湘潭 411201
基于ARM的桌面型3D打印機控制系統(tǒng)設(shè)計
譚秀騰,郭小定,李小龍,余亮
湖南科技大學(xué)信息與電氣工程學(xué)院,湖南湘潭 411201
針對基于單片機為控制器的桌面型3D打印機控制系統(tǒng)中存在的處理速度慢、片外芯片多、電路復(fù)雜、打印質(zhì)量不高等問題,設(shè)計了基于ARM為控制器的桌面型3D打印機控制系統(tǒng)。系統(tǒng)采用了NXP公司推出的基于ARM Cortex-M3內(nèi)核的LPC1768微控制器,用它進行與上位機通信、數(shù)據(jù)處理、模擬量采集與處理、信號控制,選用A4988專用兩相步進電機驅(qū)動器實現(xiàn)步進電機細分驅(qū)動,簡化步進電機細分驅(qū)動的設(shè)計,行程開關(guān)電路采用GK152紅外光電傳感器.軟件采用了PID方式調(diào)節(jié)加熱床、擠出機加熱溫度。文中論述了控制系統(tǒng)主要硬件電路設(shè)計和軟件的實現(xiàn)流程,系統(tǒng)測試表明性能良好.
Cortex-M3;LPC1768;桌面型3D打印機;PID調(diào)節(jié);步進電機/A4988
3D打印(即三維打印、增材制造),也稱作快速成型技術(shù),具有不受零件復(fù)雜程度限制,完全數(shù)字化控制,無需開磨具等特點[1],因此3D打印機在生產(chǎn)應(yīng)用方面有著巨大的潛力。3D打印機主要分為入門級和工業(yè)級2種[2]。文中介紹的桌面型3D打印機為入門級,系統(tǒng)采用的工藝類型為熔融擠出成型。目前桌面型3D打印機控制系統(tǒng)主要采用AVR系列單片機作為核心控制器,該系列單片機工作頻率較低、內(nèi)部外設(shè)少,致使該系統(tǒng)數(shù)據(jù)處理速度慢、電路復(fù)雜、調(diào)試困難、抗干擾能力差。因此文中設(shè)計了基于ARM的桌面型3D打印機控制系統(tǒng)。
控制系統(tǒng)的核心CPU選用基于ARM Corxtex-M3內(nèi)核的LPC1768微控制器,控制系統(tǒng)主要完成對步進電機的控制、擠出機加熱電阻和加熱床的溫度控制、擠出機工作零點與行程的控制;讀取SD卡存放的配置文件、打印數(shù)據(jù)文件;通過USB與上位機通信。
控制系統(tǒng)的總體框圖如圖1所示。控制系統(tǒng)的供電通過電源電路提供。系統(tǒng)通過LPC1768微控制器的片內(nèi)SPI接口讀取SD卡里的配置文件、打印數(shù)據(jù)文件,通過片內(nèi)USB接口實現(xiàn)與上位PC機進行可靠快速通信,保證打印數(shù)據(jù)文件及時正確傳輸,同時上位機可通過USB接口給系統(tǒng)發(fā)送控制命令。兩路輸出數(shù)字信號分別控制加熱床加熱電路和擠出機加熱電路中的低通電阻NMOS功率開關(guān)管,實現(xiàn)加熱床及擠出機中加熱電阻的加熱。溫度傳感器電路的兩路模擬量經(jīng)片內(nèi)A/D轉(zhuǎn)換通道輸入,實現(xiàn)加熱床、擠出機溫度的檢測和控制。四路步進電機驅(qū)動電路分別控制X、Y、Z這3個軸的步進電機及擠出機的步進電機,實現(xiàn)打印件的打印。三路行程開關(guān)電路定位X、Y、Z軸的原點和運動相對位移量。ISP/JTAG接口用于測試程序的燒寫與調(diào)試。

圖1 基于ARM的桌面型3D打印機控制系統(tǒng)結(jié)構(gòu)
2.1 LPC1768微控制器電路
LPC1768微控制器含有豐富的內(nèi)部外設(shè)使得該處理器特別適合運動控制應(yīng)用,能夠?qū)崿F(xiàn)單片控制。LPC1768芯片采用32位操作,工作頻率可達100 MHz,采用3級流水線和哈佛結(jié)構(gòu),帶獨立的本地指令和數(shù)據(jù)總線以及用于外設(shè)的第三條總線[3-4],因此具有數(shù)據(jù)處理速度快的特點。外設(shè)組件包括高達512 KB的Flash存儲器,64 KB的數(shù)據(jù)存儲器,保證了程序及數(shù)據(jù)處理的空間;USB主機/從機/OTG接口;SPI接口;8通道的12位ADC、10位DAC;4個通用定時器;多達70個通用I/O引腳、標(biāo)準(zhǔn)JTAG測試/調(diào)試接口,便于程序調(diào)試與程序燒寫。因此采用LPC1768無需外部擴展就能實現(xiàn)控制系統(tǒng)的所有功能。LPC1768微控制器電路如圖2所示。LPC1768微控制器電源電壓為3.3 V;磁珠L7把數(shù)字電源和模擬電源分開,磁珠L8把數(shù)字地和模擬地分開,電路減少了數(shù)字信號與模擬信號的相互干擾;主振蕩器接12 MHz晶振作為CPU的時鐘源,RTC振蕩器接32 kHz提供RTC時鐘輸出,作為PLL0、CPU和看門狗定時器的時鐘源;S2為微控制器復(fù)位按鍵;TDO、TDI、TMS、TRST、TCK、RST為JTAG接線端口;EXTRUDER_Heat、BED_Heat端口分別連接擠出機、加熱床電路,EXTRUDER_Temp、BED_Temp端口分別連接兩路溫度傳感器電路;SD_ SSEL、SD_SCK、SD_MOSI、SD_MISO端口連接SD卡電路;由于行程開關(guān)電路電源為+5 V,微控制器電源為+3.3 V,Opto_X_IN、Opto_Y_IN、Opto_Z_IN端口需要接上拉電阻進行電壓轉(zhuǎn)換,然后分別接三路行程開關(guān)電路;USB_D_P、USB_D_N、USB_Connect、USB_VCC、USB_UP_Led端口接USB通信接口電路。MZ_DIR、MZ_EN、MZ_STEP等端口分別接四路步進電機驅(qū)動電路。

圖2 LPC1768微控制器電路
2.2 步進電機驅(qū)動電路設(shè)計
步進電機采用兩相四線混合式42系列步進電機,工作電壓為24 V,額定相電流為1.7 A,步進精度為5%。步進電機驅(qū)動芯片采用Allegro帶轉(zhuǎn)換器和過流保護的DMOS微步驅(qū)動器A4988。A4988是一款完全的微步電動機驅(qū)動器,可在全、半、1/4、1/8及1/16步進模式時操作兩相步進電機,輸出驅(qū)動性能可達35 V及±2 A。能夠為系統(tǒng)所選步進電機提供足夠的輸出功率。帶有內(nèi)置轉(zhuǎn)換器,易于操作,無須進行相位順序表、高頻率控制行或復(fù)雜的界面編程[5]。A4988包括一個固定關(guān)斷時間電流穩(wěn)壓器,該穩(wěn)壓器可在慢或混合衰減模式下工作。在微步運行時,A4988內(nèi)的斬波控制可自動選擇電流衰減模式(慢或混合)。混合衰減電流控制方案能減少可聽到的電動機噪音、增加步進精確度并減少功耗,降低驅(qū)動芯片的溫度,提供內(nèi)部同步整流控制電路,以改善脈寬調(diào)制(PWM)操作時的功率消耗。內(nèi)部電路保護包括帶滯后的過熱關(guān)機、欠壓鎖定及交叉電流保護,不需要特別的通電排序。
A4988步進電機驅(qū)動器及外圍電路如圖3所示。LPC1768微控制器只要控制ENABLE、DIR、STEP這3路端口就能完全實現(xiàn)步進電機的運動。ENABLE端口使能A4988內(nèi)部的FET輸出,ENA-BLE端口輸入為高電平時不使能輸出,電機不運動,處于鎖緊狀態(tài);只有ENABLE端口為低電平時使能輸出,電機才可以運動。DIR端口輸入信號控制步進電機的正反轉(zhuǎn),為高電平時,步進電機順時針旋轉(zhuǎn),為低電平時,步進電機逆時針旋轉(zhuǎn)。STEP端口輸入微步信號,如果LPC1768微控制器按工作頻率給STEP端口輸入上升沿微步信號,就能夠控制步進電機工作。通過調(diào)節(jié)開關(guān)S10、S11、S12控制細分步進量,細分方法如表1所示。

表1 步進控制邏輯表
為了克服步進電機運行時存在的低頻振蕩、高頻出力不足容易失步以及定位精度不高等缺點[6],文中系統(tǒng)采用1/16步進量細分法,同時能夠使步進電機具有良好平滑運行性能。StepMotor_1B和StepMotor_1A引腳分別連接到2相步進電機其中一相線圈的兩端,StepMotor_2B和StepMotor_2A引腳分別連接到2相步進電機其中另一相線圈的兩端。電容C29是電荷泵電容產(chǎn)生一個高于VIN1的門電平,另外VIN1與VCP端口之間加一個100 nF的電容C40,同時用來驅(qū)動A4988中DMOS源端門。滑動變阻器P5提供REF端口電壓經(jīng)內(nèi)部DAC給電壓比較器同相輸入端,SENSE1、SENSE2端口的R74、R75電阻取樣輸出電流給電壓比較器反相輸入端,當(dāng)R74、R75兩端電壓等于內(nèi)部DAC輸出時,A4988輸出關(guān)閉。本電路的最大輸出電流為ITrip-MAX=VREF/(8×RS)=(3.3×10)/(39+10)/8× 0.047=1.79 A。調(diào)節(jié)P5,可使步進電機工作在1.7 A的額定相電流。

圖3 步進電機驅(qū)動電路
2.3 行程開關(guān)電路
系統(tǒng)中行程開關(guān)采用光電器件,克服了接觸式行程開關(guān)存在響應(yīng)速度慢、精度差、接觸檢測容易損壞被檢測物及壽命短等缺點,且體積小、壽命長、精度高、響應(yīng)速度快、檢測距離遠以及抗光、電、磁干擾能力強[7]。LPC1768微控制器輸入端口采用下降沿中斷模式,保證了信號的實時處理,提高了控制的精確度。行程開關(guān)電路如圖4所示。關(guān)電開關(guān)放置在各個軸運動的零點,當(dāng)一個軸或多個軸往零點運動時,如果固定在軸上的擋片運行到U1 GK152光電器件槽內(nèi),擋片擋住了連接在1、2腳上的發(fā)光二極管發(fā)出的光,U1的3腳輸出高電平,Q1導(dǎo)通,OUT端口輸出低電平信號。微控制器通過判斷端口信號是否為下降沿信號來控制步進電機運動。

圖4 行程開關(guān)電路
2.4 USB通信接口電路
LPC1768微控制器內(nèi)部含有USB通信接口,不需要外加USB接口芯片就能實現(xiàn)與上位機通信。文中系統(tǒng)采用USB從機模式,數(shù)據(jù)傳輸速度最高達12 Mb/s,因此保證了數(shù)據(jù)的及時準(zhǔn)確度,提高了抗干擾能力,減少了電路板的面積。USB通信接口電路圖如圖5所示,USB_Connect端口在軟件控制下,該端口用于切換R87、1.5kΩ外部電阻;USB_VCC端口用于監(jiān)控USB總線電源的存在;USB_D_N端口和USB_D_P端口用于數(shù)據(jù)傳輸;USB_Up_Led端口連接發(fā)光二極管用于顯示通信狀態(tài)。

圖5 USB通信接口電路
2.5 溫度傳感器電路
溫度傳感器采用負溫度熱敏電阻,溫度傳感器電路如圖6所示。

圖6 溫度傳感器電路
BED_NTC1,BED_NTC2兩端外接用于控制加熱床的熱敏電阻,EXTRUDER_NTC1,EXTRUDER_ NTC2兩端外接用于控制擠出機的熱敏電阻。BED_ Temp端口、EXTRUDER_Temp端口分別連接微控制器用于讀取加熱床的加熱溫度、擠出機的加熱溫度。
控制系統(tǒng)軟件具有通信、數(shù)字信號的控制和數(shù)據(jù)讀取與處理等功能,能實現(xiàn)系統(tǒng)的控制要求。系統(tǒng)主程序主要包括系統(tǒng)初始化;通過SPI接口讀取SD卡中的配置文件(SD卡中如果有配置文件,替換初始化中的配置文件;如果SD卡中沒有配置文件,使用初始化時的配置文件);判斷是否有數(shù)據(jù)通過USB接口接收上位機發(fā)送的數(shù)據(jù)(如果有讀取上位機發(fā)送的數(shù)據(jù),把數(shù)據(jù)保存在串口接收緩存區(qū);如果沒有上位機發(fā)送的數(shù)據(jù),讀SD卡中打印數(shù)據(jù)文件并保存到SD卡接收緩存區(qū));然后處理接收的數(shù)據(jù),如果超過30 s沒有數(shù)據(jù)處理,關(guān)閉程序控制功能并停止步進電機。軟件主流程圖如圖7所示。當(dāng)使用SD卡保存打印數(shù)據(jù)文件時,不需要與上位機連接,使系統(tǒng)工作在脫機打印狀態(tài)就可以獨立完成打印任務(wù)。初始化程序主要包括關(guān)中斷、中斷優(yōu)先級和中斷向量表的設(shè)置;系統(tǒng)時鐘源初始化;SPI串口初始化;系統(tǒng)節(jié)拍定時器初始化;定時器0/1初始化;A/D轉(zhuǎn)換初始化;I/O引腳初始化;使能步進電機驅(qū)動器A4988的ENABLE引腳;配置文件初始化等。

圖7 主程序流程
3.1 步進電機控制程序
由于步進電機的極限啟動頻率比較低,而運行速度比較高,以要求的速度直接啟動步進電機不能正常啟動,因此步進電機在整個運行過程中需要有一個加速-恒速-減速停止的過程。速度控制是通過控制系統(tǒng)的脈沖頻率或換向周期來實現(xiàn)的[8]。步進電機控制采用定時器1中斷實現(xiàn)。通過中斷讀取串口接收緩存區(qū)中的數(shù)據(jù)或SD卡接收緩存區(qū)中的數(shù)據(jù),計算出步進電機需要運行的總步數(shù)、加速步數(shù)、恒速步數(shù)、減速步數(shù)以及步進電機運行方向。然后通過程序判斷并給相應(yīng)的方向引腳和步進引腳脈沖信號從而實現(xiàn)步進電機的正反轉(zhuǎn)運動。步進電機控制程序流程圖如圖8所示。

圖8 步進電機控制流程

圖9 溫度控制流程
3.2 溫度控制程序
溫度控制程序?qū)崿F(xiàn)了加熱床、擠出機的溫度控制。通過10 ms的定時器中斷讀取溫度傳感器上的電壓模擬量,計算轉(zhuǎn)換成數(shù)字量,再根據(jù)溫度轉(zhuǎn)換表將數(shù)字量轉(zhuǎn)換成相應(yīng)的溫度值,與設(shè)定的參考溫度比較實現(xiàn)溫度的控制。在軟件設(shè)計中,采用了PID方式調(diào)節(jié)溫度,從而有效地控制溫度的偏移,提高了打印件的質(zhì)量。溫度控制流程圖如圖9所示。
通過上位機軟件顯示的實際測試溫度曲線如圖10所示。給出2種控制方式的設(shè)定溫度為180℃,PID參數(shù)為Kp=22.2,Ki=1.08,Kd=114。
從圖中溫度曲線可以看出,PID調(diào)節(jié)的溫度較無PID調(diào)節(jié)的溫度曲線穩(wěn)定,無PID調(diào)節(jié)的溫度與設(shè)定溫度大約有10℃的波動,且溫度偏高,有PID調(diào)節(jié)的溫度趨近于設(shè)定的溫度。

圖10 實際測試擠出機溫度曲線
3.3 實驗結(jié)果
實驗樣機和正在打印3D模型如圖11所示。

圖11 實驗樣機
文中以基于ARM的LPC1768芯片為控制核心,給出了實現(xiàn)桌面型3D打印機控制系統(tǒng)的軟硬件設(shè)計方法。采用LPC1768微控制器提高了處理數(shù)據(jù)的能力,加快了打印速度,行程開關(guān)使用光電器件,減少了打印件各層的偏移,通過PID調(diào)節(jié)溫度減少了打印件斷絲,粗糙等擠出材料不均勻現(xiàn)象,提高了打印質(zhì)量。樣機測試運行結(jié)果表明,系統(tǒng)運行性能穩(wěn)定,打印質(zhì)量滿足了設(shè)計要求。
[1]劉厚才,莫健華,劉海濤.三維打印快速成形技術(shù)及其應(yīng)用[J].機械科學(xué)與技術(shù),2008(9):1184-1190.
[2]王雪瑩.3D打印技術(shù)與產(chǎn)業(yè)的發(fā)展及前景分析[J].中國高新技術(shù)企業(yè),2012(26):3-5.
[3]孫安青.ARM Cortex-M3嵌入式開發(fā)實例詳解—基于NXP LPC1768[M].北京:北京航空航天大學(xué)出版社,2012:1-6.
[4]NXP Semiconductors Inc.LPC17xx user manual[EB/OL].[2013-09-08].http://www.nxp.com.
[5]Allegro Microsystems Inc.A4988 microstepping dmos driver with translator data sheet[EB/OL].[2013-09-10].www.allegromicro.com.
[6]劉鼎邦.兩相混合步進電機細分驅(qū)動的研究[D].長沙:長沙理工大學(xué),2012:14-22.
[7]吳金宏,張連中,劉麗娜.光電開關(guān)及其應(yīng)用[J].國外電子元器件,2001(5):14-18.
[8]李智強,周杰,任勝杰.基于單片機的步進電機細分驅(qū)動控制系統(tǒng)[J].機電工程,2007,24(7):67-69.
Design of desktop 3D printer control system based on ARM
TAN Xiuteng,GUO Xiaoding,LI Xiaolong,YU Liang
School of Information and Electrical Engineering,Hunan University of Science and Technology,Xiangtan 411201,China
The desktop 3D printer control systems with a sigle-chip controller have problems of slow processing speed,more pieces of outside chips,circuit complexity and poor quality of printing.To solve these problems,a desktop 3D printer control system with an ARM controller is designed.The system employs the LPC1768 microcon-troller based on ARM Cortex-M3 core which is introduced by the NXP and used to communicate with the host com-puter,data processing,analog acquisition and processing,signal control,used A4988 special two-phase stepper motor driver to implement stepper motor subdivision drive and to simplify the drive design for stepping motor.The travel switch circuit adopts GK152 infrared photoelectric sensor.The software adopted PID method in order to adjust the heating temperature of heating bed and extruder.This paper discusses the main hardware circuit design and soft-ware realization process of the control system.The System testing shows good performance.
Cortex-M3;LPC1768;desktop 3D printer;PID regulator;stepping motor/A4988
TP23
A
1009-671X(2014)05-057-06
10.3969/j.issn.1009-671X.201310013
2013-10-20.
日期:2014-09-24.
湖南省科技廳資助項目(2011TT2030).
譚秀騰(1982-),男,碩士研究生;
郭小定(1963-),男,教授.
郭小定,E-mail:1336436647@qq.com.
http://www.cnki.net/kcms/doi/10.3969/j.issn.1009-671X.201310013.html