Arduino Nano 与 WS2812 灯带打造 1D 乒乓球游戏——分步 DIY 教程
组件与物料
| 组件 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| WS2812B 可寻址 RGB 灯带(60 LED/米,本项目用 60 颗) | 1 |
| 无源蜂鸣器 | 1 |
| 轻触开关(四脚) | 4 |
| NPN 三极管(如 2N2222 / S8050) | 1 |
| 2.21 kΩ 电阻 | 1 |
软件工具
- Arduino IDE
项目简介
本项目在 WS2812 灯带上实现单维度(1D)经典“乒乓球”双人对战。灯带上的“小球”在两端往返,玩家需在小球进入末端蓝色“判定区”时按下按钮击回。每次击球后小球加速,难度递增。击球时机越晚(越深入判定区)回球越快,但也越容易失误;按住加速键击球可进一步提速,代价是判定区变短。全套硬件极简,最终装入 PVC 板盒并贴自粘墙纸,兼具实用与美观。
核心玩法特性
- 渐进加速:每回合小球速度递增,考验反应极限。
- 判定区机制:蓝色区域内击球有效,越深入回球越快,风险与收益并存。
- 加速键:按住 Boost 键击球可大幅提速,但判定区缩小,策略性十足。
- 参数全开放:灯珠数、判定区长度、亮度、胜利分数等均可在代码中轻松调整。
电路原理图
主要连接:
- 灯带 DIN → Nano D6(需串联 330~470 Ω 电阻,就近灯带端)
- 4 个按钮分别接 D2~D5,另一端接 GND,代码启用内部上拉
- 蜂鸣器由三极管驱动:基极经 2.21 kΩ 接 D7,集电极接蜂鸣器一脚,另一脚接 5V,发射极接 GND
- 灯带 5V 与 GND 直接接 Nano 5V/GND(若灯珠全亮电流超 500 mA 建议外接 5V 电源)
代码获取与烧录
完整代码以 ZIP 形式提供下载(见项目 Code 栏),解压后用 Arduino IDE 打开 .ino 文件,选择“Arduino Nano”开发板及对应端口上传即可。代码基于 vagrearg.org 开源项目改写,注释详细,便于二次开发。
外壳制作提示
- 用 PVC 板按灯带长度 + 留边裁剪盒体,热熔胶或螺丝组装。
- 按钮位置预留孔位,蜂鸣器开孔朝外。
- 贴自粘彩色墙纸装饰,预留 USB 口供电/升级固件。
常见问题排查
- 灯带不亮/乱闪:检查 DIN 电阻、共地、供电电流是否足够。
- 按钮无响应:确认引脚号与代码一致,量引脚电压是否被拉低。
- 蜂鸣器无声:检查三极管型号、基极电阻、蜂鸣器极性。
制造工艺
- 自制LUMAZOID:基于Arduino的音乐可视化灯光控制器
- 复古 Numitron 管时钟:Arduino Nano 驱动,低温可靠省电
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- 用 Arduino Nano 与 MAX7219 制作 24×16 LED Pong 游戏机
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
- 自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD
- Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏