如何在多个屏幕上呈现不同的刺激(E-prime/psychopy)

hands on

Posted by 陈锐CR on September 11, 2021 | 阅读

如何在多个屏幕上呈现不同的刺激(E-prime/psychopy)

本文首发在陈锐博客上(https://7988888.xyz),此文章中所有链接均通过博客进行访问。

最近,我开通了知识星球的平台,知识星球主要的服务对象是想要学习眼动、脑电以及近红外等脑科学实验技术,但是却找不到学习资源和学习伙伴的童鞋,在此星球内,你可以了解到最新最实用的学习资源和不定期跟踪的国内国际上的前沿学术会议,同时,在该星球内你也可以向我提出你的问题,我将尽全力为你排忧解难。现在的知识星球已经积累了很多的学习资料和学习讨论,欢迎一起来学习讨论。

同时,BrainTechnology也已经建立的公众号微信群,需要进群交流的,欢迎添加微信号:braintechnology联系。

回到今天的知识介绍,如何在多个屏幕上呈现不同的实验刺激?

在实现该过程之前,我们来看看它的常见的应用场景。

image-20210911100108161

——Baker, J., Liu, N., Cui, X. et al. Sex differences in neural and behavioral signatures of cooperation revealed by fNIRS hyperscanning. Sci Rep 6, 26492 (2016). https://doi.org/10.1038/srep26492

这一张图来自以上文献,大家可以看到当我们在做hyperscanning时,尤其是两个在做不同的任务进行实验互动时,那么我们就需要在不同的屏幕上呈现不同的实验刺激,不仅在fNIRS中会使用到,在其它任何可能在双人或多人的场景下都会使用到。

EEG超扫描采

fNIRS中的超扫描(hyperscanning)技术研究

如何通过实验软件来实现呢?

在本文中,我将介绍E-prime的Display index属性来实现它,无需代码,非常方便;使用psychopy,仅需两行代码也可实现该功能。

多屏幕呈现的工作原理:

多屏幕呈现的工作原理是在实验中添加多个显示器,然后指定每个刺激对象应显示在哪个display上。

前提需求:一台主机和多个显示器

E-prime:

E-prime的介绍及资料可参考文章:《E-prime主要常见问题及matlab、python打marker方式》

版本要求:E-Prime 2.0专业版及以上版本,不支持E-Prime 2.0标准版和E-Prime 1.x

第一步:添加多个显示器,可通过Experiment-Devices添加多个显示器并指定display Index

image-20210911102642106

第二步:指定所需要的控件呈现的display。

image-20210911105201363

第三步:设置Duration和反应等按键。

如果是多屏显示,一般需要将index为1的屏幕的duration设置为“0”,Index为2的duration正确设置即可,以确保在显示时会同步出现刺激。所有的反应按键均在index=2的屏幕上设置即可。

image-20210911105620347

image-20210911105650700

第四步:可选的反馈界面

需要将反馈显示在某一屏幕上时,需要inline语句进行设置。

image-20210911105909317

最后,在E-prime中最多可设置8个显示器同时显示。可在device里进行添加和设置如上步骤。

如需添加同步的触发marker,可使用并口或虚拟串口进行。

参考网址:

https://support.pstnet.com/hc/en-us/articles/115001648047-Displaying-Stimuli-on-Multiple-Monitors-29990-

Psychopy:

psychopy的介绍与线上实验可参考文章《psychopy与pavlovia线上实验》

设置多屏,可在开始的时候定义指定的屏幕,如在coding中

   stim.win = win1  # stimulus will be drawn in win1
   stim.draw()  # stimulus is now drawn to win1
   stim.win = win2  # stimulus will be drawn in win2
   stim.draw()  # it is now drawn in win2
   win1.flip(waitBlanking=False)  # do not wait for next
                # monitor update
   win2.flip()  # wait for vertical blanking.

Note that this just changes **default** window for stimulus.

You could also specify window-to-draw-to when drawing::

   stim.draw(win1)
   stim.draw(win2)

在Builder中可在设置中指定index

image-20210911114752329

参考网址:

https://www.psychopy.org/api/visual/gratingstim.html#psychopy.visual.GratingStim.win

https://discourse.psychopy.org/t/randomizing-loops-to-two-monitors/8480

图片

微信 公众号 B站 知乎 CSDN


谢谢大家观看,如有帮助,来个喜欢或者关注吧!


本文作者:陈锐

博客地址 : Chen Rui Blog
知乎地址 : 知乎专栏
书店地址 : 书店主页
知识星球 : 星球主页


版权声明:本文由 陈锐CR 在 2021年09月11日发表。本博客文章作者为陈锐CR时均采用属于个人原创撰写,未经许可,禁止在任何媒介以任何形式复制、发行本文章,如需转载,请查看About联系方式,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《如何在多个屏幕上呈现不同的刺激(E-prime/psychopy)》



☛您的打赏是我创作的动力☚


  相关文章:

「游客及非Github用户留言」:

%
UP
博客已运行