1. 开源掌机Arduboy是什么?
第一次听说Arduboy时,我还以为是什么新出的商业掌机。后来才发现,这居然是一个完全开源的DIY项目!简单来说,Arduboy就是一个信用卡大小的游戏掌机,基于Arduino开发板打造,可以运行上百个复古游戏。
最让我心动的是,整个项目从硬件到软件全部开源。这意味着你不仅能玩现成的游戏,还能自己开发游戏,甚至改造硬件。相比市面上动辄几百元的商业掌机,自己动手做一台的成本不到百元。我去年做的第一台,算上所有元器件才花了68块钱。
这个项目最初由国外创客Kevin Bates发起,现在已经成为全球硬件爱好者的宠儿。你可以在GitHub上找到完整的硬件设计文件,在开源社区下载各种游戏资源。我特别喜欢这种开放共享的精神,让每个人都能享受创造的乐趣。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 制作前的准备工作
2.1 元器件采购清单
工欲善其事,必先利其器。在开始制作前,我们需要准备好所有元器件。这是我的采购清单:
| 元器件 | 规格 | 数量 | 参考价格 |
|---|---|---|---|
| Pro Micro开发板 | ATmega32U4芯片 | 1 | 20元 |
| OLED屏幕 | 1.3寸128x64 | 1 | 15元 |
| 轻触按键 | 6x6mm | 5 | 2元 |
| 锂电池 | 3.7V 500mAh | 1 | 8元 |
| Type-C接口 | 16P | 1 | 3元 |
| PCB板 | 嘉立创免费打样 | 1 | 0元 |
这里有几个选购建议:Pro Micro一定要买带ATmega32U4芯片的版本;OLED建议选1.3寸的,0.96寸实在太小;按键最好买带帽的,手感更好。所有元器件在淘宝都能买到,总成本可以控制在70元以内。
2.2 工具准备
除了元器件,还需要准备一些基本工具:
- 电烙铁(建议使用恒温烙铁)
- 焊锡丝和助焊剂
- 万用表
- 镊子和剪线钳
- 面包板(用于前期测试)
如果你是第一次接触硬件DIY,建议先练习下焊接技术。可以在废板上多练几次,熟悉焊锡的流动和温度控制。我刚开始焊接时,经常出现虚焊或者短路,后来发现关键是烙铁温度要控制在300℃左右,焊接时间不要超过3秒。
3. 硬件组装全流程
3.1 烧录Bootloader
Bootloader相当于掌机的"操作系统",必须最先烧录。这里我推荐使用Arduino IDE+Arduino UNO的方案,稳定性最好。
具体步骤:
- 下载安装Arduino IDE(1.8.x版本)
- 在首选项中添加开发板管理器网址:
code复制https://raw.githubusercontent.com/MrBlinky/Arduboy-homemade-package/master/package_arduboy_homemade_index.json - 在开发板管理器中搜索安装"Arduboy"
- 打开示例中的ArduinoISP程序并上传到UNO
- 按照以下接线图连接UNO和Pro Micro:
code复制Arduino UNO Pro Micro
VIN 3V3
P11(MOSI) MOSI
P12(MISO) MISO
P13(SCK) SCK
P10(SS) RST
GND GND
- 选择开发板为"Arduboy",编程器选择"Arduino as ISP",点击"烧录引导程序"
烧录成功后,Pro Micro就变成了真正的Arduboy主板。我第一次烧录时遇到OLED不显示的问题,后来发现是CS引脚需要接地,这个小坑大家要注意。
3.2 PCB设计与焊接
有了可用的主板,接下来就是设计外壳电路。我是在立创EDA上完成的,过程比想象中简单:
-
参考开源项目绘制原理图,重点注意:
- Type-C接口的D+和D-线不能接反
- 锂电池充电电路要加保护芯片
- 按键要加上拉电阻
-
PCB布局时要注意:
- 按键位置符合人体工学
- 屏幕尽量居中
- 电池仓留足空间
-
提交嘉立创免费打样(记得领券)
焊接是最考验耐心的环节。我的经验是:
- 先焊小的元件(电阻、电容)
- 再焊大的元件(接口、芯片)
- 最后焊屏幕和电池
- 每焊完一个部位就用万用表测试
Type-C接口是最难焊的,我失败了好几次。后来发现可以先在焊盘上涂助焊剂,然后用热风枪辅助焊接,成功率大大提高。
4. 软件配置与游戏上传
4.1 制作游戏合集
Arduboy支持两种游戏上传方式:单个游戏和游戏合集。我推荐使用游戏合集,一次可以装上百个游戏。
制作步骤:
- 下载Mr.Blinky的Python脚本工具包
- 安装Python 3.7和必要库:
bash复制
pip install pillow pyserial - 准备游戏ROM和对应的128x64像素截图
- 创建CSV文件定义游戏列表
- 运行打包命令:
bash复制
python flashcart-builder.py games.csv
我在Windows 10上遇到过库安装失败的问题,后来发现需要用管理员权限运行CMD。如果你也遇到问题,可以试试用Windows 11系统,兼容性更好。
4.2 上传游戏到掌机
打包好的游戏合集可以通过Type-C接口上传:
- 将Arduboy连接电脑
- 按住开机键进入烧录模式
- 运行上传命令:
bash复制
python flashcart-writer.py game-image.bin - 等待进度条完成
第一次使用时,我傻傻地等了半天发现没反应,后来才明白要按住开机键才能识别设备。上传过程大概需要2-3分钟,期间不要断开连接。
5. 常见问题排查
制作过程中难免会遇到各种问题,这里分享几个我踩过的坑:
问题1:电脑无法识别设备
- 检查Type-C接口是否焊好
- 测量D+和D-线是否短路
- 确保按住了开机键
问题2:游戏运行卡顿
- 检查电池电压是否充足
- 重新烧录Bootloader
- 尝试其他游戏ROM
问题3:按键无反应
- 检查按键焊点是否虚焊
- 测量上拉电阻是否正常
- 确认程序映射了正确的引脚
遇到问题时,建议先到Arduboy官方论坛搜索,90%的问题都能找到解决方案。如果实在解决不了,可以在立创开源平台的项目页面向我提问。
6. 进阶改造建议
完成基础版后,你可以尝试更多有趣的改造:
- 外壳定制:用3D打印设计个性化外壳
- 增加震动马达:让游戏体验更真实
- 更换屏幕:尝试彩色OLED
- 开发自己的游戏:使用Arduboy官方开发库
我最满意的一个改造是增加了锂电池电量显示,在待机界面可以看到剩余电量。这需要修改固件代码,虽然有点难度,但成就感十足。
制作Arduboy最大的乐趣就在于不断改进。每次看到自己添加的新功能正常运行,那种喜悦是买成品机永远无法体会的。现在我的这台掌机已经陪伴我一年多了,每次拿出来玩都有不一样的感动。
