开源改变世界!!

使用 Mega2560 连接到 GRBL 时出错 #82

推推 grbl 2年前 (2023-01-31) 189次浏览
关闭
Stevenx1986x 开启了这个问题 2015 年 7 月 12 日 · 21条评论
关闭

使用 Mega2560 连接到 GRBL 时出错#82

Stevenx1986x 开启了这个问题 2015 年 7 月 12 日 · 21条评论

注释

使用 Mega2560 连接到 GRBL 时出错 #82

每次我尝试连接到我的 arduino 时,都会出现以下错误。 有没有其他人遇到并解决过这个问题?
使用 Mega2560 连接到 GRBL 时出错 #82

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

你好@Stevenx1986x
您使用的是哪个操作系统。哪个python版本?

使用 Mega2560 连接到 GRBL 时出错 #82

我在 Windows 7 x64 上使用 Python 3.4.3、pyserial 2.7 for 3.4 和 bCNC 的最新版本运行 bCNC。我的微控制器也是带有 GRBL 0.9i 的标准 Arduino Mega2560。mega 上的所有保险丝位都未受影响(与启动时序位相关),昨晚我仔细检查并擦除了 eeprom 并重新刷新了 Grbl,以确保我可以排除任何用户错误。

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

可能是pySerial和Python 2与Python 3的工作方式不同。
我稍后会做一些测试,最近串口也有一些小调整。

使用 Mega2560 连接到 GRBL 时出错 #82

如果我碰巧发现问题,我一定会在此处报告解决方案。很想学习 Python 只是为了为这个项目做贡献。当然它不会比 C++ 更难

使用 Mega2560 连接到 GRBL 时出错 #82
所有者

你好@Stevenx1986x, 你能降级 bCNC.py 吗?串行连接最近发生了变化@effer提到让它更健壮,但也许它不适用于 python 3。
我将在今天下午晚些时候在家测试它。

使用 Mega2560 连接到 GRBL 时出错 #82

我明天下班后第一件事就是尝试并报告任何变化。

使用 Mega2560 连接到 GRBL 时出错 #82
所有者

我已将 setDTR(True/False) 更改为 1/0,因为在文档中它期望 level=
可能 python 3.4.3 更敏感。您能否尝试一下,如果有效请告诉我们。

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

如果使用包含的 bCNC 脚本,我会遇到完全相同的问题。
为了使连接对我有用,我必须对其进行编辑和更改

“Python/.

“python2 ${DIR}/bCNC.py $
 “

(明确要求 python2)

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

它绝对不适用于 Python 3。
使用 self.serial.write(“\r\n\r\n”.encode(‘utf-8’)) 我可以运行 open(self, device, baudrate) 函数,
但 serialIO 线程仍然需要更多修复。
我尝试了一些旧版本,但结果相同。似乎 Python 3 不像 Python 2 那样被使用。

使用 Mega2560 连接到 GRBL 时出错 #82

@vlachoudis问题随着变化而持续存在。如果不能解决问题,我将继续降级 bCNC 和/或更改环境以使用 python 2。

使用 Mega2560 连接到 GRBL 时出错 #82

好吧,我不再收到错误消息,但是 MC 除了来自 bCNC 的复位信号外没有响应任何其他内容。我现在使用的是最新版本并已切换到 Python 2.7
使用 Mega2560 连接到 GRBL 时出错 #82

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

这就是我每次尝试连接时得到的结果。
那时我唯一能让它工作的方法是断开 bCNC,打开 arduino ide 的串行终端,验证通信是否在那里工作(它们一直都是),然后重新打开 bCNC,通信将再次工作……
是你确定你使用的是最新的 bCNC.py?

使用 Mega2560 连接到 GRBL 时出错 #82
所有者

@Stevenx1986x显然@effer没错,python3有几个问题。python3 中的字符串是 unicode,而串行接口需要字节流。我将尝试将所有发送命令转换为字节。@effer它可以使用 python 2.7 中接受的 b”\r\n\r\n” 语法来完成,而不是 .encode(),对于所有硬编码字符串,它需要重新处理 serialIO 线程正确转换 unicode 字符串。

使用 Mega2560 连接到 GRBL 时出错 #82

好吧,我不会再提出这个问题。

同样的事情,但我是 Windows 10。

使用 Mega2560 连接到 GRBL 时出错 #82

@Stevenx1986x
绝对相同的问题。GRBL 已连接但没有响应。我看到的和你的截图一样。请注意,GRBL 在任何其他程序中对我有效,但不适用于 bCNC。

Mega2560
GRBL 0.9 克

Lbuntu 12.04.5 LTS
Python 2.7.3

我用 Python 做了一些检查,看起来一切正常:

import serial
ser = serial.Serial(‘/dev/ttyACM0’, 115200, timeout=1)
s = ser.read(100)
打印 s

Grbl 0.9g [‘$’寻求帮助]
G21G90G17ok

ser.write(“?”)
1
s = ser.read(100)
print s
<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000>

使用 Mega2560 连接到 GRBL 时出错 #82
所有者

我有一个mega2560。我会尝试安装 grbl 并测试它

使用 Mega2560 连接到 GRBL 时出错 #82

很抱歉再次碰到这个,但我有同样的错误。
只有我有一个 ATmega328P。

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

你好@TilTisback,您使用的是哪个 python 版本?

使用 Mega2560 连接到 GRBL 时出错 #82

Python 3.4.3
我现在用旧版本 2.7.10 测试它,它似乎工作正常。

使用 Mega2560 连接到 GRBL 时出错 #82
贡献者

我认为该代码也将很快适用于 python 3,不幸的是它需要在 eval 分支中已经改进的一些函数内部进行一些调整。
所以现在停留在好的旧python 2.7上

使用 Mega2560 连接到 GRBL 时出错 #82
所有者

新接口与 ATMEGA2560 配合得很好。Python v3 正在进行中,因此@effer提到我们暂时必须坚持使用良好的旧python 2.7