WS190827-28

WS

付属高校サイエンスコースで,2日にわたりワークショップを行った。内容は下記PPTファイルのとおり。
10:00-16:00を2日やったため,ややコンテンツ不足気味であった。そのため,二日目は前日のArduino入門を復習するという内容を追加した(みんな全然できなかった,明日復習するよと前日に伝えると良い)。Arduino入門のLED点滅のところをブザーに置き換えて,音をならしたりするのが楽しそうであった。二日目は,LM35DZで温度を測るだけでなく,クレヨンしんちゃんなどを書いて,皮膚温低下を観測し,データをエクセルに移す実習も行った。加藤・徳永・寺内の3名が補助に参加してくれた。ありがとうございました。

WSで用いるプレゼンテーション:WS190827-8P

WSで使用するページのリンク

皮膚温計測装置のページ(TP07)

実験結果:TEMP190827

Arduino入門

可変抵抗のはんだ付け

Arduino応用編(LM35DZ)

Arduino応用編(NeoPixel)

Arduino応用編(BME280)

LM35DZを使う

温度センサーであるLM35DZをArduinoに接続する。

IMG-0230IMG-0231IMG-0232

赤ラインを5Vに,黒ラインをGNDに,白ラインをA0に接続する。

プログラム一式

注:現在LM35DZは入手性が悪くなっています。代替品(TMP36GT9Z)を使用する際は、「電圧を温度に変換(TMP36GT9Z)」行のコメントアウトを外して利用してください。


LM35DZ1
単純に温度を表示する。シリアルモニタ,シリアルプロッタで表示してみよう。

double vol,temp,gain;

void setup() {
  Serial.begin(9600);             // シリアル通信の初期化
  analogReference(INTERNAL);      //参照電圧を1.1vVに設定し感度拡大
  gain=(double)1.1/(double)1024;  //1.1Vリファレンス用のゲイン;
}

void loop() {
  vol = analogRead(0)*gain;
  temp=vol*100;        //電圧を温度に変換(LM35DZ)
  //temp=vol*100-50;     //電圧を温度に変換(TMP36GT9Z)
  Serial.print(vol);   //電圧表示
  Serial.print(",");
  Serial.print(temp);  //温度表示
  Serial.println();
  delay(100);
}

LM35DZ2
1000サンプルの平均温度を表示する。

double vol,temp,gain;
double sum,average;

void setup() {
  Serial.begin(9600);        // シリアル通信の初期化
  analogReference(INTERNAL);    //参照電圧を1.1vVに設定し感度拡大
  gain=(double)1.1/(double)1024;  //1.1Vリファレンス用のゲイン;
}

void loop() {
  sum=0;
  for(int i=0;i<1000;i++)
  {
      vol = analogRead(0)*gain;
      sum=sum+vol;
  }
  average=sum/(double)1000;  //1000回計測し平均を計算
  temp=average*100;        //電圧を温度に変換(LM35DZ)
  //temp=average*100-50;     //電圧を温度に変換(TMP36GT9Z)
  Serial.print(average);  //電圧表示
  Serial.print(",");
  Serial.print(temp);  //温度表示
  Serial.println();
  delay(50);
}

LM35DZ3
1秒間隔でできるだけ多くサンプルし平均温度を表示する。

double vol,temp,gain;
double sum,average;
long t,t0,cnt;

void setup() {
  Serial.begin(9600);             // シリアル通信の初期化
  analogReference(INTERNAL);      //参照電圧を1.1vVに設定し感度拡大
  gain=(double)1.1/(double)1024;  //1.1Vリファレンス用のゲイン;
  cnt=sum=0;
}

void loop() {
  t0=t;
  t=millis(); //現在時刻をms単位で取得
  vol = analogRead(0)*gain;
  sum=sum+vol;
  cnt++;
  if(t0/1000 !=t/1000){       //1秒(1000ms)毎に平均算出
    average=sum/(double)cnt;  //平均を計算
    temp=average*100;         //電圧を温度に変換(LM35DZ)
    //temp=average*100-50;      //電圧を温度に変換(TMP36GT9Z)
    Serial.print(cnt);        //サンプル数表示
    Serial.print(",");
    Serial.print(average);    //電圧表示
    Serial.print(",");
    Serial.print(temp);       //温度表示
    //Serial.print(",35,25");   //25度と35度を表示
    Serial.println();
    sum=0;cnt=0;
  }
}

PIXPRO 360 VR Suite(x64)について

pixpro SP360 4Kで撮影した動画ファイルを,youtubeにアップロードするまでの流れ.img_3193.jpg
①標示モードが,グローバルモードになっているか確認.
Clipboard01
Clipboard03Clipboard02
左上画像の7番と同じであれば大丈夫.異なっていたら,設定で変更(下の図参照).

②撮影を行い,SDカードのデータをデスクトップに移動.PIXPRO 360 VR Suite(x64)を起動する.

③該当するファイルをダブルクリックすると,以下のような画面になるので…Clipboard04
画像のようにEqを選択して,出力(●RECで再録画することでも出力と同様の結果を得られるが,利点は不明).

④出力後,シェアするか聞かれるので,OKを選択

⑤SNSアカウントを設定しておけば,youtubeにアップロードされる.Clipboard05
上記のような投稿動画一覧からは,360°動画を見ることはできない.
直接リンクで動画を確認すれば,見ることが可能である.

参考URL:KODAK PIXPRO 4KVR360で撮影したデュアルグローバルデータを360度動画へ

ステージセレクト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class stage : MonoBehaviour {

    // Use this for initialization
    void Start () {
       
    }
   
    // Update is called once per frame
    void Update () {

        if (Input.GetKey (KeyCode.F1)) {
            SceneManager.LoadScene ("s1");     
        }

        if (Input.GetKey (KeyCode.F2)) {
            SceneManager.LoadScene ("s2");     
        }
    }
}

Eyetribe190515

nogi2

Eyetribe用のソフトウェアをバージョンアップした。一本で、記録と再生と集計ができたほうが分かりやすくてよい。

ソフトウェア:ETREC_190515_2 注:最新版が下に!!

F1:Recordは、注視点の位置を記録する。

inpic フォルダ内に、好きな画像を好きなフォーマットで入れておく。PNGにしたりファイル名を通し番号にする必要もない。ただし、順番に再生したいなら、01.jpg,02.jpgなど、再生したい順に番号をふっておくとその順で再生される。subnumを左右カーソルキーで変更し、最大10名記録できる。

F2:playはsubnumフォルダのデータを再生する。

subnumのデータに関し、見た順に注視点を描画する。
001_ 002_ 003_ 004_ 005_

F3:totalはresultフォルダの中のデータをすべて加算表示する。

全subnumが順に加算され、見られたところほど色が濃くなる。
001_ 002_ 003_ 004_ 005_

これらの画像はresultPフォルダ内に保存される。

・・・で,男女別に色分けする機能を追加したバージョンが以下。

F4:Colirized Total はresultフォルダの中のデータを色分けして加算表示する。

0や2など,偶数が青で,1や3など奇数が赤で描画される。また,最大20名測定できるようにした。
001_002_ 003_ 004_ 005_

ソフトウェア:ETREC_190520

Unity Asset 注文表 V.T.ちゃんチーム

<トイレ>

・Japanese School Restroom  $19.99

日本風の学校トイレ、トイレ空間、個室、夜バージョン、和式トイレしか無いので他のアセットで洋式トイレが必要。

・Japanese Apartment  $29.99

日本のアパート、洋式トイレがある。その他アパートの小道具がある。トイレ以外にも使用可能。

・Sinister Props Packs 1  $4.99

ホラー感を演出するための小道具。

(・Forest Pack  $4.99)

メインで使う森アセットが使えなかった時用の予備アセット。

 

合計 $59.96 (約6675円)

生理心理学実験190411

実験の目的

・前安静,課題,後安静の3期間に関し,皮膚温を計測し,その変化を視覚化する。
・各期間の平均値に有意な差があるかを分散分析を用い検討する方法を身につける。
・男女間で皮膚温の平均値に差があるかを参加者間計画の分散分析で検討する。

計測スケジュール

p1

計測上の注意

計測器の基本的な使い方は,スタンドアロン皮膚温計のページを参照してください。

satm1
・計測部位は非利き手の人差し指とする。
・センサー部分に触れないようにする(親指で触れない,机に触れない)。
・センサーにエアコンの風があたらないように注意する。

計測結果入力用テンプレート

エクセルデータ:ex01data

計測結果190411:jenga190411

計測結果190418:jenga190418

統計処理

JSSTARのページより,1要因参加者内計画のリンクを選択

p2

統計処理結果:jenga190418

結果の記述:分散分析結果

資料

PPTファイル等:reference

 

ジェンガで皮膚温を計測する

心理サイエンスコースより、佐藤唯人がお届けします。

Clipboard01img_3598.jpg

ジェンガをしながら皮膚温を測る方法を下記にまとめます。

・1 デスクトップのファイル名「temp6a151111」を開く。

・2 中の「temp6」を開き、「temp6.vi」を起動する。

・3 「LabVIEWを起動」をクリック。評価期間の延長については「いいえ」を選択。

・4 COM portの▼をクリックし、使用する物に変更。縦軸の数値の上限下限、時間、名前は各自で設定する。

・5 左上のファイルタブ下の→(実行)をクリックして起動。

※プロジェクターで映す場合、HDMI端子をつなぎ「Source Search」ボタンを押す。

 

img_3597.jpg

12月25日 勅使川原 卒論演習

ダンス視聴時の盛り上がりの瞬間における
心拍・発汗・眼球運動の生理的反応に関する研究

16HP219 勅使川原 達也

目的

ダンス動画を視聴している際の心拍・発汗・眼球運動を測る。それらの要因とコレオグラファー(ダンスのフリを作っている人)の「ここを見せたい」という意図とを照らし合わせ、その間に相関がある場合はその相関を実験結果として取り入れたいと思う。

方法

ダンス動画を見ている際の心拍・発汗・眼球運動を、自作の心拍計測装置、自作の皮膚コンダクタンス計測装置、アイカメラを使って測定する。
被験者は文教学院大学の学生とする。約3分の動画を2つ用意し、ダンス経験者(ダンス部員)10名、ダンス未経験者10名の計20名の被験者に動画を見てもらう。被験者の人数は今後検討していく必要があると思う。前安静2分、課題期3分、後安静2分の計7分を一回の実験とする。その実験を1人2回行い、2つの動画を見てもらう。
ダンスの動画の一つは自分がフリや構成を考えて作ったものなので、どの場面が盛り上がりどころなのか、どの場面をより良く見せたいのかが把握した状態での実験となると思う。片方の動画も友人が考えたものなので、具体的にどの場面が見てほしいのかなどを事前に聞いておく必要がある。コレオグラファー(ダンスのフリを作っている人)の意図と、ダンス動画を見ている側の気持ちとの差がどれだけあるのか、また、どれだけ合致しているのかを測ることができたら成功といえるであろう。

結果

予想される結果として、コレオグラファーとダンス動画を見ている側の気持ちは、比較的多くの場面において合致しているのではないだろうか。コレオグラファーは「ここを見せたい」という感情を込めてフリを作っているため、その感情が動画越しでも伝わるのではないだろうか。
また、問題点としては、コレオグラファーが一人一人の動きとかではなく、構成や全体像で見せ場を作っていたとしたら、アイカメラによる視線記録がどこに表示されているときが見ていたことになるのかが曖昧であるということがあげられる。そういった問題も含めてまだ漠然としている部分があるため、実験を通して改善していく必要がある。

BME280で気温・湿度・気圧を測る

スライド1 スライド2 スライド3

スライド4 スライド5 スライド6

スライド7 スライド8

ArduinoにSCL/SDAが見当たらない場合は,
Arduino SCL —> A5
Arduino SDA —> A4
のように読み替えて下さい。

BME280を動かすには,以下の2つのライブラリが必要です。
Adafruit Unified Sensor
Adafruit BME280

ファイル一式:SSH180217-1


bme280test1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;

void setup() {
    Serial.begin(9600);

    bool status;
    // default settings
    status = bme.begin(0x76); //read I2C address 0x76
    if (!status) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }
    delayTime = 1000;
    Serial.println();
}

void loop() {
    printValues();
    delay(delayTime);
}

void printValues() {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    Serial.print("Pressure = ");
    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");

    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();
}

bme280test2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;

void setup() {
    Serial.begin(9600);
    bool status;
    // default settings
    status = bme.begin(0x76); //read I2C address 0x76
    if (!status) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }
    delayTime = 1000;
    Serial.println();
}

void loop() {
    printValues();
    delay(delayTime);
}

void printValues() {
    Serial.print(bme.readTemperature());
    Serial.print(",");
    Serial.print(bme.readPressure() / 100.0F-1000);
    Serial.print(",");
    Serial.print(bme.readHumidity());
    Serial.println();
}

吉田彰弘 卒論演習

皮膚コンダクタンス計測器についての論文をいくつか調べてみた

https://aska-r.repo.nii.ac.jp/?action=repository_action_common_download&item_id=7682&item_no=1&attribute_id=12&file_no=1

ゲーミフィケーション要素の追加について

基本的には計測器の機能に大きく変化をつけるのではなく、計測結果の確認サイトのほうにゲーミフィケーション要素を追加したサイトを作成する方が良いと思った。

ゲーミフィケーション要素に関しては大きく3つの要素で構成し

計測データを使用して成長要素などを付ける(目標の設定)

グラフを読み取る能力がない人間(専門知識のない人)でも現在の状態を直感的に把握できるようにすること。

(即時フィードバック)

・SCの変化を折れ線グラフではなく車のメーターのような形で表示してみるなど

計測結果をスコア化し、結果に応じた実績を用意する(報酬)

 

計測結果のスコア化のために一度90分間の計測データを取る必要がある。

勅使川原 卒論演習

実験の内容としては、

「2つの動画を見てもらい、心拍、発汗、視線を測定する。

ダンス未経験者10人、ダンス経験者10人、計20人を被験者とする。

動画は約3分のダンスショーケースを使用し、1人につき2種類の動画を見てもらう。」

という内容の予定です。

以下の2つの動画が実験で使う予定の動画です。

ただ、斜め視点で撮影した、手ブレの激しい動画のため、動画素材を実際に使うかは検討中です。