注释
@philmurp: 是的!这个问题有一个解决方案。您将需要下载 grbl 源代码并在 config.h 文件中更改归位周期配置以仅在两个轴上运行。重新编译源代码并将十六进制闪存到您的 Arduino。 |
所以我在 github 站点上对 config.h 进行了更改。所以它告诉我我 还是我现在需要“重新编译源代码”才能使我的更改生效?你能告诉我如何做到这一点吗? 2013 年 11 月 28 日星期四晚上 10:37,菲利普·墨菲
|
你好@philmurp 对于 grbl,因为它是基于 avr 的芯片,这可以通过安装 Winavr for windows 或 avr-gcc for linux 来完成。安装这些程序中的任何一个后,执行此操作的命令将是 >make grbl.hex,并且应该在与 grbl 文件相同的目录中执行。 我希望这有帮助。 |
我要问的是如何确保我下载的 .hex 文件随着我的 config.h 更新而更新。例如,当我第一次将 grbl 刷入我的 arduino 时,我从 git hub 主页下载了 grbl.hex 文件,然后将其刷入了 arduino。如果我从我的分支 git hub 页面下载 .hex 文件,该下载是否会更新,或者我是否必须做其他事情才能使我的更改永久用于下载 .hex 文件? 对不起,如果我的问题不清楚。 |
您将使用自述文件中的链接从您的分支下载的十六进制文件仍然来自官方 grbl github 站点,因此不会包含您的更改。您对 *.c 或 *.h 文件所做的任何更改都不会自动反映在任何 hex 文件中,无论是在 github 上还是本地副本上。您需要重新编译代码。 我建议您下载 github 软件,该软件将下载您已经进行的更改的本地副本,并允许您将任何更改上传到 github。 |
好的,所以如果我下载 github 软件然后下载本地副本,我 2013 年 11 月 29 日星期五,罗素奥利弗写道:
|
你需要一个编译器。对于 Windows 使用 winavr。网上有关于如何使用它的指南。虽然最简单的方法是在安装程序之后,但在你的开始菜单/Winavr 下的所有程序中应该有一个程序,称为程序员记事本。 使用该程序打开 grbl 目录中的“makefile”文件。然后在菜单栏上的工具下运行 make all 命令。这应该会生成一个包含您所做更改的新 grbl.hex 文件。 |
@philmurp: 很遗憾听到您在执行此操作时遇到很多问题。如果您不习惯源代码,它可能会变得非常神秘和混乱。要使其正常工作,您需要进行以下更改:
如果您需要,我也可以为您发布 2 轴编译版本,但听起来您已经快到了。 |
如果我有它会工作: #define HOMING_SEARCH_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // 然后同时移动 X,Y。 然后从limits.c文件中评论Homing_Search_Cycle_0? 还是必须包含名称#define Homing_Search_Cycle_0? 我按照上面提到的方式完成了它,并且能够创建一个 .hex 文件,但我想确保我的变量名是正确的 |
@philmurp: 无论哪种方式都可以。 |
进行更改并上传新的 .hex 文件后,我的 grbl 冻结仍然存在同样的问题。我用 $H 运行一个归位周期,完成归位周期后,我的 grbl 仍然冻结,不允许我输入和移动。 |
@philmurp:您的 NO 限位开关需要接地,而不是 Vcc。试试看。 |
我的限位开关连接在地和限位引脚之间,每个引脚都通过一个电阻连接到 VCC,并充当上拉电阻以降低噪声。所以我的限位开关是 NO 并且在地和限位开关引脚之间并联。 归位周期现在只归位 X 和 Y 轴,因此看来我的一些更改已生效。但是我确实评论了初始归位锁,这也不起作用,因为它在启动时被锁定。 当我在归位后尝试移动时,有一个脉冲发送到我的电机,然后它卡在等待循环中 |
@philmurp:我不确定你的 Vcc 连接是做什么的,但你需要做的就是通过 NO 开关将限制引脚接地。限制引脚已经通过内部上拉电阻保持高电平。 |
重新接线后,我仍然遇到同样的问题,我的 grbl 没有响应。 当我尝试移动后点击重置时,我收到错误:等待被用户中断,错误命令:G0 X1 |
@philmurp:尝试在与限制线并联的小电容器中接线。这充当低通滤波器,以消除系统中任何潜在的电噪声。从理论上讲,您的系统应该可以像许多用户系统一样正常工作。最可能和最常见的原因是电噪声。请尝试将限位开关和信号线远离其他所有东西,包括交流线。系统地检查它们在未安装到您的机器上时是否正常工作。 固定限位开关后,Ctrl-X 也应该可以正常工作,如果这是您的问题的原因。 最后,我不认识您的“等待被用户中断,错误命令:g0 x1”错误。Grbl 从不响应此错误。您正在使用的 GUI 也可能会给您带来问题。 |
首先,我一一测试了我所有的开关和连接,它们都按预期运行。 澄清一下,你认为我的问题可能是,一旦归位周期完成,系统就会收到噪音,认为限位开关仍然处于接合状态,这会导致我的 grbl 冻结?当我手动点击限制开关进行测试时,我收到以下反馈:“ALARM:Hard Limit. MPos?” 然而,在运行归位周期之后,我没有得到任何这样的反馈,它只是不会接受我的任何命令。 要开始测试,我删除了所有限位开关连接,然后运行我的系统,它确实工作正常。因此,我确信我的更改是最新的,并且初始归位锁定已被移除。但是,只要我插入任何其他限位开关,我就会立即再次遇到问题。我已经尝试将电线尽可能远地移动而没有任何变化。 测试开关时,当我拔下 Y 轴开关并开始归位循环时,机器仅运行 Y 轴。我认为这是由于 X 轴限位开关已接线,因此系统立即认为它已归位,然后尝试将另一个轴归位。当我拔下 X 轴限位开关时,反之亦然。经常看到这么多的电噪声并且一直如此吗? 通过接线电容器,您能解释一下与限制线平行的含义吗? 这是因为我的限位开关接线吗?我将它们连接到没有方向,但是我将开关标记为“C”的连接点接地,并将标记为“NO”的连接连接到限制引脚。这是倒退并导致问题吗? 如果我仍然无法获得解决方案,您是否建议我使用以下步骤切换我将开关连接到 NC 的方式:“在 VCC 和相应的输入引脚之间串联每个轴上的两个限位开关。添加拉力- 每个引脚的降电阻(需要,大约 1 Kohm)到 GND。这种方法具有更好的抗噪性,实际上消除了错误的限位开关触发。如果你是一个纯粹主义者,你会想用内部弱拉重新编译 GRBL- UPS 已禁用,但即使也启用了它们,它也能正常工作。” 接线 NC 会解决我的问题,还是您希望在任一方向出现相同的问题? 谢谢! |
所以我尝试更改 G-Code 接口,看看这是否是个问题。 |
@philmurp:这不太可能是编程错误,但更有可能是您的设置中的某些东西引起的电子噪音。如果检测到限制引脚有任何变化,Grbl 将触发硬限制。因此,如果您的系统中的其他东西出现尖锐的电压尖峰/下降。它会绊倒它。 你有示波器吗?电压表将无法测量噪声。另一种方法是快速编程另一个 arduino 以检测线路中的引脚变化。但首先,请确保您有与限制线并联的小电容器。这对消除电子噪声有很大作用。 此外,检查限制引脚上的浮动接地。众所周知,这会导致此类问题。 |
电容器应该如何接线,我有一个 10 uF 的额定值吗?在接地和引脚之间,所以每个轴一个电容器? |
@philmurp: 并联。所以是的,在接地和限位引脚之间以及开关线旁边。推荐用于每个轴。 确保您的开关按应有的方式运行。在正常操作中,开关两端应该有一个无限大的电阻。触发时,它的电阻应该接近于零。如果没有,那么这是您的问题之一。 |
开关与电阻一起正常工作,尽管一旦触发电阻会在大约 1-2 秒内变为 0,因此它不是即时的。我将我的 10uF 电容器并联,但我仍然遇到令人担忧的问题。我还将限位开关的接线分离到一个全新的面包板上,以尝试消除噪音,但没有运气。有任何想法吗?谢谢你。 |
我的限位开关有各种噪音问题。我的线路上有电容器,但我最终还是用屏蔽电缆重新连接了整个机器。 它工作得很好,然后我又开始随机限位开关跳闸。 我最终重新路由了路由器的电源线,因此它尽可能远离其余接线。(我把它绑在我用来收集灰尘的真空软管上。)这似乎解决了问题。 电气噪声是故障排除和解决的主要难题。 |
您认为限位开关线之间有噪音吗?因为我在每个轴上都有两个限位开关,它们彼此相距一个面包板点? 或者噪音通常来自电源线等。靠近限位开关线? 更强的电容器会有所帮助吗? |
噪声的主要来源是路由器的电源线(如果路由器不运行,则不是问题),路由器中的刷子(同样,如果它不运行,则不是问题)以及步进电机线中的脉冲. 我通过在路由器关闭的情况下干运行程序来确定是路由器导致了我的问题。如果我打开路由器,限位开关会在一两分钟内跳闸。 我不能强调你应该使用屏蔽电缆 – 至少用于限位开关线,但我也将它用于步进器。 这就是我最终做的事情:http: //timf.anansi-web.com/wp/shapeoko-limit-switches-update/ |
看来我需要去 Radioshack 购买屏蔽电缆。在电缆之外,您有什么建议可以让我尝试让我的系统更可靠吗?主要问题是步进信号,因为在限位开关触发之前我什至无法输出一个以上的脉冲。我的限位开关线离步进线很远,所以我不确定我还能做些什么来尝试消除步进电机的噪音。 |
屏蔽电缆对我来说是最大的改进。我会先试试。 |
确保您的所有系统组件都是星形接地(google it)。这将有助于防止错误的接地接线和浮动接地对限制引脚的错误跳闸。说到这一点,通过测量接地线中各个点之间的电位来检查浮动接地。当您遇到问题时,尤其是在限制接地和步进驱动器接地之间。它应该为零并且不让步。 |
我的限位开关连接到电机护罩上的接地,我认为所有接地都是通用的。我应该将限位开关连接到 arduino 板上的接地而不是电机屏蔽上的接地吗? |
好的,我正在使用我相信的星型技术,因为我所有的开关都连接到同一个地线。当我测量限制和步进接地并获得 0 电位时,我似乎没有浮动接地。我担心我的实际接线可能是错误的,因为这并不是因为我正在获得随机限制触发,而是每次我尝试发送步进脉冲时都会发生这种情况。我正在购买屏蔽线,所以我会尝试一下,希望它可以工作,对于 2 导体屏蔽线,我可以连接两个导体并让它们作为一个导体吗? |
我正在使用屏蔽线,但我仍然遇到这个限制触发问题,不知道此时我还能尝试什么 |
好的也可以,我的屏蔽线确实可以消除主轴控制控制的错误触发,所以它似乎确实有帮助。也许我需要屏蔽我所有的步进电机线。我试图避免这种额外的布线,但我想不出任何其他的改变。谢谢! |
我应该添加 7 个 nF 电容器(假设这就是 caps 的含义)?我应该如何连接其中的 4 个?2 每个输入引脚串联还是并联?另外,你建议不要在我的面包板上设置这个,而是在 arduino 上设置? 我目前在输入引脚和地之间连接了一个 10uF 电容器,与我的开关并联,没有影响。 |
在我的面包板上的输入引脚和地之间 |
如上面的示意图中所述。顺便说一句,10µF 对于高频干扰来说太大了。 |
我不确定它与我的 NO 限位开关并联的问题,这意味着它连接在接地和限位开关引脚 D9 之间 |
正确的。 |
使用那个方向我仍然遇到限位开关触发 |
请张贴一张你接线和 Arduino 板的照片。 |
@philmurp: 不仅仅是限位开关。剩下的。 |
10µF 没用 尝试 4.7nF … 100nF(纳米而非微型)之间的值。电容器和 Arduino 板之间的当前距离是多少? |
如果太乱串音肯定会发生;-) |
电容器和 arduino 之间的距离约为 4 英寸 |
看来你的板子上的错误太多了。帽和板之间的距离太大,错误的帽。我敢肯定还有很多问题。必须有一张清晰的照片。直接在 Arduino 板上盖帽并不意味着 10 厘米远…… |
我最初把盖子放在大约一英寸远的地方,但后来把它移到了一个单独的面包板上,试图消除噪音。所以我需要不同的帽子,我需要把它们放在更靠近 arduino 的地方? |
引脚和接地运行到左侧的面包板,然后运行到屏幕右侧的单独面包板上,这是我的限位开关连接的地方 左侧的面包板有两个 MOSFET 电路来运行电磁阀 我一次只用一个限位开关进行测试 |
@philmurp:如果这是您一直在测试的设置,则有很多电噪声源。请将所有高功率线与信号线分开。它们必须与 5V 以上的任何物体保持物理距离,并且尽可能远离它们至少几英寸到一英尺。这包括您的 USB 线,它位于您的交流和直流电源下方,您的主轴和来自急停的电机电源,使限制信号线远离不在其上的步进电机线,主轴晶体管需要与限位开关分开,这也是一个可能的原因。此外,在您测试限位开关时,我会完全断开并关闭您的主轴设置。 |
因此,我最终将所有接线更改为 NC 开关,在引脚和接地之间使用 1KOhm 电阻。然后我使用屏蔽电缆并重新排列了所有电线。它似乎正在工作,它对我的限位开关线是否移动然后发生干扰非常敏感,所以我需要非常紧密地锁定我的线。有没有人建议将电线连接到金属表面的好方法(我的系统是由铝制成的)?我一直在使用电工胶带,但这看起来不太好。感谢您提供的所有帮助,非常感谢,我祈祷这会奏效 |
你好。我有完全相同的问题,我从你的建议中尝试过的任何东西最终都不起作用。 |
我把它修得很好。我所有的限位开关 2013 年 12 月 5 日星期四,Arvacon 写道:
|
如果我能快速回到原来的归位问题。是否有人创建了适用于仅 XY 激光设备的 Nano grbl1.1f 十六进制文件。当我得到一个想要回家的系统时,我可以担心屏蔽电线。我相信这会在下载中占据重要位置。也许我很天真,但不能设置 22 美元来优先考虑,例如。22 美元 ZXYA 而不是布尔值? |
菲尔默普 评论 on 29 Nov 2013
所以我将限位开关连接到我的 X 和 Y 轴。当我连接限位开关,然后使用 $16=1 启用硬限位时,我无法移动我的步进器。无论我输入什么命令,它都不会执行。看来我的限位开关正在冻结我的系统。我的 G-Code Sender 没有发出任何警报或任何指示限位开关已被触发。当我尝试说 G0 X-2 时,我的 X 轴指示灯闪烁一秒钟,然后系统无法识别超出该点的任何命令。当我此时尝试对 GRBL 进行软重置时,它显示“等待被用户中断”。我试过只使用一个 X 轴限位开关和各种组合,但我无法弄清楚是什么导致了这个问题,甚至是什么问题。当我关闭我的 grbl 控制器并重新启动系统并输入 $16=0 时,一切正常,所以它似乎是我的限位开关的问题。我正在使用 grbl .8c 并在引脚和接地之间以 NO 方向连接限位开关,引脚和 Vcc 之间有一个 10K 欧姆电阻。
在阅读了一些文档之后,似乎启用了硬限制,grbl 被锁定,直到有一个归位循环运行。但是,我只有 X 和 Y 限位开关,当我输入 $H 时,它会返回 Z 轴。无论如何设置 grbl 以便只有 X 和 Y 轴归位以便可以解决这个问题?
在此先感谢您的任何帮助或建议,我真的被困在这个问题上,并且无法在网上找到任何解决此类问题的文档。