如何通过 pySerial 发送多个 g 代码命令而没有时间延迟
我有一个 python 脚本,可以创建与我的 Arduino-Mega (ramps1.4) 的串行连接。我正在使用 pyserial 库,通过 COM 发送 G 代码命令。 “Marlin 2.0x”读取输入并作用于任何 G 代码。
到目前为止一切正常。我可以通过 serial.write() 编写任何 G 代码,并且 Marlin 能够理解它。但不幸的是,如果我想执行多个命令,我必须添加时间延迟。 有没有一种好的方法可以避免这种情况?
以下是两次挤压 1mm 长丝的示例代码。
import serial
import time
ser1 = serial.Serial('COM3', 250000)
time.sleep(1)
ser1.write(('G92 E1\n').encode())
time.sleep(1)
ser1.write(('G92 E1\n').encode())
理想情况下,它看起来像这样没有延迟:
import serial
import time
ser1 = serial.Serial('COM3', 250000)
ser1.write(('G92 E1\n').encode())
ser1.write(('G92 E1\n').encode())
但是命令会被跳过。
I have a python script that creates a serial connection to my Arduino-Mega (ramps1. 4). I am using the pyserial library, with which I send G-Code commands via the COM. There "Marlin 2.0x" reads the input and acts on any G-Code.
So far everything works. I can write any G-Code via serial.write() and Marlin understands it. But unfortunately I had to add a time delay if I want to act on multiple commands.
Is there a nice way of circumventing that?
Here is an example code of Extruding 1mm of Filament twice.
import serial
import time
ser1 = serial.Serial('COM3', 250000)
time.sleep(1)
ser1.write(('G92 E1\n').encode())
time.sleep(1)
ser1.write(('G92 E1\n').encode())
Ideally it'd look like this without the delays:
import serial
import time
ser1 = serial.Serial('COM3', 250000)
ser1.write(('G92 E1\n').encode())
ser1.write(('G92 E1\n').encode())
But then commands get skipped.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论