DIY 基于树莓派 Zero的复古游戏主机
尽管基于树莓派开发的复古游戏机有不少作品,也很容易买到。但是还是有必要推荐一下下面这款——基于树莓派 Zero 的复古游戏机。
因为它给我们展示了两个版本,其中包含了面包板搭建的版本,更加便于理解游戏机搭建的原理,并大幅降低了自己 DIY 的门槛,所用到的材料也很容易获得。
这个项目主要的特性如下:
- 使用 PAL 制式显示屏
- 由 Raspberry Pi Zero 驱动,采用 RecalBox OS 操作系统,该系统还附带一些预装游戏
- 由 IP5306 IC 供电,该 IC 是用于移动电源电路的 5V 2A 恒定升压 IC,非常适合为 Raspberry Pi Zero 供电
- 项目的前半部分为面包板版本,后半部分为 PCB 版本。
材料清单
- Raspberry Pi Zero × 1
- 16 GB 存储卡(8 GB 也可) × 1
- TV 屏幕 × 1
- HDMI 转 micro HDMI 适配器 × 1
- 5V 2A 充电器/电源可稳定输出 2A × 1
- 键盘 × 1
- USB 转 microUSB 适配器 × 1
- RecalBox OS 映像文件/ Raspberry Pi Image Flasher × 1
- 普通按键 × 1
- 定制 PCB 板 × 1
- IP5306 IC × 1
- 10uf 0805 电容 × 1
- USB 端口 × 1
- microUSB 端口 × 1
- 带有 CON2 连接器线的锂离子电池 × 1
- CON2 连接器 × 1
- 10k 0603 电阻 × 1
- 2R 0805 电阻 × 1
- 垂直按钮 × 1
一、初步构想
设备包括 PCB 板和 3D 打印外壳,两者由螺钉连接起来。
正面是显示器和按钮,使用 4.3 英寸的显示屏,尺寸大约是 135mm
x 140mm
,比普通的 Gameboy 屏幕大,反面是 Raspberry Pi Zero 同升压转换电路和锂离子电池。
二、配置 RecalBox 系统
下载 Raspberry Pi 映像文件
Select the right OS for your device
这里选择RecalBox
Select your system
这里选择Rpi0
安装完成后,将树莓派接上电视屏幕和键盘。
启动设备,RecalBox 就可以正常工作了。
三、GPIO 接线原理图
注:原理图中将按键一端连到 GPIO 口,一端接地。
高清版本的原理图可以点击阅读原文下载。
四、显示器与 GPIO 控制
显示器种类有很多,既有 HDMI 端口,也有带状电缆端口,在这里从成本考虑选用 PAL 制式的车载显示器(带 PAL 端口)。因为车载显示器工作电压为 12V,而这里需要 5V 或 3.3V 的显示器,所以需要对显示器内部降压电路进行改装,这里移除了 12V 转 3.3V 的降压芯片,并在 Vout 端的电容上增加 VCC 和 GND ,为显示器提供 5V 电压。
为使 PAL 端口运行显示器,需要在配置文件中编辑一些内容。用键盘在网络设置中输入 SSID 和密码。(将其与 winSCP 连接)
需要编辑以下内容:
SDTV 输出的设置
HDMI 显示器连接到的 Raspberry Pi 上就会输出其视频信号,但在 PAL 端口下,需要设置 SDTV 的输出。
进入 boot
> config.txt
更改默认设置,从 sdtv_mode
中删除 #
并添加 sdtv_aspect = 1
,此外,在 HDMI lines
前加 #
。(如图,检查 Boot/config.txt
并复制其中的内容)
GPIO Control
GPIO 口与按键的设置。
进入 recalbox
> share
> system
> recalbox.conf
通过以下两步启用 GPIO 外接按键
设置 controller.gpio.enabled=1
(之前是 0)并将 controller.gpio.args.map=1,2
更改为 controller.gpio.args.map=1
(2
是第二个玩家)
更改完默认设置(如图,检查 D2 GPIO Controlers),然后重启,RecalPi 便可适用于 PAL 端口和自定义按键。
五、完善面包板版本
这里用了定制的 GPIO 适配器,接线有所变化,参考图片将按键一端连到 GPIO 口,一端接地,完成后可以通过接 TV 测试按键是否正常工作,没问题后将 TV 更换成车载显示器,车载显示器的 VCC 接到 5V,地线连到一起,然后用 5V 2A 的电源供电,车载显示器显示画面则成功(注意之前的 SDTV 设置)。
六、设计电路板
根据面包板搭建的电路绘制 PCB 文件,包括 13 个按键与 Rpi Zero 相连,加 IP5306 IC 驱动的电源电路。其中 IP5306 是一款适用于 3.7 V 锂离子电池的电源管理芯片,可以调节输出电压的大小,这里将其提升到 5V 2A 适用于 Raspberry Pi 和车载显示器。
设计流程如下:
首先在 Fusion360 中设计整体结构,然后利用 Fusion360 的 PCB Layout 在 My PCB Cad 软件中对 PCB Outline 进行建模。(这里在经典的 Gameboy 布局中放置了额外的热键按钮)
七、电路板打样
将生产文件 Gerber 给到 PCB 制板厂商打样。
Gerber 文件点击阅读原文可以下载。
八、焊接 PCB 板
SMD 元件焊接
将焊膏涂到待焊焊盘上,摆放好元件后,将 PCB 板放到 SMD 加热板上进行回流焊,加热板从底部向上加热 PCB 板至焊膏熔化,焊膏熔化时从加热板上取下 PCB 板冷却 3-4 分钟。之后按照正确的元件焊接顺序,依次重复此操作。
THT 元件焊接
将 USB 端口、按键和 CON2 连接器添加到 PCB 板,然后焊接。
最后焊接排母。PCB 板的焊接就大功告成了,接上锂离子电池,在 USB 端口处接 USB 电源监视器,检查 USB 的输出是否为 5V,没问题后接入 Raspberry Pi Zero W(已安装 RecalBox,并完成配置文件的更改)。
九、整体组装
利用 3D 打印的支撑部件将显示器固定到 3D 打印的外壳上,用四个 M2 螺丝将电路板安装到外壳上,并将显示器的 VCC、GND 和 PAL 端口与 Raspberry Pi 和电路板连接起来。完成后就可以通过 ON – OFF 垂直按钮启动 Recalbox 了。
3D 打印文件点击阅读原文下载。
完成!开启你的复古游戏之旅吧!
十、添加更多游戏
添加游戏只需下载相应 ROM 即可,具体操作如下:
进入 Settings
> Network Settings
,添加路由器的 SSID 和密码,将树莓派连网,可以在网络设置菜单的顶部看到树莓派的 IP 地址。然后在电脑上打开 Win SCP,输入树莓派的 IP 地址,用户名是 root
,pi 的密码是 recalboxroot
。
进入 recalbox
> share
> rom
,这里包含所有的 ROM 文件,如果想玩其中一款游戏,只需将其 ROM 文件复制粘贴到 GBA 文件夹中即可。
重启树莓派后打开 GBA 模拟器,就可以看到新添加的游戏了。
希望你可以从这个项目中得到一些制作复古游戏机的启发。
项目所用的代码可以点击阅读原文下载。