“DonCon2040 是一款為 DIY 太鼓達人街機風格鼓控制器設計的固件(并由此延伸出一款 PCB)。”
?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小助手互動,幫您更高效地學習設計細節:


概覽如果你在尋找更通用、即刷即用且能隨時配置的方案,我推薦你看看像GP2040-CE(https://github.com/OpenStickCommunity/GP2040-CE)這樣更通用的項目。然而,如果你想構建更專業或定制化的設備,可以隨時使用本項目作為基礎。它被設計成具有一定的模塊化特性,應該很容易改造。可以參考DivaCon2040(https://github.com/ravinrabbid/DivaCon2040)項目,看看改造后可能是什么樣子。


功能特性
-
多種控制器模擬模式
-
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)
-
安裝VSCode并獲取Raspberry Pi Pico擴展。
-
在擴展中選擇“Import Project”,然后選擇你克隆此倉庫的文件夾。
-
最后使用“Compile Project”進行編譯。
命令行 (CLI)
-
請參閱pico-sdk readme查看所需預備環境的列表。
-
使用環境變量
PICO_SDK_PATH來指定本地的 pico-sdk 路徑,使用PICO_BOARD來選擇其他目標板。默認情況下,pico-sdk 將從 Github 獲取,目標板為 "pico"。
mkdirbuild &&cdbuildcmake ..make
配置
一些你可能需要更頻繁更改的設置,可以通過連接的 OLED 顯示屏上的屏幕菜單進行修改。同時按住 Start 和 Select 鍵 2 秒鐘即可進入菜單:
-
控制器模擬模式
-
LED 亮度
-
觸發閾值
-
保持時間
-
進入 BOOTSEL 模式以刷寫固件
如果你在退出菜單時選擇“保存”,這些設置將被保存到閃存中,并在斷電重啟后依然生效。
默認值和其他所有設置都是靜態編譯到固件中的。你可以在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。
請注意,目前顯示屏和按鍵是使用該控制器的強制性要求。
物理結構
關于物理結構,我只給出一個粗略的綱要,因為我對其性能仍不完全滿意,并且還在嘗試一些替代方案:
-
鼓面由 12mm 厚的復合板制成。外徑約為 42cm,內徑約為 35cm。
-
鼓面通過橡膠減震器安裝在另一塊 20mm 厚的復合板上。街機鼓的背板似乎更薄,但由于它們是牢固地安裝在街機框體上的,我想增加一些重量應該沒壞處。
-
橡膠減震器高 15mm,直徑 20mm。街機鼓似乎使用錐形減震器,但至少我能搞到的錐形減震器感覺太軟了,所以我用了直筒形的。
-
鼓皮方面,我嘗試過用 2mm 的天然橡膠片覆蓋一些帆布,效果還算不錯,但聲音很響且回彈很小。我現在進口了真正的街機鼓皮,效果好得多。
原理圖 & PCB
IO 板





控制板




License
MIT倉庫 & 下載
可以在Github中獲取開源倉庫:
https://github.com/ravinrabbid/DonCon2040
?
?-
控制器
+關注
關注
114文章
17787瀏覽量
193084 -
KiCAD
+關注
關注
5文章
321瀏覽量
10393
發布評論請先 登錄
TPIC2040:5V 光盤驅動器的低噪聲電機驅動 IC 解決方案
TI PCI2040:PCI - DSP橋接器的深度解析
Made with KiCad(138):AnyShake Explorer一款開源、專業級的地震監測系統
RP2040的工業級封裝系統!
【干貨分享】RP2040 + Cyclone 10 FPGA PCB 設計
【開源分享】Made with KiCad(128):CANBoard V2 開源一款支持CAN的簡單IO板
Made with KiCad(128):CANBoard V2 開源一款支持CAN的簡單IO板
貿澤開售Raspberry Pi用于嵌入式和IIoT應用的RP2350微控制器
Made with KiCad(101):ANAVI Dev Mic - 可編程的 USB Type-C 全向麥克風
Made with KiCad(100):RM2024 超級電容控制器
基于XIAO RP2040和樹莓派的圍棋棋盤游戲系統設計
Made with KiCad(121):OpenRPNCalc 開源科學 RPN 計算器
小身材,大能量:你玩過樹莓派掌機嘛?
RP2350 現已上市!變體即將發布!
矽遞科技XIAO RP2040開發板的Arduino開發環境配置教程
Made with KiCad(136):DonCon2040 - 一款基于RP2040的太鼓達人街機控制器
評論