Contact me: hankecnc@gmail.com

Arduino/串行挂件 #155

推推 grbl 3年前 (2023-01-31) 250次浏览
打开
Nate-Bro 打开了这个问题 2015 年 11 月 19 日 · 44条评论
打开

Arduino/串行挂件#155

Nate-Bro 打开了这个问题 2015 年 11 月 19 日 · 44条评论

注释

Arduino/串行挂件 #155

我不确定之前是否讨论过,但是连接到第二个串行设备会涉及什么,比方说第二个 arduino,它具有通常的悬垂按钮和电子急停按钮。

现在我有一个吊坠,上面有紧急停止、中止、恢复、保持按钮。连接到arduino cnc shield。但是,如果有第二个带有控制按钮和发送命令以触发自定义操作的按钮的 arduino,那就太好了。我可以使用相同的 arduino,但它的乐趣在哪里。

这样,当我在机器旁边时,我可以使用有线连接器,然后当我穿过商店或在另一个房间时使用我的电话/网络连接器。

Arduino/串行挂件 #155
所有者

一个简单的解决方案是制作一个外部程序,它与第二个 arduino 通信并将命令发送到 bCNC 模拟网络挂件。

Arduino/串行挂件 #155

所以一个选项是说有一个带有 lan/wifi 屏蔽的 arduino 与 Web pendent 通信。

这是一个很好的解决方案,也是我在处理吊坠时可以做的事情。

谢谢

Arduino/串行挂件 #155
贡献者

我一直在想同样的事情,也许是基于一个 ESP8266
网络挂件暂时搁置,我真的需要在机器上实际做一些事情。
但是只要我能找到一些时间,我们就可以得到 websockets,并且可以使用 web-pendant 的响应(对我来说),从硬件 pendant 慢跑和转向我的 cnc 就可以成为现实 :)

Arduino/串行挂件 #155
所有者

@Nate-Bro局域网盾可以解决问题。我建议使用 USB 连接到同一台运行专用 python 脚本以与 bCNCC 通信的同一台计算机的第二个 Arduino。

Arduino/串行挂件 #155

那会起作用,但对某些人来说配置或设置可能不那么简单。但我可以试一试,看看有什么反应更快。

Arduino/串行挂件 #155

我刚刚听说了一个名为cnc.js的新 Grbl GUI 。它基本上是离线工作的 Chilipeppr。我还没有尝试过,但乍一看,似乎已经做得很好了。我想知道这是否可以以最小的努力以某种方式插入 bCNC 强大的后端作为其网络挂件。有人想试一试吗?

Arduino/串行挂件 #155

我要看一下

在 2015 年 12 月 11 日星期五上午 7:45 -0800,“Sonny Jeon” notifications@github.com写道:

我刚刚听说了一个名为cnc.js的新 Grbl GUI 。它基本上是离线工作的 Chilipeppr。我还没有尝试过,但乍一看,似乎已经做得很好了。我想知道这是否可以以最小的努力以某种方式插入 bCNC 强大的后端作为其网络挂件。有人想试一试吗?


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

Arduino/串行挂件 #155
所有者

看看这个视频 [https://www.youtube.com/watch?v=dYixko-8JMY] 他正在使用 XBox 控制器作为 bCNC 的吊坠

Arduino/串行挂件 #155
贡献者

回到@Nate-Bro原始问题:
我的建议是在 bCNC 中实现一个后台线程,该线程不断汇集第二个运行 firmata 固件的 USB Arduino。Firmata 是一种标准协议,被许多人采用以通过串行协议以快速和优化的方式交换 I/O。该库已存在于 Arduino IDE 中(并受支持)并允许配置 I/O(输入、输出、pwm、模拟输入甚至伺服或步进器)并写入/读取它们。
将输入绑定到 bCNC 命令(运行、停止、慢跑等)将有助于创建用户可以个性化的自定义硬件挂件。

未来的发展甚至可以将一些特殊的 M 代码映射到数字输出(M100 –> 数字输出 5),并以这种方式实现与 gcode 同步的命令以扩展 grbl(并实现一些有趣的自动化)。

可能需要记住想要使用板载 GPIO 的 RPi 用户,因此硬件抽象层将是一个很好的补充,可以在以后覆盖更多硬件。

存在用于 firmata 的 Python 库,甚至是一些基于单个文件的简化版本,因此实现起来似乎并不难。

Arduino/串行挂件 #155
所有者

@effer这可能是一种选择,但会限制其使用。如果我们创建一个 TCP/IP 套接字接口(可能与 web 套接字兼容)作为当前的 web 服务器,而不需要在每次请求时断开/恢复连接,它将比当前的 web 接口响应更快并且更容易与任何外部程序。
制作一个接受来自网络请求的 TCP/IP 服务器非常简单,我没有研究 websockets 需要什么。

Arduino/串行挂件 #155
贡献者

@vlachoudisTCP/IP 接口比串行方法有优势,但 IMO 它有几乎 2 个大的负面事实:

  • 价格(即使中国的以太网屏蔽现在非常便宜,ESP8266 是一个有趣的替代品)
  • 自定义固件的开发(运行在硬件挂件设备上),而 firmata 是现成的。

事实是,快速 TCP/IP 套接字将在任何智能手机上提供响应接口。但是,当涉及到与物理事物(按钮、操纵杆、工具更换)的接口时,问题就来了。

可能这里讨论了两种不同的需求,一种是与其他软件的接口,另一种是以经济的方式与物理的接口。

Arduino/串行挂件 #155
所有者

我什至没想过通过以太网连接吊坠。而是要有一种简单快捷的方式让外部进程与 bcnc 进行通信。我的方法是让 Arduino 有一个 prednant,我们没有 firmatta,蓝牙等连接到本地进程,通过 TCP/IP 将请求发送到 bcnc

Arduino/串行挂件 #155
贡献者

@vlachoudis

如果我很清楚,一个新线程将负责 websocket(或 TCP/IP),可能会取代现有的 HTTPServer。它将公开一个软件界面,其中写入命令将被放入 app.queue
任何新的“挂件插件”将从现场检索输入,然后将命令推送到套接字。它还需要公开相同的套接字接口以从 bCNC 检索命令。(或继续为他们汇集)。

但是从挂件插件直接附加到那个 app.queue 是不是一件坏事?用户将在哪里指定绑定到硬件 pendat 的内容?在挂件插件中还是在更大的快捷方式列表中?

我仍然不确定解决此请求的最佳方法,真的很想知道如何解决。

Arduino/串行挂件 #155

我选择了不同的方法。Arduino MEGA 和 2.8″ 触摸 LCD 作为吊坠。现在我正在研究模拟 USB 键盘的 arduino sketch。(目前是箭头键)

@vlachoudis– 是否可以实现更多的键盘快捷键?

Arduino/串行挂件 #155
Arduino/串行挂件 #155

Arduino/串行挂件 #155
所有者

很有意思@stanoba. 它看起来有点像网络吊坠。由于程序是正确的,您可以将任何命令绑定到 F# 键上,无论是单独按下还是与 Shift / Ctrl 一起按下。查看“工具”选项卡“快捷方式”

Arduino/串行挂件 #155
作者

可以使用无液晶选项来实现吗?就像我们只想使用键盘和按钮一样。

从 Outlook Mobile 发送

在 2016 年 1 月 29 日星期五下午 4:03 -0800,“stanoba” notifications@github.com写道:

我选择了不同的方法。Arduino MEGA 和 2.8″ 触摸 LCD 作为吊坠。现在我正在研究模拟 USB 键盘的 arduino sketch。(目前是箭头键)

@vlachoudis– 是否可以实现更多的键盘快捷键?

Arduino/串行挂件 #155
Arduino/串行挂件 #155


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

Arduino/串行挂件 #155

@vlachoudis– 感谢您提供信息。

@Nate-Bro– 是的,您可以实施具有本机键盘和鼠标支持 (HID) 的廉价 Arduino Pro Micro ATmega32U4:https ://www.arduino.cc/en/Reference/MouseKeyboard

我也可以想象按钮和旋转编码器的组合。

Arduino/串行挂件 #155

我想知道快捷方式可以进行什么样的分配,以及是否有任何格式考虑。

例如可以分配

  • 直接g代码?
  • 6 个用户定义按钮之一(间接 g 代码)?
  • GRBL 命令?

附言。我已经设法通过 pygame/joystick 将慢跑快捷方式映射到旧的 playstation2 控制器,并且有很多按钮可用于更多任务。

Arduino/串行挂件 #155
贡献者

我相信它在这里接受几乎所有命令:https
://github.com/vlachoudis/bCNC/wiki/CommandLine 使用 F10 测试 –> RUN,F11 –> STOP
永远不要尝试使用 gcode

Arduino/串行挂件 #155
作者

我认为拥有街机风格的操纵杆会让事情变得更简单。但它似乎有一个多方向的问题。当你使用键盘时,它想要运行 y 或 x,如果我同时按下它,它只会向一个方向移动,而不是一起移动。

我使用了一个控制器程序,使我的机器在 x 轴和 y 轴上平稳运行。

从 Outlook Mobile 发送

在 2016 年 2 月 3 日星期三下午 2:46 -0800,“Stanley” notifications@github.com写道:

@vlachoudis– 感谢您提供信息。

@Nate-Bro– 是的,您可以实施具有本机键盘和鼠标支持 (HID) 的廉价 Arduino Pro Micro ATmega32U4:https ://www.arduino.cc/en/Reference/MouseKeyboard

我也可以想象按钮和旋转编码器的组合。


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

Arduino/串行挂件 #155

@Nate-Bro
这是一个有趣的巧合……我遇到了完全相反的问题!:)

由于 PS2 模拟操纵杆的性质,不可能获得干净的 X 或 Y 运动。我在 jtest 中注意到,每当我在一个轴上移动操纵杆时,垂直轴上总会有轻微的移动。我最终通过在 pygame 脚本中设置 80% 的阈值来过滤掉它,因为我个人认为这是噪音。由于我将慢跑动作映射到上/下/左/右键,我更愿意确保每次按下时我只移动上/下/左/右。

我想这会深入到您更喜欢快速对角线移动还是每个轴的精确移动。在同时具有模拟轴和交叉布局按钮的操纵杆上,您可能可以对两者进行编程。

Arduino/串行挂件 #155

我在 MAME 街机机柜时代知道 Happ 制作可切换的 4/8 向
操纵杆。有一块在物理上限制了 4 个方向的旅行。
移除后,可以使用完整的 8 向控制。
https://na.suzohapp.com/products/joysticks/50-6084-000

2016 年 2 月 4 日星期四上午 8:06,Elias Politis notifications@github.com
写道:

@Nate-Bro https://github.com/Nate-Bro
这是一个有趣的巧合……我遇到了完全相反的问题!:)

由于 PS2 模拟操纵杆的性质,不可能获得
干净的 X 或 Y 运动。我在 jtest 中注意到,每当我
在一个轴上移动操纵杆时,垂直轴上总会有轻微的移动

我最终通过在 pygame脚本中设置 80% 的阈值来过滤掉它,因为我个人认为这是噪音。由于我将慢跑
动作映射到上/下/左/右键,我更愿意确保
每次按下时我只移动上/下/左/右。

我想这会深入到您更喜欢快速对角线移动还是
每个轴的精确移动。在同时具有模拟轴和
交叉布局按钮的操纵杆上,您可能可以对两者进行编程。


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

Arduino/串行挂件 #155
所有者

@effer一切都被接受(就像在网络挂件中一样)命令或 gcode 甚至“SENDHEX”命令将以十六进制编码的字符发送到 grbl。

Arduino/串行挂件 #155

快速提问:命令行中的第二次 PAUSE 会触发恢复吗?即首先会向 GRBL 发送一个“!” 第二个是“~”?

Arduino/串行挂件 #155
所有者

号暂停发送!,恢复发送〜

Arduino/串行挂件 #155

你如何从命令行发送简历?我没有在列表中看到 RESUME。你能发一个普通的“~”吗?

附言。很抱歉打扰你。我目前正在设置 CNC,但 GRBL 控制器正在路上,所以我只是想在没有 Arduino 的情况下理清头绪。

Arduino/串行挂件 #155
所有者

@auhopuwiki 已过时 :)
bCNC 接受以下内容:
PAUSE:相当于在 feedhold / resume 之间切换的暂停按钮
FEEDHOLD:发送!
RESUME:发送 ~
您也可以从命令行发送 ~ 和 !

Arduino/串行挂件 #155

谢谢!

Arduino/串行挂件 #155
贡献者

@vlachoudis经过一番思考,我完全同意 bCNC 应该有一个公共接口来玩。未来有什么计划吗?

Arduino/串行挂件 #155
所有者

硬件挂件的一个不错且简单的替代品是无线数字键盘,如#244中所指出的那样。

Arduino/串行挂件 #155

有关在此处使用无线数字键盘的更多信息:http ://www.shapeoko.com/forum/viewtopic.php?f=5&t=7507&start=50#p61047

我这样做已经有一段时间了,效果很好。

Arduino/串行挂件 #155
贡献者

不错的工作@twforeman和有趣的构建日志。

Arduino/串行挂件 #155

喜欢 Contour Design Shuttle Express 吗?

它实际上被重新标记并作为带有一些商业 CNC 设置的吊坠出售。

所需的按钮是 XYZA 轴选择、速度切换(通过速度选项循环)以及对内部和外部转轮的支持。

Arduino/串行挂件 #155
所有者

我从来没有试过。现在我的机器设置不需要任何吊坠,但如果有人愿意工作,我可以提供帮助。

Arduino/串行挂件 #155

我拥有一台 Contour Shuttle Express,我发现它在我使用 ChiliPeppr 时非常有用。有一个实用程序用于在 Shuttle 和 ChiliPeppr 使用的串行端口 JSON 服务器之间进行通信。
当我切换到 bCNC 时,我错过了使用控制器的机会。因为我已经有了控制器,所以我想我应该尝试修改 Shuttle 实用程序以与 bCNC 以及 ChiliPeppr/SPJS 通信。
长话短说,我让 Shuttle 与 bCNC 配合得很好,这在很大程度上要归功于原始的 ShuttleCP 项目:https
://github.com/lordmundi/shuttleCP 我在 git 中创建了 shuttleCP 项目的一个新分支来开发 bCNC接口,我现在已经提交了一个拉取请求,看看它是否可以正式合并。我会及时通知你的。

Arduino/串行挂件 #155
所有者

极好的@njkeng

Arduino/串行挂件 #155

来自的更新@njkeng现在在 shuttleCP 的 master 分支中,所以随时可以从最新版本开始尝试。

Arduino/串行挂件 #155

(想将此作为新问题发布,但后来发现其他硬件挂件已关闭以支持此问题,因此只需在此处添加。)

“真正的”硬件挂件最通用的解决方案似乎是各种操作系统中的操纵杆接口,而不是自定义串行/网络/json/arduino/等。协议。

作为在操作系统(至少 Linux 和 Windows)上运行的程序,读取操纵杆,您可以通过相同的界面获得一维模拟轮、二维模拟摇杆运动、许多按钮等。甚至校准也由 OS 驱动程序(如果支持)为您完成。

使用操纵杆 API 还为用户提供了极大的硬件自由度,因为任何 PC 游戏配件都可能使用相同的 API 或具有其他程序/驱动程序来进行转换(即 Windows 上的 PS4 控制器)。
在极端情况下,您可以将 3 针旋转编码器连接到 GPIO,并使用设备树驱动程序模拟 1 轴输入设备,对读取输入的程序 (bCNC) 完全透明。

想象一下将操纵杆上的单轴油门控制映射到 ie。饲料覆盖。

所有这些可能需要使用 Grbl 1.1 及其“操纵杆实现”建议,https://github.com/gnea/grbl/wiki/Grbl-v1.1-Jogging#joystick-implementation,而不是使用乘数移动固定距离.

我意识到这可能不是一个简单的修复,但它将允许使用广泛可用的消费类硬件实现真正的低延迟慢跑体验,而不依赖于特定的操作系统或额外的控制硬件 (RPi)。

Arduino/串行挂件 #155
米尔达天才 评论了 2018 年 8 月 22 日  

你好,
我正在测试连接到 bCNC 的 Arduino pendant 的第一个版本。它使用串行连接到 Arduino 和来自 bCNC(桥)的网络吊坠。我已经打开了与 web pendant 的连接,我在其中发送命令并从相同的连接刷新 CNC 位置。Web 吊坠和桥梁在同一台计算机上。

主要问题是 bCNC 中按钮按下和响应之间的滞后。大约 2 秒 :(。
第二个问题是,有时 bCNC 对主轴开/关没有反应(我看到成功请求,但什么也没发生)。

Arduino/串行挂件 #155

https://youtu.be/qBP-9yQEiUU

Arduino/串行挂件 #155

我使用这种方法将 USB 游戏控制器连接到我的 pi 并运行我的 bcnc:https ://openbuilds.com/projectresources/raspberry-pi-xbox-controller-bcnc-and-you.259/

Arduino/串行挂件 #155

这里有一些关于正在工作(但仍在进行中)的 bCNC 吊坠项目的信息。

https://github.com/agent-r/bCNC-PENDANT

Arduino/串行挂件 #155 哈维 补充道 挂件api 标签 2021 年 2 月 25 日
Arduino/串行挂件 #155
合作者

我现在建议大家使用 grblHAL 和一些挂件插件,让挂件直接连接到机器,而无需通过 PC https://github.com/terjeio/grblHAL/

Arduino/串行挂件 #155

哇……这是一个整洁的发展!我不知道 GRBL 会朝那个方向发展。对于浏览此线程的人们,这里是 grbl 网站上描述该项目的文章:https ://www.grbl.org/what-is-grblhal

I hope that this will merge in or work with the work Bart has done on GRBL ESP32 and his awesome Universal modular CNC controller: https://www.tindie.com/products/33366583/6-pack-universal-cnc-controller/

Arduino/串行挂件 #155
Collaborator

I hope that this will merge in or work with the work Bart has done on GRBL ESP32

I hope also, but i am not sure if this is going to be easy, because Grbl_ESP32 fork is heavily optimized for use on ESP32 and doesn’t really care about other micros, while grblHAL fork is more generic and tries to support many different 32b uCs. So there might be some conflicts of interrest until everything gets sorted out properly. Hopefuly they will be able to unite their efforts…

Sign up for free 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
项目

还没有

发展

没有分支机构或拉取请求

17人参加
Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155Arduino/串行挂件 #155

喜欢 (0)