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

開発テーマ

ソナーの開発
ソナー開発予備実験 「PICマイコンによる音の制御2~誤差率300%→3%への道~」

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

現在ソナー開発では、異なる3つの場所からそれぞれ異なる周波数の音波を出力しマイクで測定することで、マイクの位置を三次元的に決定するプログラムの開発を目指しています。 まず前回の課題だった、「3つのスピーカーから同時に異なる周波数の音を発生させる」方法は解決しました(八重樫製作所参照)。しかし、LabVIEWを用いてスピーカーの音を測定したところ、PICマイコンにプログラミングした周波数と実際に測定した周波数が大きく異なっていました。 そこで、今回はPICマイコンをより正確に制御するためのトラブルシューティングを行いました。

課題

PICマイコンにプログラミングした周波数と、実際にLabVIEWで測定した周波数の誤差の原因を調べ解決する。
※開始時の誤差率:300%以上

①プロミングで定義した関数のミス

これは私(八重樫和之)の組んだプログラミングの中にミスがあった。 プログラミングの中で入力した周波数から信号の出力する間隔を計算する部分があるが、構造化する際に余計に2で割っていた部分があった。 大野科学者の指摘で気づいた。

②PICマイコンと発振子の定義値の違いによる誤作動

今回使用しているPICマイコンは外部から発振子を繋ぐタイプである。したがって、PICマイコンに発振子の周波数を 今回使用した発振子の周波数は20[MHz]。 これに対してプログラミングでは周波数の基準を10[MHz]で定義していた。 このズレによって、プログラミングした値の2倍の長さの信号が出力されていた。 そこでプログラミング部分も20[MHz]に修正した。
※この時点で誤差率:40%

③PICマイコンの仕様による誤作動 ~誤差率5%未満へ~

①、②の解決をしてもなお、理論値と実測値のズレは大きかった。 そこでPICマイコンと発振子の仕様書の周波数範囲に着目した。 すると、今回使用しているPICマイコン(16F84)の周波数範囲は10[MHz]までであった。 周波数範囲の最大値が10[MHz]のPICマイコンに対して、20[MHz]の発振子を使用していたことに気づいた。これが誤作動の原因だと考えられた。そこでPICマイコンの周波数定義、発振子のどちらも10[MHz]に変更した。
※この時点で誤差率:5%

④ソフトウェアによる、ハードウェアの誤差のカバー

ここまでの段階で誤差率を5%まで引き下げることができた。
最後に、ハードウェアの誤差をソフトウェア、すなわちプログラミングによりカバーすることにした。 具体的には、誤差率である5%だけPICマイコンの周波数の定義をずらした。 10[MHz]→10.5{MHz}のように、誤差が出た分だけPICマイコンの中の時間の基準をずらし、誤差率を下げた。 最終的にプログラミングによる理論値の周波数とLabVIEWで測定した周波数との誤差率は3%となった。この程度の誤差であれば今後の実験に支障はないと考えられる。
※この時点で誤差率:5%

次回はいよいよ三箇所からの異なる周波数の音から三次元でのマイクの位置の特定するプログラム開発を目指します。

(タグ: , ,

▲このページのトップ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との接続に失敗しました