鐘遠平,胡云峰,陳李勝,何惠龍
(電子科技大學中山學院,廣東 中山 528400)
3D 打印技術是一種快速成型技術,它通過將材料層進行堆疊黏合來制造產品,屬于增材制造。物聯網技術使機器、控制器、傳感器、人員和物料等通過新的方式聯在一起,形成物與物、人與物相連,并且可以實現遠程管理控制。隨著物聯網技術的發展,物與物間的通信成為了可能,3D 打印機的遠程控制和打印成為了該領域可以研究的點。基于物聯網的3D 打印控制終端把3D 打印機和物聯網技術進行結合,使用戶可以應用3D 打印機的遠程控制、打印等功能,讓用戶更加高效、便捷地打印3D 模型,對3D 打印機的發展和普及具有較大的意義。
基于物聯網的3D 打印控制終端工作于云服務器和3D 打印機之間。其中,云服務器與3D 打印控制終端使用TCP/IP 進行通信;3D 打印控制終端與3D 打印機使用串口進行通信。系統整體結構如圖1 所示。

圖1 系統整體結構框圖
云服務器使用TCP/IP 協議獲取3D 打印機當前工作狀態與下發控制命令、G-code 文件到3D 打印控制終端;3D 打印控制終端使用串口獲取3D 打印機狀態與下發G-code 命令控制3D 打印機工作。
3D 打印機以開源項目RepRap 為藍本,該3D 打印機是一部可以生成塑料實物的免費桌面型3D 打印機,由塑料結構件、主控電路板、42 步進電機、打印噴頭、熱床平臺、絲桿、光桿和軸承等組成。其主控器控制指令遵循“RepRap G-code”標準,默認的G-code 指令緩存為4,完成1 條G-code 指令后使用“ok”字符串作為返回值。RepRap G-code 是由空格或換行符分隔的字段列表。字段可以解釋為命令、參數或任何其他特殊用途。它由1 個字母緊跟1 個數字組成,也可以只是1 個獨立的字母(標志)。該字母提供了有關字段含義的信息,見表1。

表1 G-code 字段含義信息表
考慮成本以及實驗的便捷,3D 打印控制終端的主控板采用ARM Cortex A7 架構,主控芯片為Broadcom BCM2836,4 核,主頻為900 MHz,內存為1 GB,運行Linux 操作系統。BCM2836 有豐富的接口,可增強系統后期的可拓展性。考慮網線的引線不便捷因素,3D 打印控制終端選用USB 無線網卡(TP-LINK TLWN725N)連接網絡。如圖2 所示。

圖2 3D 打印控制終端硬件原理圖
3D 打印控制終端主控板使用USB 口與無線網卡和3D 打印機相連,并通過無線網卡接入Wi-Fi 連接以太網。供電電源使用12 V、3 A 直流電源給3D 打印機供電,使用5 V、1 A 直流電源給主控板供電。
3D 打印控制終端控制軟件框架圖如圖3 所示。

圖3 3D 打印控制終端軟件框架圖
上位機控制軟件通過創建2 個線程實現與云服務器和3D 打印機交互。
云服務器交互:為了更簡單、更可靠地實現3D 打印控制終端與云服務器的通信,軟件中使用一個基于TCP/IP 的套接字實現3D 打印控制終端與云服務器的通信,通信命令類型見表2。
3D 打印機調試控制命令:上位機控制軟件在接收到3D 打印機調試控制命令后,直接把3D 打印機調試控制命令通過3D 打印機交互線程發送到3D 打印機,3D 打印機完成指令操作。
文件傳輸的命令:上位機控制軟件在接收到文件傳輸的命令后,進入文件傳輸狀態。其中,云服務器發送的文件傳輸命令中包含文件的文件名和文件大小信息,上位機控制軟件根據這些信息在文件系統中創建文件,并開始接收與存儲由服務器發送過來的G-code文件數據。
打印三維模型命令:上位機控制軟件在接收到打印三維模型命令后,進入三維模型打印狀態。上位機控制軟件根據三維模型命令中包含的G-code 文件名,使用系統調用open 函數打開G-code 文件。由于RepRap 3D 打印機主控器的G-code 緩存默認為4,為了方便管理3D 打印機的緩存資源,上位機控制軟件創建一個信號量初始值為4 的信號量對3D 打印機的G-code 緩存進行管理。
3D 打印機交互:3D 打印機連接到3D 打印控制終端時,3D 打印機會產生復位操作,使3D 打印機擠出頭回到打印坐標原點準備打印。3D 打印機是一個串口設備,在3D 打印控制終端的Linux 操作系統中以一個字符設備的設備文件呈現。使用操作系統的系統調用open 函數打開3D 打印機對應的串口設備文件,使用操作系統的系統調用write 函數把G-code 命令發送給3D 打印機,3D 打印機根據指令動作,操作完成后返回字符串“ok”。
上位機控制軟件工作流程如圖4 所示。軟件運行后嘗試與云服務器建立連接,與云服務器連接成功之后嘗試連接3D 打印機,與3D 打印機連接成功之后開始等待云服務器發送通信命令,上位機軟件解析云服務器發送過來的通信命令,并根據通信命令控制3D打印機工作。

圖4 上位機控制軟件工作流程圖
為了方便調試,在編寫3D 打印控制終端控制軟件過程中加入相應的打印信息。通過查看程序執行時輸出的打印信息,可知道程序的執行過程。3D 打印控制終端控制軟件測試的準備步驟:①開啟云服務器的相應服務;②使用Mini USB 數據線連接就緒的3D 打印機和控制終端;③使用SSH 登錄到控制終端中運行的Linux 操作系統;④運行控制終端上位機控制軟件,查看軟件運行過程中的打印信息。功能測試結果見表3,3D 打印機在接收到云服務器下發的“G28”控制命令后,3D 打印機的打印噴頭回到打印坐標原點,遠程控制功能測試正常,如圖5 所示。

表3 云服務器與3D 打印控制終端通信命令類型表

圖5 3D 打印控制終端測試實物圖
本文提出一種新的3D 打印機控制方式,通過3D打印控制終端+云服務器的方式實現3D 打印機的遠程控制。本設計選用價格較為低廉的嵌入式開發板硬件完成了3D 打印控制終端的制作,使用USB 數據線與3D 打印機進行連接、TCP/IP 與云服務器進行通信。經實驗驗證,3D 打印控制終端可以遠程控制3D 打印機動作和打印三維模型。3D 打印控制終端使3D 打印機擺脫需要使用PC 連接并使用PC 上位機軟件其進行控制的束縛,使用戶對3D 打印機的控制和操作方式變得便捷,可為后期3D 打印服務智能化提供基礎。