Contact me: hankecnc@gmail.com

从另一个 arduino 连接串口作为控制器 #623

推推 grbl 3年前 (2023-01-22) 125次浏览
打开
joaquinmartinezgc 打开了这个问题 2015 年 3 月 12 日 · 56条评论
打开

从另一个 arduino 连接串口作为控制器#623

joaquinmartinezgc 打开了这个问题 2015 年 3 月 12 日 · 56条评论

注释

从另一个 arduino 连接串口作为控制器 #623

你好!我想知道如何为我的工厂制作一个人工控制器。我已经知道 Grbl 做不到,因为它是一个 g 代码解释器。

但我的想法是使用另一个 arduino 作为代理。如果手动模式打开,3 个编码器控制磨机,如果手动模式关闭,将串行转发到 Grbl。

有可能那样做吗?

谢谢!

从另一个 arduino 连接串口作为控制器 #623
成员

@peluzza:绝对!您只需将第二个 Arduino 的串行 TX/RX 线连接到 Grbl 的 RX/TX 输入。这一直是我想做的事情,但一直没有时间。这个想法是在 Arduino IDE 中编写一个非常简单的 .INO 程序,使用他们的库来支持 SD 卡、LCD 和一些控制引脚。这样您就可以在没有计算机的情况下进行 CNC 设置。

从另一个 arduino 连接串口作为控制器 #623

哇,是时候把手放在键盘上开始编码了;)

我在这里找到了一个关于它的旧线程:http:
//lettsmakerobots.com/content/can-one-arduino-resent-serial-com-another-arduino

如果有人发现/知道并已经完成了这样的项目,或任何其他提示,请在此处发布。谢谢!

从另一个 arduino 连接串口作为控制器 #623
成员

另外,这也适用于其他人,请分享源代码!我很乐意让这样的项目成为一个受支持的项目。

从另一个 arduino 连接串口作为控制器 #623

轨迹球或类似的东西不是更好的选择吗?

有了锅你有什么?270度调整,5-10%的定位误差,精准定位难度较大。
此外,它还需要配置以匹配机器的大小。

使用轨迹球或其他基于编码器的技术(一堆来自计算机鼠标的滚轮?),您可以滚动并让它移动设定的乘数。或者你可以有一个额外的“灵敏度”控制……
此外,它应该很容易转换为发送连续的 Reative 坐标系(G91)命令流。

从另一个 arduino 连接串口作为控制器 #623

你应该看看这个选项http://www.shapeoko.com/forum/viewtopic.php?f=7&t=5505

这让我很感兴趣,我可能会玩它(当我没有其他项目时……哈哈。)

从另一个 arduino 连接串口作为控制器 #623

@Norwegian-Gadgetman为什么要花盆?简单的旋转编码器通常有 20 步和 360º 无锁定位置,因此比轨道或操纵杆精确得多。我的是 EC11,它也是瞬时按钮,所以我的想法是通过单击切换微步、步、转,然后简单地旋转我想要的步数,就像 G 代码一样(3D 蚀刻-A-草图!! !)

这对于一组准确的自定义零位置非常有用(只需考虑连接到它的激光)。

可能我会在几周内开始这个项目,所以任何进一步的帮助将不胜感激。

从另一个 arduino 连接串口作为控制器 #623

只是软限制不再起作用,并且坐标偏移存在一些问题。
如果 pedant 由 gui 处理,那么事情会更好,但
在 grbl 的范围之外。

2015-03-11 21:40 GMT+01:00,peluzza notifications@github.com

@Norwegian-Gadgetman为什么要花盆?简单的旋转编码器通常有 20 步
和 360º 无锁定位置,因此比轨道或
操纵杆精确得多。我的是 EC11,它也是瞬时按钮,所以我的想法是
通过单击切换微步、步、转,并简单地旋转
我想要的步数,就像 G 代码一样(3D 蚀刻-A-草图! !!)

这对于一组准确的自定义零位置非常有用
(只需考虑连接到它的激光)。


直接回复此邮件或在 GitHub 上查看:
#623(评论)

从另一个 arduino 连接串口作为控制器 #623

@cri-s我的意思是在开始铣削之前对零位进行微调,我用它来修复或改进已经完成的零件 (PCB)。对我来说,微调和手动控制是必须具备的。

从另一个 arduino 连接串口作为控制器 #623

Peluzza,请不要将 EC11 称为“电位器”,因为它是“电位器”的缩写,是可变电阻器。

我假设您指的是可变电阻器,例如您发现用作放大器中音量控制的电阻器。

混合概念只会混淆视听,浪费时间。

从另一个 arduino 连接串口作为控制器 #623

@Norwegian-Gadgetman好吧,这是在说“编码器罐”之后的一个简单快捷方式。对不起,如果我让你感到困惑(并浪费了你的时间)。我一直想说“带瞬时按钮的旋转编码器”。

在西班牙语中,“pot”是旋钮的缩写,所以我们用“resitor pot”和“encoder pot”来区分。

从另一个 arduino 连接串口作为控制器 #623

目前正在构建一个控制 UNO (Grbl) 的 arduino Mega。我有一个可行的解决方案,想扩展它以充分利用 Grbl 中描述的 I/O 缓冲区功能。我还为 Universal gcode Sender 开发了一个 passthrough。Gcode 文件逐行存储在 SD 上。刚刚发现我在 SD 上的一个“行”中存储了多个 Gcode,破坏了我的解决方案的稳健性。

从另一个 arduino 连接串口作为控制器 #623

@chamnit
你好!我有类似的东西:我正在研究嵌入式数控控制器。
它实际上与 arduino uno 一起工作作为 grbl 支持,以及一个 Mega 来支持包括 SD 卡读卡器在内的 LCD 触摸屏。它可以出于特定目的从用户输入生成 gcode,将其保存在 SD 上的 gcode 文件中,并通过串行从 mega 流式传输到 grbl。或者我可以将 gcode 文件从
计算机放在 sd 上,将它放在 SD 阅读器中,然后将文件流式传输到 grbl。所有这些实际上都在起作用。
管理 grbl 回报的小问题。
我很乐意分享它,让我清理我的代码
。grbl 是一个了不起的工具,让我节省了很多时间,谢谢。

从另一个 arduino 连接串口作为控制器 #623

我的E-mail地址是:

NL01871@gmail.com

日期:2015 年 3 月 16 日星期一 02:01:16 -0700
发件人:notifications@github.com
收件人:grbl@noreply.github.com
抄送:jan_jansen_47@hotmail.com
主题:回复:[grbl] 从另一个 arduino 连接串行为一个控制器(#623

@chamnit

你好!我有类似的东西:我正在研究嵌入式数控控制器。

它实际上与 arduino uno 一起工作作为 grbl 支持,以及一个 Mega 来支持包括 SD 卡读卡器在内的 LCD 触摸屏。它可以出于特定目的从用户输入生成 gcode,将其保存在 SD 上的 gcode 文件中,并通过串行从 mega 流式传输到 grbl。或者我可以将 gcode 文件放在 sd 上

电脑,把它放在 SD 读卡器中,将文件流式传输到 grbl。所有这些实际上都在起作用。

管理 grbl 回报的小问题。

我很乐意分享它,只是让我清理我的代码..

grbl 是一个了不起的工具,让我节省了很多时间,谢谢。


直接回复此电子邮件或在 GitHub 上查看。

从另一个 arduino 连接串口作为控制器 #623

您好,这是我的代码,用于通过两个 arduino 之间的串口从 SD 卡流式传输 gcode 文件。
如果它可以帮助
https://github.com/tchepperz/ArdSketch

从另一个 arduino 连接串口作为控制器 #623

哇!它有很大帮助!谢谢@tchepperz

从另一个 arduino 连接串口作为控制器 #623
成员

@tchepperz: 好的!您是否知道这是否适合并在 328p Uno 型控制器上运行?

从另一个 arduino 连接串口作为控制器 #623

@chamnit
我认为不会,问题是我为具有不同串行端口的 Mega 编写了它。我使用 Serial 通过监视器与用户通信,使用 Serial1 与 grbl 通信。
在 Uno 上,您只有一个串行端口,因此调用 Serial1 时会出现编译问题。

但是通过一些修改,它可以在 Uno 上运行,而无需使用串行监视器作为接口,而只是用于
grbl。程序可以修改为直接打开并流式传输到 grbl SD 上的指定文件。那行得通。

如果您想要用户界面,解决方案是液晶触摸屏。在我的工厂里,我使用了一个 lcd 接口,因此只有一个串行端口用于 grbl。但我不确定你在 Uno 上是否有足够的 pin 来管理 lcd、touch、sd 和 serial。

从另一个 arduino 连接串口作为控制器 #623

是的,因为 SD 和图形触摸显示器的内存要求,所以使用 mega。不幸的是不能共享代码。我建议更好地了解 grbl 通信。例如阅读 universal gcode sender Java 的东西。
继续做好事。
Jan Jansen
Sagittalaan 22 5632al
+31688806529
2015 年 3 月 20 日 17:01,tchepperz notifications@github.com写道:@chamnit
我认为不会,问题是我为具有不同串行端口的 Mega 编写了它。我使用 Serial 通过监视器与用户通信,使用 Serial1 与 grbl 通信。
在 Uno 上,您只有一个串行端口,因此调用 Serial1 时会出现编译问题。

但是通过一些修改,它可以在 Uno 上运行,而无需使用串行监视器作为接口,而只是用于
grbl。程序可以修改为直接打开并流式传输到 grbl SD 上的指定文件。那行得通。

如果您想要用户界面,解决方案是液晶触摸屏。在我的工厂里,我使用了一个 lcd 接口,因此只有一个串行端口用于 grbl。但我不确定你在 Uno 上是否有足够的 pin 来管理 lcd、touch、sd 和 serial。

— 直接回复此电子邮件或在 GitHub 上查看。

从另一个 arduino 连接串口作为控制器 #623

要在 arduino uno 上编译它,请使用此库:
http ://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

在包含行之后,添加这两行:

#include <AltSoftSerial.h>
AltSoftSerial Serial1;

结果大小超过 16k。

2015-03-20 20:11 GMT+01:00,Jan_Jansen_47 notifications@github.com

是的,因为 SD 和图形
触摸显示器的内存要求,所以使用 mega。不幸的是不能共享代码。我建议更好地
了解 grbl 通信。例如阅读 universal gcode sender Java 的
东西。
继续做好事。
Jan Jansen
Sagittalaan 22 5632al
+31688806529
2015 年 3 月 20 日 17:01,tchepperz notifications@github.com写道:@chamnit
我认为不会,问题是我为具有不同
串行端口的 Mega 编写了它。我使用 Serial 通过监视器与用户通信,使用 Serial1
与 grbl 通信。
在 Uno 上,您只有一个串行端口,因此
调用 Serial1 时会出现编译问题。

但是通过一些修改,它可以在 Uno 上运行,而无需使用串行监视器
作为接口,而只是用于
grbl。程序可以修改为直接打开并流式传输到 grbl
SD 上的指定文件。那行得通。

如果您想要用户界面,解决方案是液晶触摸屏。在我的工厂里,我使用
了一个 lcd 接口,因此只有一个串行端口用于 grbl。但我不确定
你在 Uno 上是否有足够的 pin 来管理 lcd、touch、sd 和 serial。

— 直接回复此电子邮件或在 GitHub 上查看。


直接回复此邮件或在 GitHub 上查看:
#623(评论)

从另一个 arduino 连接串口作为控制器 #623

@cri-s 感谢
AltSoftSerial 似乎让它与 Uno 一起运行。我无法测试所有程序,因为我的 uno 没有 SD 阅读器,但编译没有任何问题。只需按照 cri-s 添加行并将
Serial1.begin(115200) 修改为 Serial1.begin(57600) 。
对于 Serial1,引脚 9 变为 TX,引脚 8 变为 RX……@chamnit

从另一个 arduino 连接串口作为控制器 #623

该库在 115200 上没有问题,只需使用 arduino 1.0.1
或更新版本进行编译。实际版本是 1.6.1
需要更改的是这一行,如评论中所述。
while(!SD.begin(53)){对于记录,Sparkfun SD shield 与 arduino uno 的这个解决 方案
不兼容。据我所知,它是唯一不兼容的 sd 屏蔽。

2015-03-21 20:48 GMT+01:00 皮埃尔notifications@github.com

@cri-s https://github.com/cri-s感谢
AltSoftSerial 似乎让它与 Uno 一起运行。我无法测试所有
程序,因为我的 uno 没有 SD 阅读器,但编译没有
任何问题。只需按照 cri-s 添加行并将
Serial1.begin(115200) 修改为 Serial1.begin(57600) 。
对于 Serial1,引脚 9 变为 TX,引脚 8 变为 RX……@chamnit
https://github.com/chamnit


直接回复此电子邮件或在 GitHub
#623(评论)上查看。

从另一个 arduino 连接串口作为控制器 #623

这个线程对于我想要开始的项目来说有点重要,所以我想我会继续而不是打开一个新线程……

我想为旋转台构建一个控制器,以允许它围绕一个圆圈索引位置。(请参阅相当昂贵的“师傅”以了解其工作原理。)

所需的 gcode 非常简单,除了停止点之间的距离外,每次都相同。

显然,我可以使用两个 arduino – 一个有一个键盘和一个执行 UI 任务的显示器,计算所需的 gcode,然后通过串行将其流式传输到 GRBL arduino。

但这似乎很浪费。

有没有一种直接的方法可以从一个 arduino 执行这两项任务?换句话说:它在构建 gcode 之前以“UI 模式”运行,然后存储 gcode,转换为“GRBL 模式”并读取 gcode/移动轴?

对不起,如果这是一个荒谬的问题。我对 GRBL 和 arduino 很陌生,所以我还在想办法。

最好的,
-本

从另一个 arduino 连接串口作为控制器 #623
成员

@benha:出于闪存和内存的原因,可以将所有东西集成到 Arduino Mega 上,而不是 Uno。

一般来说,我建议采用第二种 Arduino 或 RaspberryPi 方法。虽然这看起来很浪费,但您不必担心与主存储库保持同步并且可以在 10 美元的 Arduino Micro 上运行 Grbl(可以找到更便宜的)。您需要做的就是在通信协议发生变化时更新它。

您也不必担心会破坏 Grbl 代码中的某些内容。尽管它的编写和注释都很好,但如果您不知道自己在做什么,您很容易做出损害代码完整性和性能的事情。

从另一个 arduino 连接串口作为控制器 #623

好的。这正是我所期望的,但我想仔细检查一下。

谢谢!

从另一个 arduino 连接串口作为控制器 #623

键盘可以连接到单个 io 引脚,这不是问题 ,如果不使用 i2c 显示,
问题更多在于显示所需的引脚。 Altrought,如果你确实想要只有一个轴,这会给你 6 个 引脚,如果你 不使用主轴,甚至更多,…。因此,出于这个目的,这似乎是可能的。 @Sonny_Jeon,当你切换到 arduino 时,可以 正式包含一个名为 idle 的函数作为例子, 当没有计划缓冲区或 使用了一些计划缓冲区时,只有在没有运动、停止或错误。包括使用属性((weak)) 的虚拟函数;允许 更好地扩展库。

对 init 也应该这样做,也许可以用 usr_init,
usr_idle, usr_loop 代替 idle。 如果不存在中止状态
,gc_execute_line() 应该在返回之前调用 usr_loop() 。 这允许从 i2c 或 sd 卡注入命令。

2015-04-01 19:50 GMT+02:00,Sonny Jeon notifications@github.com

@benha
:出于闪存和内存的原因,可以将所有东西集成到 Arduino Mega 上,而不是Uno。

一般来说,我建议采用第二种 Arduino 或 RaspberryPi
方法。虽然这看起来很浪费,但您不必担心
与主存储库保持同步并且可以在 10 美元的 Arduino Micro 上运行 Grbl
(可以找到更便宜的)。您需要做的就是在
通信协议发生变化时更新它。

您也不必担心会破坏 Grbl 代码中的某些内容。尽管它的编写和评论都很好, 但如果您不知道自己在做什么
,您很容易做出损害代码完整性和性能的 事情。


直接回复此邮件或在 GitHub 上查看:
#623(评论)

从另一个 arduino 连接串口作为控制器 #623
成员

@cri-s : I’m not sure what you mean by switching to Arduino. Grbl has always run on the Arduino Uno. As for usr loops, like you ask, I have no intent of supporting anything like right now. I’ve got lots of other things to do first.

从另一个 arduino 连接串口作为控制器 #623
sundale commented 2017 年 2 月 23 日  

I have tried, but the result is very odd: I need some help!

Grbl (v1.1e) is flashed on UNO(Serial), and connected to Leonardo(Serial1), using RX and TX pins.
And both board are connected to PC using USB, to check the communication status.

喜欢 (0)