バットディテクター(Bat Detector)の製作

バットディテクター(Bat Detector)の製作

[TopPage] -> [PIC] -> [BatDetector]  |   [blog]
[はじめに]  [1号機]  [2号機]


 ナイキスト方式バットディテクターの2作目を開発するにあたり、なるべく小型にすることを目標にしました。
 今回の設計の要点(目標)は

1) 前回の反省からスピーカ出力はせず、またボリューム(結構場所を食う)も省略する。
2) ボタン電池式にしようかとも思いましたが、充電できないというディメリットのため、電源は乾電池にする。
3) 乾電池も場所を食うのでニッカド電池2本で動作するようにする。
4) 2.4Vでレールツーレールくらいに出力を振るために増幅回路はトランジスタで組む。
(2.4V動作の単電源レールツーレールのオペアンプは入手困難・・あるかも不明)
5) 超音波マイクは高価かつ大きいので小型コンデンサマイクで可聴音以上まで特性が伸びているものを使用する。
(たまたま秋月さんから購入していた小型コンデンサマイクは20kHzを越えてもセンスできている)
6) サンプリング周波数は切り替え式とし3通り程度に切り替えられるようにする。
(バンドパスフィルタまでは切り替えしない・・ということで妥協^^;)

です。

 まず、前回からの開発環境の変化として回路シミュレータであるSPICEを導入しました(^^)
 SPICEによってPC上で増幅率や周波数特性をモニタしながら回路を試行錯誤できるため設計がずっと楽ちんになりました(^^)/

 マイクアンプ部の回路図と出力をシミュレートしたものがこれです。

回路図 出力シミュレート 周波数特性


 前回の一番の課題であったノイズについては、オシロで確認もできず(プローブを繋いだだけでノイズがすごい)、難航しましたが試行錯誤した結果、次のことがわかりました。

1) A/Dサンプリング周期とPWM出力周期は1:Nの関係にないとPWM出力の影響がA/D値に現れる(パスコンで排除しきれない)
2) A/DとPWMの周期を合わせただけでは駄目で何かしらの同期が重要になる。
例えば無音時のA/D変換タイミングとPWM出力の立上り/立下りが重なるとノイズが発生する。
 
 1は前回BDでもクリアしていることですが、2が非常に重要かつ同期タイミングは電源電圧や配線の引き回しからの影響を受けるようで結局は試行錯誤して最適値を見つけました。
 うまく調整すると無音時は出力も無音かガイガーカウンタのようにポツ・ポツというような音(A/D変換のLSBが変化する程度)までになりました。

 シミュレータで確認後、ブレッドボードで確認している様子が右の写真で完成した回路図がこれです。  




【ソフトウェア編】

 先のコメントで書いたように今回は3通りのサンプリング周波数に切替えられるようにしたのですが、現状態を認識できるように1個のLEDでそれぞれの状態に応じて「1回点灯」「2回点灯」「3回点灯」のパターンを繰り返す表示を行うようにしています。
 また切替えスイッチを押した時もピッ音の回数でどの状態になったかわかるようにしました。

 LED表示やキーセンス(当然チャッタリング防止もソフト処理)をA/D変換ループ内に入れ、かつ、切替え処理以外のどのルートを実行した場合でもステップ数がきっちり同じになるようにする必要があります。
 また、サンプリング周波数の上限はなるべく高くしたいのでこのループ処理は1ステップでも短くなるようにする必要があります。(この辺の開発工程が面白いのですが^^)

 前回のBD製作時に発見したA/D変換中断の裏技を使ったこともあり、結果としてサンプリング周波数の上限は47.6kHzまで確保でき

mode ループステップ数 サンプリング周波数
70 28.57kHz
52 38.46kHz
42 47.62kHz

の3通りを切替えできるようにしました。(PICのクロックは内蔵8MHz←電源電圧からするとPICの規格外だけと動作している^^;)

 電源投入後は2の38kHzモードになり、スイッチを押す度に 2→3→1→2・・・ と切替わります。
 前のコメントに書いたノイズ削減のためのA/D変換とPWM出力の同期パラメータはEEPROMの先頭から1バイトづつ48kHz、38kHz、28kHzの順番で設定していますので0〜35位の間でノイズが最小になるように調整します。(時間があれば、スイッチ操作で設定パラメータを変更できるようにしたい・・)
 調整時にTVをつけていたりするとTVの音を拾います。前回作よりも増幅率を上げているので指先を擦る音が50cm以上離れても聞こえます。

 製作したプログラムのHEXファイルがこれです。

 そういえば子供の頃(うん十年前)、TVの裏に回ると水平同期の15.7kHzの音が聞こえました。
電気屋さんのTV売り場に行くと水平同期の音がうるさいくらいでした。
 今、そんなことは全然気にならなくなったのはTVの性能が上がり音波や電波のノイズレベルが低下したためか、はたまた年と共に高音の可聴域が狭くなったためか^^;;

 BDから聞こえるTVの音はTVからの電波ノイズを拾って聞こえているのか??とも思いましたが、BDを振って見たり、マイクの前で手を振るとドップラー効果でノイズ音が変化するので音波を拾っていることは確かです。
(ディテクターで周波数ダウンしていると可聴音域での普通の音よりもドップラー効果の効果が大きくなる)




【製作編】

 始めの方で書いたように今回は小型で携帯性に優れたものにしたかったので、汎用基板(秋月さんから購入の両面スルホールタイプ)から切り出した小さな基板にまとめてみました。

 抵抗はなるべく1/6Wの物を使いましたが、一部手持ちに無いため1/4Wも使用しています^^;。
 製作した基板の写真がこれです。部品は秋月さんと鈴商さん(スイッチ、コンデンサやイヤホンジャック等)からの購入部品です。


 1/4Wの抵抗がでかく見えます(笑)。ケースに入れる関係で高さをなるべく低くしたかったのでトランジスタの足もかなり短めです。


 なぜ、こんな細長い基板に詰め込んだかというと・・・ケースには単三電池ケース(3本用のスイッチ付きタイプ)を使いたかったためです。
 「レーザポインタの製作」の記事でも電池ケースを使いましたが電池ケースを使うメリットは

1) 電池ホルダの実装を心配する必要がない(もともとが電池ホルダケースなので当然ですね)
2) 一般的な汎用ケースに比べ安い。^^
3) 電源スイッチ(電源用のコードも)まで付いている。
4) 街で持ち歩いていてもあまり違和感がない。(アルミケースだと流石に人目が気になります)
5) 加工もそこそこし易い(小さくまとめる必要はありますが)

 もともと電源コード用にあった穴を大きくし、イヤホンジャック(基板側に実装)用にし、LEDとコンデンサマイクは新たに穴を空け瞬間接着材で固定しました。
 スイッチ(鈴商さんから購入したものでストロークが小さくクリック感がGood)の穴も空け、スイッチの軸を削ってケース面と合わせました(概観上、ほとんど目立たない^^)



 蓋をした時の外観がこれです。



 かな〜り(「な」にアクセント)かっこ良くありませんか?(笑)

 消費電流は無音時で約2mA、LED点灯時は+1mAでLEDはモード3でも点灯比率が3/8なので平均値としては約2.4mA程度です。


[はじめに]  [1号機]  [2号機]
[TopPage] -> [PIC] -> [BatDetector]  |   [blog]