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

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

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

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

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

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

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

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