先日から取り憑かれている「マイコンで音声処理」
って関係で、ブレッドボードでちょこっと実験。
音声出力関係はこれまでにもPWMでFM音源とか
色々やっているのでこれはそのまま応用できるとして、
いままで音声を入力する回路といえばラインレベル入力
をLM386でスピーカー出力みたいなデータシート
どおりみたいなものばかり。
やってみたかったのは、エレクトレットコンデンサマイク
(ECM)を使ってADコンバーターからリアルタイム
音声入力をしてみる、みたいなこと。
で、ECMなんですが、以前見つけたこのサイト
http://www.epanorama.net/circuits/microphone_powering.html
にパワーライン/GNDラインと出力信号の線を
どんな風に繋げばよいのか、みたいなことは
バッチリ書いてあります。出力インピーダンスの
設定の仕方とかも。
が、このページで判らなかったのは、そもそもの
ECMの出力電圧幅と、それをどのくらい増幅すれば
いいのかということ。
で、色々調べてみたんですが、一般的なECMは
数mVpp~数十mVpp程度らしく、それを
ラインレベル(2.5Vpp)まで増幅するには
およそ50~200倍程度に増幅すればいいみたい
ってことが判りました。
スイッチサイエンスのこのキット↓
http://www.switch-science.com/products/detail.php?product_id=141
なんかだと、100倍に設定されているみたい。
なるほどね。
で、いきなりマイコンのADコンに繋ぐよりも、
この手のアナログ信号はやっぱ手にとったり
触ったり見たり聞いたりしたいってことで、
ECM→オペアンプ→音声アンプ→スピーカ
って感じで繋ぐ方針で。オペアンプは適当な
FET入力タイプってことでNJM072Cを。
音声アンプはラクチンなLM368を。
スピーカはとりあえず秋月で100円で買った
プラスティックコーンのやつを使うか、
もしくはいつも使ってるヘッドホン(イヤホン?)
を使うことに。
マイクは色々定評のあるWM-61Aをチョイス。
オペアンプと音声信号の間にはHPFを構えて、
超低周波のノイズはここで除去してしまおうという
オマケつき。
で、やってみると…
音が出ない。
っていうか、マイクを叩くとなんかコツコツと
スピーカから出るみたい。どこかおかしい…
殆どデータシートの回路図を取り出して繋ぎ合わせた
程度なのに、こんなのが動かんでどうするよ!
と思うも、オシロをあてても何が悪いのか良く
わかんない…。
テスターを取り出して、あちこちあたってみるも
いまいち…。
ふと、ある抵抗の値に目が行く。
おっ!5.1kΩのはずが5.1オームだ!アホだ!
計算するとHPFのカットオフ周波数が30Khz以上
聴こえるわけ無いじゃん!
オマケでつけたローパスフィルターのところなんですが、
そのオマケにバグがあったとは…こまったもんです。
道具箱を探してみると、5.1kって持ってなかったのね…
とりあえず4.7kで代替。ようやく上手く行きました…
5V電源で動かしてみたんですが、想定どおり2.5V
を中心にして1~2Vpp程度でオペアンプから電圧
が出力され、それをボリュームを通してLM386に
接続。スピーカーから音が出るわけ。
そしたらLM386のかわりにマイコン繋げばいいって
わけです。
うーん、でもなんか音が良くないな。ノイズが載っちゃう。
スピーカはイマイチなのが判っているので、これを
ヘッドホンに換えてみる…
だいぶマシ。っていうか、ECM自体は凄く細かい
部分まできちんと拾ってるのね、このECM。凄い!
ようやくECMとマイコンを繋ぐための
基礎実験が完了したと思って良さそうだな。
でもやっぱホワイトノイズが酷い…。
これはLM386のせいだな。簡単に使えるのは
いいんだけど、やっぱ音質はイマイチなんだよな。
まぁLM386のことは放って置こう。
強いていえば、今回はオペアンプの出力に
ボリウムをつけちゃったけど、ECM→オペアンプ
→マイコンと繋ぐなら、ゲインはオペアンプ側で
調整できないといけないな。
帰還抵抗を可変抵抗にするのは良くないらしいので、
非反転入力側の抵抗値を可変にする方向で
ちょっと考えてみるか…。
まぁいずれにしても、ECMをマイコンに繋いで
音声入力する道筋はできたゾ。
|