Arduinoによる末梢皮膚温測定
0.ソフトウェアの準備(Arduino/Processing) http://arduino.cc/en/Main/Software https://www.processing.org/download/ 開発環境の準備は? 会場はWifiが使えるようなので、指定アドレスからダウンロードし、インストールしてもらう。 あるいは、環境の設定までは、事前に行ってきてもらう? 接続がうまくいかない人のために、開発環境が入ったUSBメモリを10個くらい用意しておく。 http://protolab.sakura.ne.jp/OPPL/?page_id=93 今回使うソフトウェアの準備は?
1-1-1.皮膚温センサーの作成(1) 用意するもの 1.皮膚温センサー(LM35DZ) 2.赤白黒のラジコンサーボ用ケーブル30cm センサーは、ハンダづけ済のものを予め用意しておく。 組み立ては、要するにArduinoに差し込むだけだが、最初歩はこれくらいでも良いのでは? 1.皮膚温センサー(LM35DZ) 2.赤白黒のラジコンサーボ用ケーブル30cm 3.ピンヘッダー 4.収縮チューブ(大・小)
1-1-2.皮膚温センサーの作成(2) ①片側をワイヤストリッパーでむき、はんだを染みこませる。 ②LM35DZは平たい面が表。左から赤白黒の順にはんだ付け。真ん中にのみ収縮チューブをつける。 ③大きめの収縮チューブでハンダ付け部分を覆う。 ④反対側もワイヤストリッパーで剥いて、はんだを染みこませる。 センサーは、ハンダづけ済のものを予め用意しておく。 組み立ては、要するにArduinoに差し込むだけだが、最初歩はこれくらいでも良いのでは? ⑤ピンヘッダーにハンダ付けする。ピンヘッダー側にもハンダをつけておくとやりやすい。 ⑥ハンダ付けが終わったらニッパーで分割する。 ⑦プラスチック部分を抜き取り、ハンダ付けした部分を収縮チューブで覆う。 ⑧完成。
1-2.測定装置の組み立て 1.ArduinoUNOと皮膚温のセンサーを用意 2.センサーをArduinoUNOにセット 赤→5V 黒→GND 白→A0 3.皮膚温測定器の完成 センサーは、ハンダづけ済のものを予め用意しておく。 組み立ては、要するにArduinoに差し込むだけだが、最初歩はこれくらいでも良いのでは?
2.測定プログラムの概要 TempArdu01の書き込み (皮膚温を読み込みPCへ送る) 測定プログラム(基本編) Arduino側のプログラム Processing側のプログラム TempArdu01の書き込み (皮膚温を読み込みPCへ送る) 測定プログラム(基本編) TempChart01の実行 (PCへ送られた皮膚温をグラフ表示) ※基本編は測定を理解するため、できるだけ簡易なプログラムとなっている。 TempArdu02の書き込み (読み込んだ皮膚温を加算平均) (平均皮膚温をPCへ送る) 測定プログラム(応用編) TempChart02の実行 (PCへ送られた皮膚温をグラフ表示) (皮膚温の変化をディスクに保存) ※応用編は実用性を重視し、少し複雑なプログラムとなっている。
2-1-1. 測定プログラム(基本編) -Arduino側の用意- TempArdu01をArduinoUNOへ書き込む。 マイコンボードに ArduinoUnoを指定 シリアルポートをArduinoUNOに割り当てられたものに指定 ※ポート番号はPCによって異なる 1.開発環境を設定して、Arduinoにこちらで用意したソフトウェアを書き込む。 1.検証 2.書き込み プログラム内容を検証(verify)し、 完了したらボードへ書き込みを行う。
2-1-2. 測定プログラム(基本編) -PC側の用意- TempChart01をProcessingで実行する。 Processingの実行ボタンを押すと プログラムが起動する。 実行 プログラムを停止する場合は、画面右上の☓ボタンではなく、開発環境の停止ボタンを押すようにする。 現在の皮膚温(10倍)が数字で表示される 停止 Arduinoの COMポートを指定 皮膚温の変化が、グラフになって1分間表示される。右端までいくと最初から描きなおす。 2.Processing側のソフトウェアを起動して動作を確認 まずは動作を確認する。 そのあと、プログラムの簡単な解説を行う。 メンディングテープで指に固定する
2-1-3. 解説:AD変換とは 連続量(無限に細かい) 連続量を離散量に変えるのがAD変換 離散量(デジタル化されているため飛び飛びのデータ) ここで、A/D変換とはなにか、デジタル値の温度への変換方法などを説明 A/D変換(サンプリングレートと分解能) 本来のデータを正しく再生するには、サンプル速度だけでなく、サンプルの細かさ(分解能)も重要だ。Arduinoは0~5Vを1024段階(10bit)で変換している。
2-1-4. 解説:デジタル値の温度への換算 temp=dv/1024/500 デジタル値を 皮膚温に変換する部分 dv voltage temp ------------------------------------------------------------------ 0 → 0.0V → 0℃ 512 → 2.5V → 250℃ 1023 → 5.0V → 500℃ ※上記の表に従い変換すると、下記のような式になる temp=dv/1024/500
測定結果はresult.csvとして保存される。Excelでグラフ化すると以下のようになる。 2-2-1. 測定プログラム(応用編) -Arduino側の用意- TempArdu02をArduinoUNOへ書き込む。 2-2-2. 測定プログラム(応用編) -PC側の用意- TempChart02をProcessingで実行する。 測定例 (Processing) 測定結果はresult.csvとして保存される。Excelでグラフ化すると以下のようになる。 (℃) 前安静 ストレス負荷 後安静 1.開発環境を設定して、Arduinoにこちらで用意したソフトウェアを書き込む。
3-1.測定実習 「自己紹介をしてみよう」 目的 自己紹介を行う際の緊張により、末梢皮膚温がどのように変化するかを調べる 計測スケジュール 3-1.測定実習 「自己紹介をしてみよう」 目的 自己紹介を行う際の緊張により、末梢皮膚温がどのように変化するかを調べる 計測スケジュール 前安静(2分) 自己紹介(3分) 後安静(2分) ※前安静と後安静は閉眼とする 測定指標 末梢皮膚温を測定する。ソフトウェアは、TempArdu02/TempChart02を用いる。 結果の処理 ここでは、少し長く測定できる実習用のソフトに切り替えて実験を行う。 実習では、自作の測定器を用いて自己紹介をする際の皮膚温の変化を測定してみる。 安静期の必要性など、簡単な実験計画の話もできると良い。 あと、ストレスと末梢循環の関連性なども話をするべき? 出力されたCSVファイルをエクセルで開き、折れ線グラフを作成する。
改訂履歴 ------------------------------------------------------- 14/04/25 長野が初版作成 14/07/14 長野が全面改訂 14/07/20 微調整 メンディングテープの画像などを追加
倉庫
3-1.測定実習 「自己紹介をしてみよう」 測定実習では、実用性を考慮し、下記のソフトウェアを使用する。 ・・・TempArdu02 3-1.測定実習 「自己紹介をしてみよう」 測定実習では、実用性を考慮し、下記のソフトウェアを使用する。 ・・・TempArdu02 ・・・TempChart02 ※Arduino用のソフトは、より正確に測定できるように改良。 ※Processing側は測定期間をわかりやすく表示し、皮膚温が保存されるように改良。 実習の目的 自己紹介を行う際の緊張により、どのように末梢皮膚温が変化するかを調べる 計測スケジュール 前安静(2分) → 自己紹介(3分) → 後安静(2分) (図にして!) ここでは、少し長く測定できる実習用のソフトに切り替えて実験を行う。 実習では、自作の測定器を用いて自己紹介をする際の皮膚温の変化を測定してみる。 安静期の必要性など、簡単な実験計画の話もできると良い。 あと、ストレスと末梢循環の関連性なども話をするべき? ※前安静と後安静は閉眼とする 測定指標 末梢皮膚温
3-2.測定実習 測定結果の評価 測定例 (Processing) 3-2.測定実習 測定結果の評価 測定例 (Processing) 測定結果はresult.csvとして保存される。Excelでグラフ化すると以下のようになる。 (℃) 前安静 自己紹介 後安静 実習用のソフトは、データが保存できるようになっているので、各自で保存されたデータをエクセルで表示して確認する。 あわよくば、ネットワーク上で集計し、全体の平均を得るなど・・・
4-1.その他の測定装置 ポータブル皮膚温測定器 拍動を視覚化するランプ 脈波を紙に描画する車