Arduino 纸板迷宫游戏机:双舵机摇摆 + 手柄摇杆控制
创意来源
经典桌游「Labyrinth」诞生于 1946 年瑞典,通过倾斜板面引导钢珠避开陷阱抵达终点。本项目将其「物理化」:用 3mm 纸板激光切割/手工切割迷宫板面,双 SG90 微型舵机驱动 X/Y 两轴倾斜,摇杆模块手动控制,Arduino UNO 核心,成本极低、亲子共制乐趣满满。
材料与工具
| 类别 | 清单 |
|---|---|
| 结构件 | 3mm 纸板 (20×20cm 底板、侧板、支撑板、迷宫墙条)、热熔胶、美工刀、尺子、铅笔 |
| 电子件 | Arduino UNO、迷你面包板、SG90 舵机 ×2、摇杆模块、公母杜邦线 |
| 固定件 | M3×12mm 螺丝螺母 ×2 (舵机臂连接板面) |
纸板结构设计与切割
- 底板:20cm × 20cm 正方形
- 侧板:两块 14cm × 16cm 等腰梯形,一侧开矩形孔装舵机 (X 轴),另一侧钻 3mm 孔对应舵机输出轴
- 内部支撑:四块 14cm × 4cm 长条,中间一块开矩形孔装舵机 (Y 轴),对应处钻 3mm 孔
- 迷宫面板:12cm × 12cm,按附件迷宫图纸切割墙槽,粘贴 1.5cm × 12cm 墙条
- 舵机固定:热熔胶粘贴于预留矩形孔,舵机臂用螺丝连接可动板面
设计文件见 cad 部分,可直接激光切割或打印贴纸做手工切割参考。
电路接线
| 模块 | 引脚 | Arduino |
|---|---|---|
| 舵机 X | 信号(橙/黄) | D8 |
| 舵机 Y | 信号(橙/黄) | D9 |
| 两舵机 | VCC(红) | 5V (面包板) |
| 两舵机 | GND(棕) | GND (面包板) |
| 摇杆 | VRx | A0 |
| 摇杆 | VRy | A1 |
| 摇杆 | VCC/GND | 5V/GND |
核心代码逻辑
void loop() {
int xVal = readAxis(A0); // -6 ~ +6
int yVal = readAxis(A1);
if (xVal > 0) { servoXPos++; servoX.write(servoXPos); delay(100*(7-xVal)); }
if (xVal < 0) { servoXPos--; servoX.write(servoXPos); delay(100*(7+xVal)); }
// Y 轴同理
// 限位保护 ±20°
servoXPos = constrain(servoXPos, homeX-20, homeX+20);
servoYPos = constrain(servoYPos, homeY-20, homeY+20);
}
int readAxis(int pin) {
int reading = map(analogRead(pin), 0, 1023, 0, 12);
int dist = reading - 6;
return (abs(dist) < 3) ? 0 : dist; // 死区滤波
}
关键点:
map()将 0-1023 映射为 0-12,中心 6 对应中位- 死区阈值 3,避免摇杆中位抖动导致舵机抖动
- 延时与偏移量成反比,实现「推得远、动得快」的手感
- 机械限位 ±20° 防止舵机打坏纸板结构
玩法升级建议
- 多关卡设计:制作多张 12×12cm 迷宫面板,磁吸快速更换
- 通关检测:终点处装微动开关或光电传感器,触发蜂鸣器/LED 庆祝
- 自动解谜:加装摄像头 + OpenCV 识别钢珠位置,PID 闭环自动通关
- 计时挑战:OLED 显示倒计时,记录最佳成绩
亲测心得
纸板结构虽简陋,但舵机扭矩足以驱动轻量面板。摇杆控制手感出乎意料地好,「死区+变速延时」算法让微调变得精准。孩子从切纸板、穿墙条到调试代码,全程参与,成就感爆棚。总耗时约 2 小时,材料费 < ¥50,性价比极高的 STEAM 入门项目。
制造工艺
- 基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino 声纳实时测距与 Processing 可视化
- MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
- 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里