Taiko Input
太鼓输入硬件,usb为HID设备,可以连接2个鼓和8通道的数字量输入。
硬件工程
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:按键消抖做的比较激进,直接在有高频输入的时候,优先分配给同侧的两个按键。
- 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。