Skip to main content

实时处理和绘制通过 LSL 传输的数据,重点是学生主导的 BCI 项目。

项目描述

巫师帽

标识

WizardHat 是一个库,用于处理、转换和可视化通过实验室流层 (LSL) 协议从消费级设备流式传输的 EEG 数据。WizardHat 的目的是使用户能够使用高级 API 轻松灵活地构建脑机接口 (BCI),并在后台管理技术细节。与 ble2lsl 配合使用,WizardHat 目前支持来自 Muse (2016) 大脑感应头带和 OpenBCI Ganglion 的流式传输。WizardHat 易于使用,只需三行代码即可上手。

WizardHat 由女王大学的 Merlin Neurotech 制造。

注意:积极发展

我们在 Merlin Neurotech 的专业团队一直致力于改进 WizardHat 并添加新功能。目前正在进行的项目:

  • 跨国公司图书馆兼容性
  • 实现简单的过滤器

如果您正在寻找的功能正在开发中,请尽快回来查看!

入门

安装 WizardHat 的过程取决于您是否会为其开发做出贡献。无论哪种情况,首先要创建并激活一个新的 Python 虚拟环境。

安装仅供使用

只需运行

pip install wizardhat

这将自动安装最新版本的 WizardHat 以及所需的依赖项,包括 ble2lsl。

安装开发

要设置 WizardHat 进行开发,首先在 GitHub 上创建仓库,然后克隆你的 fork:

git clone https://github.com/<your-github-username>/WizardHat.git

如果您也在为 ble2lsl 开发,请 fork 然后克隆 ble2lsl 存储库,并安装其依赖项:

git clone https://github.com/<your-github-username>/ble2lsl.git
cd ble2lsl
pip install -e .
cd ..

无论您是否克隆了 ble2lsl,请安装 WizardHat 的剩余依赖项:

    cd WizardHat
pip install -e .

最后一个命令创建一个可编辑的 WizardHat 安装;即在安装到一个活动的虚拟环境之后,import wizardhat在任何 Python 终端/脚本中运行都会从你的 fork 文件夹中导入模块的当前(即工作)版本。

最后

为确保无错误体验,请在文本或代码编辑器中打开 [您的虚拟环境名称]/lib/python3.6/site packages/pygatt/backends/bgapi/bgapi.py 并添加:

time.sleep(0.25)

在第 200 和 201 行之间并保存文件。这可确保蓝牙协议在超时之前有足够的时间连接到 Muse。

现在您可以使用 WizardHat 了!

使用 WizardHat

在构建、调试或测试您的 BCI 代码时,我们的库提供了两个选项:

  1. 从 Muse 或其他 EEG 设备流式传输数据
  2. 流式传输随机生成的数据以进行测试和调试

要开始流式传输,您需要首先导入ble2lslwizardhat.acquire进入您的 Python 工作区。不同设备的BLE设备参数存储在各自的模块中ble2lsl.devices

import ble2lsl
from ble2lsl.devices import muse2016
from wizardhat import acquire

然后,您需要创建一个与 EEG 设备建立蓝牙连接的流媒体插座:

streamer = ble2lsl.Streamer(muse2016)

通过模拟(通道数、采样率和元数据)Muse 2016 的插座流式传输虚拟数据:

dummy_streamer = ble2lsl.Dummy(muse2016)

接下来,要存储和记录数据,请添加以下行来捕获出口流:

receiver = acquire.Receiver()

请注意,您不需要将出口流光作为参数传递给此函数。LSL 可以通过本地网络进行流式传输,并且ble2lsl不需要在与wizardhat. 而是Receiver自动查找并连接到 LSL 出口;如果有多个网点可用,它会提示您从列表中选择。

现在您的流媒体正在接收数据,您可以在线对其进行可视化和操作。数据流式传输到结构化数组中,其第一列中包含时间戳,其余列中包含通道数据。默认情况下,这些数组包含流数据的最后 10 秒(到最近的样本),并通过streamer.buffers字典进行访问。例如,Muse 2016 的 EEG 流(标记为“EEG”)的最新时间戳和样本的结构化数组可通过以下方式访问:

streamer.buffers["EEG"].data

可用的流取决于设备,并在设备的模块中指定ble2lsl.devices。例如,Muse 2016 头带提供以下流类型:“EEG”、“加速度计”、“陀螺仪”、“遥测”和“状态”。在每个时间窗口之后,数据都会保存到您目录中名为“data”的文件夹下的 CSV 文件中,并且会在流运行时不断更新。每个数据缓冲区都有一个关联的 CSV 文件,并附有一个提供元数据的同名 JSON 文件。

为了更深入地了解我们的框架是如何运作的,请看一下幕后花絮。

致谢

这个项目的灵感来自 Alexander Barachant 的muse-lsl,其中一些模块最初是基于该模块的。OpenBCI Ganglion 的设备规范很大程度上源自OpenBCI_Python

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

WizardHat-0.2.1.tar.gz (24.5 kB 查看哈希

已上传 source

内置分布

WizardHat-0.2.1-py2.py3-none-any.whl (25.2 kB 查看哈希

已上传 py2 py3