我有心理物理实验的心理学脚本,参与者可以看到不同的形状并且必须以特定的方式作出反应。我想在不同的计算机上采取生理测量(ECG)并在我的测量中实施事件点。因此,每当参与者出现刺激时,我希望这会出现在心电图上。
基本上,我想为并行端口i / o添加命令。
说实话,我甚至不知道从哪里开始。我已经阅读了很多相关内容,但我仍然输了。
答案 0 :(得分:3)
这可能是显示形状并发送触发器的最短完全正常工作的代码:
from psychopy import visual, parallel, core
win = visual.Window()
shape = visual.ShapeStim(win)
# Show it
shape.draw()
win.flip()
# Immediately send trigger
parallel.setData(10) # Trigger code, here 10
core.wait(0.020) # Number of seconds to send this trigger code (enough for the hardware to send and the receiver to recognize it)
parallel.setData(0) # Stop sending trigger.
当然,您可以通过将刺激呈现和触发器置于循环(运行试验)中来扩展此功能,并在其旁边执行各种其他操作,例如:收集回复和保存数据。这只是刺激呈现和发送触发器的最小示例。
非常有意的是,在翻转窗口后立即找到触发器代码。在大多数硬件上,发送触发器非常快(端口上的电压在脚本中运行的行的1毫秒内发生变化),而监视器仅在每16.7毫秒左右更新其图像。并且win.flip()
等待后者。我已经做了good and bad practices for timing triggers here的一些例子。
答案 1 :(得分:0)
对于并行端口io,您应该使用pyparallel。进行连续的ECG测量,存储并存储时间戳和每个刺激所需的任何元数据。让你开始的伪代码:
while True:
store_ecg()
if time_to_show():
stimulus()
time.sleep(0.1) # 10 Hz