一款基于 RP2040 的太鼓达人街机控制器

发烧友研习社 2025-10-23 08:00
一款基于 RP2040 的太鼓达人街机控制器图1

“ DonCon2040 是一款为 DIY 太鼓达人街机风格鼓控制器设计的固件(并由此延伸出一款 PCB)。

一款基于 RP2040 的太鼓达人街机控制器图2

Made with KiCad 系列将支持新的展示方式。直接将以下链接复制到浏览器中(或点击“阅读原文”):
https://www.eda.cn/ecadViewer/viewerPage?xmlId=c7d1bada-0e85-4945-956f-7bbe8d305ebe&fileZip=%2Fdata%2Fdesign%2Fdemo%2Fc7d1bada-0e85-4945-956f-7bbe8d305ebe.zip
即可动态查看设计的原理图、PCB、3D 及 BOM,查询设计中器件、走线、焊盘的属性详情。还可以在原理图中与AI小助手互动,帮您更高效地学习设计细节:
一款基于 RP2040 的太鼓达人街机控制器图3
一款基于 RP2040 的太鼓达人街机控制器图4
一款基于 RP2040 的太鼓达人街机控制器图5
一款基于 RP2040 的太鼓达人街机控制器图6
概览

如果你在寻找更通用、即刷即用且能随时配置的方案,我推荐你看看像 GP2040-CE(https://github.com/OpenStickCommunity/GP2040-CE 这样更通用的项目。然而,如果你想构建更专业或定制化的设备,可以随时使用本项目作为基础。它被设计成具有一定的模块化特性,应该很容易改造。可以参考 DivaCon2040(https://github.com/ravinrabbid/DivaCon2040 项目,看看改造后可能是什么样子。

一款基于 RP2040 的太鼓达人街机控制器图7
一款基于 RP2040 的太鼓达人街机控制器图8

功能特性

            • 多种控制器模拟模式

              • HORI PS4-095 太鼓控制器 (PS4) (可在 PS4 上工作,详情请参阅 PS4 验证)

              • HORI NSW-079 太鼓控制器 (Switch) (兼容 Switch 上的《太鼓之达人 咚咚雷音祭》 / 《太鼓之达人 Drum'n'Fun》)

              • Dualshock 4 (仅适用于 PC/Steam,无法在真实的 PS4 主机上使用!)

              • Dualshock 3

              • Switch Pro Controller

              • XInput

              • XInput Analog (兼容 TaikoArcadeLoader 的模拟输入)

              • 键盘 (按键映射: 'DFJK' / 'CBN,')

              • MIDI

              • 调试模式 (将通过 USB 串口输出当前状态并允许直接刷写)

            • 通过外部 i2c GPIO 扩展器增加额外按键

            • 通过连接的 OLED 屏幕上的菜单进行基本配置

            • 单个 WS2812 LED 用于触发反馈

            • 显示屏上显示连打计数器

            固件编译

            我强烈建议你自行编译固件,以便在 include/GlobalConfiguration.h 文件中进行调整,使其与你的特定控制器构造相匹配。你仍然可以使用 预编译的二进制版本,该版本已为 DonConIO 预先配置好。

            VSCode (Windows, Linux, MacOS)

            1. 安装 VSCode 并获取 Raspberry Pi Pico 扩展。

            2. 在扩展中选择“Import Project”,然后选择你克隆此仓库的文件夹。

            3. 最后使用“Compile Project”进行编译。

            命令行 (CLI)

            1. 请参阅 pico-sdk readme 查看所需预备环境的列表。

            2. 使用环境变量 PICO_SDK_PATH 来指定本地的 pico-sdk 路径,使用 PICO_BOARD 来选择其他目标板。默认情况下,pico-sdk 将从 Github 获取,目标板为 "pico"。

            mkdir build && cd build
            cmake ..make

            配置

            一些你可能需要更频繁更改的设置,可以通过连接的 OLED 显示屏上的屏幕菜单进行修改。同时按住 Start 和 Select 键 2 秒钟可进入菜单:

            如果你在退出菜单时选择“保存”,这些设置将被保存到闪存中,并在断电重启后依然生效。

            默认值和其他所有设置都是静态编译到固件中的。你可以在 include/GlobalConfiguration.h 文件中找到所有内容。这包括默认控制器模式、i2c 引脚、外部 ADC 配置、地址和速度、默认触发阈值、范围和去抖延迟、按键映射、LED 颜色和亮度。

            去抖延迟 / 保持时间

            去抖延迟也隐式地充当了敲击后输入的“保持时间”。在某些平台上,如果这个时间太短,输入可能无法被正确识别。例如,Switch 上的《太鼓之达人》需要至少 25 毫秒。

            如果你注意到即使控制器上的 LED/显示屏已显示敲击成功,但游戏中仍有漏输入的情况,请尝试增加这个值。

            PS4 验证

            PS4 需要控制器每隔几秒钟签署一次加密质询,否则在插入约 8 分钟后将停止工作。对于太鼓达人游戏来说,这个问题还算可以忍受,因为你可以在每首歌开始前重新插拔控制器,以避免在游戏过程中遇到超时问题。尽管如此,这还是很烦人。

            DonCon2040 可以签署这些质询,但你需要从一个原装 DS4 控制器中获取一些数据,并将其编译到固件中。你需要一个序列号文件、一个签名文件和一个私钥文件。我不能也不会帮助你如何获取这些文件,你需要自己想办法解决

            要编译固件,请在你放置所需文件的文件夹中运行 scripts/generateAuthConfig.py 脚本。将生成的 PS4AuthConfiguration.h 文件复制到 include目录,替换掉现有文件。然后按照 固件编译 部分的说明进行编译。

            签署质询会占用 RP2040 的第二个核心 2-3 秒,因此显示屏、外部控制器和 LED 会时不时地看起来像卡住了一样。鼓的输入处理不受影响。

            硬件

            IO 板

            pcb 子文件夹中的 DonConIO 板在设计上力求接近原版街机硬件。它搭载一个 Seeed Studio XIAO RP2040,并为 Sensatec GSS-4S* 压电式冲击传感器提供信号调理。详情请参阅其 README 文件。

            如果你不想使用这个板子,该固件在适当配置后应该可以在大多数 RP2040 板子上使用。你也可以使用更简单的触发方案,只要它能向 ADC 输入提供一个模拟触发电平即可兼容。

            控制器按键和显示屏

            额外的控制器按键和显示屏连接到同一个 i2c 总线(如果你的板子有多个 i2c 总线,也可以连接到不同的总线)。显示屏请使用标准的分辨率为 128x64 的 SSD1306 OLED 显示屏。按键需要连接到一个 MCP23017 IO 扩展器。

            可参考 DonConPad 项目作为一个示例性的游戏手柄 PCB。

            请注意,目前显示屏和按键是使用该控制器的强制性要求。

            物理结构

            关于物理结构,我只给出一个粗略的纲要,因为我对其性能仍不完全满意,并且还在尝试一些替代方案:

            原理图 & PCB

            IO 板

            一款基于 RP2040 的太鼓达人街机控制器图9
            一款基于 RP2040 的太鼓达人街机控制器图10
            一款基于 RP2040 的太鼓达人街机控制器图11
            一款基于 RP2040 的太鼓达人街机控制器图12
            一款基于 RP2040 的太鼓达人街机控制器图13
            一款基于 RP2040 的太鼓达人街机控制器图14
            控制板
            一款基于 RP2040 的太鼓达人街机控制器图15
            一款基于 RP2040 的太鼓达人街机控制器图16
            一款基于 RP2040 的太鼓达人街机控制器图17
            一款基于 RP2040 的太鼓达人街机控制器图18
            一款基于 RP2040 的太鼓达人街机控制器图19
            一款基于 RP2040 的太鼓达人街机控制器图20
            License
            MIT

            仓库 & 下载

            可以在Github中获取开源仓库:
            https://github.com/ravinrabbid/DonCon2040


            一款基于 RP2040 的太鼓达人街机控制器图21

            扫码加入资料分享群,定期分享硬件资料



            一款基于 RP2040 的太鼓达人街机控制器图23
            研习社每周资料专题系列(点击下文获取)

            声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
            more
            美光HBM4测试认证失败,出货将推迟至2027年
            精准计量护航!新一代绿智城轨制动系统通过关键测试
            2025集成电路产业测试设备创新发展论坛成功举办
            小米YU7 GT!—— 在纽博格林赛道附近测试一台全新原型车
            不改模型也能提升推理性能?ICLR投稿提出测试时扩展新范式OTV
            Beta的自主混合动力eVTOL,计划2026年上半年开始飞行测试
            全球第25名!iPhone 17系列DXO屏幕测试出炉
            iOS 微信 8.0.66 新版发布!不再支持老旧系统,多项功能正灰度测试
            东风纳米BOX欧洲安全测试仅获三星评级
            边缘智能加持,Wi-Fi7、5G RedCap测试火了!LitePoint有何杀手锏加速客户量产?
            Copyright © 2025 成都区角科技有限公司
            蜀ICP备2025143415号-1
              
            川公网安备51015602001305号