打开芝麻
长发公主代码编辑器
数据矩阵
支持论坛
Python教程
MindProbe公司
支持单位:

猫、狗和水豚

/页面/tutorials/img/capybara/capybara.png

图1。水豚。

关于

我们将创建一个简单的充满动物的多感官整合任务,参与者可以看到狗、猫或水豚的图片。图片显示时会发出喵喵声或吠声。参与者用鼠标点击屏幕上的响应按钮,报告显示的是狗还是猫。当水豚出现时,不应作出回应:这是渔获量试验。

我们做了两个简单的预测:

  • 参与者在发出吠声时应更快地识别狗,在发出喵喵声时应更快速地识别猫。换言之,我们期望多感官一致性效应。
  • 当参与者看到水豚时,他们更可能在听到吠声时看到狗,而在听到喵喵声时更可能看到猫。换句话说,假警报会受到声音的影响。

辅导的

步骤1:下载并启动OpenSesame

OpenSesame适用于Windows、Linux、Mac OS和Android(仅限运行时)。本教程是为OpenSesame 3.3.X编写的。您可以从以下位置下载OpenSesame:

启动OpenSesame时,您可以选择模板实验,以及(如果有)最近打开的实验列表(请参阅图2).

/页面/教程/img/capybara/start-up.png

图2。启动时的OpenSesame窗口。

这个扩展模板为创建基于试验的实验提供了一个良好的起点。然而,在本教程中,我们将从头开始创建整个实验。因此,我们将继续使用启动OpenSesame时已经加载的“默认模板”(图3). 因此,只需关闭“开始!”和(如果显示)“欢迎!”选项卡。

/页面/tutorials/img/capybara/default-template.png

图3。概述区域中显示的“默认模板”的结构。

背景框1:基础

OpenSesame实验是项目项是一小部分功能,例如,可以用于显示视觉刺激(草图板项目)或录制按键(键盘_响应项目)。项具有类型和名称。例如,您可能有两个类型的项键盘_响应有名字t1_响应t2_响应。为了明确项目类型和项目名称之间的区别,我们将使用this_style(此样式)对于类型,和这种风格用于名称。

为了让你的实验有条理,有两类项目特别重要:序列.了解如何结合s和序列构建实验可能是使用OpenSesame最棘手的部分,所以让我们先把它解决掉。

A类在大多数情况下,是定义自变量的地方。在一个您可以创建一个表,其中每列对应一个变量,每行对应一次运行的“要运行的项”。为了使这一点更加具体,让我们考虑以下几点块_循环(与本教程无关):

/页面/tutorials/img/capybara/loop-table.png

图4。循环表中定义的变量示例。(此示例与本教程中创建的实验无关。)

这个块_循环将执行三元序列四次。曾经soa架构是100并且目标是“F”,一次soa架构是100并且目标是“H”等。默认情况下,行的遍历顺序是随机的,但也可以在选项卡的右上角设置为顺序。

A类序列由一系列依次执行的项组成。原型序列三元序列对应于单个试验。例如,基本三元序列可能包括草图板,以呈现刺激键盘_响应,以收集响应,以及记录器,将试用信息写入日志文件。

/页面/tutorials/img/capybara/example-sequence.png

图5。一个示例序列用作试验序列的项目。(此示例与本教程中创建的实验无关。)

你可以合并s和序列以分层的方式,创建试验块,以及实践和实验阶段。例如三元序列由调用块_循环这些都对应于一组试验。再上一层块序列由调用练习_循环这些都与实验的实践阶段相对应。

步骤2:添加block_loop和trial_sequence

默认模板从三项开始:A便条簿打电话getting_started(获取启动),一个草图板打电话欢迎、和序列打电话实验.我们不需要开始欢迎,让我们立即删除这些。为此,右键单击这些项目并选择“删除”。不要删除实验,因为它是实验的条目(即开始实验时调用的第一项)。

我们的实验将有一个非常简单的结构。层次结构的顶部是,我们将称之为块_循环. The块_循环是我们定义自变量的地方(另请参见背景框1)。添加图标从项目工具栏移动到实验项目。

A类项需要另一项才能运行;通常,在这种情况下,这是一个序列。拖动序列项目从项目工具栏上新回路项目。OpenSesame将询问您是否要插入序列。选择“插入到new_loop”。

默认情况下,项目的名称如下new_sequence(新序列),新回路,新序列2等。这些名称信息量不大,最好重命名。项目名称必须由字母数字字符和/或下划线组成。要重命名项目,请双击概述区域中的项目。重命名new_sequence(新序列)三元序列表明它将对应于一次试验。重命名新回路块_循环以表明这将对应于一组试验。

我们实验的概览区域现在如所示图6.

/pages/tutorials/img/capybara/step3.png页面

图6。步骤2末尾的概述区域。

背景框3:未使用的项目

提示-在“未使用的项目”选项卡中选择“永久删除未使用的项”之前,已删除的项目仍然可以在“未用的项目”栏中使用。您可以通过将已删除的项从“未使用项目”栏拖到序列.

步骤3:导入图像和声音文件

在这个实验中,我们将使用猫、狗和水豚的图像。我们还将使用喵喵声和吠声的声音样本。您可以从这里下载所有必需的文件:

下载刺激.zip并将其解压缩到某个位置(例如,到您的桌面)。接下来,在OpenSesame中,单击主工具栏(或:菜单)中的“显示文件池”按钮查看显示文件池)。默认情况下,这将在窗口的右侧显示文件池。将刺激添加到文件池的最简单方法是将它们从桌面(或文件解压缩到的任何位置)拖动到文件池中。或者,您可以单击文件池中的“+”按钮,然后使用显示的文件选择对话框添加文件。文件池将与实验一起自动保存。

添加完所有刺激后,文件池如下所示图7.

/第页/tutorials/img/capybara/step4.png

图7。步骤3末尾的文件池。

步骤4:在block_loop中定义实验变量

从概念上讲,我们的实验采用完全交叉的3×2设计:我们有三种视觉刺激(猫、狗和水豚),它们与两种听觉刺激(喵喵声和吠声)结合出现。然而,对于每种刺激类型,我们有五个样本:五个喵喵声,五个水豚图片等。从技术角度来看,因此,将我们的实验视为一个5×5×3×2的设计,其中图片数量和声音数量是五个级别的因素。

OpenSesame非常擅长生成全要素设计。首先,打开块_循环通过在概述区域中单击它。接下来,单击Full-Factorial Design按钮。这将打开一个生成全因子设计的向导,其工作方式简单明了:每列对应一个实验变量(即因子)。第一行是变量的名称,下面的行包含所有可能的值(即级别)。在我们的案例中,我们可以指定5×5×3×2的设计,如所示图8.

/页面/tutorials/img/capybara/loop-wizard.png

图8。循环向导生成全要素设计。

单击“确定”后,您将看到现在有一个表格有四行,每个实验变量一行。共有150个周期(=5×5×3×2),这意味着我们有150个独特的试验。您的表现在看起来像图9.

/pages/tutorials/img/capybara/step5.png页面

图9。这个第4步末尾的表。

步骤5:将项目添加到试用序列

正常开放三元序列,它仍然是空的。是时候添加一些项目了!我们的基本三元组序列是:

  1. A类草图板显示500毫秒的中央固定点
  2. A类取样器播放动物声音
  3. A类草图板显示动物图片
  4. A类鼠标_响应收集响应
  5. A类记录器将数据写入文件

要添加这些项目,只需将它们从项目工具栏一个接一个地拖动到三元序列。如果您不小心将项目放错了位置,只需通过拖放重新排序即可。一旦所有项目的顺序都正确,给每个项目一个合理的名称。概述区域现在如所示图10.

/页码/tutorials/img/capybara/step6.png

图10。步骤5末尾的概述区域。

步骤6:定义中央固定点

单击固定_点在概述区域中。这将打开一个基本的绘图板,您可以使用它来设计视觉刺激。要绘制中央固定点,首先单击十字准线图标,然后单击显示器的中心,即位置(0,0)。

我们还需要指定固定点的可见时间。为此,将持续时间从“按键”更改为495 ms,以指定500 ms的持续时间。(有关说明,请参见背景框4。)

这个固定_点项现在看起来像图11.

/第页/tutorials/img/capybara/step7.png

图11。这个固定_点第6步末尾的。

背景框4:选择正确的持续时间

如果需要500毫秒的持续时间,为什么要指定495的持续时间?这样做的原因是,实际的显示-演示持续时间总是四舍五入到一个与监视器刷新率兼容的值。这听起来可能很复杂,但在大多数情况下,以下经验法则就足够了:

  1. 根据显示器的刷新率,选择可能的持续时间。例如,如果监视器的刷新率为60 Hz,则表示每帧持续16.7 ms(=1000 ms/60 Hz)。因此,在60 Hz监视器上,应始终选择16.7 ms的倍数的持续时间,例如16.7、33.3、50、100等。
  2. 在的持续时间字段中草图板指定一个比目标短几毫秒的持续时间。所以如果你想展示一个草图板对于50 ms,选择持续时间45。如果你想展示草图板对于1000毫秒,选择995的持续时间。等等。

有关实验时间的详细讨论,请参见:

第7步:定义动物声音

正常开放动物_声音. The取样器项提供了许多选项,最重要的是应该播放的声音文件。单击浏览按钮打开文件池选择对话框,然后选择一个声音文件,例如树皮1.ogg.

当然,我们不想一遍又一遍地播放同样的声音!相反,我们希望根据变量选择声音声音声音(_N)我们在块_循环(步骤5)。为此,只需将要依赖于变量的字符串部分替换为方括号中该变量的名称。更具体地说,'bark1.ogg'变为'[sound][sound_nr].ogg',因为我们想用变量的值替换'bark'声音和“1”的值声音(_N).

我们还需要更改取样器。默认情况下,持续时间为“声音”,这意味着在播放声音时实验将暂停。将持续时间更改为0。这并不意味着声音将只播放0毫秒,而是意味着实验将立即进行到下一个项目,而声音将继续在背景中播放。项目动物_声音现在看起来如所示图12.

/第页/tutorials/img/capybara/step8.png

图12。项目动物_声音第7步结束时。

背景框5:变量

有关使用变量的更多信息,请参阅:

第八步:定义动物图片

正常开放动画_图片。通过单击带有类似景观图标的按钮来选择图像工具。单击显示屏的中心(0,0)。在显示的“文件池”对话框中,选择水豚1.png水豚的斜视现在会从显示屏中央懒洋洋地盯着你。当然,我们并不总是想展示同样的水豚。相反,我们希望图像依赖于变量动物图片(_N)我们在块_循环(步骤4)。

我们基本上可以使用与之前相同的技巧动物_声音,尽管图像的工作方式略有不同。首先,右键单击水豚并选择“编辑脚本”。这允许您编辑与水豚图片对应的OpenSesame脚本的以下行:

 形象 中心=1 文件=“水豚1.png” 规模=1 显示_if=总是 x个=0 =0 z _索引=0

现在将图像文件的名称从“capybara.png”更改为“[animal][pic_nr].png”:

 形象 中心=1 文件=“[动物][pic_nr].png” 规模=1 显示_if=总是 x个=0 =0 z _索引=0

单击“确定”应用更改。水豚现在不见了,取而代之的是一个占位符图像,OpenSesame告诉您没有显示一个对象,因为它是使用变量定义的。别担心,它会在实验中显示出来的!

我们还添加了两个响应圈:

  • 屏幕左侧有一个名为“dog”的圆圈。(为了提醒参与者响应规则,您可以在圆圈中添加文本“dog”的文本元素。这纯粹是视觉效果。)
  • 屏幕右侧有一个名为“猫”的圆圈。(为了提醒参与者响应规则,您可以在圆圈中添加文本“cat”的文本元素。)

我们将使用这些圆圈作为感兴趣的地区我们的鼠标响应。更具体地说,因为我们给圆圈起了名字鼠标_响应项将能够检查鼠标单击是否落在其中一个圆圈内。我们将在第9步中回到这一点。

最后,将“持续时间”字段设置为“0”。这并不意味着图片只显示了0毫秒,而是意味着实验将进入下一个项目(响应)马上。响应等待响应,但不更改屏幕上的内容,在给出响应之前,目标将保持可见。

/第页/tutorials/img/capybara/step9.png

图13。这个动画_图片 草图板第8步结束时。

背景框6:图像格式

提示--OpenSesame可以处理多种图像格式。然而,一些(非标准).bmp众所周知,格式会带来麻烦。如果您发现.bmp(.bmp)如果未显示图像,您可能需要考虑使用其他格式,例如.png码。您可以使用[GIMP]等免费工具轻松转换图像。

步骤9:定义响应

打开鼠标_响应项目。这是一个鼠标_响应项,它收集一次鼠标单击(或释放)。有几个选项:

  • 正确的响应-在这里,您可以指示哪个鼠标按钮是正确的响应。然而,我们将根据参与者单击的位置而不是单击的按钮来确定响应是否正确,因此可以将此字段留空。
  • 允许的响应是接受的鼠标按钮的分号分隔列表。让我们将其设置为“left_button”。
  • 超时指示一个持续时间,在此时间之后,响应将设置为“无”,实验将继续。暂停在我们的实验中很重要,因为参与者需要有机会当他们看到水豚时做出回应。因此,让我们将超时设置为2000。
  • 链接的草图板表示草图板其中的元素应用作感兴趣的区域。我们将选择动画图片。现在,如果我们单击名为“cat”的元素,则变量光标_roi将自动设置为“cat”。
  • 可见鼠标光标-指示在响应收集期间应显示鼠标光标。我们需要启用此功能,以便参与者可以看到他们单击的位置。
  • 刷新挂起的鼠标单击表示我们应该只接受新的鼠标键点击。最好保持启用状态(默认情况下)。

/第页/tutorials/img/capybara/step10.png

图14。这个鼠标_响应 鼠标_响应第9步结束时。

步骤10:定义记录器

我们不需要配置记录器,因为其默认设置很好;但无论如何,让我们来看一看。单击记录器在概述区域中打开它。您可以看到选项“记录所有变量(推荐)”已被选中。这意味着OpenSesame会记录所有内容,这很好。

背景框8:始终检查您的数据!

统治所有人的一个秘诀-始终三次检查是否所有必要的变量都记录在实验中!检查此问题的最佳方法是运行实验并调查结果日志文件。

第11步:完成!(有点……)

现在您应该可以运行实验了。还有很大的改进空间,你将在下面的额外作业中对实验进行润色。但基本结构就在那里!

单击“全屏运行”(控制+R)按钮进行测试运行。

背景框11:快速运行

提示-通过单击橙色的“run in window”(在窗口中运行)按钮,可以更快地执行测试运行,它不会询问您如何保存日志文件(因此只应用于测试目的)。

额外的工作分配

下面的额外作业是让你自己解决的。这些作业的解决方案可以在实验文件。但最好的学习方法是自己解决!

简单:添加说明和再见屏幕

  • 草图板形式_文本_显示项可以显示文本
  • 好的指示简短而具体

简单:检查数据

  • 自己做一次实验。您可以通过设置块_循环小于1。
  • 在Excel、LibreOffice或JASP中打开数据文件

中等:对每次试验提供反馈

  • 要做到这一点,您需要已经定义了正确的响应!(见下文。)
  • 提供反馈的一种好的、不引人注目的方式是,在不正确的响应后简短地显示一个红点,在正确的响应之后显示一个绿点
  • 使用Run If语句!

中等:平衡响应规则

  • 变量主题_参数是“偶数”或“奇数”
  • 使用两张不同的动物图片草图板鼠标_响应偶数和奇数参与者的项目

中等:不要重复相同的动物图片

  • 您可以将随机化约束指定为高级循环操作

困难:确定回答是否正确

  • 这需要一个内联脚本
  • 设置变量对的0表示错误响应,1表示正确响应
  • 如果发生超时,变量响应是字符串“None”
  • 否则,变量光标_roi包含所有元素名称的分号分隔列表(来自链接的草图板)已单击的。可以单击多个元素,例如,如果动物图片和响应圈重叠

困难:将试验分为多个区块

  • 添加草图板在邀请参与者短暂休息的试验序列结束时
  • 使用Run If语句运行此草图板仅在每15次试验后
  • 你需要模(%)运算符,以及变量计数三元序列

困难:调整实验以在线运行

  • 这需要一个内联javascript
  • 目前,OSWeb不支持链接鼠标_响应草图板。这意味着您需要使用光标_x变量来确定参与者单击的位置以及响应是否正确。
  • OSWeb不支持内联脚本项目

工具书类

Mathót,S.、Schreij,D.和Theeuwes,J.(2012)。OpenSesame:一个用于社会科学的开源图形实验构建器。行为研究方法,44(2), 314–324.doi:10.3758/s13428-011-0168-7

支持单位: