psychopy教程3-组件详细介绍

xxxspy 2017-10-02 17:14:10
Categories: Tags:

概述

这篇文章我们介绍一下psychopy中常用的组件,比如文本和图片是最长用的组件。我们主要介绍他们的属性已经配置界面,属于Builder视图下的配置,因为在Coder视图下,我们只需要写代码即可,不需要配置页面。

通用属性

通用属性就是在很多组件中都包含的属性,比如刺激的呈现时间。我们在这统一对这些属性进行解读,以便节省重复劳动,而且使得教程更有条理。

开始结束时间

一个组件需要有开始时间,默认是0s,也就是从0时刻开始。所谓的0时刻就是指环节(Routine)开始的时间。如果结束时间留空,则刺激会一直呈现直到所在环节结束。

psychopy有很多方式定义开始结束时间,最常用的就是以秒为单位进行控制;还可以使用帧来定义,你可以让刺激呈现240帧, 假如你的显示器刷新频率是60Hz,那么240帧的意思等价于4秒。但是很多时候帧和秒是不能如此转换的。你还可以设置条件来控制结束时间, 比如另一个刺激结束的时候就结束该刺激。我们来详细介绍一下这些复杂的情况。

如果你想精确控制时间,你需要使用帧来定义你的刺激开始和结束时间。同样以60Hz的显示器来说明问题,假如你想让刺激呈现0.12秒,那么刺激应当在第7.2帧的时候结束,但显然是不可以的,因为你的显示器只能在刷新的时候改变刺激,所以要么在第7帧的时候结束要么在第8帧的时候结束。

利用条件来控制开始结束时间需要你懂一些psychopy的内部接口,这里不深入去讲,举一个例子,比如你的一个文本刺激需要在视频刺激开始的时候开始,那么可以设置这个文本刺激的开始时间为$myMovie.status==FINISHED,这样视频一旦开始,文本就开始。为了使问题简单化,你只需要将文本和视频的开始时间设置成同一个值即可,只不过这违背了一些程序开发的原则。

常量VS变量

有些刺激属性在整个实验阶段都不会改变,所以称为常量,有些属性每一个trial都要更改一个值,这些就叫做变量。变量的改变可以是每个trail改变一次,也可以每一帧改变一次,为了性能,尽量少用每一帧改变一次。在psychopy中如何设置属性为常量还是变量?

在配置页,很多属性后面都会跟一个下拉列表,在列表中有三个选项:

名称(name)属性

psychopy里任何组件都必须有名称, 并且所有组件的名称都是唯一的, 不能重复, 这个在你设置name属性的时候会发现, 如果你用了相同的名称, 它会提示你错误.

文本组件

点击组件框中的text组件,即可打开text的配置页面。

有两个配置页面,一个是basic,一个是advance,顾名思义,basic就是基本配置,是最常用的一些属性,advance不常用,但能实现一些高级效果。basic的配置项具体看下图。

关于此图,我们需要说明一些问题:

图片组件

图片组件的配置页面:

关于此图的说明:

图片组件的高级配置页面:

关于此图的说明:

图形

线段, 三角形, 圆形, 矩形等刺激都归为此类, 很多人用图片来呈现这些词, 但是如果没有特别复杂的图形, 仅用psychopy的图形组件(ploygon)即可.

这是图形组件的基本配置项:

关于此图的基本说明:

图形组件的高级配置:

关于此图的说明:

随机点

这个可能不是一个通用功能, 只有一些特殊领域的人会用到. 这个组件的功能是产生一些随机分布的点. 有时候在记忆实验中, 随机点可以防止被试产生视觉记忆. 但是这个组件最多的用途还是用于 Random Dot Kinematogram 实验, 被试需要识别出不同移动方向的目标点.

下图是随机点的一个示例:

下图是随机点的基本配置:

关于此图的解释:(有些略去, 因为上面多次提到同样的配置项)

下图是随机点组件的高级配置:

关于此图的解释: