7

我在 Win7 64 位操作系统上使用 PsychoPy 独立 v1.81.00 发送 eeg 记录触发器时遇到问题。我按照这里的描述,没有得到任何(更多)错误。但是,触发器不会显示在录制计算机上(Win7 32 位下的 Brainvision Recorder)。

我做了什么:

  1. 通过 InpOutBinaries_1500\Win32\InstallDriver.exe下载并安装InpOutBinaries_1500
  2. 将其他文件(inpout32.dll、.h 和 .lib 以及 vssver2.scc)复制到我的脚本的工作目录
  3. 尝试发送触发代码windll.inpout32.Out32(0x378, triggerCode)

触发代码未显示在 Brainvision Recorder 中,但在调用print str(windll.inpout32.Inp32(0x378)).

感谢您的每一条建议或想法!

4

1 回答 1

10

我设法解决了这个问题。我不完全确定哪些步骤实际上削减了曲线,但我建议如下:

在您的演示计算机上下载并安装LPT 测试实用程序。

起初,inpout32.dll无论您使用 32 位还是 64 位操作系统,此程序都会自动正确安装。此外,它还可以帮助您监控和操作并行端口的引脚。如果使用标准地址(LPT1通过LPT3)不起作用,LPTX请手动选择并输入您的地址(请参阅此处在哪里获取 Windows PC 上的并行端口地址)。如果使用此程序的记录计算机上未显示触发器,则您遇到的问题与 PsychoPy 无关。

如果失败,(重新)安装并行端口驱动程序。使用 Windows 7 这应该不是必需的,但实际上为我解决了一个主要问题。如果仍然失败,则可能是硬件组件(并行端口插头/卡、电缆、同步盒)已损坏。

如果触发器使用“LPT 测试实用程序”程序但不使用 PsychoPy,则需要根据您的代码进行单独的故障排除。当然,您需要在 PsychoPy 代码中插入与“LPT 测试实用程序”一起使用的端口地址。

from psychopy import core
from ctypes import windll

windll.inpout32.Out32(portaddress, triggerCode) #sends the trigger with triggerCode being an integer between 0 and 255
core.wait(0.05) #wait 50ms
windll.inpout32.Out32(portaddress, 0) #deletes the trigger i.e. resets the pins

最好的祝愿,

马里奥

于 2014-11-12T14:37:46.700 回答