如何在不使用任何额外程序/软件的情况下直接从 Raspberry Pi 将 G 代码发送到我的打印机

3D打印 树莓派
2021-05-05 19:01:56

我想将我的驱动程序从打印机插入到我的 Raspberry Pi 中。我想通过直接从 Raspberry Pi 命令行(如果可能)向驱动程序发送 G 代码来控制打印机的轴。

这是可能的,如果是的话,有人知道怎么做吗?正如我上面所说的,没有使用任何 3rd 方程序/软件。

3个回答

一种非常笨拙、简单的从终端向打印机发送 GCODE 的方法可以通过以下方式实现:
echo "gcode here" > /dev/ttyS0
/dev/ttyS0 可能会有所不同,它可能是 /dev/ttyACM0、/dev/ttyUSB0 或具有不同编号的任何类似内容。

您可以使用命令找出适合您的打印机的路径ls /dev/tty*,并将结果与​​插入和拔出打印机的结果进行比较,无论哪个设备弹出新设备都应该是您的打印机。
同样,某些打印机可能会出现在/dev/serial/by-id/而不是 中/dev/tty*,因此如果您无法正常找到您的打印机,请尝试ls /dev/serial/by-id/替代。

如果这似乎不起作用,您可能需要使用命令更改串行设置sudo stty -f /dev/ttyS0 115200,将 /dev/ttyS0 和 115200 分别替换为设备路径和打印机波特率。

如果您正在寻找更双向的解决方案,您可以使用命令screen,该命令通常默认安装。您可以像这样使用它:
screen /dev/ttyS0 115200然后按 Control+A 退出,然后按 D
另一个解决方案是pronsolePrintrun/Pronterface 中实用程序,可以使用它进行安装sudo apt install printrun和调用,pronsole.py然后您可以使用语法
connect /dev/ttyS0 115200或简单地连接到您的打印机connect,因为 pronsole 能够自动连接到您的打印机。exit命令退出

您可以使用 将数据发送到串行端口echo,但您必须使用cat来获取响应。

通过串行接口向打印机发送 G 代码是一种双向操作,需要在发送进一步命令之前等待打印机的确认。理论上,这不应该是必要的,应该使用硬件流控制(如果硬件不可用,甚至是 XON/XOFF 流控制),但这不是完成的方式。因此,使用诸如“cat”之类的“哑”命令发送 G 代码是行不通的。

如果您想手动发送单个命令,您可以使用 Minicom 之类的程序(或 screen 的内置串行终端支持)并自己处理确认。但是,如果您想真正流式传输打印作业,则至少需要一个最小的程序。如果您愿意,可以用几行 Python 或 Perl 来编写它。我知道有这样的例子,但我手边没有链接,也没有尝试过其中任何一个能够推荐一个,无论如何。