Arduinoで音源方向に振り向く雲台を作れないか?
2chマイクにこだわって、いろいろと試しているのですが、
ネタをばらすと音源方向に振り向く雲台を作れないかと試行錯誤しているからです。
高速なサンプリングレートで扱うには、それなりのCPUパワーが必要という点で
Arduinoでは少し厳しいですが。Genuino101等の高速処理に向いたものならば
なんとかこなせそうな気がします。1アナログリードに27マイクロsec程度の
性能が出ます。
マイクとマイクの距離は近すぎると、到達時間の差があまり出ないので
10cmは欲しいところ。
マイクはこちらから購入。200円程度です。Rail to Railのオペアンプと言うらしいです。
VCCで与えた電圧の半分を中央に波形を出してくれると言う単純明快扱いやすいです。
左右2つのコンデンサマイクで取得した信号をオペアンプで増幅して
アナログ入力。1000個、値を拾って。
左右の波形の位相差を計算して距離に換算します。
計算方法は単純で左右の値を掛け合わせて和を求めて。最大になるところが
位相が一致したところとしています。
アルゴリズムはこちらを参照しました。
できたのは、こんな感じのプログラムです。
github.com
Genuino101が壊れた!
Uno R3という互換ボードを購入してアナログリードの性能を調べたら
116マイクロsecもかかってしまった。これは実用に耐えられなさそうだ。
でも、大丈夫以下の記事を発見。これをしたら、なんと20マイクロ秒まで速度アップしました。
ameblo.jp