人是最复杂和矛盾的动物了,我是这个动物。进化的本能让我追求舒服,偶尔也会泛起花火想要折腾。之所以想要把脑电-眼动联合起来记录,就是觉得好玩、有趣。答辩时候再去编一个听起来合理的理由吧!从想折腾的那刻起,就像马里奥跳啊跳的,一个坑接一个坑,总共七个坑。

  1. 开始使用 Python,最难的就是配置环境了。这不是我个人的想法,和百度的大牛工程师闲扯的时候,他也这样说。在 Mac 的 OS 系统一切配置妥当后,同样的操作在实验室的 Windows 系统上,有几个库死活安装不上。查看官方的 Manual 也没个说法,结果也是版本的问题。

  2. 眼动脚本在 Github 上找了一个,充分发挥「不要重复造轮子」的精神,想在现成脚本上改一改。该安装的库也都装了,该注意的地方也改了,一直是那个 bug。花了一整天时间各种试误,最终发现还是版本问题。Tobii 官网把 Python 的库给更新后,老版本就全删掉了,可耻的是里面所有的函数都是重新命名的,感受一下我的情绪「😓」。最后和工程师要了一个老版本的库,才跳出坑。

  3. 脑电部分最麻烦的地方是发 trigger, 按照杭师大王治国老师的方法尝试,没有成功。好在我有强大的VPN,Google 网上论坛有帖子专门讨论过如何用 Psychopy 给 scan 发 trigger. 按照提到的方法下了一些插件,使用「port 通讯 dll 动态链接库文件」的方法,顺利发送 trigger。刺激呈现的主机是 Win32,等我正式做实验时候,各种原因限制,改用 Win64 的主机。按同样方法配置,打不上 trigger 了,又是一通捣鼓。最后解决办法使用小插件检查通讯的端口号,换了一个端口号。脚本中的变量传输也有问题,修改成 Win64 的。

  4. Psychopy 很强大,调用起来方便灵活。使用不爽的地方是 RT 的记录,时间戳具体原理写的很含糊,使用 CPU 时钟是没问题的,具体还要再探索。检索过程发现国内使用 Psychopy 的同学少的可怜,几乎没有可参考的资料,又是一通 Manual 的啃。

  5. 花了十几天把脚本搞定后,就是接设备了,本想着这步很简单,不就换个显示器吗。像 UPS 延长线、网线太短这都不是问题。开始动工换显示器,激动的来回按分屏器的切换键,什么鬼,不支持分屏。瞬间懵了,和我想的不一样啊。想着肯定是几十万的显示屏太高端,不能随便和几千的显示器兼容。开始想另外的方案,然后张杰师兄也来帮我忙活。想着干脆不使用分屏器,直接投屏,让一台主机连双屏。听起来很合理,在各个实验室东拼西凑,找来各种延长线、转换口,试了一下屏幕终于点亮了。本着折腾到底的精神,寻找最优方案,为什么分屏器不能用呢?查分屏器支持的分辨率,没问题啊!问工程师,原理上是可行的啊!最后顿悟发现,我忽略了刷新率。果然 LED 屏无法支持那么高的刷新率。

  6. 设备各种线接完后,想着应该没问题了,就做实验吧!保险起见,先做个预实验,嗯眼动采集 OK,脑电采集 OK,眼动数据看起来正常,脑电数据分析没问题。第二天一早就大手笔的做正式实验,那天早上我肯定是吃太饱,对电脑下手重了,采集完练习的脑电数据,用 scan 检查一下,嗯正常。交叉验证,采完第一个 block 的数据后,又用 scan 检查一下。结果,又懵了。脑电数据 scan 无法打开。检查配置文件是没问题的,怀疑可能是我用 Python 发送 trigger,scan 不识别。但练习的数据和预实验的都是可以打开的啊,用 eeglab 也是无法读取。想着,糟了,这么长时间的折腾,死在最后一步上了。还不知道问题在哪。师弟帮我问工程师,工程师也不清楚。我和师弟开玩笑,是不是我U盘有问题啊,结果真是 U 盘中毒的问题,有惊无险的没死成。后来孙猛师兄也说他遇到过同样的问题。

  7. 前面虽百般艰难,还是坚强的挺过来了,到现在才发现数据分析和文章发表,才是我要面对的大 Boss。

后记

花了十一天时间,做完了整个实验。感谢我那社交很广的师弟帮招募被试,让我看到了毕业的希望。感谢师妹们帮我调电阻,让我看到了毕业的希望。感谢大二的小学弟经常跑过来给我帮忙,让我看到了毕业的希望。如果你问我还好玩吗,只能说玩的有点大。如果你也想做脑电—眼动联合采集,看完我踩的这些坑,直接放弃吧!也想尝试,万一爬不出来,可以给我发邮件「Gmail: liuxuhenu@gmail.com」。

游侠骑士之所以让自己疯狂,既不是为了别人的嘉奖,也不是为了别人的感谢。游侠骑士的愚蠢行为不需要辩护。— 堂吉诃德

ChangeLog

  • 181226 ZAPP 完成初稿,并发布。