Python 如何通过USB发送一个gcode命令?

Python 如何通过USB发送一个gcode命令?,python,pyserial,g-code,3d-printing,Python,Pyserial,G Code,3d Printing,我正在尝试编写一个简单的python脚本,将gcode命令发送到我的万豪D9主板打印机,运行Marlin。我正在通过USB连接到打印机的raspberry pi上运行python脚本 import serial ser = serial.Serial("/dev/ttyUSB0", 115200) ser.write("G28\n") 我已经阅读了20多个论坛页面上的simular问题,并尝试了他们的答案,例如将波特率更改为250000,以及对写入函数参数进行以下更改: ser.write(

我正在尝试编写一个简单的python脚本,将gcode命令发送到我的万豪D9主板打印机,运行Marlin。我正在通过USB连接到打印机的raspberry pi上运行python脚本

import serial

ser = serial.Serial("/dev/ttyUSB0", 115200)
ser.write("G28\n")
我已经阅读了20多个论坛页面上的simular问题,并尝试了他们的答案,例如将波特率更改为250000,以及对写入函数参数进行以下更改:

ser.write("G28\r\n")
ser.write(b'G28\r\n')
ser.write(b'G28\n')
ser.write(b'G28')
ser.write("G28")
我已经尝试了所有这些组合,并且我还添加了:

time.sleep(5)
以及文件顶部时间模块的相关导入语句。我在ser声明和ser.write函数调用之间添加了这行代码

我还尝试添加:

ser.close()
看看这是否会有不同,但它没有,因为我知道这是最好的做法无论如何

无论我使用的代码是什么组合,当我运行python脚本时,我的打印机似乎会重新启动(屏幕从主页更改为打开的万豪徽标,然后返回主页)


我期待任何人能对我的代码和我可能做错的地方提供帮助。

在我的命令修复我的问题后,增加额外的睡眠时间。现在,我还可以从打印机读取初始设置反馈

我的最终代码没有这个是:

import serial
import time

ser = serial.Serial('/dev/ttyUSB0', 115200)

time.sleep(2)
ser.write("G28\r\n")
time.sleep(1)
ser.close()
谢谢你,感谢这篇文章中的用户为我指引了正确的方向


这段代码对我很有用,我希望将来其他人也会觉得它有用。

你真的连接到设备了吗?还是只打开串行连接并开始写入?另外,您是否尝试过读取序列号上机器的响应?也许它告诉了你一些事情我问题中的前三行代码是我的整个文件,所以据我所知,我正在打开串行连接,然后写入它。然而,我尝试了这段代码,并连接到Arduino Uno而不是打印机,我能够从Arduino串行监视器读取代码。我也试过阅读ser的文章,但没有收到任何效果。