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

共 2622字,需浏览 6分钟

 ·

2021-09-13 11:06

大家好,我是陈锐

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

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

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


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

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

——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

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

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

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

第四步:可选的反馈界面

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

最后,在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

参考网址:https://www.psychopy.org/api/visual/gratingstim.html#psychopy.visual.GratingStim.win

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

    


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


博客网址:https://7988888.xyz/

知乎网址:https://www.zhihu.com/people/braintechnology

知识星球   :  https://t.zsxq.com/aeimaqv


本文内容参考以上网址。以上内容仅供学习使用,不作其它用途,如有侵权,请留言联系,作删除处理


有任何疑问及建议,扫描以下公众号二维码添加交流:


浏览 235
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐