HID 太鼓输入硬件/太鼓控制器 Taiko IO Board / Taiko Controller
Go to file
AnalogDragon 39b7de3459 md update
2023-06-26 19:03:54 +08:00
HW update ignore 2023-06-23 05:29:38 +08:00
QT-APP update md 2023-06-23 04:08:42 +08:00
Sampling-MCU update md 2023-06-23 04:08:42 +08:00
TEXT Initial commit 2023-04-19 20:18:28 +08:00
USB-MCU md update 2023-06-26 19:03:54 +08:00
.gitattributes Initial commit 2023-04-19 20:18:28 +08:00
.gitignore Create .gitignore 2023-06-23 05:32:45 +08:00
README.md md update 2023-06-26 19:03:54 +08:00

Taiko Input

太鼓输入硬件usb为HID设备可以连接2个鼓和8通道的数字量输入。

ENG


硬件工程

USB 单片机

采样单片机

上位机

文档



工程结构:

|—— HW
    |—— taiko-io
    |—— taiko-io-mini
|—— USB-MCU
    |—— TK_usb_CH552
    |—— TK_usb_CH552_mini
|—— Sampling-MCU
    |—— 8chV3_WithCH552
|—— QT-APP
    |—— APP1_Taiko_IO_Setting
|—— TEXT



HW 硬件工程

硬件工程位于此目录下。

taiko-io/内放置的是双鼓的工程可用于两个鼓的使用环境工程使用KICAD设计。
此项目硬件包含8路模拟输入和8路数字量输入板载配置接口单usb供电。

taiko-io-mini/内放置的是单鼓的工程一般用于一个鼓的使用环境工程使用LCEDA设计。
此项目硬件包含4路模拟输入和4个按键需要测试点配置单usb供电。



USB-MCU USB单片机

USB单片机的软件工程位于此目录下。包含两个软件根据硬件不同适配的软件工程也不同。
使用的单片机为 CH552/CH554是一款USB 8位单片机。

TK_usb_CH552/软件适配双鼓硬件只能枚举成为一个USB-HID键盘。

TK_usb_CH552_mini/软件适配单鼓硬件可以枚举成USB-HID键盘或n******o switch适用的手柄设备。

软件使用keil 4编译编译前根据宏可以关闭/打开相关的软件功能。



Sampling-MCU 采样单片机

采样单片机的软件工程位于此目录下。软件使用宏区分两款硬件。
使用的单片机为 STM32G030。

软件使用keil 5编译编译前根据宏可以关闭/打开相关的软件功能,切换硬件版本。



QT-APP 上位机

上位机的软件工程位于此目录下。上位机可以用于配置硬件的相关参数。

使用的UI框架为QT 5



TEXT 文档

一些中间文档和输出文档位于此目录下。



系统框图

详见硬件工程

系统框图

系统框图

做的一些裂开设计

主要是通过观察游戏运行的特征,去做体验上的优化。可能合理也可能不合理。

游戏软件运行的观察

  • 输入频率限制ns平台的作品与虹均有输入频率限制经过测试这个频率每个player单个通道限制最高30次每秒四个通道一起限制60次每秒。超过这个频率的输入大概率就会被扔掉。
    也就是说如果只敲左咚或者右咚则最多30打每秒而如果左右咚交替输入能提高到60打每秒。

  • ns平台本身的硬件限制按键输入会有一个很长的滤波且按下与松开均需要一段时间才能生效。
    在ns运行的游戏内这个一段时间大于20ms时不再出现丢输入。但是主页上20ms仍会无响应可能是ns可以允许输入滤波时间动态变化。


输出交叉分配

功能实现放在了USB 单片机

由于机能或软件运行方式,不同的软件支持的输入最大频率不同,分配输出主要原因是为了能使输入频率达到这台设备的上限。
表现就是在触发频率高的时候,同一个通道的输入会分配到另一个通道,不同的设备采取的方案不相同。

  • ns按键消抖做的比较激进直接在有高频输入的时候优先分配给同侧的两个按键。
  • 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。

交叉分配
适配虹的交叉分配示意图