方統浩+呂寧


摘要:隨著近年來3D打印逐漸融入我們的生活,傳統3D打印服務模式的弊端也愈顯嚴重,本文旨在對現有傳統的3D打印服務上,運用云計算技術與傳統3D打印相結合的方式,設計一種3D打印機網絡云平臺的設計方案,給用戶提供新的解決方案和智能服務。經搭建測試后,平臺的運作結果符合預期要求。
關鍵詞:3D打印機;云計算;智能服務;云服務
引言
隨著近年來3D打印逐漸融入我們的生活,其傳統的打印方式的弊端也越顯嚴重。傳統的3D打印服務的有著“傳統3D打印服務沒有依靠云平臺來作服務支撐”,“資源由于沒有整合形成資源池,導致設備資源的調度極其不方便”等固有缺陷。所以本文的內容著力用“云”+“3D打印”的結合來解決傳統3D打印方案的缺陷。
3D打印機+云的結合可以解決傳統的3D打印不靈活的情況,可以實現“遠程打印”,“一鍵打印”,“模型庫共享”等功能,以提供全新的智能化3D打印解決方案。云平臺有著“靈活”,“按需服務”,“無處不在的網絡訪問”等相對于傳統平臺的優勢。
1 系統主要技術以及框架
1.1 3D打印云平臺主要技術
其客戶機采用了3D打印機+客戶端的形式。3D打印機方面,主控平臺采用Arduino MEGA 2560 + RAMPS,采用A4988步進電機驅動,人機交互采用LCD12864+HMI串口屏,與客戶機通信方案有SD卡+Wifi+串口。服務器方面,采用CentOS操作系統,Web前端采用PHP,數據存儲方面選擇Mysql,在Web服務器方面采用Ngnix、技術。客戶可以通過人機交互串口屏來實現3D打印機的本地打印,也可以聯網通過云平臺服務來進行一鍵打印與狀態檢測,以及模型文件上傳下載等功能,實現“隨時隨地即可打印”。
1.2 系統框架
整體系統框架,如圖2-1所示。
圖2-1 整體系統框架圖
2 3D打印機部分
2.1 Arduino Mega 2560 + RAMPS主控
Arduino Mega2560是基于采用ATmega 2560的AVR架構處理器的微控制板,其最大的特點在于擁有54路數字輸入/輸出,其中15路可以作為PWM輸出,特別適合于大量IO接口的需求,16路模擬輸入,4路UART接口,一個16MHz晶體振蕩器。Mega2560屬于Mega的升級版,Arduino平臺相比于傳統硬件平臺,擁有社區,以及設計完善的軟件模塊等優勢。
2.2 LCD12864 HMI串口屏
采用LCD12864 HMI串口屏作為人機交互的手段,其最大的特點在于開發速度極快,可以自行利用PC機進行對其UI編程,擁有可編程智能LCD,觸摸顯示屏,嵌入式圖形界面,上位軟件自動在線升級等特點。
2.3 HC-05藍牙模塊
藍牙模塊BT-HC05模塊是一款高性能的主從一體可以設置的藍牙串口模塊,模塊的接口有串口、SPI接口、USB接口,可用于各種帶藍牙功能的電腦、藍牙主機、手機、PDA、PSP等智能終端配對。產品開發中我們選用了串口進行通信。
2.4 軟件部分
單片機編程采用Arduino Mega 2560 + RAMPS作為主控,可以跨平臺開發,便捷靈活,方便上手。其程序初始化過程為:系統初始化、IO初始化、串口初始化、中斷初始化、定時器初始化、HMI顯示屏初始化。
3 客戶端設計
3.1 本地打印
利用客戶端程序,通過串口,Wifi,SD卡以及藍牙的方式與3D打印機進行通信,來布置用戶的打印任務,相對于傳統打印沒有什么較大的區別。
3.2 聯網打印
利用云平臺的優勢,用戶可以下載官方客戶端,通過客戶端訪問服云端,實現例如“一鍵打印”,“模型上傳”,“模型下載”,“在線3D工具”等功能以及各種行業解決方案。用戶訪問Web網站,賬號與密碼采用RSA加密算法進行加密存儲于服務器的Mysql數據庫中,用戶通過HTTP協議GET請求與服務器進行通信,并且采用MD5校驗算法來檢驗數據的完整性。
3.3 軟件部分實現
3.3.1 圖形用戶界面
采用C++編程語言,圖形用戶界面應用開發采用比較流行的Qt程序開發框架,相較于傳統的MFC與win32,Qt開發具有以下優點,如表3-1所示。
表3-1 Win32、MFC和Qt程序開發對比
可見,Qt除了運行效率低于傳統的Win32與MFC,其余無論是從開發速度、可維護性、跨平臺、學習難度等方面來講,并且Qt可以解析HTTP協議,所以采用Qt作為圖形用戶界面。
3.3.2 客戶端框架
考慮到Windows操作系統和Linux操作系統的一些內核設計上的差異性,由于Windows下多進程程序的開發對操作系統的開銷十分巨大,決定采用多線程并發模式編程,采用高效的半同步--半異步并發模式。由于傳統的半同步--半反應堆模式其中的循環隊列需要臨界區,所以其并發性會有瓶頸。而后者的循環隊列采用的是原子性操作的管道(PIPE),所以采用高效的半同步--半異步并發模式。
其數據流走向過程如圖3-1所示。
圖3-1 半同步--半異步并發模式流程圖
4 服務器設計
4.1 服務器開發環境
服務器操作系統為CentOS 6.7操作系統,相對于同樣為Linux的Ubuntu,其特點在于CentOS相對于Ubuntu來講更加穩定以及更加安全。用CentOS,不會因為在Ubuntu系統中安裝帶有Bug的應用程序版本而遇到任何穩定性方面的問題,這也是采用CentOS操作系統的原因之一。endprint
4.2 Nginx Web服務器
Nginx是一款開源代碼的高性能HTTP服務器和反向代理服務器,通知支持IMAP、POP3、STMP服務。Nginx作為Web服務器,有著處理靜態文件、索引文件以及自動索引效率高的優點;作為負載均衡器,內不支持Rails和PHP,并且也支持HTTP代理服務器,對外進行服務。同時支持簡單容錯和利用算法進行負載均衡
4.3 Web前端設計
采用PHP作為前端開發語言,采用AJAX方式與后端進行交互,來獲得相關信息狀態。
4.4 數據加密與數據存儲部分
采用RSA加密算法對用戶的用戶名與密碼進行加密,RSA算法是目前最具有影響力以及最常用的公鑰加密算法,它能抵抗這個世界上絕大多數的密碼攻擊,已被ISO推薦為公鑰數據加密標準。服務端接收其被加密過的用戶名與密碼,并將其儲存在Mysql數據庫中以方便后續查詢。工作流程如圖4-1所示。
圖4-1 RSA加密算法與客戶登陸流程圖
5 系統測試
5.1 測試步驟
1.開啟打印機,啟動相關設備,可以嘗試本地打印來測試打印機功能完整性;
2.通過瀏覽器訪問相關網站,下載客戶端程序;
3.登入客戶端,輸入用戶名和密碼,等待驗證,進入客戶端主控界面;
4.點擊“模型庫”,選中要打印的模型,點擊“下載模型文件”;
5.點擊“一鍵打印”,導入下載好的模型庫,此時客戶端和3D打印機液晶屏應該能正確顯示打印進度以及溫度等信息,此時可以測試“暫停打印”與“繼續打印”功能;
6.若可以打印且打印完成,可以將打印過程信息數據和模型上傳云端,測試其數據上傳功能。
5.2 測試設備
本測試方案的所需的設備包括:3D打印機一臺;PC機一臺;用于調試的PC機一臺。
5.3 測試數據
利用Wireshark網絡分析包軟件來進行抓取分析客戶端與服務器之間的通信數據包,
其服務器響應控制碼如表5-2所示。
表5-2 服務器響應控制碼表
5.4 測試結果
1.3D打印機啟動無問題,最基本的本地打印功能無問題;
2.客戶端程序下載無問題;
3.模型庫瀏覽無問題。用Wireshark進行抓包分析,其中HTTP請求與響應無問題;
4.一鍵下載功能無問題,打印機啟動,此時液晶屏顯示3D打印機目前的打印信息,如打印進度,溫度等信息;
5.打印完成,本地打印信息文件生成無問題,點擊“上傳云端”,無問題,服務器接收成功。
測試結果如表5-3所示。
表5-3 測試結果
6 結語
云計算平臺是未來眾多技術發展的趨勢之一,隨著“互聯網+”模式的逐漸普及,云計算平臺也逐漸走進大眾生活。相信未來的不久,3D打印+云平臺的服務模式將成為主流的服務模式。
參考文獻:
[1]萬偉康,趙康,王文博等.3D打印機網絡服務的智能云平臺設計[J].單片機與嵌入式系統應用.2016,33(03):19-22.
[2]張良杰,鐘石根,郭凌等.基于物聯網的在線打印出版云平臺設計[J].信號與系統,2017,23(07):37-41.
[3]王文濤,劉燕華.3D打印制造技術發展趨勢及對我國結構轉型的影響[J].科技管理研究.2014,34(06):22-25.
作者簡介:第一作者:姓名:方統浩(1996.10--);性別:男;籍貫:黑龍江省尚志市;學歷:本科.endprint