Psychopy | 第3期: 从 flanker 范式看完整的程序

img
img
Hello,
这里是行上行下,我是喵君姐姐~

最近在家实在无聊,所以只好安安心心学习啦。你最近在家干什么呢?

今天,继续邀请阿槑给你带来Psychopy系列教程,带来从flanker范式看完整的程序,希望你会继续喜欢并且一直支持哟~

1 相关概念的简单引入

从今天开始,我将使用2期左右带大家完整的完成一个心理学行为实验程序。并且在这个过程中能够让大家对 psychopy 有一个比较好的了解。

本期我们先来看有关刺激呈现的相关知识。
img

flanker范式任务最终呈现

对于 Python 来说,其功能的实现是由一个一个的模块(Module)来进行的。所谓模块,是前人为了实现某些功能而编写的一段代码,其中包括了我们实现功能所需要的东西。通过引用,相应的功能得以在我们的程序中实现。

当我们需要在程序中使用某一个模块时,我们一般使用 import <模块名> 来进行导入,而对于psychopy,我们使用from psychopy import <模块名> 来进行导入。与刺激呈现有关的是 psychopy 中的 visual 模块,那我们需要在开头编写:

from psychopy import visual

所需要的“工具”准备好以后我们先来回顾一下常用的flanker范式(Eriksen & Eriksen, 1974)的呈现过程,如图:
img
这是一个最简单常用的 flanker 范式的过程(未使用原文献中的字母刺激),我们就以此为例来看一下如何利用psychopy 实现 flanker 范式的呈现。

2 各个部分的详细讲解

我们要想进行刺激的呈现,首先要建立一个窗口。

根据流程图,我们建立一个以中灰为背景色的,1024 * 768 像素大小的窗口,代码如下:

from psychopy import visual  
Win = visual.Window((1024,768), color=(128, 128, 128), fullscr=False, units='pix',colorSpace='rgb255')   

我们使用 visual 模块中的 Window 方法进行窗口的定义以及相关参数的设置。该方法的参数如下:
img
其中,第二个参数是窗口的背景色,我们使用在 psychopy 中被定义为 ‘rgb255’ 的方式进行编写,这种方式将光学三原色(红绿蓝)以0–255表达出来,其中当红绿蓝三成分均为128时可以得到中灰,而 (255,255,255) 为白色,(0,0,0) 为黑色。使用这种方法时,参数colorSpace需要设置为 ‘rgb255’。

另外,第三个参数 fullscr 控制是否全屏显示,在日常的实验编写过程中建议保持非全屏False,这样如果编写过程中出现错误可以方便退出;而在正式实验的时候可以将其改为 True。

到此,我们设置出的窗口是一个 1024*768 的,单位为像素的,且中心坐标为(0,0)的窗口,如图:
img
设置完窗口以后,我们继续设置所需要的刺激。

首先,对于注视点,我们使用 visual 模块中的TextStim 方法,这种方法主要对文字刺激进行编写,而注视点可以使用文字“+”来替代;而对于我们需要的箭头,由于不同的试次有所不同,因此在后面我们进行与试次有关的设置时我们再进行编写。除了注视点,这里我们可以首先将结束语编写出来,代码如下:

 # -*- coding: utf-8 -*-   
 from psychopy import visual      
 Win = visual.Window((1024,768), color=(128,128,128), fullscr=False, units='pix',colorSpace='rgb255')     
 fix = visual.TextStim(Win, text='+', color='black', height=50,bold=True)
 endPrompt = visual.TextStim(Win, text='实验结束,谢谢!', color='black', height=60)  

各个参数的解析如下(以注视点为例):
img
结束语与其相类似。

其中,这里展示了另一种颜色的编写方式,即直接使用颜色的对应单词来进行编写。 这种方式虽然比较简单,但是如果需要编写的实验对颜色的精确性要求很高,则还是建议使用’rgb255’的方式进行编写。

同时,由于结束语是中文文本,因此需要进行文件编码类型的转化,因此代码开头加了

# -- coding: utf-8 --

这一小段特殊注释建议在编写python程序的过程中都在开头处加上。

目前,我们把除了反应屏以外的其他刺激都编写完成,下面需要对本范式中最复杂的部分进行编写。

首先,一般的 flanker 范式有两个自变量,即2(两侧:左,右)×2(中央:一致,不一致)实验设计,我们首先把这四种情况定义出来,并将其顺序打乱:

 import random   
 var = []  #建立自变量空列表 
 for flanker in ['left', 'right']:       
 	for center in [<
  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹脑云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值