OpenSesame-史上最详细教程

OpenSesame-史上最详细教程

  • OpenSesame-史上最详细教程
    • 什么是OpenSesame
    • OpenSesame的页面功能区
      • 侧边栏
      • 顶部功能区
      • 工程区
      • 展示区
      • 测试窗口
      • 文档池
      • 变量检查器
    • 尝试写一个Demo
    • 再来一个进阶的Demo
    • 小试牛刀

OpenSesame-史上最详细教程

最近要使用OpenSesame自定步速阅读,也许是因为非常小众,所以网上的例子少之又少,正好利用端午假期好好研究一番,造福社会。
我将从以下几个方面介绍:

  • 什么是OpenSeame
  • OpenSeame的页面功能区
  • 尝试写一个Demo
  • 再来一个进阶的Demo
  • 高版本的进阶模型
    • 什么是自定义步速阅读
    • 如何进行自定义

什么是OpenSesame

参考了官网的地址:我们给出的标准答案是:OpenSesame是一个为心理学、神经科学和实验经济学创建实验的程序。
那么作为实验的程序,它包含了如下一些特点:

  1. 用户友好的界面-提供灵活的接口方便使用;
  2. 使用Rapanzel作为用于数值计算的独立代码编辑器;
  3. 将Python的强大功能添加到您的实验中;
  4. 使用你的设备-使用你的眼睛跟踪器,按钮盒,脑电图设备,等等。
  5. 免费-根据GPL3协议发布
  6. 跨平台-Windows、Mac OS、Linux和Android(仅限运行时)

OpenSesame的页面功能区

OpenSesame-史上最详细教程_第1张图片
根据页面从左到右,从上到下,我来详细介绍:

侧边栏

侧边栏的作用在于我们可以通过拖拽的方式构建自己的语句结构;
OpenSesame-史上最详细教程_第2张图片

顶部功能区

顶部功能区可以运行、展示测试窗口、变量检查器等等;
在这里插入图片描述

工程区

工程区就是我们将侧边栏中的功能拖拽进来的地方,它将会是我们程序执行结构的一个主要区域;
OpenSesame-史上最详细教程_第3张图片

展示区

程序执行时,其中每一个语句具体的执行内容,可以通过修改其内容完成
OpenSesame-史上最详细教程_第4张图片

测试窗口

测试窗口是程序执行的代码流程,类似于我们经常使用的控制台;
OpenSesame-史上最详细教程_第5张图片

文档池

用于存储文档,便于查看;
OpenSesame-史上最详细教程_第6张图片

变量检查器

可以用于查询存储标量;
OpenSesame-史上最详细教程_第7张图片

尝试写一个Demo

在我们启动工程时,它会默认给我们一个实验工程,这个运行这个工程,其实我们就对这个功能有一个大概的认识:
OpenSesame-史上最详细教程_第8张图片
【工程区&展示区】这是一个最初级的实验概况:点击"experiment",它就是你的实验区域,这里面包含两个部分:“getting_started”和"welcome"两个部分;(其实你的实验可以任意定义任何实验组件,来组成一个完整的实验)

通过在展示区里面可以切换逻辑和代码,让你更全面的了解你的程序是如何运行的;
【展示区表格】展示区表格中包含两列:Item name和Run if,它们的含义分别代表了左侧想要运行的具体实验和条件表达式,同样,你也可以新建实验,比如:
OpenSesame-史上最详细教程_第9张图片
所以,在回过头来,我们看到其实我们的实验是由两个组件组成的:notepad和sketchpad;

  • notepad
    OpenSesame-史上最详细教程_第10张图片
    notepad其实很简单,我们可以简单的理解为它是实验的描述,只不过是文件的形式体现出来,在项目中你可以将你的项目内容,演示效果,使用文档、代码逻辑等等,都可以放在这里,它相当于一个readme.txt。

  • sketchpad
    OpenSesame-史上最详细教程_第11张图片
    这是一个展示器,你想要给用户看到的主要界面就是这个,直接双击即可改这个文案,接下来,我们把它改成 “hello Laohu ,Welcome to OpenSesame”?
    OpenSesame-史上最详细教程_第12张图片
    怎么样,是不是很简单?当然,除此之外,侧边栏还有很多功能,比如插入文字、图片、线、图形、阴影等等都可以,可以根据你的需求来;

    你可以通过展示区右上角的一个toggle标签,来进行切换,目前是view controls,你可以切换到view script,然后我们来继续看一下,脚本里面的到底都写了什么?看见了么,最后一行 draw textline中text="hello Laohu ,Welcome to OpenSesame"就是描述这个notepad的展示文案;

    set start_response_interval no
    set reset_variables no
    set duration keypress
    set description "Displays stimuli"
    draw textline center=1 color=white font_bold=no font_family=serif font_italic=no font_size=32 html=yes show_if=always text="hello Laohu ,Welcome to OpenSesame" x=0 y=0 z_index=0
    

    当然,你可能会说,直接改动可视化文件我还OK,敲代码我有点难受,而且语法我都看不懂。没关系,后面我会一点一点补充,这里是给大家有一个简单的概念;

  • 运行
    啰嗦了这么多,找到【顶部功能区】的绿色运行按钮,点击运行按钮,即可;

再来一个进阶的Demo

这个Demo稍微有些复杂,我们先来看一下整体结构:
OpenSesame-史上最详细教程_第13张图片
看起来很复杂,其实一点也不难,我们就像扒圆葱一样从外层到内层一点点剖析:
首先,它是一个实验,包含图文介绍(about_this_templete和instructions)和 两个子实验(practice_loop和experienment_loop),每个实验里面分别做了不同的事情(block_sequence);
practice_loop和experienment_loop:A loop containing one or more practice blocks;
block_sequence:A sequence containing a single block of trials followed by feedback to the participant;

这是一个统计按键反应时长的测试功能,实验开始后,用户点击任意按钮,终止实验,实验结束后,展示用户点击的时间;如此循环往复;

我们看一下block_loop的源代码:

set source_file ""
set source table
set skip 0
set repeat 1
set order random
set offset no
set item trial_sequence
set description "A single block of trials"
set cycles 1
set continuous no
set column_order ""
set break_if_on_first yes
set break_if never
setcycle 0 empty_column ""
run trial_sequence

代码执行前都是配置阶段,最后一行执行trial_sequence就是一个真正的语句:run trial_sequence

接下来执行:trial_sequence

set flush_keyboard yes
set description "A single trial"
run sketchpad always
run keyboard_response always
run logger always

接下来执行:sketchpad

set start_response_interval no
set duration 0
set description "Displays stimuli"
draw fixdot color=white show_if=always style=default x=0 y=0 z_index=0

接下来执行:keyboard_response

set timeout infinite
set flush yes
set event_type keypress
set duration keypress
set description "Collects keyboard responses"

接下来执行:logger

set description "Logs experimental data"
set auto_log yes

最后执行:

set reset_variables yes
set duration keypress
set description "Provides feedback to the participant"
draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text="Your average response time was [avg_rt]ms

Your accuracy was [acc]%

Press any key to continue" x=0 y=0 z_index=0

这里面有个执行参数: [avg_rt] ,可以通过变量检查器查看;它关联的是keyboard_respoinse;
OpenSesame-史上最详细教程_第14张图片

小试牛刀

  • 初始化工程
    • 先放一个简介
      notepad和introduction都可以作为简介,正规的还是introduction,我们把introduction拖进去,然后在里面写好介绍;
  • 再放置一个循环
  • 再插入一条语句
  • 设置

你可能感兴趣的:(OpenSesame,python)