1
情報学実験 II テーマ 3 センサーと計測システム
1 実験目的
計測とは,機器を使い被計測対象(位置,速度,加速度,力,光,音など)を数量化することである.
多くの場合,センサーと呼ばれるエネルギー変換器を用いて非計測対象をより測りやすい別の物理量(電 流や電圧など)に変換し計測する.その後,信号の整形を行いA/D(Analog/Digital)変換器を用いてコン ピュータにデジタル信号として取り込む.この一連の流れを計測システムと呼ぶ.
本実験の目的は,計測システムの製作を通して,センサーの利用方法,信号のデジタル化,計測の基 礎を理解することである.
2 使用器具
・ 曲げセンサー(浅草ギ研製 AS-BEND)
・ ブレッドボード(サンハヤト社製 SAD-101)
・ ジャンプワイヤー(200mm長,黒,赤,黄,青,白,各2本計10本)
・ 固定抵抗器(1kΩ,10kΩ,各1本)
・ 赤色LED(1本)
・ 精密ドライバー(マイナス型)
・ データ集録装置DAQ(ナショナルインスツルメンツ社製 USB-6009)
・ LabVIEW 2013(ナショナルインスツルメンツ社製)
・ パーソナルコンピュータ(諸元は情報科学研究教育センターHPを参照のこと)
3 計測システムの制作 3.1 概要
図1に計測システムの概略図を示す.この計測システムは曲げセンサー自身の変形量を計測する.
曲げセンサーは,内部の導電インクの割れ目により導電体の断面積を減少させ電気抵抗が変わると いう原理を利用して,変形量を電圧に変換する.センサー回路(電気回路)によって測った電圧信 号をA/D変換器によってデジタル信号に変換し,コンピュータに取り込む.取り込んだデジタル信 号をソフトウェアでグラフ化し,ファイルに保存する.
図1 計測システムの概略図
曲げセンサー (センサー回路)
変形量 電圧 A/D変換器
(DAQ) デジタル信号 PC
(LabVIEW) 力
2 3.2 センサー部
曲げセンサーは約 10kΩの抵抗を持つが,センサー自身を曲げると曲げた量に比例して約 30kΩ まで抵抗が増加する.この性質を利用して図2のセンサー回路を製作すると,Voから抵抗の変化に 比例した電圧が計測できる.曲げセンサーが曲がっていない状態ではVo=2.5Vである.曲げセンサ ーを最大に曲げ抵抗が30kΩになる時Voは何Vになるかを,実験前に計算しておくこと.なお,曲 げセンサーは曲げる方向が決まっている(印字された側が内側となるよう曲げる)ので,製作の際 に間違えないこと.
【製作】
まず,センサー回路を作る.ブレッドボードに10kΩ抵抗器と曲げセンサーを直列接続(図2)にな るように配置する.10kΩ抵抗器は図4のカラーコード表を参照して選べ.次にジャンプワイヤーを 3本用意して, +5V,Vo,GNDの位置に挿し込む.
次に,LED点灯回路(図3)を作る.この回路はDAQのデジタル出力(P0.0)に接続される.Voが指 定の閾値を超えると回路に電流が流れLEDが点灯するよう,計測ソフトウェアでプログラミングす る.ブレッドボードに1kΩ抵抗器と赤色LED を直列接続(図3)になるように配置する.LED には 接続の方向があり,アノード(+側,足が長い)と カソード(GND 側,足が短い)がある.次に ジャンプワイヤーを2本用意して,D,GNDの位置に差し込む.GNDはセンサー回路と共通でよい.
図2 曲げセンサー回路 図3 LED点灯回路
図4 抵抗器のカラーコード表
「ブレッドボードラジオ」より引用(http://bbradio.web.infoseek.co.jp/code1/code1.html) Vo
+5V→
+2.5V→
0V→
10kΩ抵抗器
GND
1KΩ
赤色発光 LED
D
3 3.3 A/D変換部
本実験で使用するA/D変換器(DAQ USB-6009)の仕様の一部を表1に,A/D変換の模式図(3ビッ ト)を図5に示す.A/D 変換器には電圧入力範囲があり,計測される信号(原信号)に合わせて範囲を 調整する必要がある.量子化ビット数は量子化の細かさを示す値である.𝑛 ビットは 2𝑛 段階で電 圧を表現できる.図5は3ビットなので 23= 8 段階の代表値で0V以上10V未満の信号を表現し ている.図5の代表値は0.00V, 1.25V, …, 8.75Vである.代表値に変換する事を量子化(コード化) と呼び,代表値間の幅をコード幅と呼ぶ.ビット数が多いほど原信号を忠実に再現でき,ビット数 が少ないほど量子化誤差が増える.同時に,前者はデータ数が増え,後者はデータ数が減る.量子 化ビット数が13ビットで,電圧入力範囲が0~5Vに設定されている時,コード幅は何Vになるか,
実験前に計算しておくこと.
サンプリングレートは時間方向の分解能である.表1の48kS/秒は1秒間あたり48,000回,電圧 を標本化(サンプリング)できる事を示している.これはDAQの最大値であり,実際の計測に用いる サンプリングレートは原信号の周波数とデータ量を勘案して調整する必要がある.サンプリングレ ートが高いほど原信号を忠実に再現できる.サンプリングレートを低く設定しすぎると,信号が実 際の周波数とは異なって表示される.このような信号の誤った表現をエイリアスと呼ぶ.
表1 DAQ USB-6009の仕様
電圧入力範囲 0~10V (シングルエンド方式時) 量子化ビット数 13ビット(シングルエンド方式時) サンプリングレート 48 kS/秒 (S:サンプル)
図5 A/D変換の模式図(3ビット)
【製作】
DAQ(Data Acquisition)装置の端子配置を図6に示す.DAQのアナログ入力は簡単に言えば電圧
計である.シングルエンド方式で電圧を測る場合,GNDとAI 0(Analogue Input 0)の間の電位がデ ジタルデータに変換される.参考までにUSB-6009は,アナログ入力(AI)を同時に8ch(チャンネル) 計測できる他,アナログ出力(AO)が4ch,デジタル入出力が(8+4)ch備わっている.
センサー回路の+5VをDAQの+5Vに接続せよ.同様にVoをAI 0に,GNDをGNDに接続する.
次に,LED点灯回路のDをDAQのP0.0に,GNDはセンサー回路のGNDに接続する.曲げセン サーとジャンプワイヤーが干渉しないようセンサー回路のパーツ配置やジャンプワイヤーの取り回
4
しを工夫せよ.ジャンプワイヤーはDAQのネジ留め式端子台の端子穴に挿し込んだ後,マイナス型 精密ドライバーで穴を閉めて固定する.DAQのGND端子は複数あり,どれに挿してもよい.最後 にUSBケーブルのA-type端子をPCに,B-type端子をDAQに接続する.
図6 DAQ装置(NI USB-6009)のピン配置
DAQ の動作確認は以下の手順で行う.[スタート]→[すべてのプログラム]→[NI MAX]を起動する.
起動した画面の左側に[デバイスとインタフェース]という項目を見つけ,クリックして展開し[NI USB-6009 “Dev1”](使用するPC側USB端子によっては[NI USB-6009 “Dev2”]などと表示される)
をダブルクリックする.次に,画面上部のタブにある[テストパネル]をクリックすると,図7の画面 が現れるので,図のとおりに各項目を設定する.最後に画面下の[再生]ボタンを押すとテスト計測が 開始される.計測が開始されたら,図8のように曲げセンサーを曲げてみる.折ってはならない.
図7 テストパネルによる動作確認
オンデマンド
チェック外す
RSE
最 大 5, 最小0
5
図8 曲げセンサーの曲げ方(折り曲げないこと)
3.4 計測ソフトウェア部
デジタル信号は計測ソフトウェア(LabVIEW)を使って指定したタイミングで DAQからPC に転 送される.計測ソフトウェアでそのタイミングを指定し変数に取り込み,グラフ化したりファイル に集録したりする.LabVIEW で作成する計測ソフトウェアのブロックダイアグラム部を図 9 に,
フロントパネル部を図10に示す.
図9 ブロックダイアグラム部
6
図10 計測ソフトウェアのフロントパネル部
(パーツの種類,大きさ,配置,ラベル名,目盛等は適宜変えること)
【製作】
① 【ループの作成】ブロックダイアグラムのウィンドウ上で右クリックし,[関数]→[プログラ ミング]→[ストラクチャ]→[Whileループ]を選び配置する.Whileループ内の赤丸を右クリッ クしメニューから[制御器を作成]を選択すると,停止の制御器が作成され,ループを停止する ボタンがフロントパネルに作成される.(図11)
図11 ブロックダイアグラム内のループの作成
7
② 【DAQアナログ入力】Whileループの枠内で右クリックし,[関数]→[測定I/O]→[DAQmx – データ集録]→[DAQアシスタント]を選択し起動する.図12を参考に,画面のメニューで[信 号を集録]→[アナログ入力]→[電圧]を選択する.次の画面で[Dev1(USB-6009)]→[ai0]を選択 し[終了]ボタンを押す.次の画面で,信号入力範囲を[最大5, 最小0],端子構成を[基準化シ ングルエンド],集録モードを[連続サンプル]とする.サンプリングレート(Hz)を設定する必 要があるが,ここでは設定せず制御器で変更できるようにする.
③ 【ファイルへの書き込み】図13を参考に,[関数]→[プログラミング]→[ファイルI/O]→[計測 ファイルに書き込む]を選択する.次の画面で,ファイルが存在の場合を[ファイルを上書き]
に,ファイル形式を[テキスト]に,セグメントヘッダを[ヘッダなし]に,X 値列を[1 列のみ]
に,デリミタを[カンマ]に設定する.ファイル名は制御器で設定することにする.“DAQ ア シスタント”の“データ”と“計測ファイルに書き込む”の“信号”を結線せよ.
④ 【制御器と数値表示器】アナログ入力の DAQ アシスタントのアイコンの下部をマウスで下 に広げると[エラー出力][停止]…といったコネクタが現れる.現れた[レート]の上で右クリッ クをするとコンテキストメニューが現れる.[作成]→[制御器]を選択するとサンプリングレー トの制御器が作成され,同時にフロントパネルウィンドウにも制御器が作成される.そのラ ベルを「サンプリングレート(Hz)」に変更する.また,同様に[サンプル数]を右クリックし[作 成]→[定数]を選択し,サンプル数を10に指定する.サンプル数は一度のループで処理される データ配列の長さを表す.例えばサンプリングレート 100Hz,サンプル数 10 と設定した場 合,0.1秒間隔で長さ10のデータ配列が送出される.次に,[データ]の数値表示器を作りそ のラベルを「電圧値(V)」とせよ.この数値表示器のプロパティを開き,[表示形式]タブの[有 効数字]の[桁]を 3 とする.最後に“計測ファイルに書き込む”の[ファイル名]の制御器 (Filename)を作成する.
⑤ 【波形チャート】フロントパネルウィンドウに移動し,右クリックでメニューを出し,[グラ フ]→[波形チャート]を選択して配置する.ブロックダイアグラムウィンドウに移動してDAQ アシスタントの“データ”と“波形チャート”を結線する.次に,波形チャートを右クリッ クしプロパティを開き,[スケール]タブ→[時間(X軸)]になっていることを確認して,[グリッ ドのスタイルとカラー]のグラフ絵をクリックして,現れた3つのうち中央のグラフを選択す る.同様に,[スケール]タブ→[時間(X軸)]をクリックして[振幅(Y軸)]に変更して[自動スケー ル]チェックを外し,最小値を0に,最大値を5 に設定する.さらに[グリッドのスタイルと カラー]のグラフ絵をクリックして,現れた3つのうち中央のグラフを選択する.
⑥ 【メーター】フロントパネルウィンドウに移動し,右クリックでメニューを出し,[数値]→[メ ーター]を選択して配置する.その後,ブロックダイアグラムウィンドウに移動し,DAQ ア シスタントとメーターを接続する.
8
図12 DAQアナログ入力の設定
図13 計測ファイルの書き込み設定
9 次に,閾値超えを検知する回路を作成する.
⑦ 【比較器】関数メニューから[プログラミング]→[比較]→[≧以上?]を選択して比較器を配置 する.比較器の2入力のうちのxとDAQアシスタントのデータを結線する.入力のyを右 クリックし,[作成]→[制御器]で制御器を作成し,そのラベルを「閾値(V)」と変更する.フ ロントパネルに制御器が作成されたことを確認して適当に配置せよ.次に,出力端子を右ク リックし,[信号操作パレット]→[ダイナミックデータから変換]を選択する.条件を設定する ウィンドウで結果データタイプを[1Dスカラ配列 – 最新値]に,スカラデータタイプを[ブー ル (TRUEとFALSE)]に設定する.比較器の出力端子と変換器を接続する.変換器の出力側 を右クリックし,[作成]→[表示器]を選択すると,Arrayと名前の付いたアイコンが作成され る.同時にフロントパネルに表示器が作成されるので,そのラベルを「閾値超シグナル」に 変更し[表示項目]から[指標番号表示]のチェックを外す.
⑧ 【DAQデジタル出力】閾値を超えるとブレッドボードのLEDを点灯する機能をDAQのデ ジタル出力機能を使って作成する.ブロックダイアグラムウィンドウで右クリックし,[DAQ アシスタント]を選択する.すると新規にDAQアシスタント2が配置される.現れた画面で[信 号を生成]→[デジタル出力]→[ライン出力]を選択する.次の画面で[Dev1(USB-6009)]→
[port0/line0]を選択し[終了]ボタンを押す.次の画面で生成モードを[1 サンプル(オンデマン
ド)]とする.設定が終わったら[OK]を押し画面を閉じる.その後で,比較器の出力とDAQア シスタント2の[データ]を接続する.
⑨ 【閾値のきざみ値】フロントパネルウィンドウに移動し,「閾値」の制御器を探し,そのプロ パティを開き,[データエントリ]タブ→[デフォルトの制限を使用]のチェックを外し,増分を [0.1]に設定する.
上記の製作が終わったら,フロントパネルウィンドウに移動し,実験時に操作・観察がしやすいよ うフロントパネルのパーツを整理・整形せよ.またブロックダイアグラムウィンドウに移動し,結 線されていないパーツがないか,不良ワイヤーが残っていないかを確認せよ.
以下に動作確認方法を説明する.
フロントパネルウィンドウに移動し,サンプリングレートを100(Hz),ファイル名をdata.txt,
閾値を3.5(V)に設定して実行ボタン(→)を押す.曲げセンサーを曲げると波形チャートに曲げに応
じた波形が表示され,電圧メーターが振れ,電圧値が変化する.また閾値を超えると,閾値超シ グナルが点灯し,同時にブレッドボード上のLEDも点灯する.
終了は[停止]ボタンを押す.停止したら,Windows の[マイドキュメント]→[LabVIEW Data]
→[data.txt]を開く.すると図14に示すような数値データが表示される.1列目は時刻,2列目は 電圧値である(有効桁数についてはレポート課題で検討する).時間間隔はサンプリングレートで決 まる.
10
図14 数値データ(data.txt)
4 実験
【実験1】電位計測
サンプリングレートを100Hz,ファイル名をdata.txt,閾値を3.5Vに設定して実行ボタン(→)を 押す.以下の電位を計測しなさい.
・曲げセンサーが完全に伸びている時の電位
・曲げセンサーを最大に曲げた時の電位 (注:折り曲げて破損させないように)
・LEDが点灯した時の電位,消灯した時の電位 (目測で良い)
曲げの変化量と電位の変化量の対応について説明せよ.また,この計測システムは,曲げセンサー に限らず物理量に従って抵抗が変化するものならば何であってもセンサーとできる。例えば,硫化 カドミウム(CdS)などの光導電素子は当たる光の量に従って抵抗が変化するため,明るさを感知する センサーとできる.また,端子間が空気であれば抵抗は大きく端子間が雨水や海水で満たされれば 抵抗は小さくなるためこれもセンサーとできる.この計測システムが,どのようなセンサーを用い ると何に応用できるか考察せよ.
【実験2】サンプリングレートと計測値
表2の各行に示す条件を設定し,計測を開始してから曲げセンサーを曲げて図15に示す「ラクダ のこぶ」のような波形を連続して作れ.計測時間は10秒以上20秒未満とせよ.このとき,波形を
WindowsのPrint Screen機能を使って画面キャプチャせよ.レポートでサンプリングレートと波形
の再現性について考察せよ.また,ファイルを開き数値データを確認し,各サンプリングレートと 標本化時間,データ量の関係について理論的に説明せよ.
11
表2 サンプリングレートの設定
サンプリングレート(Hz) ファイル名
10 10Hz.txt
100 100Hz.txt
500 500Hz.txt
(a)10Hz (b)100Hz (c)500Hz
図15 サンプリングレートによる電圧波形の違い
5 レポート報告事項
実験目的,実験方法,結果,考察,課題のように章立てし,【実験 1】【実験 2】について報告せよ.
LabVIEWのフロントパネルとダイヤグラムのハードコピーも添付せよ.さらに以下の課題を解決し
同レポートにて報告すること.
(課題1) 3.4節④で数値表示器の有効桁数を3としたが,その理由を量子化ビット数(13ビット)から
説明せよ.同じ事は数値データのファイルにも言え,図14でファイルの電圧値は7桁あるが,有効 桁数は3なので4桁目を四捨五入して扱う必要がある.
(課題2) 【実験2】で記録した10Hz.txt, 100Hz, 1000Hzのいずれかのファイルについて, プログ ラミングを用いて各波形のピーク電位とその時間(計測開始からの秒数)を求めよ.例えば,図16は 8 回曲げた計測波形(100Hz.txt)であるが,1 番目の波のピークは計測開始 1.42 秒後でその電位は
3.87Vであることを説明している.図16の場合は時間と電位が8組検出されるはずである(表3).
プログラミング言語は何を使っても良い.レポートにソースコードと実行結果を添付せよ.
12
図16 波形のピーク探索の説明図
表3
波形番号 時刻(秒) 電位(V)
1 1.42 3.87
2 2.53 3.88
: : :
8 9.00 3.78