从muse耳机传输和可视化eeg数据。

muselsl的Python项目详细描述


缪斯LSL

一个python包,用于流媒体、可视化和记录muse 2016头带的脑电数据。

blinks

要求

该代码依赖于pygattbluemuse进行ble通信,并在不同的操作系统上以不同的方式工作。

  • windows:在windows 10上,我们建议安装bluemuse并使用其gui来发现和连接muse设备。或者,如果您有bled112加密狗,您可以尝试muse lsl的bgapi后端(muselsl stream--backend bgapi)。
  • mac:在mac上,需要一个bled112加密狗。bgapi后端是必需的,在从命令行运行muse lsl时默认使用bgapi后端
  • Linux:不需要加密狗。但是,您可能需要运行一个命令来启用对蓝牙硬件的根级访问(请参见常见问题)。pygatt后端是必需的,默认情况下将从命令行使用。并确保阅读

与Python2.7和Python3.x兼容

仅与MUSE 2和MUSE 2016兼容

注意:如果您遇到任何问题,请先查看此存储库的常见问题,然后查看此存储库的问题部分

开始

安装

用pip安装muse lsl

pip install muselsl

设置流

在Windows 10上,我们建议使用Bluemuse图形用户界面设置LSL流。在Mac和Linux上,获取muse数据的最简单方法是直接从命令行使用muse lsl。使用-h标志可获得所有命令和选项的综合列表。

打印可用缪斯的列表:

$ muselsl list

从第一个可用的muse开始lsl流:

$ muselsl stream  

要连接到特定的muse,可以将设备的名称作为参数传递。设备名称可以在左听筒的内侧找到(例如muse-41d2):

$ muselsl stream --name YOUR_DEVICE_NAME

你也可以直接传递你缪斯的mac地址。这提供了绕过设备发现步骤的好处,可以使连接到设备的速度更快、更可靠:

$ muselsl stream --address YOUR_DEVICE_ADDRESS

使用流数据

创建LSL流后,您可以访问以下命令。

注意:运行stream命令的进程必须保持活动状态才能维护lsl流。以下命令应在另一个终端或第二个进程中运行

查看数据:

$ muselsl view

如果可视化冻结或滞后,也可以尝试查看器的备用版本2。注意:这需要额外的vispy和mne依赖项。

$ muselsl view --version 2

将脑电图数据记录到csv中:

$ muselsl record --duration 60  

注意:此命令还将保存包含"标记"数据的任何LSL流中的数据,例如EEG笔记本中的刺激演示脚本中的数据

或者,您可以通过以下命令直接记录数据,而无需使用lsl:

$ muselsl record_direct --duration 60

注意:直接录制不允许录制"标记"数据

运行实验

缪斯LSL的设计,使缪斯可以用来运行一些经典的脑电图实验,在包括p300事件相关电位和ssvep和ssaep诱发电位。

执行这些实验的代码仍然可用,但现在由neurotechx社区在eeg笔记本存储库中维护。

用作库

如果您想将muse lsl集成到您自己的python项目中,可以像导入任何python库一样导入和使用它的函数。示例可在examples文件夹中找到:

pip install muselsl
0

替代数据类型

除了eeg,muse还提供来自加速度计、陀螺仪的数据,在muse 2的情况下,还提供了光体积描记(ppg)传感器的数据。这些数据类型可以通过命令行参数或通过将正确的参数传递给stream函数来启用。启用后,PPG、加速计和陀螺仪数据将分别以各自独立的LSL流(称为"PPG"、"ACC"和"陀螺仪")传输。

要从命令行传输muse 2中所有传感器的数据:

pip install muselsl
1

作为库函数:

pip install muselsl
2

从备用数据源记录数据:

pip install muselsl
3

注意:记录过程一次只能记录一种数据类型。但是,可以使用多个终端或进程同时记录多个数据类型

什么是LSL?

实验室流媒体层(lsl)是为研究性实验统一采集时间序列数据而设计的系统。由于它能够在具有时间同步和近实时访问的网络上提供分离的数据流,它已成为基于eeg的脑-机接口领域的标准。有关更多信息,请查看此现代脑-机接口设计讲座LSL知识库

常见问题

Mac和Windows

  1. BLED112加密狗的连接问题:
  2. < > >
    • 您可能需要使用--interface参数为BLED112设备提供适当的COM端口值。默认值为com9。要设置或查看设备的COM端口,请转到操作系统的系统设置

    Linux

    1. pygatt.exceptions.bleerror:扫描时出现意外错误:设置扫描参数失败:不允许操作(Linux)
    2. < > >
      • 这是Pygatt需要根权限才能运行扫描的问题。确保已安装libcap
      1. pygatt.exceptions.bleerror:未找到与273e0003-4c4d-454d-96be-f03bac821358匹配的特征(Linux)
      2. < > >
        • 最新版本的pygatt有问题。通过降级到3.1.1来解决这个问题:pip install pygatt==3.1.1
        1. pygatt.exceptions.bleerror:找不到BLE适配器(Linux)
        2. < > >
          • 确保计算机的蓝牙已打开。
          1. pygatt.exceptions.bleerror:扫描时出现意外错误:设置扫描参数失败:连接超时(Linux)
          2. < > >
            • 这似乎是由于操作系统级蓝牙崩溃造成的。尝试关闭并再次打开计算机的蓝牙
            1. "运行时错误:无法创建流出口"(Linux)
            2. < > >
              • 这似乎是由于最新版本pylsl的linux特定问题造成的。确保在您正在尝试的环境中安装了Pyll1.10.5g运行muse lsl

              欢迎加入QQ群-->: 979659372 Python中文网_新手群

              推荐PyPI第三方库


热门话题
带有嵌套JAR的java RCP ClassNotFoundException   java在输入框中设置默认值,crud应用程序使用spring   java如何在Heroku中使用fs创建新文件   java将JPanel放在JFrame中   java这个正则表达式会匹配“i.imgur.com/xxx”吗?   java在片段内创建RecylerView,而无需在Android中设置片段   Android上Groovy导致java错误的双精度浮点精度损失   swing Java查找JFrame属于JPanel的内容   java Spring junit自连线自定义类本身必须有构造函数吗?   java textswitcher支持前面的文本   从Android客户端到JAXRS的java Post自定义对象   java如何检索JSON数据并使用MPAndroidChart绘制折线图,以及在安卓上的改进   拒绝用户“root”@“localhost”的java c3p0访问(使用密码“是”)   使用Selenium Webdriver自动化ExtJS应用程序时java面临的问题