1 無線式3D打印機控制器設計方案
控制器的核心CPU選用ST公司的STM32F103VET6微控制器,控制系統主要完成接收WiFi模塊傳輸的數據;讀取SD卡內存放的3D模型數據文件;完成對步進電機的控制;擠出頭和熱床的溫度控制;擠出頭行程控制等。無線式3D打印機的控制系統總體框圖如圖1所示。
如圖1所示,手機端的控制軟件代替了電腦,通過手機上的wifi將打印數據和命令傳輸到3D打印機控制器進行打印控制,3D打印機控制器也會將擠出頭及熱床溫度、打印機當前狀態等信息傳輸到手機端進行顯示,方便用戶查看。3D打印機控制器通過wifi模塊接收數據文件存儲到SD卡中,打印數據存儲完成后,當控制器接收到打印命令后就可以開始打印了。兩路溫度傳感器經CPU片內A/D轉換通道分別檢測擠出頭和熱床的溫度;CPU的兩路數字信號輸出分別控制擠出頭和熱床加熱電路的NMOS功率開關管,結合溫度傳感器實現擠出頭和熱床溫度的控制;四路步進電機驅動電路分別控制X、Y、Z這3個軸的步進電機以及擠出頭的步進電機;三路行程開關定位X、Y、Z軸的原點和運動相對位移量。
2 系統硬件電路設計
2.1 wifi通信電路設計
本設計中選用的是ESP8266為主控芯片的wifi模塊。ESP8266的wifi模塊具有接口簡單、價格低廉、高效的AT指令,開發更簡單等特點。ESP8266芯片具有一個完整且自成體系的wifi網絡解決方案,高度片內集成,包括天線開關、電源管理轉換器,因此只需要極少的外部電路,且包括前端模塊在內的整個電路所占PCB空間非常小,專為移動設備和物聯網應用設計,可將用戶的物理設備連接到wifi無線網絡上,進行互聯網或局域網通信。WiFi模塊采用UART和控制器進行通信。STM32通過串口TX發送AT指令對wifi的工作模式、UART波特率、建立連接等相關參數進行設置。STM32的USART接收端口RX則接收wifi模塊從移動端接收到數據和指令。這樣,當移動端和3D打印終端建立無線連接后,就可以實現數據雙向通信了。
2.2 步進電機驅動電路設計
對于小型打印機一般采用兩相四線42系列的步進電機。STM32控制步進電機要借助于電機驅動電路,在3D打印機中一般采用A4988芯片作為步進電機驅動,但A4988芯片最大只有16細分,輸出最大電流為2A。而TI公司的DRV8825步進電機驅動芯片最高可以達到32細分,驅動電流可以輸出2.5A,低至0.2歐的導通電阻,保證了芯片良好的散熱性等優勢。另外芯片還集成了快速響應的短路、過熱、欠壓及交叉傳導保護功能電路,能夠檢測故障狀況,并迅速切斷H橋,從而為電機和驅動芯片提供保護。本設計選擇DEV8825作為步進電機驅動芯片。圖2為步進電機驅動電路和加熱及溫度檢測電路與 STM32的接口。圖2中P1為兩相四線步進電機和DRV8825驅動電路的接口,芯片的STEP步進和DIR方向控制管腳連接到STM32的PC0和PC1管腳進行控制。本設計中在驅動電路硬件設計時已經將細分設置為1/32,休眠、復位等都失能,這樣可以節省STM32的GPIO端口,如果控制器芯片管腳夠用,可以通過程序控制這些管腳進行更多功能的步進電機控制。
2.3 擠出頭溫度檢測及加熱電路設計
3D打印過程中擠出頭和熱床都需要保持相對恒定的溫度,如果采用的是PLA打印材料一般將擠出頭加熱溫度設置為175-200度,熱床溫度設置為40-60度。電路中溫度檢測采用MAX6675數字溫度轉換芯片將熱敏電阻的溫度轉換為數字量由STM32讀出。擠出頭和熱床溫度可根據具體使用環境確定實際溫度值,擠出頭和熱床溫度檢測和加熱電路是相同的,這里以擠出頭溫度檢測和加熱電路說明其加熱原理,電路如圖2所示。
JP27為加熱管的接線端子,連接直流發熱芯,R41和D13組成指示燈電路,MOS管Q3導通時,指示燈D13亮,發熱芯加熱。U4為熱敏電阻溫度轉換芯片,轉換完成的溫度數字量通過STM32的3個管腳根據MAX6675操作時序讀出。STM32將讀出的溫度值和設定的溫度值進行比較,形成反饋,采用 PID算法實現溫度的恒定。
3 系統軟件設計
3.1 手機端APP軟件設計
移動端的應用程序主要實現3D打印文件的選擇、確認、3D打印機狀態顯示以及wifi的連接等。應用程序采用Android編程,實現打印數據文件的讀取,并控制wifi進行數據的傳輸,還能夠設置3D打印機的打印頭溫度、熱床溫度,并且可以接收打印頭和熱床溫度進行顯示,以及所用材料類型及使用量信息進行顯示。移動端應用程序主要頁面設計如圖3所示。
首先在應用程序首頁選擇要打印的STL文件,進入下一界面進行預覽,預覽確認后可以啟動打印,在打印界面可以選擇暫停,并能夠顯示當前打印機的速度、熱床和擠出頭溫度等信息。
3. 2 主程序流程圖
軟件程序具有通信、數字信號的控制和數據讀取與處理等功能,根據設計要求,軟件程序流程圖設計如圖4所示:
首先,3D打印機終端對wifi、電機及加熱等模塊初始化完成后,開始等待移動端發出的打印命令。一旦移動端發出打印命令,接收端接收到命令后,開始接收數據,為節省時間,在接收打印數據的同時,對擠壓頭及熱床進行預熱。當檢測到數據接收完成,溫度等達到預設值后,啟動打印,并將打印速率、擠壓頭及熱床溫度等信息實時回傳到手機的應用軟件上進行顯示,直到打印完成。
4 結束語
隨著3D打印機和手機、平板電腦等移動終端的普及,采用移動終端對3D打印機進行控制是未來3D打印機的發展方向。本文就實現3D打印機的無線打印,給出了具體實現原理及程序流程,采用STM32微控制器提高了處理速度,加熱電路通過PID調節,保證了溫度恒定,減少了斷絲、粗細不均現象,提高了打印質量。經實際驗證,能夠實現手機等移動終端對3D打印機的控制,并且本設計提高了打印質量。無線打印,為用戶使用3D打印機提供了方便。