在PsychoPy中记录所有按键,以及等待按键?

时间:2014-12-10 16:23:39

标签: python psychopy

我正在使用PsychoPy进行实验。我有一个简单的实验,每次按下某个键时屏幕都会改变。这很简单,我已经使用了event.waitKeys()。但是,我想要一个背景'正在运行的过程(不确定正确的术语),其中每个键按下,包括不触发刺激的按键,或者在屏幕转换期间发生的按键被记录。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

假设您已经使用代码构建了实验,那么策略就是像现在一样使用event.waitKeys(),但是当按下某个键时只有视觉操作并将其他键添加到名单。因此,如果您的目标键是空格:

from psychopy import visual, event
win = visual.Window()

for trial in range(5):  # loop over trials. Usually a list of dicts.
    # Prepare and present your stimuli here.
    # Then enter a response-listening phase:
    allResponses = []  # we will fill this in with responses
    while True:
        response = event.waitKeys()   # you probably have event.waitKeys(keyList=['space']) or something like that right now
        allResponses += response  # add keynames. Adds nothing on empty response
        if 'space' in response:
            break  # break out of the while-loop

    # Save trial here along with the contents of allResponses

如果您正在主动转换屏幕上的内容,则可以在for循环中执行此操作,并在每次迭代时调用win.flip()而不是上面的while循环。这将离散您可以按帧速率记录响应的时间(通常为每秒60次)。如果您需要更精细的分辨率,例如反应时间,使用iohob背景,其中键被记录为一个单独的过程,独立于刺激的呈现。