どうも、Nekosanです。
昨日、高専ロボコン九州大会がありました。
その大会に出場したロボットに積んでいた回路について、自分メモを兼ねて記事を書きます。
今年のロボコンは、コントローラー無しで、ロボットに触って操作してもいけないというルールです。
なので、笛を吹いて、その音を聞き分けることでロボットを操作しようと考えました。
そのためには音、今回は笛を使っているので、笛の音を聞き分けることができる回路が必要です。
で、作ったのがコレ
\デーン/
コンデンサマイクの信号をオペアンプで増幅して、マイコンのA/D変換ピンに接続してるだけ。
素晴らしく単純!!!
ただし、ただ音の大きさを調べるだけでは、歓声やロボットの動作音で誤動作する可能性が大きいです。
そこで、フーリエ変換という信号処理を行い、検出の精度を上げています。
フーリエ変換→http://d.hatena.ne.jp/Zellij/20120612/p1
マイコンはATMega328Pを使い、外部クロック16MHzで動作させてます。
信号をA/D変換した後、フーリエ変換で信号を周波数成分に分けます。
波形の中に、どの周波数がどれくらい在るかが分かるので、これを利用して笛を聞き分けてます。
笛の音の判別は、「どの周波数成分が強いか?」を調べて行っています。
フーリエ変換のアルゴリズムはここを参考にしました。
http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/
http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/ftmn1_2.html#sec1_2
実際にこの回路を使って出場しましたが、よく反応してくれて、歓声などの外乱もあまり影響を受けていないようでした。
詳しいことはまた別の記事に書こうかと思っているので、これぐらいで。
では。
0 件のコメント:
コメントを投稿
記事の感想、意見などはこちらからどうぞ。