首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机械臂不能与pyserial和gcode一起工作

机械臂不能与pyserial和gcode一起工作
EN

Stack Overflow用户
提问于 2019-04-28 15:28:41
回答 1查看 63关注 0票数 0

我正在研究一只机械臂。M106是打开风扇M17是stepper on M18是stepper G1 X...Y..。X..是运动的坐标

端口是正确的,终端在那里打印hello hi ...然而机械臂没有移动,我完全不知道为什么会发生这种情况。是不是我的代码有什么问题?

代码语言:javascript
复制
import serial
import struct

def gcode_encode(gcode):
    gcode += '\r\n'
    return struct.pack(f'<{len(gcode)}s', gcode.encode(encoding='utf-8'))


print("hello")
# ser = serial.Serial('COM7', 9600, timeout=0, parity=serial.PARITY_EVEN, rtscts=1)

ser = serial.Serial()
ser.port = 'COM7'
ser.baudrate = 9600
ser.timeout = 0
ser.open()

g = gcode_encode('M106')
ser.write(b'g')

g = gcode_encode('M17')
ser.write(b'g')

g = gcode_encode('M18')
ser.write(b'g')

g = gcode_encode('G1 X0 Y120 Z120')
ser.write(b'g')

g = gcode_encode('G1 X50 Y120 Z60')
ser.write(b'g')

ser.close()

print("hi")
EN

回答 1

Stack Overflow用户

发布于 2019-04-30 05:01:35

您仅将字符'g‘写入端口。如果你想写一个变量g的字节,你需要使用bytes(g)f'<{len(gcode)}s'也是如此,单引号或双引号中的字符在这里不是命令,而只是一个字符串。你也不需要打包字符串,只需要编码即可。

还可以使用time.sleep()在命令之间添加一些停顿。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55888014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档