亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY LED 轮盘赌游戏机 —— Arduino Nano 打造单人桌面街机

物料清单

元器件规格/数量
LED红×6、黄×2、绿×1 (共 9 颗)
轻触开关 12mm1
Arduino Nano R31
母排针 8P1 条
DC 电源座1

工具

游戏规则

9 颗 LED 排成一行 (6红-2黄-1绿),光点在两端往返流动。玩家按键瞬间停止,落在绿灯获胜,红/黄为失败。启动时按键调整难度 (流动速度),双击确认开始。

机箱制作

  1. Fusion 360 设计面板:9 个 LED 孔位 + 底部按键孔
  2. CNC 切割胶合板/亚克力
  3. 打磨倒角,热熔胶组装盒体

电路连接

DIY LED 轮盘赌游戏机 —— Arduino Nano 打造单人桌面街机

核心代码逻辑


// LED 引脚数组 (物理排列顺序)
const uint8_t ledPin[9] = {4,3,5,6,7,8,9,10,11}; // 中间绿灯索引 4
const uint8_t btnPin = 2;

uint8_t difficulty = 0;   // 0-8 对应延迟 500~55ms
uint8_t current = 0;      // 当前亮灯索引
bool dirRight = true;     // 移动方向
bool gameOver = false;
bool isWin = false;
bool selecting = true;

TTBOUNCE btn(btnPin);     // 去抖+双击检测

void setup() {
  // 初始化 LED、按键回调、中断
  // 选难度阶段:单击切换难度灯,双击锁定进入游戏
  attachInterrupt(digitalPinToInterrupt(btnPin), onPress, FALLING);
}

void loop() {
  if (!gameOver) {
    moveLed();            // 往返移动光点
    delay(delay_time);    // 难度决定速度
  } else {
    // 结算动画:胜利全闪 5 次,失败扫描
    // 2 秒后复位重新选难度
  }
}

void moveLed() {
  digitalWrite(ledPin[current], LOW);
  if (current == 8) { dirRight = false; current--; }
  else if (current == 0) { dirRight = true; current++; }
  else current += dirRight ? 1 : -1;
  digitalWrite(ledPin[current], HIGH);
}

void onPress() {          // 中断服务程序
  gameOver = true;
  isWin = (current == 4); // 绿灯索引 4
  current = 0;
  delay(500);             // 简单去抖
}

难度公式

delay_time = 500 / (difficulty + 1) → 难度 0: 500ms, 难度 8: 55ms。越快越难停在绿灯。

扩展玩法

项目感悟

极简元件实现完整游戏闭环,适合入门练习:中断、状态机、去抖、数组遍历、时序控制。随时随地可玩,远离屏幕的小确幸。

制造工艺

  1. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  2. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  3. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  4. DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
  5. 自制 16×8 LED 矩阵俄罗斯方块游戏机:Arduino Nano + 74HC595 驱动
  6. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  7. 从零构建智能 Arduino 四足机器人:完整指南
  8. Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
  9. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  10. Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
  11. Arduino RGB LED调色器:三电位器混色入门项目
  12. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏