当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]无线网络断了,“无网络”提示画面出现了,突然间那个像素化的霸王龙就成了你与彻底无聊之间唯一的分隔物。通常情况下,你会只是按几下空格键来等待几分钟,直到路由器重启。但当我坐在那里时,我看着桌上摆放着的 myPalletizer 260 M5——一个售价 299 美元、拥有 4 个自由度的机器人手臂,此刻它什么也没做——然后我有了一个想法:

无线网络断了,“无网络”提示画面出现了,突然间那个像素化的霸王龙就成了你与彻底无聊之间唯一的分隔物。通常情况下,你会只是按几下空格键来等待几分钟,直到路由器重启。但当我坐在那里时,我看着桌上摆放着的 myPalletizer 260 M5——一个售价 299 美元、拥有 4 个自由度的机器人手臂,此刻它什么也没做——然后我有了一个想法:

“既然我有台真正的机器人可以替我完成这项任务,那我为什么还要亲自去跨越这些仙人掌呢?”

目标很简单:构建一个系统,使其能够在《Chrome 天使》游戏中“识别”障碍物,并指挥机械臂实际按下空格键。

阶段 1:先软件后硬件

在让机械臂开始敲击我的 MacBook 键盘之前,我需要先确保整个操作的“大脑”能够正常运转。于是,我决定先用纯软件的方式进行尝试,使用 pynput 来模拟按键操作。如果我能让代码独自完美地运行这个程序,那么将虚拟按键操作换成机械臂的实际动作就会变得轻而易举。

第一个难题:速度。

在《恐龙》游戏中,毫秒的时间差至关重要。起初,我曾考虑使用像 PIL(Pillow)这样的标准 Python 库来进行屏幕捕获,但一到 StackOverflow 网站就证实了我的担忧:PIL 在进行实时屏幕抓取时速度极其缓慢。为了使游戏中的恐龙存活下去,我需要更高的帧率。于是,我选择了 mss,这是一个跨平台的超高速屏幕截图模块。

“搜索束”策略

一旦我能够截取屏幕画面,接下来就得弄清楚这个机器人实际上是在观察什么内容。我无需处理整个屏幕,只需监控霸王龙前方的一个特定“击球区域”即可。

我编写了一个可视化脚本,以帮助我确定检测坐标的位置。为了更方便操作,我实际上使用了浏览器的“元素检查”工具,并修改了游戏画布的 HTML 边框。这样我就有了一个清晰的视觉指引,能够准确地对齐我的 Python 捕获窗口。

我选择了“双光束”检测系统:

仙人掌探测线:一种用于检测进入环境中的绿色植物的低级传感器系统。

“鸟形天线”:略微抬高的传感器线路。

这一点至关重要,因为这款游戏颇具变数。有些鸟飞得很高,你可以直接从它们下方穿过,但那些低空飞行的鸟则需要跳跃才能通过。通过使用两根横杆,我能够忽略高空的威胁,只有当有物体进入“危险区域”时,才会触发跳跃动作。

熬过夜班生活

一切进展得都很顺利,直到霸王龙的得分达到了 700 分。突然,屏幕亮起,颜色发生了反转,我的机器人就“失明”了。

在《Chrome 恐龙》游戏中,游戏世界最终会切换到“夜间模式”。我最初的检测逻辑是寻找在亮背景下的暗色像素。当天空变黑、障碍物变白时,机器人就不再跳跃了,而霸王龙也遭遇了极为惨重的结局。

我需要一种方法,无论在何时何地都能检测到障碍物。我意识到,尽管背景颜色会变化,但对比度是保持不变的。我并没有去寻找特定的十六进制代码,而是调整了逻辑,将“光束”像素的颜色与“天空”的当前颜色进行比较。如果位于我的“触发点”的像素与背景颜色不匹配——无论是白色、灰色还是黑色——我就知道有障碍物存在。这种简单的比较以最理想的方式让机器人实现了“色盲”效果。

赋予大脑以躯体

随着软件逻辑的完善,是时候启用这款强大的设备了:myPalletizer 260 M5。

这款 260 型协作机器人非常适合这项任务,因为它具备专门的 Python API。我的目标是将一个虚拟的 pynput 命令转化为实际的动作。对于这项任务,我不需要复杂的运动学知识;我只需要一个可靠的“点击”操作即可。

如果试图用尺子来精确测量每一个按键动作的坐标,那可能会让人感到十分头疼。而我则采用了更为简便的“借助重力”的方法:

1. 我手动移动了机械臂的末端执行器,直到它正好停在了空格键上。

2. 我让手臂的重量(重力)自然地压下了琴键。

3. 我记录下了那个 Z 轴的数值。这个数值就成了我的“Z_PRESSED”值。

4. 然后,我将手臂稍稍抬起几毫米,直到钥匙弹回原位,然后将这个数值(即“释放值”)记录为 Z_RELEASED 。

现在,每当该 Python 脚本检测到仙人掌时,它就会向机械臂发送一个指令:先移动到 Z_PRESSED 位置,然后立即回到 Z_RELEASED 位置。

“双击”难题

我第一次完成整个硬件搭建时,遇到了一个十分滑稽的问题。机器人手臂的动作太快了。

该软件检测循环每秒运行数十次。由于机械臂向下和向上移动需要一段时间,所以在机械臂仍在“跳跃”动作的中间阶段时,检测脚本会多次捕捉到同一个仙人掌的画面。结果如何?机械臂会陷入一种疯狂的“双击”状态,试图在已经正在跳跃的情况下再次跳跃。

这个解决方案是典型的程序员惯用手法:使用了一个简短的“time.sleep()”命令。通过在按键触发后立即添加一个短暂的延迟,我给霸王龙(以及机械臂)留出了足够的时间来避开障碍物,而在此之前检测循环才开始寻找下一个障碍物。

过度设计的幸福

看着机械臂一丝不苟地按下空格键,让一个像素化的恐龙能够跃过一丛仙人掌,这种感觉真的很令人满足。

起初,这只是在 Wi-Fi 出现故障时用来打发时间的一种方式,但后来却发展成了一个全栈式机器人项目——融合了高速屏幕捕获、动态色彩逻辑以及硬件 API 集成技术。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

济南2026年4月28日 /美通社/ -- 4月27日,以"以开源之道,行致远之志"为主题的HOW 2026 中国数据库开源发展峰会暨PostgreSQL高峰论坛在济南山东大厦隆重开幕。本次大会由开源...

关键字: 开源 数据库 POSTGRESQL 计算机

2026年4月24日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST) (纽约证券交易所代码:STM) 公布了按照美国通用会计准则(U.S. GAAP...

关键字: 消费电子 计算机 传感器

在工业4.0迈向5.0的进程中,机器人与自动化技术正以前所未有的深度重塑全球产业图景。从物流仓储中的自主移动机器人(AMR),到产线上的视觉检测设备、协作机械臂,再到面向精密制造的高动态抓取与装配系统,机器人正在从“替代...

关键字: 工业机器人 工业4.0 机械臂

对于许多开发者而言,他们的最终目标是摆脱简单的“如果-那么”逻辑模式,为他们的树莓派赋予真正的智能——打造一个能够理解口头指令、将其分解为步骤,并进而实际移动物体的系统。

关键字: 人工智能 树莓派 机械臂

业余爱好者和教育类机器人技术的领域正在发生转变。机器人不再仅仅需要按照预先设定的程序循环运行;现在的目标是“具身人工智能”——即能够感知周围环境、理解自然语言意图并自主执行复杂任务的机器。LanderPi 是一款复合机器...

关键字: 机械臂 ROS 2 3D 视觉 LanderPi

2026年4月20日,致力于亚太地区市场的国际领先半导体元器件分销商---大联大控股旗下世平集团宣布,于4月9日携手晶丰明源(BPS)成功举办“AI服务器与高性能计算机电源解决方案”线上研讨会。

关键字: AI服务器 计算机 电源

回顾上篇:基于RK3576 + ROS2 Humble + SLAM Toolbox + Nav2,我们实现了机器人的建图与自主导航。机器人已经能够“走到哪里”。但真正的智能机器人不仅要“走到哪”,还要“看到并操作”——...

关键字: 机器人 NPU 机械臂

【中国上海,2026年3月27日】— 2026 IPC电子装联大师赛中国区赛事于今日圆满收官。本届赛事是创办16年来参与规模最大的一届,吸引来自全国 77家企业的623名选手参加。入围实操竞赛的132名选手历时两天激烈角...

关键字: 汽车电子 消费电子 计算机

新德里2026年3月23日 /美通社/ -- 神雲科技股份有限公司(MiTAC Computing Technology Corporation)是全球高效与节能服务器解决方案的领导者,亦為神達控股(TWSE:3706)...

关键字: CONVERGENCE 数据中心 计算机 AI

在计算技术发展的历史中,软件通常都是预先制作好的。人类描述一种算法,计算机执行此操作。数据必须经过精心设计,存储在表格中,并通过精确查询进行检索。SQL 变得不可或缺,因为过去的世界因此得以运转。

关键字: AI 计算机 SQL
关闭