钟远平,胡云峰,陈李胜,何惠龙
(电子科技大学中山学院,广东 中山 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 打印服务智能化提供基础。