mirror of
https://github.com/ShikyC/Taiko-Drum-Controller-Arduino.git
synced 2024-11-27 15:40:48 +01:00
Update ja-JP and zh-CN localizations
This commit is contained in:
parent
3b9da8d1bc
commit
0916de4097
@ -1,3 +1,7 @@
|
|||||||
|
[日本語のドキュメントはこちら](README_ja-JP.md)
|
||||||
|
|
||||||
|
[中文文档在这里](README_zh-CN.md)
|
||||||
|
|
||||||
# Taiko Drum Controller - Arduino
|
# Taiko Drum Controller - Arduino
|
||||||
|
|
||||||
Open-source hardware program to make your own Taiko no Tatsujin PC controller.
|
Open-source hardware program to make your own Taiko no Tatsujin PC controller.
|
||||||
|
154
README_JP.MD
154
README_JP.MD
@ -1,154 +0,0 @@
|
|||||||
#Sanro - Arduino
|
|
||||||
太鼓三郎(仮)用のハードウェア(タタコン)
|
|
||||||
|
|
||||||
##プログラムについて
|
|
||||||
|
|
||||||
東アジアの音ゲーマーならほどんどみんなが「太鼓の達人」という[バンダイナムコエンターテインメント](http://bandainamcoent.co.jp/)が開発した有名なゲームを知っていると思います。
|
|
||||||
|
|
||||||
このオープンソースプログラムの目的は家でアーケード感覚で使える「太鼓の達人」のハードウェア(つまりタタコン、以下タタコンと呼ぶ)を作ることです。
|
|
||||||
|
|
||||||
*********このプログラムは私用なげなためのものです、商業/営業用などの使用は厳禁**********
|
|
||||||
*********自分で設計し作ったタタコンを市場に流通させないでください***********
|
|
||||||
|
|
||||||
##特徴/出来ること
|
|
||||||
|
|
||||||
* **PCゲーム「太鼓さん次郎」に完全対応**正確に、キーボードさえ使っていればどんなアプリケーション、ゲーム、エミュレーターでも使用可能。
|
|
||||||
* **圧力感知式** 今は「太鼓三郎」というオープンソースのゲームを開発中、これに対応しています。
|
|
||||||
* **高密度の入力に対応、ローリングなど(ダブルストロークとも)**
|
|
||||||
|
|
||||||
* 一言でいうと、完全アーケード感覚で太鼓を叩ける、調整さえよく出来れば! :D*
|
|
||||||
|
|
||||||
##予備知識
|
|
||||||
|
|
||||||
DIYプロジェクトなため、以下の知識が必要
|
|
||||||
* 電子に関する基本な知識、
|
|
||||||
* ジャンパー線とブレッドボードとマイクロプロセッサの繋ぎ方。
|
|
||||||
* **はんだ付けに関する知識、必須ではないが**
|
|
||||||
|
|
||||||
##作業開始
|
|
||||||
|
|
||||||
タタコンの組み立てと調整は数日かかるかもしれない。
|
|
||||||
マイクロプロセッサチップは高くないので、好きな所で購入してください。
|
|
||||||
|
|
||||||
###準備する物
|
|
||||||
|
|
||||||
ほどんどは代替出来ます、ここで私が使った物をリスト
|
|
||||||
|
|
||||||
* [Arduino Micro](http://i.imgur.com/lXqnpJ9.jpg) モジュール/基盤 x 1
|
|
||||||
* [KEYES K-036](http://i.imgur.com/gUWnUCc.png) マイクロフォンモモジュール/基盤 x 4 (以下、フォンモジュール)
|
|
||||||
* ブレードボード x 1
|
|
||||||
* ジャンパー線 多数
|
|
||||||
* Micro USB ケーブル x 1
|
|
||||||
* [Arduino IDE](https://www.arduino.cc/en/Main/Software)
|
|
||||||
|
|
||||||
その他諸々、たとえば
|
|
||||||
|
|
||||||
* 木版、[出来れば形はこう](http://i.imgur.com/va20eVn.jpg)
|
|
||||||
* 木版の下敷きになるスポンジ (元文:Foamed plastics)
|
|
||||||
* 接着剤
|
|
||||||
* スクリュードライバーやマルチメーターなどの電子用具
|
|
||||||
|
|
||||||
注意すべきこと:
|
|
||||||
|
|
||||||
1.ATmega32u4を使用したarduino基盤もしくはarduino Dueとarduino Zero基盤には対応しています、Arduino Microは一番安いですが.
|
|
||||||
2.ブレードボードは安いですが、一番いい/安定している選択ではない、はんだ付け用のPCBの図面は提供してあります、詳細は下の「PCB製作」をご覧ください.
|
|
||||||
3.マイクロフォンモモジュールは自作でもOK、arduino基盤との繋ぎ方が分かれば.
|
|
||||||
4.厚い/無垢板/密度高い/重い木版が一番、これと逆に、合板/プラ版/中密度繊維板(MDF)は外縁部分が脆くて壊れやすい。いい感覚を得るため、[木版の形はこうであるべき](http://i.imgur.com/va20eVn.jpg)、切断工具がないなら、普通の形の木版も問題ない.
|
|
||||||
|
|
||||||
パーツの繋ぎ方
|
|
||||||
|
|
||||||
回路はすごくシンプルです、抵抗もキャパシタも要らない、**要るのはジャンパー線だけ**
|
|
||||||
|
|
||||||
ひとつのフォンモジュールには四つのピンがあり、使用するのはその中ほ三つだけ(`A0`, `+`, と `G`)、それぞれ(四つ)の`A0`のoutput端子をArduino Microの`A0`から`A3`input端子に接続。あとはそれぞれの`+`ピンを全部Arduino Microの`5V`ピンに、それぞれ`G`ピンはArduino Microの`GND`ピンに。下の写真を見て、間違っていないかを確認しましょう。
|
|
||||||
(写真は後でアップロードるす)
|
|
||||||
|
|
||||||
###(非必須)PCB製作
|
|
||||||
|
|
||||||
PCBは自作もしくはPCB製作業者に任せることが出来ます。 自作なら、以下の物が必要 (訳者:確信ないので、英語は保留している)
|
|
||||||
* 2.2 x 1.6 inches Empty PCB x 1 空のPCB板
|
|
||||||
* Thermal transfer paper x 1 熱転写紙
|
|
||||||
* Laser printer x 1 レーザープリンター
|
|
||||||
* Standard 4-pin header x 4 スタンダード4ピン端子
|
|
||||||
* Thermal transfer machine (or clothes iron) 熱転写機(アイロンもオッケー)
|
|
||||||
* Etchant エッチング剤
|
|
||||||
* Soldering tools はんだ付け用の工具
|
|
||||||
|
|
||||||
PCB自作の工程は完全別の話になりますので、[この動画](https://www.youtube.com/watch?v=mv7Y0A9YeUc)を見て参考になってください。
|
|
||||||
製作に使うファイルは`Eagle/sanro-arduino`フォルダーの`sanro.eps` にまとめています。
|
|
||||||
図面をダウンロードして編集もできます、その時は[Eagle Software](http://www.cadsoftusa.com/download-eagle/)を使ってください。
|
|
||||||
|
|
||||||
###プログラムをarduino基盤にアップロード
|
|
||||||
|
|
||||||
1. [Arduino IDE](https://www.arduino.cc/en/Main/Software)をダウンロードし、インストール。
|
|
||||||
2. 新規フォルダーを作って、ソースファイル(`sanro.ino` and `cache.h`)をそこに入れます
|
|
||||||
3. usbケーブルを使って、Arduino Microをパソコンに接続、デバイスドライバは自動的にインストールされているはず(Arduino IDEインストールした時)、なにか問題があった場合、この[オフィシャルガイド](https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro#toc8)を見てください
|
|
||||||
4. Arduino IDEで`sanro` projectを開く.
|
|
||||||
5. メニューで"Board" - "Arduino/Genuino Micro" を選択.
|
|
||||||
6. コンパイルしてアップロード.
|
|
||||||
|
|
||||||
##コンフィギュレーション
|
|
||||||
|
|
||||||
** *警告:フォンモジュールと木板の状況に個人差は激しいので、ハードウェアとプログラムのパラメーターの調整には大量な時間がかかります、どうか耐えてください、この先には多くの試行錯誤が待っています。***
|
|
||||||
|
|
||||||
###ハードウェア
|
|
||||||
やることは二つだけ
|
|
||||||
1. フォンモジュールを木板に接着する(訳者:ねじを使う方がいい気がする)
|
|
||||||
2. 木版をスポンジに固定
|
|
||||||
|
|
||||||
でもどうやるかは問題です、基本的に以下コツがあります
|
|
||||||
* フォンモジュールは出来るだけ木版に近い、かつ固く固定すること
|
|
||||||
* マイクロフォンを外部の音から遮断すること
|
|
||||||
* 木版をお互い接触させないこと
|
|
||||||
|
|
||||||
これらを実現するにひとつの方法は、フォンモジュールの受信機(元文:receiver)([わたしが使ったの](http://i.imgur.com/gUWnUCc.png)を含め、受信機は大体円柱状です)のフルター(円柱の上にある黒い布)を撤去、この面を木板にくっつく、接着(元文:seal)。こうやって木板から発する音は直接マイクロフォンに伝わる、ラウド・アンド・クリア。同時に隣接の木板の音を最小限に減らせるができます。
|
|
||||||
|
|
||||||
**(<28>ここからの部分は専門用語多いので、間違うと訳出来ないところが多い、分かる方々ご協力お願いします)**
|
|
||||||
|
|
||||||
あと注意すべきこと、このKEYESモジュールにはポテンショメータがひとつあります、このポテンショメータはマイクロフォンのquiescent operating point (Q-point)を調整用に使うものですが、私はアルゴリズムを使って、各マイクロフォンのQ-pointの違いによって出来たバイアスを消去することができた。**手動でこのポテンショメータを調整、Q-pointを同じぐらいにすののがいい**どうやるかは提供会社に尋ねてください。
|
|
||||||
|
|
||||||
###プログラム中のパラメーター
|
|
||||||
フォンの状況によって`LIGHT_THRES` と`HEAVY_THRES`の数値をかえてください。
|
|
||||||
コードは短い、説明はいらない、理解したい方は「アルゴリズムについて」の部分を見てください。
|
|
||||||
|
|
||||||
##アルゴリズムについて
|
|
||||||
このプラグラムのアルゴリズムはシンプル、でもまだ改善する余地はあります、pull requestを歓迎しています。
|
|
||||||
|
|
||||||
簡単に言うと、アナログ信号を受けた後は以下四つの演算をする
|
|
||||||
**(専門用語わからないので日本語訳はこれでおわり、あとは分かる方々お願いします)**
|
|
||||||
1. Calculate the derivative
|
|
||||||
2. Calculate the power of the waveform
|
|
||||||
3. Calculate the convolution of the power
|
|
||||||
4. Find the peak of the power convolution and compare it with the thresholds to see if there is a light or heavy hit
|
|
||||||
|
|
||||||
This picture shows the algorithm in a clearer way:
|
|
||||||
|
|
||||||
(Picture to be uploaded)
|
|
||||||
|
|
||||||
Step 1 is to elinimate the difference of Q-point, which makes it easier and more accurate to calculate the power of the waveform.
|
|
||||||
|
|
||||||
Step 2, calculating the power of the waveform, can also enhance the signal to noise ratio (SNR), which can further eliminate the noises. `LIGHT_THRES` is also used here to cut the low-power noises out.
|
|
||||||
|
|
||||||
Step 3 is to "polish" the power curve to make it more like a sequence of hit pulses, which makes it easier to find the power peak.
|
|
||||||
|
|
||||||
For Arduino microprocessors, the executing time for each loop is not stable - the processor always executes the instructions as fast as it can. Onece the loop ends, it immediately starts the next loop. This is extremely bad for sampling sounds. Therefore, the program implements a simple sampling frequency control mechanism to restrict the sampling frequency to no more than 1,000Hz.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
61
README_ja-JP.MD
Normal file
61
README_ja-JP.MD
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
[Click here for English documentation](README.md)
|
||||||
|
|
||||||
|
[中文文档在这里](README_zh-CN.md)
|
||||||
|
|
||||||
|
# 太鼓ドラムコントローラ - Arduino
|
||||||
|
|
||||||
|
オープンソースのハードウェアプログラムで、自分の「太鼓の達人」PCコントローラーを作りましょう。
|
||||||
|
|
||||||
|
## このプロジェクトについて
|
||||||
|
|
||||||
|
このプロジェクトは、自宅で自分の**ハードウェア太鼓**を開発するのを助けることを目的としています。
|
||||||
|
|
||||||
|
*このプログラムは個人的かつ非商用のみで使用してください。*
|
||||||
|
|
||||||
|
## 必要なもの
|
||||||
|
|
||||||
|
1. Arduino MicroまたはLeonardoマイクロコントローラ(他の互換ボードも動作する可能性がありますが、キーボードエミュレーションをサポートしているか確認する必要があります);
|
||||||
|
|
||||||
|
2. 4つの圧電センサー;
|
||||||
|
|
||||||
|
3. 必要な電子部品(ブレッドボード、抵抗器、LED、ジャンパーワイヤーなど);
|
||||||
|
|
||||||
|
4. 太鼓を一から作る場合は木材と切削ツール。市販の太鼓やビッグパワー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つのエリアの1つでロールし、シリアルモニターからの出力グラフを視覚化します。ヒット閾値は太鼓での最も重いヒットより小さくなければならず、リセット閾値はロールヒットの間の「洞窟」より大きくなければなりません。リセット値もヒット値より下である必要があります。
|
||||||
|
|
||||||
|
残りの3つのエリアについてもプロセスを繰り返し、すべてに適合する最適な値を見つけてください。
|
||||||
|
|
||||||
|
![コントローラースキーム](./images/tune_hit_reset.png)
|
||||||
|
|
||||||
|
2. サンプリング長
|
||||||
|
|
||||||
|
最大のランタイム速度のために、`cache.h`ライブラリは2のべき乗の`SAMPLE_CACHE_LENGTH`ウィンドウサイズで動作するように最適化されています。つまり、2、8、16、32などです。実際にはArduinoにとって16が最適な値ですが、少なくとも4000Hz以上の速度で入力をサンプリングする強力なマイクロコントローラを持っている場合は、よりスムーズ(つまり、ノイズが少ない)曲線のために値を32に変更できます。
|
||||||
|
|
||||||
|
3. 感度
|
||||||
|
|
||||||
|
すべての圧電センサーが同じではなく、設置エラーのために4つのセンサーから捉えられる信号は大きく異なる可能性があります。感度値は違いを正規化するための乗数です。次の例では、右ドンエリアが他の3つよりもはるかに高い値を生成しているため、`sensitivity`を`{1.0, 1.0, 0.5, 1.0}`に調整して問題を解消できます。
|
||||||
|
|
||||||
|
![コントローラースキーム](./images/tune_sensitivities.png)
|
||||||
|
|
||||||
|
センサーの設置が非常に重要です。センサーが木材にしっかりと取り付けられ、適切な位置にあることを確認してください。
|
61
README_zh-CN.md
Normal file
61
README_zh-CN.md
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
[Click here for English documentation](README.md)
|
||||||
|
|
||||||
|
[日本語のドキュメントはこちら](README_ja-JP.md)
|
||||||
|
|
||||||
|
# 太鼓达人控制器 - Arduino
|
||||||
|
|
||||||
|
开源硬件程序,用于制作自己的太鼓达人PC控制器。
|
||||||
|
|
||||||
|
## 关于这个项目
|
||||||
|
|
||||||
|
该项目旨在帮助您在家中开发自己的**硬件太鼓**。
|
||||||
|
|
||||||
|
*本程序仅限个人和非商业用途。*
|
||||||
|
|
||||||
|
## 你需要什么
|
||||||
|
|
||||||
|
1. 一个Arduino Micro或Leonardo微控制器(其他兼容板可能也可以工作,但您需要验证它们是否支持键盘模拟);
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
请注意,传感器的安装非常关键。您应确保传感器牢固地附着在木头上并放置在适当的位置。
|
Loading…
Reference in New Issue
Block a user