Contact me: hankecnc@gmail.com

树莓派可能吗? #12

推推 grbl 3年前 (2023-01-31) 258次浏览
关闭
chamnit 打开了这个问题 2015 年 4 月 21 日 · 62条评论
关闭

树莓派可能吗?#12

chamnit 打开了这个问题 2015 年 4 月 21 日 · 62条评论

注释

树莓派可能吗? #12

首先,这个 GUI 做得很好。它的功能非常丰富。

我不知道 bCNC 的要求是什么,但是否有可能让它在 RPi 或 BeagleBone Black 上运行?我一直在寻找可以在这些上运行的 CNC 控制器解决方案,并将尽我所能帮助实现这一目标。

树莓派可能吗? #12
所有者

谢谢你。它应该在 RPi 上工作,我对 beaglebone black 一无所知,但是我只在 Linux 上尝试过,一些用户在 Windows 和 Mac 上尝试过。要求很低:python、tkinter / python-tk(Ubuntu、RPi、Debian)、python-serial,都存在于 RPi 上。

树莓派可能吗? #12

我可以确认,bCNC 在 bananapi 上运行良好。

树莓派可能吗? #12
作者

@toomuchcookies: 这是一个非常棒的消息。我将在本周晚些时候进行试验。

@vlachoudis:我收到了大量关于基于 RPi 的 Grbl 接口的公共和私人询问。您有兴趣为 Grbl 社区支持 RPi 闪存映像吗?如果是这样,我可以尽我所能并向用户指出这是 UGS 和更简单的 GrblWeb 的绝佳替代品。

树莓派可能吗? #12
所有者

是的,我当然可以支持 RPi 版本。我会为它准备我的树莓派作为测试平台。

树莓派可能吗? #12
作者

@vlachoudis: 伟大的!

我刚刚在我的 RPi 上不费吹灰之力就让它运行了。我还没有连接 Grbl 或在机器上测试它,但今晚晚些时候我会这样做。以下是我为使您和其他人节省一些时间所做的工作的简短总结。(但您可能已经知道如何做这一切)。

  • 从 raspberrypi.org 下载最新的 Raspbian 图像并将其复制到 SD 卡上
  • 执行 RPi 映像的标准设置,扩展文件系统并将其设置为引导至 GUI。
  • 通过以太网或使用 Wifi 加密狗和 GUI Wifi 设置工具将 RPi 连接到互联网。
  • 打开终端并运行sudo apt-get update,然后运行sudo apt-get upgrade(不确定这是否有必要,因为当我尝试安装 tkinter 和 pyserial 时,它说它已经是最新的可用版本。无论如何这样做也无妨。)
  • 打开网络浏览器并从 github 下载 bCNC。./bCNC在其解压目录中从终端解压并运行。因此,事实证明,通过 apt-get 构建的 pyserial 的 RPi 与 bCNC 不兼容,并且不支持 pyserial.tools() 模块。
  • 要更新pyserial,我必须通过sudo apt-get install pip. 然后安装了更新版本的pyserialsudo pip install pyserial --upgrade
  • 重新运行./bCNC,它弹出在屏幕上。美丽的。:)

作为旁注,我还安装了sudo apt-get install avahi-daemon这样我就可以通过我的笔记本电脑远程访问 RPi raspberrypi.local,而不是使用不断变化的 IP。如果需要/etc/hostname/etc/hosts可以将其更改为。bCNC.local我可能会安装 VNC,因此我不需要将显示器连接到 RPi。

树莓派可能吗? #12
作者

@vlachoudis: 另一个更新。将它连接到我的测试机器并进行了一些初步测试。效果很好。我真的很喜欢 GUI 以及您显然已经投入了多少。

我遇到的唯一小问题是 gcode 可视化工具,毫不奇怪,它在 RPi 上很慢。是否有任何选项可以禁用它或降低其 CPU 要求?据我所知,它非常轻巧,但 RPi 处理器非常受限。我可能会购买一个 RPi2,看看它能在上面运行多好。由于滞后,缩放和平移特别困难。几乎不可能让可视化在屏幕上居中。也许所需要的只是适合屏幕(如果它已经存在,我昨晚找不到它)。

树莓派可能吗? #12
所有者

我可以在 RPi 上想象到这一点。python 与 tkinter 的组合在图形方面并不是最高效的。您可以通过增加 accuracy 参数的值来提高性能,因此圆弧的线段会更少 -> 绘制速度更快。
选项卡:工具
在下拉框中选择 CNC
并更改“绘制圆弧精度”,该值是定义单位中可接受的 saggita。
(然后你必须重新启动程序)
你也可以从菜单 – >视图 – >快速运动(G0)中删除G0的显示

添加一个选项来禁用 gcode 的可视化并不难。等我回家再做。我会考虑是否可以做某种草图,或者只是路径的边缘。

我确信我内部的原始 CAM 操作也会有延迟。

出于好奇,你是在硬漂浮还是软漂浮上跑步?

适合屏幕:糟糕,我错过了。我也不会添加它:)

树莓派可能吗? #12
作者

@vlachoudis: 我会在今晚晚些时候研究这一切。我不知道有一个选项可以作为硬浮动或软浮动运行。我也会检查一下。

树莓派可能吗? #12
所有者

你可以做一个“dpkg -l”,看看包是“armhf”还是“armsf” hf=hard float, sf=…

树莓派可能吗? #12
所有者
  • 我添加了一个选项来启用/禁用 g1/g2/g3 和 g0(分别)的显示
  • 我从菜单 – >查看 – >适合屏幕添加了适合屏幕
  • 并纠正了设置精度参数的错误

我也在想我可以为 XY 模式提供一个快速的二维显示,因此在处理不同 z 中的所有重复传递时没有必要

树莓派可能吗? #12
作者

@vlachoudis: 这太妙了。我今晚会检查这些。我确实在工作时在我的 Mac 上尝试过,但缩放不起作用。不确定这是否是基本 Python Mac 安装的问题。

树莓派可能吗? #12
作者

@vlachoudis: 行。我昨晚用新代码在 RPi 安装上进行了测试。显示选项的启用和禁用效果很好。

适合屏幕的效果非常好,使整个过程在较慢的 RPi 上变得更加容易。右键单击平移在 Mac 上有效,但在 RPi 上无效,缩放时反之亦然。RPi 能够缩放,而 Mac 不能。不知道为什么。我没有深入研究它,也没有检查是否有一些键绑定可以改变行为。

然而,在工作期间使用“暂停”或进给保持按钮时,存在一些严重的滞后问题,以秒为单位。而且,开始按钮有些奇怪。控制机器非常困难,它会卡住,在开始和快速保持之间循环。今晚晚些时候我会检查你的代码,看看我是否可以帮助隔离问题。

树莓派可能吗? #12
所有者

@chamnit平移是用“中间”鼠标按钮。也许在 Mac 上你只有一个中间的行为像右边一样?在 RPI 上,因为它是 linux,我希望与中间的一起工作。

  • 你说的Mac缩放问题,是我新增的“适合屏幕”功能还是正常的放大/缩小?
  • 老实说,我从来没有使用过软件 feed hold/resume。我总是使用硬件,所以如果那里出了什么问题我不会感到惊讶:)
树莓派可能吗? #12
作者

@vlachoudis: 有趣的。

  • 我的 Mac 上有一个带滚轮的罗技三键鼠标。Python 的 Mac 安装可能没有正确注册鼠标提示。至少那是我的猜测。右边的按钮只能平移,中间的滚轮什么都不做。没什么大不了的。我想我提到了它。
  • 适合屏幕在我的 Mac 和 RPi 上效果很好。我确实尝试使用同一个下拉菜单中的放大和缩小,但他们什么也没做。如果我没记错的话,那是在我的 Mac 上。
  • 啊,有道理。您需要做的就是随时向 Grbl 发送一个~用于简历的!字符和一个作为提要保留的字符。这些是直接从串行读取 ISR 中提取的,因此您不必使用流协议跟踪它们。它们是异步的并且是实时的。软重置的行为方式与发送 a 相同Ctrl-x,您似乎已经实现了。

编辑:忘了提到~循环开始并不像循环开始。它只真正用于恢复进给暂停或程序暂停。从 v0.9i(大约一个月前)开始,Grbl 删除了 QUEUE 状态,并将执行发送给它的所有内容。它依赖于 GUI 通过开始一个流来“循环启动”一个 g 代码程序。这样做是为了大大简化状态机管理。

树莓派可能吗? #12
作者

@vlachoudis: 这是昨晚测试的总结。

  • 正如预期的那样,RPi 正在运行硬件浮动。我相信所有当前图像现在都是硬件浮动的。
  • 我移除了 Wifi USB 加密狗并将 RPi 连接到以太网。这显着提高了整体性能,因为 GUI 明显更加敏捷。此外,VNC 远程桌面延迟几乎不存在,这让我有点惊讶。在 bCNC 和 RPi 连接到以太网的情况下,完全不使用监视器就足够了。
  • 我将合适的三键鼠标连接到 RPi 和通过 VNC 控制它的 Mac。平移和缩放在此配置中正常工作。但是,在我的 Mac 上并在 OSX 中的本机 Python 上运行它,鼠标右键映射到鼠标中键,因此只有平移有效。需要多调查一下,看看原因是否出在 Mac 端。
  • “绘制弧度精度”。我对此进行了更改,但没有注意到 RPi 的性能有多大改进。我对这个选项有点困惑。这是否意味着 bCNC 在将弧线发送到 Grbl 之前将其转换为 G1 线命令?或者这仅适用于可视化工具配置?
  • “运行”、“暂停”和“停止”如何与我一直在测试的最新版本的 Grbl 一起工作存在一些问题。Grbl v0.9i 改变了它处理实时进给保持和 M0/2 程序暂停和结束的方式。它需要使用~循环启动实时命令来退出这些并且 bCNC 没有它们的按钮。通过 MDI 线路发送时,我可以让程序恢复~,但 GUI 不知道我做了什么,并将其置于一种奇怪的状态。

也就是说,在周末,我将深入研究您的源代码以了解事情是如何实现的,并让您知道可能需要更改哪些内容才能使其兼容。我确实懂一点 Python(虽然现在有点生疏了),所以我会尝试自己实施更改并提交它们供您审阅。

树莓派可能吗? #12
所有者

@chamnit

  • Wifi,如果延迟是由它产生的,那就太可惜了。这个周末我也会在我的 RPi 上测试它。
  • “Plotting Arc Accuracy”用于绘图,程序将弧作为弧发送到 Grbl,除非要求自动调平,然后我被迫将弧分成线段以跟随表面的 3D 演化。幸运的是,pcbgcode 仅使用行。
    但是,既然您提到了,我必须将这两个变量分开,一个用于绘图,一个用于插值以进行探测。
  • 运行/暂停/停止我等待您的输入。
树莓派可能吗? #12
作者

@vlachoudis: 是的,我对 WiFi 很失望,但这可能是由于靠近造成的。RPi 在车库里,那些小的 WiFi 加密狗可能没有最好的天线。我会再检查一遍,因为我昨晚在车库里设置了另一个 Wifi 路由器。

树莓派可能吗? #12

@chamnit如果你直接将 usb wifi 插入树莓派,电流可能会不足,至少我确实观察到了这一点,我也在亚马逊的一些评论中读到了这一点。在我将 wifi 加密狗直接插入有源 USB 集线器后,我的 wifi 速度快了很多。亚马逊上的其他用户还建议尝试不同的 USB wifi 加密狗…

树莓派可能吗? #12
作者

@alpharesearch: 我刚刚再次测试了 Wifi USB。这次车库里有一个旧路由器充当 WiFi 网桥。无限改进。只要这些 RPi Wifi dongle 信号良好,Wifi 似乎就可以通过 VNC 使用。

我想它可能的力量与它有关。过去,我注意到如果您有一个可以提供超过一安培或两安培电流的优质壁式电源适配器,则您不必拥有有源 USB 集线器。即使有网络摄像头和 WiFi 加密狗。

树莓派可能吗? #12
作者

@vlachoudis: 上周末我没有时间研究代码,这周我遇到了一些截止日期。我可能不得不在下周重新审视这个问题。

树莓派可能吗? #12
所有者

@chamnit没问题。顺便说一句,你有任何重的 g 代码要测试吗?我是 CNC 的初学者,目前我没有任何大项目文件。

树莓派可能吗? #12
作者

@vlachoudis:我花了一点时间用 bCNC 做了一些性能测试,并将它与将在 RPi 上运行的其他流行的跨平台 GUI(Java、JS+NodeJS、JS+GoLang)进行了比较。简而言之,到目前为止,bCNC 表现最好。它几乎可以像基准测试一样运行,简单的 Python 流脚本 Grbl 支持。我不确定为什么,但这可能是因为 Python 在 RPi 上得到了很好的支持,或者它证明了你的效率。不管怎样,继续做你正在做的事!:)

至于我之前遇到的一些怪事,我在这一轮测试中没有发现任何问题。在大多数情况下,您最近推送的错误修复似乎已经解决了它们。不过,我没有测试吊坠和多个按钮的按下。我一有时间就去。

我也一直在对可用的 Grbl GUI 进行全面审查。我觉得 Python 是一个很好的构建平台,因为它已经被学术界完全接受,他们不断提高它的性能,而且不会有任何改变。任何地方的任何人都可以轻松访问它。(Grbl 40% 的下载量来自发展中国家。)JavaScript 不断发展的状态和 Java 慢慢消亡的状态就不同了。不过,在某些时候,我们需要开始讨论在 bCNC 中实施工具更改,当您准备好时。

树莓派可能吗? #12
所有者

@chamnit非常好。没想到python在树莓派上的表现比java还快!

我很乐意进行工具更改和任何需要的操作,但是:

  1. 我的DIY是一台非常原始的机器,所以我不会有任何直接的测试手段。
  2. 另请注意,我刚刚进入 CNC 世界,没有任何直接的测试手段,我需要一些外部帮助来了解我所做的是否正确:)

我看到有一个GRBL模拟器程序,但是我无法用新的0.9i编译它。项目死了吗?

树莓派可能吗? #12
作者

@vlachoudis: 不幸的是。Grbl 模拟器不是我直接支持的东西,也没有时间。有时来自社区的人会更新它,但自上次发生以来已经有一段时间了。

我对 Java 的运行不如 Python 实现感到有点惊讶。由于 Python 是 RPi 上的标准安装,因此构建 Python 以在 RPi 上良好运行可能很简单。但是,这也可能与 RPi 无法足够快地刷新屏幕上的数据有关。通用 G 代码发送器(Java GUI)使用已发送的 G 代码和 Grbl 实时执行的内容更新选项卡式窗口。AFAIK,bCNC 不会那样做,只需要更新进度条(我更喜欢 RPi)。另外两个 GrblWeb 和 Chilipeppr(分别是带有 NodeJS 和 GoLang 服务器的 JavaScript)由于需要使用 RPi 的网络浏览器而受到限制。它们需要大量的计算能力才能在浏览器窗口中执行相当简单的操作。

树莓派可能吗? #12
作者

@vlachoudis:关于工具更换和帮助在 CNC 世界中定位,我会尽我所能提供帮助。:) 让每个人都可以访问 Grbl 或 CNC 一直是我的个人目标。如果我们可以在成本约为 100 美元左右的硬件上运行 Grbl 和 bCNC,则可以很容易地将 CNC 带到发展中国家、大学和高中。鉴于工程大学教授 Python 并大量使用它,bCNC 可以快速发展是可行的,前提是我们可以给当前用户一个非常有说服力的理由开始使用它。此时,只需添加社区习惯拥有的功能即可。(FWIW,你已经拥有了 90%。)

树莓派可能吗? #12
所有者

@chamnit听起来不错!
顺便说一句,我缺少的 10% 是多少?

树莓派可能吗? #12
作者

@vlachoudis:我不想让你负担过重,但这里有一个清单。

  • G 代码状态 ($G) 报告。Grbl 需要让 GUI 更容易实时显示它,因为它在运行时不起作用。但重要的是要知道当您手动操作机器时机器处于什么 g 代码状态。
  • 工具更换处理。社区刚刚开始关注这个问题,但我还没有看到一个真正好的开源实现。这确实有助于简化完整 CNC 作业的自动化。你基本上只需要一个固定位置的触摸板。GUI 需要运行探测命令以确定第一个工具相对于零件原点的初始 z 偏移。对于每次工具更换,都会运行另一个探测循环以确定 z 偏移差异并使用 G43.1 命令向 Grbl 发送该信息。然后 Grbl 将在内部应用该偏移量,直到指示不要或软重置。
  • 网络摄像头流媒体服务器。这是奢侈的,但通常是人们迁移到 GUI 而不是另一个的原因。典型的用例是在车间开始一项工作并在智能手机上监控它,同时在远离机器的地方做其他事情。不确定 Python 如何有效地完成它,或者 RPi 是否可以通过在前台运行的 bCNC 来处理它。这在树莓派 1 上可能是不可能的,但在树莓派 2 上可能是不可能的。
  • 简单的工作流程集成或与一些开源 CAM 工具的可选集成。MakerCAM 和 JSCut 是基于 Web 浏览器的,非常适合生成 2D CAM。不确定如何使用 Python,但这也是一种奢侈,并不是很关键。它主要是在那里删除一个步骤。我还看到了一个 Eagle BRD 导入工具,可以帮助加快电子电路板的制作过程。这通常与扫描 PCB 板的自动调平探测循环结合使用,以考虑表面变化和/或机器的非垂直性,并相应地调整 g 代码程序的 z 坐标。
  • GPIO接口作为插件。RPi 有大量的 GPIO,可用于 CNC 机器上的各种不需要实时的东西。在输出端,这可以像指示灯一样简单,也可以像运行第 4 轴转台以将其移动到位以为下一个 3 轴作业设置工件一样复杂。在输入端,您最常看到像 ShuttleXpress 这样的物理慢跑吊坠,因此您可以在机器上设置您的工作。我敢肯定还有一百万个我没有想到的其他事情。但是,我要说的是,Grbl 的使用方式出乎我的意料,因此我认为通过设计使其变得强大可能会对人们使用机器的方式产生重大影响。
树莓派可能吗? #12

@vlachoudis
可能为时已晚,但至于大型 G 代码文件……你有什么样的机器,工作区尺寸是多少,你拥有/可以使用哪些工具位?

我可以创建一些非常好的文件供您尝试。您有可以接受大文件的首选电子邮件地址吗?

树莓派可能吗? #12
所有者

@1bigpig我有一台自制的 MDF 机器。工作区域相当小,大约 40 厘米 x 20 厘米。
您可以将文件发送到我的电子邮件地址,您可以在菜单的“关于”中找到该地址。

树莓派可能吗? #12

lordmundi 在这里…我有兴趣提供帮助。shuttleCP 发送
的内容并不是一成不变的——它正在写入
Chilipeppr 串行端口 JSON 服务器使用的 websocket。如果 bCNC 不使用 websockets,
可以将它们添加到 bCNC 以与 SPJS 获得的内容兼容
(John 在 github 页面上很好地记录了 SPJS)。但是,如果您
不打算使用 websockets,并且 shuttleCP 无论如何都必须更改,
您可以更改 shuttleCP 以向 bCNC 发送更简单的内容(可能是常规
套接字,或者 REST api,最好的)。
如果这是您想要的方式,可以添加 libcurl以支持 REST。或者,你可以做
一些重量更轻的事情,然后一直到 http ……就像
简单的udp套接字…

FG

在 2015 年 5 月 8 日星期五中午 12:56,Vasilis Vlachoudis <
notifications@github.com > 写道:

@chamnit https://github.com/chamnit我相信如果我添加到
Pendant 服务器以报告与 Chilipepr 中相同的 json 对象,它将
起作用。应该是一个简单的补充。我会尝试联系@lordmundi
https://github.com/lordmundi了解通信协议。


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

树莓派可能吗? #12
所有者

@chamnit我刚刚添加了机器的状态报告。它在未运行时每 10 秒发送一次 $G。

喜欢 (0)