大家好!我是几周前的ESP32保龄球项目的开发者,今天带来了技术文档和代码库链接。
自从我上次发帖以来,我收到了大量的支持和鼓励,真是让我感到震惊。我没想到会有这么多的兴趣!
在过去的一周里,我花了很多时间在原型上。它可以触发我的保龄球机并读取球的状态,游戏中有一个基本的状态机,还有一个供保龄球手使用的React用户界面。我还构建了原型的UART桥接,它将ESP32网关节点连接到树莓派的跑道计算模块,作为ESPNOW网状网络和跑道外部服务之间的桥梁。
目前最大的障碍是ESP32-CAM模块上的物体检测。我可以使用一台连接到树莓派的网络摄像头,但那样感觉像是在作弊。我希望树莓派只运行状态机、WebSocket和REST API端点。这个项目的一个关键限制是每个节点只执行一个功能,并且要把这个功能做好。不过我知道ESP32的资源有限,所以我不太确定是否能在ESP32-CAM上实现引脚检测。我考虑过完全放弃基于视觉的引脚追踪,改用毫米波雷达模块——这样我可以免费获得球的检测、速度和轨迹,同时满足我实际需要的引脚追踪。不过,这项技术仍然相对昂贵(尤其是乘以8条跑道),所以目前我还是决定使用计算机视觉。最坏的情况是,我会在树莓派上用网络摄像头实现计算机视觉部分,以便解决这个问题……但我真的希望所有的传感器和执行器都是ESP32节点。
状态机的设计很有趣——当我开始时,并没有考虑到各种保龄球游戏的变种。包括传统的10个引脚、9个引脚、蜡烛引脚、鸭子引脚……OpenLaneLink需要支持所有这些。目前它只支持基本的10个引脚,但我正在开发一个游戏配置模块,可以接受每种游戏类型的JSON定义。
用户界面已经连接到状态机,我可以通过对树莓派的REST调用来驱动模拟游戏。我还需要引脚机节点从光耦合器组中读取机器状态。一旦视觉和光耦合器的部分实现,最小可行产品(MVP)就会完成,我终于可以将我自己中心的2号跑道重新上线。
在此坦白:我确实在项目中使用了AI辅助,但我非常小心,不会仅仅依赖AI来编码。我需要一个研究助手来获取相关信息,并协助解答“某某的C语言语法是什么来着?”我会审查AI建议的所有内容,这甚至导致我与Claude在如何在游戏状态机中实现保龄球手的得分表类上产生了一场有趣的“争论”。它坚持认为每个框的得分应该是整体游戏的属性,而不是单个玩家的属性。就像……什么?有一天我会写一篇文章,讲述AI如何帮助项目,同时也如何阻碍了我的进展。
代码库链接在这里: [https://github.com/nicholas-a-hall/openlanelink/tree/breadboard](https://github.com/nicholas-a-hall/openlanelink/tree/breadboard)。
欢迎反馈和提问,特别是如果有人之前在ESP32-CAM上做过这样的板载计算机视觉!这个项目现在有点混乱,还没有准备好在其他地方部署。我期待在接下来的几周内发布一个alpha版本(当然是在我自己的设施中充分测试之后)。
返回首页
24小时热榜
我已经在重建我的联邦社交媒体协议 Jonline(<a href="https://github.com/JonLatane/jonline" rel="nofollow">https://github.com/JonLatane/jonline</a>)一段时间了。代理的出现真的改变了我对这个平台的使用方式,而这是我最喜欢的功能之一。在众多功能中,它们让我很容易将我的活动平台变成一种“ICS 聚合器/中继器/路由器”。最终,我会在这里发布一篇关于它的博客文章。
此外,目前这是我乐队网站(<a href="https://ato.band" rel="nofollow">https://ato.band</a>)活动联邦的一个很好的演示,因为我们恰好这个周末有两场演出 :)
我喜欢终端代理,但不喜欢那种看起来有几十年历史的基本Markdown界面。因此,我制作了Mirafold。
Mirafold是一个开源的终端代理浏览器重新设计版本,忠实于您已经使用的代理(Codex、Claude Code、Gemini CLI)。除了现在的界面更加美观、功能更强大之外,您的代理所说或做的内容没有任何改变。
它在一个包含输入框和文件夹树的外壳中运行,外部可以查看文件,而代理的生成用户界面则封闭在内部。
例如,如果图表、表格、图形、检查清单或差异在响应中比文本更合适,您将看到这些内容!而且这个列表并不是详尽无遗的——Mirafold为您的代理运行的模型提供了18个组件供您选择,以增强您的体验。
选择任何一个代理和您可用的模型(带有API密钥)——无论是大公司还是拥有开放模型的小公司——您甚至可以使用本地模型运行,而完全不必担心密钥问题。或者如果您有Codex订阅,可以使用它——虽然OpenAI并不正式允许这样做,但他们似乎对此没有问题,因此Mirafold将这留给您自行决定。
想在手机上查看Mirafold的生成用户界面并随时随地运行它吗?只需在会话中扫描二维码,通过端到端加密的中继将其带走。我们为您提供每月12美元的托管服务,或者您也可以自己托管——所有代码都是开源的。
想同时运行多个代理会话吗?在主屏幕上使用舰队视图进行任务控制——阅读最新的响应、回答权限请求并提交下一个提示——所有这些都无需进入每个会话。
想要在不打开新窗口的情况下运行常规交互式终端命令吗?Mirafold在您的会话中有一个真实的PTY——使用!前缀,现在sudo、ssh等将允许您一次执行多个命令。
目前处于公开测试阶段,进展迅速。而现在我正在独自运行这个项目。告诉我您喜欢、热爱或厌恶的地方,如果您愿意,我会与您保持联系。代码在 [https://github.com/mirafold/mirafold](https://github.com/mirafold/mirafold) 和 [https://github.com/mirafold-mirafold-relay](https://github.com/mirafold-mirafold-relay)。运行命令:npm i -g mirafold。