如何将PsychoPy脚本的EEG触发器插入另一脚本?

时间:2019-01-07 21:40:18

标签: python psychopy

由于我是编码新手,因此我正在PsychoPy中通过构建器模式在PsychoPy中编写的脚本中添加EEG触发器。实验是一系列句子和视觉单词结尾的音频记录–记录和单词是通过电子表格调用的。我们对参与者在查看单词结尾时的回答感兴趣。

下面是我当前没有EEG触发器的脚本,下面是来自其他人的脚本,该脚本具有与他们用于插入EEG触发器的系统相同的系统。我希望记录从“句子”刺激的结尾开始,包括在“目标”和“响应”期间的时间,以及在他们做出响应后结束的时间。

非常感谢您的帮助!

这是我已经拥有的脚本:

------Prepare to start Routine “trial1”-------

t = 0

trial1Clock.reset()  # clock

frameN = -1

continueRoutine = True

**# update component parameters for each repeat**

target.setColor([1.000,1.000,1.000], colorSpace='rgb')

target.setText(word)

response = event.BuilderKeyResponse()

Sentences.setSound(sounds, secs=6)

**# keep track of which components have finished**

trial1Components = [target, response, Sentences, text_2]

for thisComponent in trial1Components:

if hasattr(thisComponent, 'status'):

    thisComponent.status = NOT_STARTED

这是插入我尝试集成的EEG触发器的代码:

# Send event marker to NetStation
if mode=='eeg' and stage=='expt':
    code = 'item'
    ns.sync()
    ns.send_event(code, label='item', timestamp=egi.ms_localtime(), table = { 'item' : curr_item })

1 个答案:

答案 0 :(得分:1)

您说您“使用Builder编写了代码”。您在Builder之后更改了代码吗?如果不是这样,那么始终最好从Builder本身进行工作,以允许您在保留触发器的同时更改实验的其他方面。假设您可以在Builder中工作:

如果通过并行端口发送触发器,则在I / O->并行端口下有一个组件。

否则,您可以插入代码组件以在所需时间运行代码:

  1. 在“开始实验”标签中,添加import xxxx as ns,或者您创建了ns对象。
  2. 在“开始例程”标签中,添加触发代码以标记刺激开始。
  3. 要标记刺激偏移,请转到“每个帧”标签,然后(a)像if stim.status == FINISHED:那样听刺激状态,或者(b)在“开始例行检查,然后trigger_sent = False(如果您的刺激持续2秒钟)