記事の詳細
周波数レスポンスアナライザ特集 第5章 動作テスト
PICマイコンのハードウェアとソフトウェア、タブレットのアプリケーションが完成した全体外観が写真5-1となります。
ここまで完成したらいよいよ動作テストです。
動作テストの仕方は、最初はアナライザ本体の出力と入力のRCAジャックを写真5-1のように短いケーブルで接続して行います。これでアナライザは、自分自身の出力を折り返してレベル測定をすることになります。つまり自分自身の周波数特性を計測することになります。
5-1 電源と単体動作の確認
この折り返しの接続状態でアナライザ本体に電池かACアダプタを接続して電源を供給します。まず全体を手で触ってみて熱くなっている部品がないかどうかをチェックします。万一熱くなるICなどがあったら直ぐ電源を抜いて配線等を確認します。
これでRN-42XVPモジュールの緑のLEDが点滅すれば動作を開始しています。このとき1kHzの正弦波が出力されているはずです。オシロスコープがあれば確認できます。出力のRCAジャックにイヤホンを接続してピーという音でも出力を確認できます。
タブレットのアプリケーションを起動し、「端末接続」のボタンをクリックします。端末リストが表示されたら、「FireFly-xxxx」という名称になっている端末を選択します。初めて接続した場合はペアリングの認証ダイアログが表示されますから、PINコードを要求されたら「1234」と入力してOKとすれば接続開始できるはずです。
端末接続ボタンのすぐ下のメッセージ欄が「接続待ち」から「接続中」になり、しばらくして「接続完了」となれば正常にBluetoothの接続ができたことになります。「接続失敗」となった場合は再度端末接続ボタンをクリックします。電波状況により何度か繰り返す必要がある場合もあります。
接続完了となったら、「一定f(Hz)」ボタンをクリックします。これで設定周波数欄に入力されている周波数の正弦波が出力され、下側にあるレベル表示欄に何らかの値がdB表示されればレベル入力側も正常動作しています。このレベルはまだ未較正ですから値は正しくありません。
5-2 デシベルレベルの較正
次に、デシベル値の補正ができていない状態ですので、較正をします。手順は次のようにします。
(1) プログラムの修正
まず、較正のためにA/D変換の生の結果を表示できるようにする必要があります。リスト4-5の固定周波数出力処理内の次の部分のコメントアウトを入れ替えます。つまり実機調整用の行のコメントアウトをはずし、その上の表示の行をコメントアウトします
// text12.setText(Float.toString(Level)); // 表示
text12.setText(Integer.toString(temp)); // 実機調整用
これでコンパイルしなおして実機に書き込んで動作させます。
(2) 較正用の基準となる値の取得
オシロスコープで、正弦波の波形の振幅が0dB相当の2.19V(ピークピーク)になるようにツマミ付きボリュームで調整します。この時のレベル表示欄の値をメモっておきます。(筆者の場合これが2030となりました)
次に-20dB相当の0.219V(ピークピーク)になるようにツマミ付きボリュームで調整し、このときのレベル表示の値を読み取りメモっておきます。(筆者の場合これが1530となりました)
この2つの値をXとしそのときのdB値をYとして、Y = aX + b の一次式としてaとbを求めます。
つまり筆者の場合 0 = 2030a + b と -20 = 1050a + b の2つの式となります。これからaとbを求めて Y = 0.04×X-81.2 となりました。
この式のXに測定値を代入すればデシベル値Yが求められることになります。
また、グラフ化するときの値は、10dBを150ドットで表示し、プログラムでは整数扱いとするため
(150*(temp – 2030))/250で計算しています。
(3) 取得した結果でプログラム修正
この較正結果でプログラムのリスト3-4-5の補正計算の部分(2か所)を修正します。リストでは次のようになります。
// レベルの実機補正と格納
// 実機測定 0dB=660 -20dB=500 傾き80/10dB
Level = (float)(0.04*temp – 81.2); // デシベルに変換
// レベルの実機補正とスケール変換後バッファへ格納
// 実機測定 0dB=2030 -20dB=1050 傾き 250/10dB 10dBで150ドット
DataBuffer[BlockCounter] = (150(temp – 2030)/250; // バッファへ保存(Y値) Level = (float)(0.04temp -81.2); // デシベルに変換
こうして修正したあと、(1)で修正した部分をまた元に戻して再コンパイルして書き込みます。
今度はデシベル値も正確な値となっているはずです。
5-3 実際の測定例
自身の出力と入力を直接接続した状態で、スイープボタンをタップすれば順番に周波数を上昇させながら測定を繰り返し、グラフを描画していきます。
出力を0dBに合わせて実際に測定した結果が図5-1となります。この測定結果がこのアナライザ自身の周波数特性ということになります。図からわかるように10Hzから1MHz程度まできれいなフラット特性となっていますから、オーディオ用には十分役に立つと思います。
実際に簡単なコイルとコンデンサだけでLCフィルタを構成して特性を計測した結果が図5-2、図5-3となります。図5-2はローパスフィルタ構成とした場合で、図5-3がハイパスフィルタ構成とした場合の特性です。このように回路の周波数特性がすぐ眼で見られるというのは、結構便利に使えます。
5-4 データのファイル保存、読出し、削除
測定結果のグラフデータはファイルとして保存することができます。測定後、ファイル名入力の欄にファイル名を入力してから「SAVE」ボタンをタップすればデータが保存されます。保存すると一番下のファイル名一覧に追加されます。
保存したファイルは読み出すこともできます。ファイル名を入力したあと、「READ」ボタンをタップすれば指定ファイルを読み出してグラフ表示します。
同様に、ファイル名を指定してから「DEL」ボタンをタップすると指定ファイルが削除されます。もし指定ファイルが無い場合にはエラー表示されます。
5-5 パソコンへデータを送信する
画面上で「SEND」というボタンを使うと、現在グラフ表示中のデータをパソコンにCSV形式で送信することができます。
手順は次のようにします。データはグラフ表示されているものが対象になりますので、実際に測定した後か、READでファイルを読み出してグラフ表示させてから実行する必要があります。
① 通常の手順で周波数特性測定器とBluetoothで接続して特性をグラフ描画する
または、ファイル名を入力して「READ」ボタンをタップして読み出し表示する
② パソコンのBluetoothとペアリングを完了し、パソコン側のBluetoothでCOMポートを有効化する
この手順はWindows 7の場合には次のようにします。PC側のBluetoothを有効化したあと、Nexus 7側での設定でペアリングを実行します。これで図5-4のように両方にペアリングの確認のダイアログが表示されますから、Nexus 7側で「ペア設定する」とすれば自動的にペアリングが行われます。
Nexus 7の場合BluetoothでAudio転送を含め多くの機能が実行できますが、COMポートはデフォルトでは有効になっていませんので、Nexus 7とペアリングを実行したあと、「Bluetooth設定」を起動して開く図5-5のダイアログでCOMポートを追加して通信を可能とします。
このダイアログは使うBluetoothモジュールによって異なりますので、Bluetoothドングルを使うような場合はドングルの説明書にしたがってください。
③ パソコンでTeraTermなどの通信ソフトを起動し上記のCOMポートで通信を可能な状態とします。
通信速度を115200bpsとします。(速度は設定しなくても正常に動作します)
④ Nexus 7側からパソコンとBluetoothで接続するため、「端末接続」ボタンをタップしてパソコンを指定して接続します。
⑤ 「SEND」ボタンをタップしてデータを転送する
これでパソコンの通信ソフトで図5-6のようなデータを受信することができます。
⑥ 受信したデータをすべてコピーし、テキストエディタに張り付けて拡張子をcsvとしてファイル保存します。
⑦ 保存したファイルをExcelで開き周波数とレベルを散布グラフとして作成します。
実際に作成した例が図5-7となります。
タブレットに表示されたグラフとまったく同じグラフがパソコンでも再現できます。
以上で周波数特性測定器の製作は完了です。ちょっと小さな表面実装部品が多くなりますから工作はやや難しくなりますが、立派に測定器として使うことができますから、結構便利な道具となるものと思います。
著者略歴:後閑哲也
1947年 愛知県名古屋市で生まれる。
1971年 東北大学工学部応用物理学科卒業。大手通信機器メーカに勤務
2003年 有限会社マイクロチップ・デザインラボ設立
計測制御システムの開発コンサルタント
2012年 神奈川工科大学 客員教授