66 lines
3.0 KiB
Markdown
66 lines
3.0 KiB
Markdown
[Click here for English documentation](README.md)
|
||
|
||
[日本語のドキュメントはこちら](README_ja-JP.md)
|
||
|
||
![Taiko Drum Controller](./images/banner-taiko.png)
|
||
|
||
# 太鼓达人控制器 - Arduino/ESP32
|
||
|
||
开源硬件程序,用于制作自己的太鼓达人PC控制器。
|
||
|
||
## 关于这个项目
|
||
|
||
该项目旨在帮助您在家中开发自己的**硬件太鼓**。
|
||
|
||
*本程序仅限个人和非商业用途。*
|
||
|
||
## 你需要什么
|
||
|
||
1. 一个Arduino Micro或Leonardo微控制器(其他兼容板可能也可以工作,但您需要验证它们是否支持键盘模拟);
|
||
|
||
如果你用的是ESP32开发板,请切换到“ESP32”分枝。ESP32相比ATMEGA64要快得多,而且可以通过蓝牙无线连接电脑。
|
||
|
||
2. 4个压电传感器;
|
||
|
||
3. 必要的电子组件(面包板、电阻、LED、跳线等);
|
||
|
||
4. 如果您需要从头开始制作鼓,还需要木板和切割工具。如果您有一个市售的太鼓或Big Power Lv.5鼓,您可以直接使用它们。
|
||
|
||
## 制作控制器的步骤
|
||
|
||
1. 制作鼓,并将4个压电传感器牢固地粘贴到鼓上。参考图片以了解传感器的首选位置。
|
||
|
||
![控制器方案](./images/piezo_locations.png)
|
||
|
||
2. 按照以下方式将压电传感器和其他组件连接到控制器(压电传感器的极性无关紧要);
|
||
|
||
![控制器方案](./images/scheme.png)
|
||
|
||
3. 将固件刷新到板上。
|
||
|
||
您可能需要微调一些参数,如`SAMPLE_CACHE_LENGTH`、`HIT_THRES`、`RESET_THRES`和`sensitivity`。有关详细信息,请参见下一节。
|
||
|
||
4. 玩得开心!
|
||
|
||
## 调整参数
|
||
|
||
1. 击打和重置阈值
|
||
|
||
设置`DEBUG 1`(这将禁用键盘输出并从串行端口发送信号值),刷新固件,在鼓的4个区域之一上滚奏,并从串行监视器的输出中可视化图表。击打阈值应小于鼓上的最重击打,重置阈值应大于两个波峰之间的波谷值。重置值也应低于击打值。
|
||
|
||
为其余3个区域重复此过程,并找到适合所有区域的最佳值。
|
||
|
||
![控制器方案](./images/tune_hit_reset.png)
|
||
|
||
2. 采样长度
|
||
|
||
为了最大运行速度,`cache.h`库已优化,可与2的幂次方的`SAMPLE_CACHE_LENGTH`窗口大小一起工作。这意味着2、8、16和32等。实际上,16对于Arduino来说是最佳值,但如果您有一个强大的微控制器,其采样输入速度至少为4000Hz或更高,则可以将值更改为32,以获得更平滑(换句话说,更少噪声)的曲线。
|
||
|
||
3. 灵敏度
|
||
|
||
并非所有压电传感器都相同,由于安装错误,4个传感器捕获的信号可能会有显著差异。灵敏度值是用来标准化差异的乘数。在以下示例中,右边的“咚”区域产生的值比其余3个区域高得多,因此您可以调整`sensitivity`为`{1.0, 1.0, 0.5, 1.0}`以消除这个问题。
|
||
|
||
![控制器方案](./images/tune_sensitivities.png)
|
||
|
||
请注意,传感器的安装非常关键。您应确保传感器牢固地附着在木头上并放置在适当的位置。
|