Ingegno 复古游戏机:Arduino Nano 重现 8 位经典
项目简介
Ingegno Retro Game Console 是一款基于 Arduino Nano 的手持复古游戏机,配备 1.8 英寸 ST7735R 彩屏、摇杆、两枚按键 (A/B) 与电源滑动开关,外壳可激光切割。固件内置 7 款经典游戏:俄罗斯方块、贪食蛇、Flappy Bird、打砖块、乒乓球(单/双人)、吃豆人简化版、赛车躲避。支持 Blockly4Arduino 图形化编程修改游戏,适合初学者学习嵌入式游戏开发。
硬件清单
- Arduino Nano R3 ×1
- 1.8" ST7735R TFT LCD(含 MicroSD 卡槽)×1
- 模拟摇杆(双轴电位器+按压)×1
- 12 mm 轻触开关 ×2 (A/B 键)
- 滑动开关 ×1 (电源)
- 跳线若干、激光切割外壳 (SVG 源文件提供)
游戏列表与操作
| 游戏 | 操作方式 |
|---|---|
| Tetris | 摇杆移动/旋转,A 键开始/硬降,B 键旋转 |
| Snake | 摇杆或 A/B 键控制转向,吃草莓计分 |
| Flappy Bird | 单键跳跃(A 或 B),穿越管道间隙 |
| Breakout | 摇杆移动挡板,A 键发球/开始,升级加速加行 |
| Pong | 单人:A/B 控制上挡板;双人:二代摇杆控制下挡板 |
| Pac-Man (Dot) | 摇杆移动,吃能量豆反追鬼魂,单关卡 |
| Race | 摇杆左右躲避落石,进阶版含分数/火箭特效 |
固件架构
- 核心库:Adafruit_ST7735、Adafruit_GFX 驱动屏幕
- 游戏循环:非阻塞状态机,帧率约 30–60 FPS
- 输入处理:模拟读取摇杆 X/Y(死区滤波),数字读取 A/B/电源
- 图形渲染:逐帧绘制精灵、背景、分数,利用屏幕 128×160 分辨率
- 声音:蜂鸣器简易音效(可选)
- 电源管理:滑动开关硬切电池,无软关机
外壳与接线
提供 SVG 激光切割矢量图(3 mm 亚克力/木板),含面板、侧板、按键孔位。接线原理图(Fritzing)展示 Nano 与屏幕 SPI (D11/D13/CS/DC/RST)、摇杆 (A0/A1)、按键 (D2/D3)、电源开关连接方式。Blockly4Arduino XML 源文件可导入可视化修改游戏逻辑。
代码获取
GitHub 仓库:ingegno/RetroGames,含所有游戏 .ino 文件、Blockly XML、外壳 SVG 与接线原理图。可直接下载编译烧录,或在 Blockly 中拖拽修改后导出 C++ 代码。
适用场景
- Arduino 入门教学:图形化编程即时见效
- 复古游戏爱好者自制收藏
- STEAM 课程:硬件焊接、外壳设计、游戏逻辑三位一体
- 二次开发基础:移植更多 Arduboy/Gamebuino 游戏
制造工艺
- 弹球机:经典街机游戏的历史、设计与制造
- Arduino UNO + MAX7219 自制《UFO攻击》复古射击游戏机
- TeleBall:自制 Arduino 掌上复古游戏机(打砖块 + 双人网球)
- 3D RGB Arduclock — 蓝牙控制全彩LED时钟带RTC与闹钟
- MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Arduino + 模拟摇杆互动游戏:五向 LED 反馈
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino 驱动的迷你漫游车:自制避障机器人
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里