我想将我的驱动程序从打印机插入到我的 Raspberry Pi 中。我想通过直接从 Raspberry Pi 命令行(如果可能)向驱动程序发送 G 代码来控制打印机的轴。
这是可能的,如果是的话,有人知道怎么做吗?正如我上面所说的,没有使用任何 3rd 方程序/软件。
我想将我的驱动程序从打印机插入到我的 Raspberry Pi 中。我想通过直接从 Raspberry Pi 命令行(如果可能)向驱动程序发送 G 代码来控制打印机的轴。
这是可能的,如果是的话,有人知道怎么做吗?正如我上面所说的,没有使用任何 3rd 方程序/软件。
一种非常笨拙、简单的从终端向打印机发送 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
另一个解决方案是pronsole
Printrun/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 来编写它。我知道有这样的例子,但我手边没有链接,也没有尝试过其中任何一个能够推荐一个,无论如何。