项目简介
本项目借助Arduino达成了在StepMania 5/Project Outfox游戏里对灯光的控制,让玩家仿若置身街机游戏厅,可通过游戏操作使灯光同步变化。用户能使用LED灯、舞蹈垫灯、霓虹灯等各类灯光设备,增添游戏乐趣。
项目的主要特性和功能
- 多种连接方式:既支持将单个灯光直接连到Arduino引脚,也能通过移位寄存器连接大量灯光,突破引脚数量限制。
- 可扩展性:采用模块化设计,便于用户按需添加或移除灯光设备,灵活扩展灯光系统。
- 高功率支持:利用N - 通道MOSFET或固态继电器(SSR),可控制高功率灯光设备。
- 跨平台兼容:同时支持Windows和Linux操作系统,方便不同用户使用。
安装使用步骤
硬件连接
- 单灯连接:默认代码支持单个灯光连到每个Arduino引脚,适用于DDR/ITG风格的4面板设置。无需改代码,按
Wiring - Direct.png
图连接并上传代码到Arduino。若要更改灯光引脚,修改代码中#define PIN_<something>_<something>
部分。 - 移位寄存器连接:若要连更多灯光,可使用移位寄存器。去掉代码中
//#define USE_SHIFT_REGISTERS
前的双斜杠,按Wiring - ShiftRegisters.png
图连接。若要更改移位寄存器连接的引脚,修改#define PIN_SHIFT_CLOCK
、LATCH
和DATA
部分;若要更改灯光与移位寄存器的映射,修改void readSerialLightingData()
函数。 - 高功率灯光连接:控制高功率灯光时,使用N - 通道MOSFET,按
Wiring - MOSFET.png
图连接。若需控制更高电压的灯光,可考虑使用固态继电器(SSR)。
代码上传
将项目的Arduino代码上传至Arduino设备。
软件设置
Windows系统
- 在
Preferences.ini
中,设置LightsDriver = Win32Serial
,并将LightsComPort
设为Arduino所在的COM端口(该端口为在Arduino IDE中上传代码时选择的端口)。 - 启动StepMania,若未出现错误信息则设置成功。
Linux系统
灯光输出设置
- 在
Preferences.ini
中,设置LightsDriver = SextetStreamToFile
。 - 记录
SextetStreamOutputFilename
的值(默认是Data/StepMania - Lights - SextetStream.out
)。 - 在StepMania安装文件夹内打开终端,运行
mkfifo./
加上步骤2记录的文件名(如mkfifo./Data/StepMania - Lights - SextetStream.out
)。 - 运行StepMania,此时会停留在加载窗口,这是正常现象。
- 运行
cat
加上步骤2记录的文件名(如cat./Data/StepMania - Lights - SextetStream.out
),若看到字符滚动则SextetStream正常工作。
Arduino输出设置
- 若之前未操作过,运行
sudo usermod -a -G dialout <your username>
将自己添加到dialout组,以获取通过USB串口与Arduino通信的权限。 - 运行
cat <sextet filename/path> > <arduino device name>
(设备名与Arduino IDE中显示的一致,通常以/dev/ttyACM
开头),也可以使用socat <sextet filename/path> <arduino device name>
。
运行测试
完成上述步骤后,运行StepMania 5游戏,测试灯光设备是否能正常工作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】