★ 英語学習&ドラムマニアのホームページ ★

★ 英語学習&ドラムマニアのホームページ ★

AD変換を使った電子ドラム


■AD変換を使った電子ドラムの作成(2005.4.2)

さてさて、、前回は隘路事項ということで、PICが信号を拾えるほど大きな電圧が出なかったという、困ったことが起きておりましたが。。
今回は、その問題を解決するために、AD変換を使ってパッドが叩かれたことを検知してみましょう。

AD変換とは、アナログ信号をデジタル信号に変換することを言います。
ドラムパッドが叩かれ、その音をマイクが拾い、増幅回路が入力された音を増幅するわけですが、パッドが比較的強く叩かれた場合は増幅信号は大きく、一方ノイズ等で微小な音が拾われた場合は小さな信号となります。

今までの問題点は、

 1)叩かれたときの信号と、叩かれた後の余韻で生じるノイズ信号との区別が出来ず、チャタリングが発生していた。
 2)増幅回路の作り方が悪く、PICがON入力と判定する程度の高い電圧が発生しなかった。

となります。特に2)は、ON入力は5V付近まで大きく信号を増幅する必要がありました。

上記の2つを見ると、増幅回路の出力をアナログ的に見れば解決してしまう問題になっています。

ということで、AD変換機能を持つPICを使ってしまえば問題解決!となります。

どのように解決するかというと、、、

1)について
叩かれたときの信号とノイズ信号の電圧を比べると、叩かれたときの方が高いはず。

2)について
増幅回路の出力が5Vに達しなくとも、閾値を低く設定することで叩かれた信号を拾ってあげることが出来る。たとえば頑張って叩いても2Vしか出ないのであれば、1Vを超えたかどうかを判定し、超えていれば叩かれた、という処理をPIC内でやってしまう。

以上が、今回AD変換を使う理由です。

さて、次は回路について説明しましょう。

基本的な回路図は前に記載したとおりです。

マイクとしてECMを使い、2SC1815というトランジスタを使って増幅する、そして、(上手く動いてませんが)B級増幅回路となるように抵抗値を選定しました。

次はPICですが、今回はPIC16F819というものを使用しました。
特徴としては、PICの代表的な入門チップである16F84とピン配置等がコンパチとなっていて、AD変換ポート5つ、さらにSPI通信(今回は未使用)も使える、お得なPICです。

トランジスタの出力をPICのAD端子に繋ぎます。
で、この電圧がある値以上となる場合のみ、PICからプレステコントローラに向けて出力信号を出すようにします。

PICの出力は、AD端子ではないピンを使用し、1Kの抵抗を介して、2SC1815のトランジスタをドライブします。

出力側のトランジスタは、プレステコントローラのボタンを押下した状態にするスイッチです。このトランジスタのコレクタに、押下したいボタンの部分の回路を引っ張って繋げればOKです。


ということで、実際に作ってみましたが、初めはプレステコントローラと作成した回路の出力の繋ぎ場所を間違えていて、出力のトランジスタがずっと導通状態になって困りました。

きちんと回路を辿って、正しい箇所に繋いだら、上手く動きました。

しかし、やたらとチャタリングが出まくっていたので、可変抵抗を調整して頑張ってみましたが、微妙。。。でも、可変抵抗を変化させると状態が良くなったり悪くなったりと、明らかに動作に影響を与えていることが確認できました。つまり、調整の具合で何とかなるんだな、、、という感触を得ました。

で、、、PICプログラムを微調整して、閾値を下げる、そして入力を受け付けてから比較的長め(msecオーダ)のウエイトを入れたところ、相当いい感じに動くようになりました!!!
3連などにもきっちりついてきてくれています。

試しに、某○TX○ani○にて、「花火」をプレイしてみました。
パッドは1つしかないので、このパッドを「ハイハット」として設定。

プレイしたところ、フルコン達成!!!

「花火」は簡単な曲ですが、「チチッ」や「チチチッ」など、細かい2連、もっと細かい3連が含まれるんですが、きちんと反応してますがな。



ということで、いままで長い間検討してきました「電子ドラム」ですが、ここでひとまず休憩、とさせて頂きたいと思います。

作成方法、回路図、プログラムの公開につきましては、早いうちに「別ページ」にて纏めさせて頂きます。

初めから作成方法のみを纏めれば分かりやすいとは思いますが、今回のコンセプトは、「どんなことを考え、どんなことを乗り越えて完成に至ったか」ということをリアルタイムにお伝えしたかったため、連載ものとして、考えたことをだらだらと書かせていただきました。


今後の予定としては、1つだけだったパッドを複数個に増やす!
というものを計画しています。
とはいえ、単に複数個の増幅回路を作って、PICプログラムを複数個対応とすれば済む話なので、たいした計画ではないですが。。。
この作成についても追々お伝えしていければと思います。


以上!!




© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: