开源改变世界

机器人集成 #411

推推 grbl 2年前 (2023-02-04) 239次浏览
打开
jcoffland 打开了这个问题 2017 年 9 月 6 日 · 19条评论
打开

机器人集成#411

jcoffland 打开了这个问题 2017 年 9 月 6 日 · 19条评论

评论

机器人集成 #411

很乐意将 LaserWeb4 集成到 Buildbotics CNC 控制器上。它有一个内置的 Raspberry Pi 3,因此它可以通过网络为 LaserWeb 提供服务。将它连接到 Buildbotics 控制固件并不需要太多努力。 https://github.com/buildbotics/bbctrl-firmware

机器人集成 #411 jcoffland 添加了 增强 标签 2017 年 9 月 6 日
机器人集成 #411
成员
开胃菜 评论了 2017 年 9 月 11 日  

只需按照https://cncpro.yurl.ch/documentation/installation/36-install-raspberry-pi上的安装说明进行操作,您就可以通过 Raspi-IP:8000 连接前端。

机器人集成 #411
作者

我认为这不是我们想要做的。我想从 RPi 提供 LaserWeb4 的 HTML、Javascript 和 CSS 部分,并让我们基于 Python 的服务器代码充当后端的“串行端口服务器”。你认为这行得通吗?我错过了什么吗?

机器人集成 #411
合作者
jorgerobles 评论了 2017 年 9 月 13 日 通过电子邮件
机器人集成 #411
作者

LW服务器是做什么的?它不仅仅是一个串口服务器吗?你能给我指出 API 上的文档吗?

机器人集成 #411
合作者
jorgerobles 评论了 2017 年 9 月 13 日 通过电子邮件
机器人集成 #411
成员

请注意,API 可能会更改:LaserWeb/lw.comm-server#47

机器人集成 #411
作者

我们的 Python 代码已经包含一个 WebSocket 服务器。我想知道我们是否不能直接实现 API。我们的服务器不需要支持 TinyG、GRBL 或 Smoothie。它的唯一目的是支持 Buildbotics 控制器。我找到了API 文档。它看起来并不太难,但如果能提供有关 API 的更多详细信息,那就太好了。即数据格式应该是什么样子。

机器人集成 #411
成员

我以为 Buildbotics 控制器是 TinyG。

机器人集成 #411
作者

如果我能从每个认为它是装在花哨盒子里的 TinyG 的人那里得到一美元,我们的 Kickstarter 就会得到资助。我们确实从 TinyG 固件开始,但我们进行了大量改进和更改。RPi 和 AVR 之间的 API 类似于 TinyG,但我们的控制器还有很多。我们有一个在 RPi 上运行的 Python 程序,它增加了很多功能。我需要在循环中包含该代码。出于这个原因,LaserWeb 的界面会非常不同。

机器人集成 #411
成员

@jcoffland您将必须检查所有 websocket 事件和发出的服务器源。我不打算详细记录整个 API(太耗时)。

机器人集成 #411
作者

也许我可以帮助记录 API。它似乎是双向的 JSON 数据。如果有这样的东西就好了:http ://dev.buildbotics.com/用于所有 API 入口点。重要数据是:

  • 请求方法(HTTP方法、Websocket等)
  • 请求格式
  • 响应格式

您如何通过 Websocket 将请求与响应相关联?

机器人集成 #411
成员

您如何通过 Websocket 将请求与响应相关联?

它没有。在大多数情况下,它会向所有连接的客户端广播更改io.sockets.emit(...)。它有时会向单个客户端发送更改,但没有将其与特定请求相关联的好方法。

需要注意的事项:它使用socket.io包,该包提供自己的版本化协议。如果协议版本不完全匹配socket.io,客户端和服务器将拒绝相互通信。socket.io服务器将包源发送给客户端,以保持双方同步。这一切都在 的 控制之下socket.io。我讨厌它,希望最终能抛弃它。

机器人集成 #411
成员

抱歉,但我喜欢 socket.io 的工作方式,我看不出有任何理由要替换它。

机器人集成 #411
成员
开胃菜 评论了 2017 年 9 月 13 日  

我讨厌 react/redux,但我不会尝试替换它;)(我更喜欢 Meteor)

机器人集成 #411
成员

socket.io 阻止其他语言与服务器对话。

机器人集成 #411
作者

我对socket.io有同样的问题。我最终切换到SockJS,因为我无法让socket.io与 Python 一起工作。在 Python 方面,我使用tornadosockjs.tornado

机器人集成 #411
哈士奇 评论了 2019 年 7 月 8 日  

我有一个用于与 LaserWeb4 通信的 Python3-socketio 实现的工作示例。
https://gist.github.com/Haschtl/e4953ca8a15c53a079d871fa74a03f68

它工作得很好。您可能不需要 API 末尾的函数。我只是让它们具有与我的 Octoprint-PythonAPI 相同的数据结构,因为我在一个 RPi 上同时使用它们

机器人集成 #411
成员

@Haschtl好东西,欣赏你的作品!

机器人集成 #411

谢谢!我在 PythonAPI 中有一些错误,只是修复了它。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
项目

还没有

发展

没有分支机构或拉取请求

5人参加
机器人集成 #411机器人集成 #411机器人集成 #411机器人集成 #411机器人集成 #411

喜欢 (0)