心理學史(預)

預告

即將於2021年2月起,開設新課程「心理學史」。請注意日後的公告!

Leave a Comment

Filed under 其他課程

Mac (麥金塔)電腦中顯示中、日文

長時間來,在我們實驗室使用PsychoPy一個無解的問題是使用中文。我們一直以來的solution就是把文字顯示的部分都做成圖檔來表示。但這樣一來,檔案較多也較缺彈性。最今在一個日文網站看到一個暫時的解決方式,雖然這是在Builder界面來解決,但同樣道理可以用在Coder界面中。以下詳細說明: Continue reading

Leave a Comment

Filed under 用PsychoPy玩實驗

Builder 到 Coder 1

今天的主題是想介紹 PsychoPy 的兩種界面間的關係,也就是 Builder 與 Coder 兩個部分的關聯性。

Continue reading

Leave a Comment

Filed under 用PsychoPy玩實驗

用 PsychoPy coder 來學習 (2)

學習coder的第二篇文章。這一次要教大家如何自定義滑鼠,所使用的範例為CustomMouse。先打開PsychoPy的coder界面,然後找到Demos裡面的input之customMouse.py,按下Run,來看看coder怎麼運作吧!

螢幕截圖 2018-08-09 16.13.55

哇,比起上一篇文章,程式的行數多了一些,不過大家莫急莫慌!接下來就一一解釋程式中各行的意思,解釋不完全的地方也請大家多多包含!

行9:__future__ 這模組是用來讓Python2與Python3相容。這次會使用到的division 是除法結果是可以含有小數點。

行13:PsychoPy模組中import進來visual與event,其中visual是顯示相關模組,event是接受反應的模組。

行15:賦予win的定義,方便接下來直接以win來表示=後面的指令(visual.window)。設定顯示螢幕,由於這次沒特別設定螢幕的大小,所以就照內建默認的大小設定,以便結果輸出到下面視窗時可以看到。

行18-20:賦予vm的定義,同時也設定vm的顯示內容。top、bottom、 left、及right Limit表示鼠標在上、下、左、右可移動的距離限制。showLimitBox代表顯示由上下左右之距離限制所形成的移動範圍,True代表pointer顯示鼠標可移動之範圍;False則與True相反,即不顯示。clickOnUp代表計算點擊滑鼠左鍵反應的時機,True代表點擊滑鼠後將要離開之時刻;False則代表一開始點擊滑鼠之當下。

**customMouse之詳細設定請參考:http://www.psychopy.org/api/visual/custommouse.html#psychopy.visual.CustomMouse

行22-23:賦予instr之定義,設定指導語顯示的文字內容(text)與顯示位置(pos)。\n代表換行。

行24:賦予new_pointer之定義。以字母o來顯示鼠標。

行25:利用函式print(),將下列三項數據輸出至output視窗。滑鼠點擊位置、滑鼠滾輪位置及點擊時間。

行26-42:是個迴圈,只是會根據反應的不同而進入不同的結果。

行26:表示當反應為非任一按鍵反應,

行27-28:則將指導語與鼠標的資訊輸出到緩衝器,等待由螢幕輸出。

行29:把緩衝器(即行27-28的instr與vm)的內容顯示在視窗中。

若反應為任一按鍵反應則直接跳至行44:關閉視窗。

行30:如果反應為點擊滑鼠反應,

行31:則重設滑鼠,

行33-35:輸出三項數據至output視窗。行33的%.2f意思為取到小數點後兩碼;行35的%.3f意思為取到小數點後三碼。

行38:更改鼠標可移動至範圍。

行39:更改指導語。

行42:賦予vm.pointer定義,即行24。

若反應為任一按鍵反應則直接跳至行44:關閉視窗。

行44:關閉視窗。

以上就是Demos裡面的input之customMouse的程式說明~

然後,希望大家可以試著動手跑跑看,可以有助於理解哦~若有疑問也請留言,我會盡自己所能地回答!如果上述有錯誤的地方,也請大家不吝嗇地指出錯誤,讓我們可以共同進步!感恩!

額,或許有人看不懂行26-42的迴圈是怎麼回事,不過沒關係,我也是研究了許久才了解的!在此附上我研究許久的簡易圖~希望大家別嫌棄它~

螢幕截圖 2018-08-10 21.39.49

Leave a Comment

Filed under 用PsychoPy玩實驗

用 PsychoPy coder 來學習 (1)

2018年暑假請同學一起來玩PsychoPy,為了不要忘記,在此留下筆記。這一篇是學習coder的第一篇。我們將PsychoPy安裝後打開 Demo(第一次會問我們要不要安裝 demo),由其中範例程式來學習。

Continue reading

Leave a Comment

Filed under 用PsychoPy玩實驗

KDE實驗介紹之四

前文最後有兩段影片,一個是雙面都是面具的旋轉,另一個是有兩個粗邊的奈克方塊( Necker cube)。

Continue reading

Leave a Comment

Filed under 實驗介紹

KDE實驗介紹之三

前文中介紹會旋轉的面具,相信都可以看到面具一直在反轉。甚至不少人看到的是來回搖擺的面具。

Continue reading

Leave a Comment

Filed under 實驗介紹

KDE實驗介紹之二

前文最後連結了我們製作的旋轉之奈克方塊(Neker cube),可能看起一直以同一方向旋轉,多半是從左往右轉。

Continue reading

1 Comment

Filed under 實驗介紹

KDE 實驗介紹之一

如果將三維的物品投影到平面,我們將看到二維的圖形。日常生活中我們可以從這樣的二維圖形恢復原來的三維物品之知覺,但有時可能不見得可以。

Continue reading

Leave a Comment

Filed under 實驗介紹

用PsychoPy玩實驗(5)

我們上次已經建立了一個指導語trial,接下來我們要來學習建立最關鍵的「實驗作業」。

這次的作業是小時候常玩的「數字比大小」遊戲,稍微想像一下,這個遊戲的內容或許是「左邊有一個數字,右邊有一個數字,然後請玩家選擇『數字比較大』的那一邊」。

如果要用小畫家來示意,應該就是類似這樣子的遊戲畫面:

示意圖

然後玩家可以使用「電腦鍵盤的方向鍵」來選擇左邊或右邊的數字,假如玩家覺得12比較大,那他就可以按下方向鍵的右鍵進行反應,並完成這一次的問答作業,非常直覺的作業形式。

那我們要如何使用PsychoPy來建立上述的作業呢?首先我們需要在原本的指導語後面,再建立一個新的trial。

建立新trial

我用紅色框起來的地方就是這個新的trial,建立的方式與先前的指導語相同,透過「Insert Routine」來添加。

這裡特別注意到畫面中「inst_resp」的圖示已經變化了,變成了電腦鍵盤!這是最近一次軟體更新中改變的部份,方便我們區分「Keyboard」和「Cedrusbuttonbox」的不同,所以未來要加入電腦鍵盤物件時,記得點選這個電腦鍵盤的圖示。

緊接著,我們點選剛才新建立的「trial」,也就是我們這個實驗的重頭戲。

空白的新trial

它目前還是一片空白,不過沒有關係,我們先試著加入一些東西,既然是數字比大小的遊戲,畫面上當然要有數字。我們比照先前撰寫指導語的方式,建立一個文字物件和一個鍵盤物件,並分別編輯它們的內容:

數字物件  trial鍵盤物件

按下ok之後,就試著「Run」一次看看。我們現在可以開始養成一個習慣,每完成一個小段落,就試著跑一下程式,這可以避免初學者在撰寫實驗的過程中累積許多小錯誤,最後卻找不到bug在哪裡。

數字1

 

這就是這個數字物件的內容,數字「1」確實呈現出來了,就跟先前的指導語一樣,然而光是這樣並沒有辦法做比較,如果要做比較的話,畫面上至少要有兩個數字才行。

假如我們按照之前的方式加入第二個文字物件,那麼這兩個文字物件將會重疊在一起(重疊在畫面的正中央),所以我們要設法讓它們有一些「位置上」的差異。此外目前畫面上的數字1也長得太矮小了,放大一點或許能看得比較清楚!

為了進行以上的調整,我們先打開剛才命名為「number」的文字物件,並且在它的編輯界面進行以下的更動:

修正文字物件

首先在「Name」的地方,我們可以在後面加入「_left」的字串,表示這個數字是出現在畫面「左邊」的。注意!PsychoPy的命名系統不太接受空白鍵,因此當我們想要區隔字元時,請愛用「_」來做分隔。

其次,「Letter height」的框格,則把原本的0.1改成「0.3」,讓它的尺寸長大3倍。

最後在「Position」的部份,把X軸預設的0改成「-0.5」,將物件的位置定位在畫面左邊。在物件的定位方面,X軸和Y軸分別是從「-1~1」的範圍,兩軸的-1和1就是畫面的上、下、左、右邊界處。

然後按下OK之後,我們可以再「Run一次看看」!

修正後的數字

一個位於畫面左側的大型數字,這應該是比較符合我們需求的物件,接下來就請按照以上的介紹,試著自己完成另一個以「number_right」為名,而且文字內容為「3」的文字物件吧!

完成了嗎?完成之後的畫面應該是長這個樣子的:

13

然後我們再回到鍵盤物件的部份,按照以下的方式重新編輯這個物件:

重新編輯鍵盤

說明一下,其中「Allowed keys」的部份,代表的是我們允許玩家使用哪些按鍵作答,由於這個遊戲只需要「左鍵和右鍵」就能完成,因此我們留下這兩個鍵即可,其餘的按鍵就當作不允許使用,避免玩家誤觸。

而後「Store correct」的框框記得要打勾,並在下方的「Correct answer」填入「right」(畢竟3應該比1大)。因為這一題有標準答案,假如我們事先把標準答案設定好的話,程式就會自動幫我們對答案,省去我們核對的辛勞。

全都設定好之後,我們就可以把程式完整的Run下去啦!

 

run1

 

這是第一頁,指導語指示玩家要「從兩個數字當中選擇較大的一方」,按下「空白鍵」之後就可以繼續。

 

13

嗯,題目出現了!因為數字3比數字1還要大,這個時候就要按下「右鍵」才行呢!按鍵之後就會順利結束實驗。

大功告成!不過就只有一題似乎有點無趣,答對了也沒有成就感,所以我們下次會介紹如何運用循環清單的形式,一口氣製造出「100題」數字比大小遊戲!

敬請期待!

 

 

 

Leave a Comment

Filed under 用PsychoPy玩實驗