大森?
ターゲット・トラッキングタスクでなぞり運動における内部モデルのモデル化と習熟メカニズムを解明するため,なぞり時のズレ,時間のデータを取得して,腕の慣性行列,粘性行列,剛性行列を導出する.
以下のサイトでインストール
https://github.com/psychopy/psychopy/releases
インストールしたら,スタート画面を開き「PsychoPy3」というフォルダをクリックし,「PsychoPy3」をクリックすると,実行できる.
注意
new!:PsychoPy最新バージョンでも動きました.バージョンが違うので画像と違うところはありますが,問題なし.
古いほうです→Windowsの場合,「StandalonePsychoPy3-3.0.3-win32.exe」をインストール→p.5くらいにある
インストールの際に,「WindowsによってPCが保護されました」と表示されるが,左下にある「詳細情報」をクリックし,表示される「実行」をクリックする.
以下のサイトを参考に進める
http://www.s12600.net/psy/python/ppb/html/index.html
#ref(): File not found: "exp08d.psyexp" at page "なぞり運動における脳の習熟とインピーダンスの関連"
#ref(): File not found: "Builder1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
上の画像が「Builder」という実験を作成するためのツール
この画像の右側にある様々なアイコンを配置することで実験を作成していく.
Builderの画像の赤丸部分をクリックすると,「Corder」といわれる「Builder」で作成した実験をプログラミングコードに変換して表示してくれるものが表示される.
#ref(): File not found: "Corder1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
上の画像が「Corder」
実験の細かい部分は「Corder」か「Builder」の「Codeコンポーネント」に書き込むことで変更できる.
主に「Builder」を使って作成していく.
注意
インストールしたばかりの状態だと言語が設定されていないので,日本語に設定する.
上のBuilder画像の紫丸をクリックすると下の画像の左側が表示されるので,アプリケーションをクリックし,画像の通りに設定する.
#ref(): File not found: "lang.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
以下のサイトを参考に作成していく
http://www.s12600.net/psy/python/ppb/html/chapter08.html
Builderのウィンドウを開き,実験に必要なコンポーネントをそれぞれ配置していく.
新規の実験を作るときは最初「trial」というRoutineだけなので,この実験においてはもう一つのRoutineを作る必要がある.
#ref(): File not found: "設定1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
#ref(): File not found: "set1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
readyとtrialのそれぞれのRoutineにコンポーネントを配置していく.
#ref(): File not found: "set2.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
コンポーネントを配置する際に名前を変更できるので( )内の名前に変更しておくとわかりやすい.
注意
コンポーネントは下記の順番で配置していく
(順番が違うと実行時に上手く表示されない)
①mouseコンポーネント(mouseTrial)
②codeコンポーネント(codeTrial)
③polygonコンポーネント×4(path1~path4)
④polygonコンポーネント×3(way1~way3)
⑤polygonコンポーネント(goalDisc)
⑥polygonコンポーネント(probe)
以下にそれぞれのコンポーネントの変更点を示す.
[終了] の時間を 1.0 から 空白 に変更する.~
[ボタン押しでRoutineを終了] を 全てのクリック から なし に変更する~
[マウスの状態を保存] を 最終 から なし に変更する~
(ctl+aで全選択→ctl+cコピー→ctl+vで貼り付けできます)
実験開始
Routine開始時
フレーム毎
Routine終了時
実験終了時は何も入力なし
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] をそれぞれ path1,path2,path3,path4 に変更する.~
[形状] を 三角形 から 長方形 に変更する.~
[位置[x,y]] を (0,0) から pathNpos に変更する.~ (pathNpos の N には path1,path2,path3,path4 のそれぞれに対応する数字を入力する.)~ (例: path1 だと path1pos を入力する. つまり,この場合だと N=1 となる.)~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (240,20) に変更する.~
path1
[回転角度] を 0 に変更する.~
path2
[回転角度] を 90 に変更する.~
path3
[回転角度] を 0 に変更する.~
path4
[回転角度] を 90 に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] をそれぞれ way1,way2,way3 に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から wayNpos に変更する.~ (N の部分は path1~path4 のときと同様に対応する数字を入力する.)~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
way1
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col1 に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
way2
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col2 に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
way3
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col3 に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を goalDisc に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から goalPos に変更する.~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を probe に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から [px,py] に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $coll に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
#ref(): File not found: "ready1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
// 実験終了時の部分には何も入力しなくて大丈夫.
注意
コンポーネントは下記の順番で配置していく
(順番が違うと実行時に上手く表示されない)
①mouseコンポーネント(mouseReady)
②polygonコンポーネント×4(path1_2~path4_2)
③polygonコンポーネント×3(way1_2~way3_2)
④polygonコンポーネント(startDisc)
⑤polygonコンポーネント(probeReady)
以下にそれぞれのコンポーネントの変更点を示す.
[終了] の時間を 1.0 から 空白 に変更する.~
[マウスの状態を保存] を 最終 から なし に変更する~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] をそれぞれ path1,path2,path3,path4 に変更する.~
[形状] を 三角形 から 長方形 に変更する.~
[位置[x,y]] を (0,0) から pathNpos に変更する.~ (pathNpos の N には path1,path2,path3,path4 のそれぞれに対応する数字を入力する.)~ (例: path1 だと path1pos を入力する. つまり,この場合だと N=1 となる.)~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (240,20) に変更する.~
path1_2
[回転角度] を 0 に変更する.~
path2_2
[回転角度] を 90 に変更する.~
path3_2
[回転角度] を 0 に変更する.~
path4_2
[回転角度] を 90 に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] をそれぞれ way1,way2,way3 に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から wayNpos に変更する.~ (N の部分は path1~path4 のときと同様に対応する数字を入力する.)~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
way1_2
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
way2
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
way3
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を startDisc に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から startPos に変更する.~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を probeReady に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から startPos に変更する.~ 「更新しない」を「繰り返し毎に更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から red に変更する.~
ここでは,繰り返しを設定するLoopを作成する.
この実験では,Loopを2回設定する.
左下にある「Loopを挿入」を押すと,Flow上に黒点が表示される.
1つ目の黒点はLoopのスタートを表し,2つ目の黒点はLoopの終わりの位置を表している.
1個目のLoopはスタートが trial の前で,ゴールが ready の後ろに設置するようにする.
1個目のLoopの名前を「trials1」とする.
2個目のLoopはスタートが ready の前で,ゴールが ready の後ろに設置するようにする.
2個目のLoopの名前を「trials_2」とする.
#ref(): File not found: "example1.xlsx" at page "なぞり運動における脳の習熟とインピーダンスの関連"
このエクセルファイルはLoopを設定する際に必要になってくる.
Loopを設置する際に,下の画像のようなものが出てくるので,これも設定する必要がある.
#ref(): File not found: "Loop1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
①:名前を変更する.
②:繰り返し回数を 1 に設定する.
③:繰り返し条件に,「example1.xlsx」をいれる.
①:名前を変更する.
②:繰り返し回数の部分に自分が繰り返す分の数を設定する.
③:繰り返し条件に,「example1.xlsx」をいれる.
以上のように設定すると,Flow の部分が以下の画像のようになる.
#ref(): File not found: "Loop2.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
ここでは,実験を行う際の上下反転以外の条件を付けくわえていく.
下の画像にある赤丸部分をクリックしてすると,2つ目の画像にある設定画面がでてくる.
#ref(): File not found: "settei.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
#ref(): File not found: "settei2.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
ここで,「実験情報ダイアログ」の右側にある「+」ボタンを押すと,新しいダイアログが追加される.
新しく追加されたダイアログの フィールドを「Direction」, 初期値を「['UpDown', 'Normal', 'LeftRight', 'All']」と設定する.
次に,「データ」のタブに移動し,「csv形式のデータを保存」の部分にチェックをいれる.
「ログレベル」を 「data」 に変更する.
次に,「スクリーン」のタブに移動し,「単位」を「pix」に変更する.
ここでは,実際に実験を行う流れを説明する.
#ref(): File not found: "zikkou.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
上の画像の赤丸部分をクリックする.
すると,下の画像のやつがでてくる.
#ref(): File not found: "zikkou2.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
「Direction」では,6で設定したものが選択できるようになっている.
「Updown」が上下反転 「Normal」が反転なし 「LeftRight」が左右反転 「All」が上下左右反転 となっている.
「partcipant」で保存するファイルの名前をわかりやすくできる.
「session」は 1 のままで無視してよい.
以上の3つを設定したら,「OK」を押すと実験の画面が起動する.
実験の画面が起動したら,マウスの左をクリックするとスタートする.
設定した繰り返し回数に達したら,勝手に終わるようになっている.
また, Escキー を押すと実験を中断できる.
「sk.py」を用いて取得したcsvファイルを使って速度,加速度をを求める.
#ref(): File not found: "sk.py" at page "なぞり運動における脳の習熟とインピーダンスの関連"
まずは,sk.pyと自分が取得したcsvファイルを同じフォルダにいれる.
この際,取得したcsvファイルを短い名前に変更した方がコードにいれやすくなる.
sk.py を以下に示すように自分用に変更する.
コメントアウトは無視して良い.
#ref(): File not found: "gazou1.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
#ref(): File not found: "gazou2.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
①:8行目の range(10) の 10 の部分を繰り返しの回数に変更する.
(例:繰り返し回数が5回だったら, range(5) にする.)
②:10行目の aiueo.csv を自分で取得したcsvファイルに変更する.
③:68行目の aiueo の部分を変更することで保存先のフォルダの名前を変更できる.
④:70行目の aiueo の部分を変更することで,出力するcsvファイルの名前を変更できる.
以上の変更を施し,実際にプログラムを起動する.~
すると,③で設定した名前のフォルダ内に④で設定した名前のcsvファイルが繰り返し分だけ生成される.
#ref(): File not found: "gazou3.png" at page "なぞり運動における脳の習熟とインピーダンスの関連"
上の画像が④で出力されるcsvファイルである.
A列はx座標の推移
B列はx座標の速度の推移
C列はx座標の加速度の推移
D列はy座標の推移
E列はy座標の速度の推移
F列はy座標の加速度の推移
#ref(): File not found: "kawaguti2.csv" at page "なぞり運動における脳の習熟とインピーダンスの関連"