PsychoPy入门_02_按键等待&反应时

不靠谱PsychoPy入门教程目录:

  1. PsychoPy入门00安装

  2. PsychoPy入门01文字和图片的呈现

  3. PsychoPy入门02按键等待&反应时

  4. PsychoPy入门03视频和音频的呈现

  5. PsychoPy入门04等级评定

  6. PsychoPy入门05循环和随机

  7. PsychoPy入门06数据记录

  8. PsychoPy入门07鼠标的使用

  9. 用PsychoPy做视觉搜索任务实验


上一篇里文字和图片的呈现是提前设定好了固定的秒数,如果想让它一直在屏幕上停留着,直到做出按键反应再继续怎么办呢?比如给被试看一片儿指导语,等他读完了按空格开始。

这时候就需要增加一个等待按键的语句。

我们沿用上次的代码,把文字部分的内容了一下,是这样的:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

from psychopy import visual, core

win = visual.Window(fullscr = False, size = (1000,600), color = (-1,-1,-1))

text_1 = visual.TextStim(win, text = u'示例2',
                           height = 0.1,
                           pos = (0.0,0.2),
                           color = 'pink',
                           bold = True,
                           italic = True)
text_2 = visual.TextStim(win, text = u'',
                           height = 0.1,
                           pos = (0.0,-0.1),
                           color = 'violet',
                           bold = True,
                           italic = False)
text_2.text = u'请按任意键开始'

text_1.draw()
text_2.draw()
win.flip()
core.wait(2)

pic = visual.ImageStim(win, image = 'test_l.JPG')

pic.image = 'test_s.jpg'
pic.draw()
win.flip()
core.wait(2)

win.close()
core.quit()

按键等待

首先,import这里增加个event。

from psychopy import visual, core, event

然后core.wait(0)时间改为0,下面增加:

k_1 = event.waitKeys()

这里有两个函数可以实现案件等待,event.waitKeys()和event.getKeys()。略有不同,waitKeys()可以设置最长等待时间,另外一个不行。还有运行上的差异,详情请查看官网event模块

event.waitKeys()有三个参数:maxWait=inf,最长等待时间默认无限,可以设置为数字;keyList=None,默认为空,按任何一个键都可以;timeStamped=False,时间戳,并不常用。

这时候运行一下,文字的界面就会一直停留,直到你按个键才会继续。

如果我想直到从这个刺激出现开始,到被试做出反应用了多长时间怎么做呢?下面说一下用core.Clock()来记录反应时的方法。

反应时

在文字刺激下方添加时钟:

timer = core.Clock()

在刺激呈现之后重置时钟,然后在按键反应结束后获取时间。最后把键名和时间打印出来。刺激呈现这部分的代码就变成这样。

text_1.draw()
text_2.draw()
win.flip()
core.wait(0)
timer.reset()           #重置时间0
k_1 = event.waitKeys()
timeUse = timer.getTime()       #获取时间
print k_1, timeUse

这时候运行一下,随便按个键,会在output区域得到类似这样的结果:['f'] 2.80920504301。list里是按键的结果,所用时间按秒计算,精度还是蛮高的。

反应选择

在图片下面也增加一个按键等待。

k_2 = event.waitKeys(keyList = ['f','j'])

给keyList一个列表,这样就只能按list里面指定的键才会继续运行下面的代码。

现在有两个选项,那么就可以根据按键的结果设置一个分支结构。通过对k_2的判断来设置。

if k_2[0]=='f':
    # do someting
else:
    # do other

这里我让按了‘f’键之后屏幕上出现一个“左字”,按‘j’键后出现“右”字。继续使用上面的文字刺激。把do something的地方补充完整:

if k_2[0]=='f':
    text_1.text = u'左'
    text_1.draw()
    win.flip()
    core.wait(2)
else:
    text_1.text = u'右'
    text_1.draw()
    win.flip()
    core.wait(2)

好嘞,运行一下试试瞧。

按键等待和反应时的部分就说这些。


完整代码如下:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-


#示例2
'''
    按键反应
'''

#载入所需要的库
from psychopy import visual, core, event

#创建窗口
win = visual.Window(fullscr = False, 
                    size = (1000,600),
                    color = (-1.0,-1.0,-1.0))

#文字
text_1 = visual.TextStim(win, text = u'示例2',
                               height = 0.12,
                               pos = (0.0,0.2),
                               bold = True,
                               italic = False,
                               color = 'pink')

text_2 = visual.TextStim(win, text = u'',
                               height = 0.1,
                               pos = (0.0,-0.2),
                               bold = True,
                               italic = False,
                               color = 'violet')
text_2.text= u'请按任意键继续'

#时钟
timer = core.Clock()

#呈现文字刺激
text_1.draw()
text_2.draw()
win.flip()
core.wait(0)
timer.reset()           #重置时间0
k_1 = event.waitKeys()
timeUse = timer.getTime()       #获取时间
print k_1, timeUse


#图像
pic = visual.ImageStim(win, image = 'test_l.JPG')

pic.draw()
win.flip()
core.wait(0)
k_2 = event.waitKeys(keyList = ['f','j'])

if k_2[0]=='f':
    text_1.text = u'左'
    text_1.draw()
    win.flip()
    core.wait(2)
else:
    text_1.text = u'右'
    text_1.draw()
    win.flip()
    core.wait(2)

'''
# 这里未做讲解,是我闲来无聊做了一个数字的倒计时。
dtimer = core.CountdownTimer(4)
while dtimer.getTime()>0:
    text_2.text = str(int(dtimer.getTime()))
    text_2.draw()
    win.flip()
'''
win.close()
core.quit()

就这些啦,有什么疑问或者建议请在下方评论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,510评论 25 707
  • 三月的麦地 已经复活 每一棵麦子 都想起了自己的誓言 一阵风 吹绿了它们的骨头 一场雨 多么温馨的告白
    简村小吹阅读 377评论 17 16
  • 世界上有两件东西能够深深地震撼人们的心灵 一件是我们心中崇高的道德准则 另一件是我们头顶上灿烂的星空 ——伊曼努尔...
    魔旅行阅读 269评论 0 0
  • 这两天由于小孩的湿疹,便秘加上老婆的乳腺炎,似乎过的有点糟糕。也终于能够深刻地理解,为什么会有产后抑郁了。。。 繁...
    绅绅的帅老爸阅读 199评论 0 1