今天小编给大家带来的是来自mocketech的基于树莓派和XIAO RP2040的围棋棋盘娱乐系统,每块围棋石都会根据其状态显示面部表情,从而便于评估整体比赛情况。即使是不熟悉围棋规则的人也可以通过这些表情轻松理解游戏。
灵感
我的灵感来自网络游戏SquishyGo,在SquishyGo中,您可以使用鼠标在网络浏览器上放置围棋棋子。我想如果我们能触摸到围棋子会更有趣,而且它们有面部表情,所以我做了这个小项目。
EmoGo围棋
围棋是一种基于领土的游戏。在职业围棋中,获胜者取决于他们自己的棋子包围的区域的大小,那里没有棋子。然而,EmoGo遵循“纯围棋”的规则,获胜者取决于每个玩家在棋盘上的棋子数量。玩家只能放置棋子;一旦放置,它们就无法移动。两位玩家最终在棋盘上的棋子数量相同。然而,如下图所示,有一个特定的条件:如果围棋棋子完全被对手的棋子或棋盘边缘包围,则必须将其移除。在EmoGo中,获胜的关键是移除对手的棋子,同时确保自己的棋子留在棋盘上。
当围棋被对手的围棋包围时,它们会显示一张哭泣的脸。哭泣的围棋被称为“死棋”,必须从棋盘上移走。在传统围棋中,玩家经常忘记移除死棋,但在这个游戏盘系统中,如果你尝试在移除所有哭泣的围棋之前放置新的围棋,任何新放置的棋子也会显示哭泣的脸,游戏无法进行。这确保了所有 “死子 ”都被清除,没有任何错误。
在对手下一步移动时将成为死棋的围棋会显示出“麻烦脸”。如果您的围棋显示此表情,则表示您遇到了麻烦。您必须决定是保存这些棋子还是放弃它们。在这个游戏板系统中,Go 棋子的表情表示游戏状态对您有利还是不利。随着您对游戏越来越熟悉,您可以采取一些行动来防止您的围棋棋子出现这种麻烦的表情。换句话说,围棋上的表情有助于玩家理解围棋的规则,并使他们能够发展基本的战术思维。
该系统的系统架构如下
每个模块由以下部分组成:
游戏控制器 x1:该设备管理整个游戏。它通过 CAN 与 Go 棋盘模块通信,以检测棋子的位置并指示应在棋子上显示哪些面部表情。
Rasbperry Pi 4 2GB
Raspberry Pi 7 英寸官方触摸显示器
WAVESHARE 2 CAN 扩展 HAT,适用于 Raspberry Pi
棋盘模块 x 25 ( 用于 5x5 棋盘 ) 围棋盘上的每个网格都是一个模块。当放置或点击围棋时,它会通知游戏控制器,并按照游戏控制器的指示在围棋上显示面部表情。
Seeed XIAO RP2040
MCP2515 CAN 控制器
MCP2652 CAN 驱动
Go Stone x25 ( 用于 5x5 棋盘 ) 每个棋子在放置或点击时都会通知其棋盘模块,并根据从棋盘模块收到的指令改变其面部表情。
项目亮点
1. 模块式连接
该系统最初是使用 5×5 板创建的,但也可以很容易地适应其他尺寸,例如 7×7、9×9 或 6×8。所有围棋板模块都设计为连接到单个 CAN 总线,并且可以在总线电气特性允许的范围内添加。每个围棋板模块的尺寸为 50mm × 50mm,它们的总线和电源线使用排针和插针以链形式连接,从而可以将多个模块链接在一起。
2. 同步闪烁
我想实现的一个关键功能是同步闪烁:当点击围棋时,所有连接的棋子(包括点击的棋子)都会同时闪烁。由于每个棋子都需要改变其外观或闪烁,因此它必须与游戏管理设备通信。挑战在于有效地实现这种同步。
虽然无线通信允许广播,但由于展览场地可能会受到干扰,因此我避免了广播。我考虑了几种有线通信协议:SPI、I2C、RS485 和 CAN。由于广播通信限制,SPI 和 I2C 被取消。尽管 RS485 支持与板模块的单独和广播通信,但它需要实现自定义协议。这种额外的处理可能会使 RP2040 负担过重,从而导致同步问题。
最终,我选择了 CAN 协议,因为它的控制器在本地实现了个人和广播通信。此选项可减少 RP2040 的处理负载并最大限度地减少同步问题。虽然为每个板卡模块配备 MCP2515 CAN 控制器会增加当前成本,但我们预计未来通过用 XIAO RA4M1 替换 XIAO RP2040 来降低成本,这将消除对单独 CAN 控制器的需求。
每个板卡模块根据其位置分配一个唯一的 XY ID。使用此 ID,通过以下 CAN ID 处理通信:
0x4XY:从游戏手柄发送,指示围棋改变面部表情或准备眨眼
0x6XY:放置、移除或点击围棋时,从棋盘模块发送到游戏控制器
0x1FF:广播到所有准备闪烁的棋子,触发它们同时闪烁
例如,要仅使编号为 0x12 且 0x14 闪烁的棋子,该过程如下:
游戏控制器向编号为 0x12 和 0x14 的棋子发送消息0x02FF,使这些棋盘模块进入闪烁就绪状态。
然后,游戏控制器0x1FF03FF (on) 和 0x1FF0300 (off) 广播消息。只有处于 blink-ready 状态的板子模块 (0x12 和 0x14) 响应这些命令,而所有其他模块都会忽略它们。这将启用仅选定的 Go 棋子的同步闪烁。
这种通信机制可确保无缝闪烁,从而防止播放器出现任何明显的同步延迟。
-
控制器
+关注
关注
114文章
17254浏览量
185469 -
游戏
+关注
关注
2文章
778浏览量
26936 -
树莓派
+关注
关注
122文章
2054浏览量
107847
原文标题:创客项目秀|基于XIAO RP2040和树莓派的围棋棋盘游戏系统
文章出处:【微信号:ChaiHuoMakerSpace,微信公众号:柴火创客空间】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
使用树莓派Pico的RP2040微控制器内置温度传感器
在树莓派Pico RP2040上怎样使用MicroPython呢?

矽递科技XIAO RP2040开发板的Arduino开发环境配置教程

使用RP2040设计一个迷你板
ubuntu上交叉编译rp2040
树莓派Pico迷你开发板及所使用的RP2040 MCU芯片有哪些特性
在IAR EWARM v7.10下,开发树莓派RPi Pico/RP2040c
BBkey80:由XIAO RP2040驱动的GL516兼容键盘

9.9元包邮!合宙RP2040开发板,兼容树莓派PICO
9.9元自制树莓派逻辑分析仪?!合宙RP2040开发板轻松DIY

合宙RP2040开发板,兼容树莓派PICO

RP2040的工业级封装系统!

评论