TOP > n.s.研究所 > 開発テーマ > 作ってみた > ソナーの開発

開発テーマ

ソナーの開発
ソナー開発実験「三次元でのマイクの位置の変化を特定する系の開発2 トリガパルスの導入」

文責:八重樫 和之 (2007年12月 8日) カテゴリ:ソナーの開発日誌

今回は、前回に引き続きマイクの位置の変化を三次元的に特定するプログラムを開発しました。課題は、前回の問題点である「スピーカーの初期位相のずれ」を修正することです。解決方法として、トリガパルスの導入があります。すなわち、スピカーを一つ増やしそれを基準として3つのスピーカーの位相を定義します。
今回トリガパルスとなるスピーカーの導入、さらにトリガパルスをLabVIEWで認識するプログラムを考えました。

問題点とその解決方法

①PICマイコンを用いて4つのスピーカーを同時に制御する
②トリガパルスをコンピュータ上で認識した上で解析を行うプログラミングの構築
の二つの問題がある。
まず、①の問題について考えた。3つのスピーカーのPICマイコンによる処理は関数を3つ定義することで行っている。したがって、4つのスピーカーを制御する場合、関数を4つ定義すればよいように思える。しかし、PICマイコンのメモリの関係上、関数を4つ以上定義するとエラーが生じて、プログラムをコンパイルできない。大野科学者による助言と、八重樫研究生(私)の試行錯誤の結果、一つの関数で場合わけを行うことで4つのスピーカーの同時制御に成功した。
考え方は以下の図のようになる。

次の問題として②の問題がある。トリガパルスを基準にして他の3つのスピーカーの音波を解析する。したがって、まずはトリガパルスをコンピュータ上で認識し、一定区間で波形を切り取る方法を考える必要がある。
まずは、トリガパルスと他のスピーカーから出る音の波形をマイクでコンピュータに取り込み見てみる。当たり前のことだが、トリガパルスとして使用するスピーカーはマイクの間近に置くため振幅も大きくなる。トリガパルスは周波数を明示的に小さくし基準としている。
図示すると、以下のようになる。

トリガパルスを認識するには、一定の振幅を超えたかどうかで判断する。 そして、一定の振幅を越えた時点から数秒間の波形を切り取る。 以上の作業を繰り返すことで、トリガパルスとして定義した音波を用いて一定区間の波形を切り取ることができる。 次に、スピカーから出る音を、上記で定義した区間で初期位相をそろえたい。 そのためには、スピーカから出る音波の周波数をトリガパルスの整数倍となるようにする。しかし、ここで問題が発生した。トリガパルスの整数倍の周波数が出せないのである。 ちなみに、スピーカーの音波の周波数はすべてPICマイコンで定義している。したがって、原因はおそらくPICマイコンにある。バグ取りの結果、PICマイコンのプログラミングのミスは多少修正したが、それを修正しても必要な周波数が出せない。

次回はP3つのスピーカーでそれぞれトリガパルスの整数倍の周波数を出す方法を考え、「三次元でのマイク位置の変化の特定する系」の完成を目指す。


▲このページのトップn.s.研究所 トップ

関連記事

ソナーの開発








日誌


▲このページのトップn.s.研究所 トップ

n.s.研究所

About n.s.研究所

Activity 活動予定

Thema 研究テーマ

単細胞生物の行動に関する研究

多細胞生物の行動に関する研究

社会性昆虫の行動に関する研究

人の認識に関する研究

環境に関する研究

Thema 開発テーマ

ロボットの開発

作ってみた

Lecture 講義

コンピュータ・サイエンス講座

マイコン・サイエンス講座

Library ライブラリ

LabVIEWを使った物理数学集

VisualC++

Report 報告

学会等での発表

論文発表

その他の報告




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました