You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Python向BrainVision发送EEG触发信号的问题(适配OpenSesame)

关于Python向BrainVision Recorder发送EEG触发信号的技术求助

现有配置与实现方式

  • 刺激呈现平台:OpenSesame(无内置触发发送支持,通过Python代码实现)
  • 硬件配置:串口转并口代理
  • 串口连接代码:
import serial

serialport = serial.Serial('COM3')
  • 触发信号发送方式:以二进制格式发送,例如发送触发信号时执行serialport.write(b'1')

遇到的核心问题

  1. 触发信号转换规则不符预期:执行serialport.write(b'1')时,BrainVision Recorder中显示的触发信号为S 49,而非预期的S 1,具体对应规律见附录。
  2. 无法连续发送相同触发信号:首次执行serialport.write(b'1')时能正常显示触发信号,但后续重复执行同一代码(无论次数)均无触发信号显示。

已尝试同时打开并口,问题仍未解决。

附录:Python发送内容与BrainVision标记的对应关系

数字类发送内容的对应规律

  • BrainVision显示的标记值为发送内容最后一位数字的ASCII码(数字0-9的ASCII码为48-57)
  • 仅识别发送内容的最后一位,多位数字仅取最后一位转换
    示例:
serialport.write(b'0') --> 'S 48'
serialport.write(b'1') --> 'S 49'
serialport.write(b'2') --> 'S 50'
serialport.write(b'3') --> 'S 51'
serialport.write(b'4') --> 'S 52'
serialport.write(b'5') --> 'S 53'
serialport.write(b'6') --> 'S 54'
serialport.write(b'7') --> 'S 55'
serialport.write(b'8') --> 'S 56'
serialport.write(b'9') --> 'S 57'
serialport.write(b'10') --> 'S 48'
serialport.write(b'11') --> 'S 49'
serialport.write(b'20') --> 'S 48'
serialport.write(b'23') --> 'S 51'

非数字类发送内容的对应规律

  • BrainVision显示的标记值为发送内容最后一位字符的ASCII码
  • 仅识别发送内容的最后一位,多位字符仅取最后一位转换
  • 无法显示ASCII码小于48或大于125的标记值
    示例:
serialport.write(b'@') --> 'S 64'
serialport.write(b']') --> 'S 93'
serialport.write(b'a') --> 'S 97'
serialport.write(b'm') --> 'S 109'
serialport.write(b'z') --> 'S 122'
serialport.write(b'@@') --> 'S 64'

内容的提问来源于stack exchange,提问作者Pablo Bernabeu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 18:22:33