构建一款基于树莓派的游戏主机
欢迎认识宝可梦Pi,这是一款基于树莓派的DIY游戏主机,以标志性的宝可梦球为主题。这款小巧的网络游戏机采用便携式、完全定制的外形设计,可用于运行经典宝可梦游戏及其他复古作品。
这个项目的灵感源于我最近发现的“第一世代Recomp”(Gen 1 Recomp)社区项目,该项目将原版《宝可梦红》重新编译为本地应用程序。最吸引人的地方在于,它为玩家提供了全新的方式来体验经典的宝可梦世界,包括增强的视觉效果和多样化的游戏模式,让这些老游戏焕然一新。
当然,在电脑上运行第一世代Recomp也完全可行,但那又有什么乐趣呢?
于是我决定更进一步,打造了一款专门用于玩第一世代宝可梦游戏的宝可梦主题树莓派网络游戏机。
外壳的设计灵感来自经典的宝可梦球,采用了标志性的红白配色方案。甚至在机箱中央还加装了一个实体电源按钮,其造型灵感源自宝可梦球上的按钮。
机箱内部搭载了一块树莓派4,搭配一个5英寸的DFRobot DSI显示屏。整个系统通过我从PCBWay礼品店购买的树莓派UPS模块供电,使控制台无需永久连接电源适配器,即可使用电池运行。
在本文中,我将为您详细介绍Poke Pi的完整搭建过程,包括设计和3D打印机箱、安装操作系统及第一代重编译程序,再到组装所有电子元件并最终完成设备的组装。
我们开始吧。
所需材料
本项目所需的材料如下:
- Raspberry Pi 4
- Raspberry Pi UPS 板(来自 PCBWAY 礼品店)
- DFROBOT 提供的 5 英寸 DSI 显示屏
- M2.5 螺栓
- M2 螺丝
- 旧项目中使用的按钮板
- 18650 电池,3.7V 2900mAh × 4 个
- 3D 打印部件
- GEN 1 RECOMP
在开始组装之前,先来谈谈启发本项目的软件:Gen1Recomp。
Gen1Recomp 是一个社区项目,使用手动编写的 Lua/LÖVE2D 引擎重新还原了原版宝可梦游戏。与传统的 Game Boy 模拟器不同,它不会模拟原始 Game Boy 的硬件,而是直接以原机运行方式运行游戏。相反,游戏数据被导入并通过其专用引擎运行,这为改变游戏的外观和运行方式提供了大量可能性。
该项目最初围绕《宝可梦红、蓝、黄》展开,现已扩展至 Gen1Recomp++,将《宝可梦金、银、晶》也纳入同一启动平台。目前,《宝可梦晶》仍处于测试阶段(Beta),而第二代游戏则仍被视为第一阶段支持。
Gen1Recomp 最令人着迷的一点,是围绕它的活跃社区。已有许多模组彻底改变了这些经典游戏的外观与体验。例如,DramaticShapeVoxelMod 为游戏添加了基于方块的3D环境、深度感、阴影效果以及战斗画面的全新呈现方式。此外,还有针对角色跟随、新精灵、翻译、任务以及其他游戏机制调整的模组。
因此,Gen1Recomp 不仅让我们能够以几十年前在Game Boy上玩《宝可梦红》的方式进行游戏,更为社区提供了基础,使其可以围绕这款游戏进行实验,并创造出全新的内容。
硬件配置——树莓派4及5英寸显示屏
本项目采用的是树莓派4型号(4GB版本),配备四核1.8GHz处理器、最高8GB内存,支持通过micro-HDMI接口连接双台4K显示器,适用于多种高要求的应用场景。
它提供出色的连接选项,包括千兆以太网、双频Wi-Fi和蓝牙5.0,确保网络连接快速且可靠。配备两个USB 3.0接口和两个USB 2.0接口,可提升数据传输性能。该型号还支持先进的多媒体功能,包括H.265视频解码和OpenGL ES 3.1,是多媒体项目的理想选择。
在显示屏方面,我们采用了DFRobot的5英寸800×480 IPS显示屏,这是一种支持树莓派DSI显示接口的IPS显示屏,并配有电容式触摸面板。
显示屏工作电压为3.3V,由树莓派的显示接口供电,最大工作电流为320mA,关机电流为100mA。分辨率为800×480,通过树莓派DSI视频接口连接。最多支持5个触摸点,四周均为80度可视角度。
颜色深度为RGB888,提供1600万真彩色,刷新频率为60Hz。此外,IPS面板还具备光学粘合技术,以提升亮度和清晰度,并配有防指纹和防眩光涂层,从而在各种光照条件下都能获得更好的可视性。
硬件——树莓派UPS板
为了为树莓派4供电,我使用了一款从PCBWay礼品商店购买的UPS/电源管理模块。
该电路板本质上是一种紧凑型电源管理解决方案,围绕四个18650锂离子电池单元设计。四个电池插槽并联连接,使电池可共同作为单一电源工作,而内置的电源管理电路则负责充电、保护和电压调节。
由于单个锂离子电池提供约3.7V电压,该电路板将电池电压提升至5V,正好满足树莓派4及其他电子设备的供电需求。同时,它还提供额外的稳压输出接口,包括3.3V输出,适用于不同类型的电子设备供电。
该电路板可通过Micro-USB和Type C接口进行充电,而稳定的电源则可通过USB输出接口及内置连接器获取。它还具备防止过充和过放的电池保护功能,并配有LED指示灯以显示充电状态。
对于Poke Pi而言,这款电路板表现尤为出色,因为它允许整个系统由可充电的18650锂电池组供电,而无需始终连接到墙式电源适配器。这使得游戏主机更加便携,呈现出真正的掌上游戏设备的使用体验。
主要功能包括:
- 支持四个18650锂离子电池
- 电池过充和过放保护
- 微型USB充电输入接口
- USB Type-A输出接口
- 最大5V / 2A输出
- 3.3V输出用于低压电子设备
- 充电电流约为0.5A
- 内置LED充电指示灯
- 输出控制开关
- 多个内置电源接口
在本次搭建中,5V输出连接至树莓派4,为运行树莓派、显示屏及其他封装内的组件提供所需电力。
注意:使用5V输出时,请务必仔细检查极性,正负极(+)和(-)应与PCB上的标识一致。
设计
由于该项目专为玩宝可梦游戏而设计,因此从宝可梦本身汲取设计灵感显得非常自然。而最能激发灵感的,莫过于宝可梦球——宝可梦系列最具标志性的元素之一。
我围绕经典的宝可梦球配色方案设计了外壳,将主体分为两个独立部分:上半部分采用红色印刷,下半部分则为白色印刷。这两部分组合起来,构成了设备的主要结构。
为了使红白两色区域之间的分隔更加明显,我设计了一个位于两者之间的黑色边框。电源按钮被置于该边框的正中央,其造型灵感源自传统宝可梦球上的按钮。结合这些元素后,外壳看起来就像一个巨大的未来感宝可梦球。
内部布局也围绕硬件进行了设计:上部容纳了树莓派4和5英寸DSI显示屏,下部则为UPS模块和电池系统留出空间。背面配有可拆卸盖板,便于访问电子元件和电池,从而更方便地组装和维护设备。
设计目标是在保持外观简洁的同时,确保外壳能够容纳将设备变成一台功能完整的宝可梦游戏机所需的所有硬件。
建筑
主机箱由前体分为上下两半组成。当上部和下部对齐后,使用四个M2.5螺母和螺栓将其固定,从而构成控制台的主体前体。
上半部分安装了树莓派4(Raspberry Pi 4)和5英寸DSI显示屏。显示屏从机箱正面安装,并用四个M2.5螺栓固定,确保其牢固地嵌入外壳内部。
在正面,黑色的宝可梦球边框环绕着中央区域。由于这部分无需频繁拆卸,我使用强力胶进行固定。
机箱内部,电源开关被放置在指定的插槽中。为了固定3D打印的开关机构,我重新使用了之前项目中的一块小型开关PCB。该PCB通过两个M2螺丝固定,同时也能稳固地保持3D打印开关的位置。
进入下部区域,UPS电路板被安装在前体内部。机箱配有四个专用的螺丝孔,用于将电路板固定,通过四个M2螺丝实现固定。
最后,我们使用3D打印的后盖从背面封闭整个结构。盖子通过八颗M2螺丝固定在主体上,便于在设备需要维修或改装时随时接触电子元件。
后盖上还有一个方形开口。目前此版本的开口尚未用于任何功能,但我特意保留了这个设计,因为我计划推出第二版改进。其目的是通过该开口添加一个完善的冷却系统,以测试这款小型宝可梦球网络卡匣的性能极限。
3D打印部件
在完成3D模型后,我们导出了每个部件的网格文件,并开始3D打印流程。
外壳部分使用不同颜色的Hyper PLA材料,以匹配宝可梦球的设计风格:前体下半部分采用白色Hyper PLA打印,上半部分则为红色Hyper PLA。后盖和电源开关均使用灰色Hyper PLA打印,而宝可梦球边框则采用黑色Hyper PLA打印。
所有部件均采用相同的默认打印参数进行打印:
•层高:0.2毫米
•填充率:25%
•喷嘴直径:0.4毫米
•支撑结构:树状支撑
主体组装
•组装过程从将前体的两半部分拼接开始。
•上下两部分相互对齐,确保所有安装孔都正确对应。
•完成对齐后,我们使用四个M2.5螺母和螺栓将两个部分固定在一起。
树莓派与显示屏组装
接下来,我们将树莓派和显示屏组件安装到机箱的上半部分。
从正面小心地将组件放置到指定位置,并使机箱上的安装孔与显示屏组件上的螺纹支撑件对齐。
一切对齐后,我们使用四个M2螺母将树莓派和显示屏组件固定到位。
UPS板布线
主电源开关部分,我重用了之前项目中的一块开关板。这样既省去了设计另一套开关电路的麻烦,也通过机箱上定制的3D打印按钮,为控制UPS模块提供了一种简便方式。
开关板的常闭(NC)和常开(NO)端子与UPS板上内置开关对应的常闭(NC)和常开(NO)端子并联连接。这本质上是将原始开关扩展为我们的自定义开关机制。
通过这种设置,短按可开启设备,长按则关闭UPS输出,利用前面的宝可梦球式按钮,我们可以方便地控制整个系统。
接下来,我们将一根长的JST-CON2电缆焊接到UPS板的5V和GND输出端。这根电缆将用于直接连接UPS输出至树莓派的5V和GND GPIO引脚,从而使UPS板能够为树莓派及连接的显示屏供电。
测试电源输出
在连接树莓派之前,必须确认UPS板是否确实提供了预期的电压。
我们使用主开关启动UPS,然后用万用表测量刚刚焊接好的JST电缆的5V和GND端子之间的电压。
万用表显示约5V,证实UPS板工作正常,且我们的接线已准备好连接树莓派。
开关组件组装
我们首先将3D打印的开关放置到机箱内的指定位置。
接着,将开关PCB覆盖在3D打印的开关上,并与机箱上提供的两个螺丝凸起对齐。
所有部件对齐后,使用两颗M2螺丝固定PCB。
UPS模块组装
UPS板被安装到机箱内部提供的四个安装螺丝凸起上。
一旦安装孔对齐,我们使用四颗M2螺丝将电路板牢固固定在位。
接下来,我们将UPS板上的JST-CON2线束连接到树莓派上。5V和GND导线分别连接到树莓派上的5V和GND GPIO引脚。
最终组装
进行最终组装时,我们将设备翻转过来,安装Poké Ball边框。在边框背面涂抹少量强力胶,然后从正面小心地将其放置在机箱红色与白色两半之间的位置。
边框安装到位后,再次翻转设备并安装后盖。后盖应卡在提供的螺丝凸起和支撑筋上,确保与主体正确对齐。
最后,用八颗M2螺丝固定盖子,均匀拧紧螺丝,使所有部件稳固固定。
GEN 1 RECOMP 安装
对于Gen1Recomp的安装,我们首先前往官方的Gen1Recomp下载页面,下载适用于我们设备的构建版本。由于树莓派4运行的是64位ARM架构的Linux操作系统,因此选择Linux ARM64 AppImage格式。
下载完AppImage后,我们将其设置为可执行文件,并在树莓派上运行。然后Gen1Recomp需要一个兼容的、由用户提供的宝可梦ROM文件。目前该项目支持《宝可梦红》、《蓝》、《黄》、《金》、《银》和《晶》,而第二世代游戏仍在开发中。
由于本项目主要关注《宝可梦红》,我们把兼容的Red ROM导入到Gen1Recomp中,并首先测试标准版本,以确保所有功能正常运行。
添加3D多边形模组
但我们并未止步于此。我选择使用Gen1Recomp进行本项目的主要原因之一,是能够以完全不同的视觉效果来体验经典游戏。
对于《宝可梦红》、《蓝》和《黄》的3D版本,我们可以安装DramaticShapeVoxelMod,该模组会添加多边形风格的环境、深度、阴影以及3D显示效果。VoxelMod是一个可选附加组件,Gen1Recomp引擎负责游戏本身,而VoxelMod则改变其显示方式。
我们从保存的存档中下载相应的VoxelMod版本,并按照平台的安装说明进行配置。
一旦设置了ROM和VoxelMod,我们就可以启动游戏,结果就出现了:《宝可梦红》以3D风格在我们的树莓派上运行!
这正是Poke Pi的初衷:将一款经典的宝可梦游戏移植到树莓派上,并将其全部装进一个巨大的、灵感源自宝可球的游戏主机中。
结果
这是项目最终成果——Poke Pi,一款专为运行Gen1Recomp而定制的Raspberry Pi游戏设备。
经过设计、3D打印、布线和组装之后,我们终于拥有了一个以宝可梦球为灵感的可运行游戏的控制台。目前我正在用它玩《宝可梦红》,但最有趣的部分在于Gen1Recomp和VoxelMod能让我们对这款经典游戏进行的各种操作。
在游戏过程中,我们可以切换不同的视觉模式,彻底改变游戏的外观。例如,按数字键3可在三种可用的3D摄像机角度之间循环切换,从而为超世界提供不同的视角。我们还可以使用5键开启或关闭立方体轮廓,6键调整倾斜移位效果,7键将世界向地平线弯曲。
此外,还设有3D战斗模式,通过8键可切换开启,9键则用于切换不同的水效,包括反射效果。VoxelMod还允许我们调整缩放比例,从而在近距离与远距离视角之间自由切换。
如果你还想更进一步,最新的VoxelMod还包含一个实验性的第一人称模式,它彻底改变了你体验游戏世界的感受。对于这样一个项目来说,这绝对是个有趣的尝试。
只需按几个按钮,同款的《宝可梦红》游戏就能从经典的平铺式Game Boy风格画面,转变为完全不同的3D体验。
说实话,这正是让Poke Pi如此有趣的原因。我们取了一款经典的宝可梦游戏,结合了树莓派,添加了大量3D模组,最终围绕它打造了一个完整的、以宝可球形状为设计的定制游戏主机。
结论
就这样,Poke Pi 终于完成了,而且运行效果出人意料地出色!
电池备份是这个项目的一大亮点。目前的配置下,我大约能连续运行5小时,这完全足够进行长时间的宝可梦对战。
由于我们使用的是树莓派4,还额外获得了蓝牙支持的优势,这意味着我们可以连接无线控制器,而无需受限于设备内置的按键操作。这样一来,Poke Pi 的用途就不再局限于宝可梦游戏,还能灵活运行其他类型的游戏。
不过,还有一个方面仍需改进:散热问题。在长时间游戏时,尤其是运行带有3D修改的Gen1Recomp时,树莓派容易发热。因此,我正在着手开发Poke Pi的第二个版本,通过添加风扇主动冷却系统来解决这一热问题。
但目前来看,项目已经完成,所有功能都正常运行,我对这款小巧的宝可梦游戏机最终成果感到非常满意。
本文编译自hackster.io





