ワイアレス周波数特性アナライザ(タブレット側)


【周波数測定器の概要】

PICマイコンで測定した周波数特性のデータを、Bluetoothの無線通信を使って
タブレットに送信し、タブレットでグラフ化して表示するシステムを製作しました。
10Hzから10MHzまでの任意のデバイスの周波数特性を測定することができます。

完成したシステムの全体外観が下図のようになります。
基板のままですが、PICマイコンで制御するアナライザ本体とで構成されています。
結果をグラフで表示するタブレットにはNexus 7(2012)Nexus 7(2013)を使っています。
解像度が異なりますのでグラフの解像度が違います。下記はNexus 7(2012)です。
アナライザ本体の方は共通で使えます。



【全体構成と仕様】
製作する周波数特性アナライザの全体構成は下図のようにします。
周波数特性の測定はPICマイコン制御によりボード側で行い、結果をPICマイコンから
Bluetoothによる無線通信でタブレットに送信し、タブレット側でグラフ表示を行います。



Bluetoothモジュールにはマイクロチップ社が販売している旧Roving Network社製の
RN42SMを使っていますが、RN42XVPでも問題なく動作します。
このモジュールとはTTLレベルのUARTに直結できる信号で接続できますので
PICマイコンからも簡単に制御できます。

測定時の手順は、最初にタブレット側で「端末接続」ボタンをタップして、「Analyzer」と
いう端末を接続してから、「スイープ」ボタンをタップすると計測が開始されます。

タブレット側から周波数設定値を無線送信すると、それを受信したPICマイコンが
DDS(Direct Digital Synthesizer)を制御して、指定された周波数の正弦波を生成し
被測定機に向けて出力します。出力レベルはレベル調整用の可変抵抗により手動で
行います。

被測定機を通過して出力された信号をログアンプでデシベルに比例した直流電圧に
変換します。この直流電圧をPICマイコンのA/Dコンバータでデジタル変換し、
やはり無線でタブレットに折り返します。
タブレット側は受信した信号レベルでグラフを描画します。この動作を一定間隔で
タブレット側から順次周波数を更新しながら繰り返して周波数特性グラフとして表示します。

周波数特性アナライザとしての機能は下表のようにするものとします。
できるだけ簡単な構成となるよう、1チャネルだけとし、一定の周波数を連続出力
する機能と、周波数をスイープして特性グラフを描画する機能だけとしています。
項 目 機能・仕様 備考
端末選択機能 Bluetoothで接続する端末をリストから選択して接続 Bluetoothモジュールがすべて実行する
固定出力機能 テキストボックスに入力した周波数を連続して出力し、被測定器の出力レベルをデシベル値で表示する 設定周波数範囲は上限10MHzで制限。実力は3Hz〜5MHzで3Hzステップ
スイープ機能 10Hzから10MHzの周波数を順に出力し、その時の被測定器のレベルを計測してグラフに描画する。同時にデシベル値も表示する 周波数更新間隔は約120msec

周波数特性アナライザの入出力などの仕様は下表のようになっています。
これらは大部分使用した機能ICの特性となっています。
 項目 機能・仕様   備考
電源 DC5VのACアダプタから供給
消費電流
最大80mA(Bluetooth非接続時)
 最大100mA(Bluetooth接続時)
 消費電流値は通信中は変動する
Bluetooth
モジュール
Bluetooth V2.1+EDR対応
プロファイルはSPPでスレーブ動作
UARTとは115.2kbpsで接続
マイクロチップ社製
RN-42XVP
DDS周波数出力 DDSによる正弦波出力
 10Hz〜10MHz 最小3Hzステップ
アナログデバイス製AD5932
出力アンプ特性 10Hz〜10MHz  (−3dB範囲)
出力レベル:8dB〜−30dB調整可能
実際の被測定機への出力となる出力レベルは基板に実装した可変抵抗で調整可能
レベル入力 ログアンプで入力
 20dB〜−50dB 分解能 0.1dB
 周波数特性 DC〜100MHz
アナログデバイス社製 AD8310
PICマイコンの10ビットADCで入力
表示 7インチタブレット Android V5.0
グラフ表示解像度
 1000×700ドット(Nexus7(2012))
 1500×1020ドット(Nexus7(2013))
 横軸:10Hz〜10MHzまで対数目盛
 縦軸:20dB〜−50dB
ASUS社製
 Nexus 7(2012)
   表示解像度は1280×800
 Nexus 7(2013)
   表示解像度は1920×1200ドット

これらの機能を実現するためのBluetoothの無線通信データのフォーマットを下表のようにします
 機能  タブレット → PICマイコン タブレット ← PICマイコン 
 計測開始
コマンド
開始トリガコマンド
「’S’、’T’、’E’」
以降、一定時間間隔で周波数設定コマンドを送信する
応答返送
「’M’、’O’、’K’
 周波数設定
コマンド
周波数設定値を4バイトのバイナリ値で送信
「’S’、’N’、F1、F2、F3、F4、’E’」 
  F1:設定周波数下位1バイト目
  F2:2バイト目、F3:3バイト目
F4:4バイト目(最上位)
応答として信号レベルを2バイトのバイナリ値で返す
「’M’、’N’、L1、L2、’E’」
  L1:レベルの下位バイト
  L2:レベルの上位バイ

この通信データフォーマットを使って、下図のような手順で機能を実行します。
機能実行はタブレット側で「スイープ」ボタンをタップすることで開始されます。
図はスイープボタンをタップした場合で、タブレット側から計測開始コマンドを送信します。
これを受信したPICマイコンはOK応答を返します、

OK応答を受けたタブレットは周波数設定コマンドで最初の設定周波数を送信します。
PICマイコンは送られて来た周波数をDDSに設定出力し、一定時間後に被測定機器の
出力を入力してその値を無線でタブレットに送り返します。

タブレットはそれを受信してグラフに描画します。グラフ表示後、次の周波数に
更新して再度周波数設定コマンドを送信します。
この手順をグラフの右端になるまで繰り返していきます。



【タブレットアプリの全体構成】

タブレットのアプリケーションプログラムは、Android OSのもとで動作するアプリ
を製作することになりますので、Eclipse+Android SDKという環境で
Java言語を使って製作することになります。
 
製作するアプリの全体の構成は下図のようにしています。



全体を下記の3つのJava実行ファイルで構成しています。

 ・BT_FreqAnalizer.java
 ・BluetoothClient.java
 ・DeviceListActivity.java

Bluetoothの端末探索と送受信を制御する部分は独立ファイル構成としています。
この部分は、Googleの例題を基本にしていますので他のBluetoothを使うアプリ
にも共通で使えます。

この他にリソースがありますが、レイアウトはプログラムですべて記述しています
のでリソースにはありません。文字列のリソースも表題のみです。
マニフェストが重要な働きをしています。Androidタブレットには標準でBluetoothが
実装されていて、それを駆動するためのAPIも標準で用意されていますから、
これを使って制御します

アプリケーションの機能としてはボタンに対応させていますので、画面構成から
説明します。
画面とそれぞれの要素の名称は下図のようにしました。
左側がアプリケーション用のボタンとメッセージ領域で、右側はグラフ表示領域です。
機能はすべてボタンタップから開始されます。





ボタンと画面に対応する機能は下表のようにしました。
これらの機能はBluetoothの制御以外すべてアプリケーション本体で実行しています。
 ボタン 機能内容   備考
 端末接続 最初にBluetoothで接続する端末を選択し接続する
選択できる端末はペアリング済みのものに限定
接続状態をtext0のメッセージ領域に下記のように表示する
 「接続待ち→接続中→接続完了または接続失敗」
選択可能端末はダイアログで表示する
Bluetoothが無効になっている場合はダイアログで有効化を促す
 スイープ text0に「スイープ開始」と表示してから、10Hzから10MHzまで順に周波数を更新しながら周波数設定コマンドを送信する。折り返しのレベルデータを受信してグラフに表示する。同時に測定レベル欄(text12)にdB値で表示する  表示実行中にクリックするとグラフを消去して最初からやり直す
設定コマンドの周波数をメッセージ欄に表示する
 固定出力 設定周波数欄(setfreq)に入力した周波数で設定コマンドを送信し、折り返し受信したレベルを測定レベル欄(text12)にdB値で表示する スイープ中は固定出力禁止とする
 グラフ出力 測定レベルを表示
横軸は対数で周波数を10Hzから10MHzまで表示
1500ドット(1000ドット)を6分割して1分割/ディケードで表示
縦軸は1020ドット(700ドット)を7分割/ディケードで表示
−50dBから+20dBとして表示
タブレットの画面サイズは
  1280×800ドット または
  1960×1200ドット

実際に表示した画面例が下図となります。これは本機の出力を直接折り返した
場合のもので、本体そのものの周波数特性ということになります。
ほぼ10MHzまでフラットな特性となっています。
低周波でグラフが乱れているのは入力信号の振幅変動によるものです。
周波数が低すぎるため測定電圧が変動するためです。






この周波数特性アナライザのアプリケーションプログラムは下記からダウンロード
できます。Eclipseのプロジェクトファイル1式です。
binフォルダ内にapkファイルも含まれていますので、パソコンに展開したあと
直接タブレットにダウンロードすることができます。

  ★★★ 周波数特性アナライザのプログラムダウンロード Nexus 7(2013)用 ★★★


  ★★★ 周波数特性アナライザのプログラムダウンロード Nexus 7(2012)用 ★★★



   目次ページへ