流媒体和可视化的脑电图数据从缪斯耳机。

muse的Python项目详细描述


葡萄牙语缪斯

一个从MUSE耳机到MATLAB等的流媒体应用程序 平台。在

要求

代码依赖于用于BLE通信的pygattpylsl用于Muse流媒体。要获得最佳结果,请使用BLED112。 我们强烈建议在虚拟环境(VE)上安装。您可以使用Anaconda来构建和管理这些ve, 安装和设置conda环境的说明如下here。在

与Python 3.x兼容

与MUSE MU-02MU-03

注意:如果遇到任何问题,请首先检查常见问题 然后是this存储库的问题部分

入门

要从MUSE传输到MATLAB或其他平台,需要一个Streamer应用程序。 从Streamer侧发送的数据可以被Receiver应用程序接收和使用。 请看下面的图表:

Top

这个项目有两个部分,第一,连接MUSE的UVic MUSE 通过蓝牙,并通过UDP和LSL传输数据。 第二,一个MATLAB工具箱(和MuseUdp.m),允许用户接收 UVic MUSE通过UDP协议传输数据。 在下面的部分中,我们将介绍UVic MUSE 然后解释第二部分,MuseUdp。在

UVic MUSE安装

在Windows上,我们建议用户安装Anaconda并运行以下所有命令 (包括可选命令)在Python提示中。您可能需要安装 Microsoft Visual C++ Build Tools(~1GB)来自microsoft网站,如果您不使用Python。在

在MacOS和linux上,安装Anaconda(或miniconda), 打开终端,然后执行以下命令:

如果不想使用虚拟环境,请使用终端(Linux和OSx) 或命令提示符(Windows)并跳过可选步骤。

(可选)创建新的conda环境。在

conda create --name muse_env python=3.7

(可选)激活conda环境

^{pr2}$

使用pip安装UVicMUSE

pip install --upgrade uvicmuse

运行UVicMUSE:

运行并使用UVic MUSE打开终端(Linux&OSx)或命令提示符(Windows) 并键入以下命令:

(可选)激活虚拟环境

^{pr2}$

运行UVicMUSE:

uvicmuse

如果在Windows中成功地安装了没有conda的UVicMUSE,则可以通过打开“开始”菜单来运行它 输入uvicmuse

图形用户界面:

Top

流式处理程序:

按照下面所示的步骤来流化MUSE感官数据。记住正确指定必需的条目变量 在进入下一步之前。在

  1. 搜索以获取可用缪斯的列表
  2. 联系一位缪斯女神。Required Entries=复选框(UDP、LSL、EEG、PPG、ACC、GYRO)
  3. 启动UDP和LSL上的流式传输(如果启用)。Required Entries=过滤器(高通、低通、陷波)

注意事项:

  • 停止流不会断开MUSE(使用此功能更改过滤器配置)
  • 断开与缪斯的连接后需要搜索

接收器工具箱(MuseUdp)

在本节中,我们将解释MATLAB工具箱中可用的方法。接受者的主要责任 连接到UDP套接字(与UVic MUSE相同的套接字)并接收正在从MUSE设备传输的数据。在

MATLAB工具箱

从MATLAB文件交换中加载MuseUdp Toolbox。 在MATLAB上打开并安装工具箱。此外,您需要安装Instrument Control Toolbox 建立UDP连接。在

要查看所有可用的方法(函数),请从MuseUdp创建一个对象并为其调用方法:

mu = MuseUdp();
methods(mu);

要从UVic MUSE获取单个样本,请使用:

mu = MuseUdp();
[data, timestamp, success] = mu.get_xxx_sample()

eegppgacc或^{xxxd7>}。根据xxx,采样数据可能有不同的大小,eeg有5个 每采样一个通道,其余传感器返回3个通道数据。在

要读取块中的采样数据,需要指定块大小并调用mu.get_xxx_chunk(###),将xxx替换为sensor type 和###和块大小。输出大小size(data),对于eeg将是[chunk_size, 5],其他的输出大小是[chunk_size, 3]。在

*注意:由于UDP协议的缓冲区大小是有限的,因此eeg的每个样本都包含四个字节的时间戳和 4*5=20字节(总共24B)。由于UDP中的默认缓冲区大小是1kB,所以无法获得大于40个样本的块。 我们建议使用get_xxx_chunk()的多个实例,但您可以通过调用以下函数来更改缓冲区大小:

mu.set_udp_buffer_size(2048) % 2kB buffer

问题

在MacOSx上:应用程序在运行后崩溃:

pip uninstall serial pyserial
conda uninstall serial pyserial
pip install pyserial esptool

引用UVicMUSE

@misc{UVicMUSE,
  author       = {Bardia Barabadi, Jamieson Fregeau},
  title        = {uvic-muse},
  month        = March,
  year         = 2020,
}

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

推荐PyPI第三方库


热门话题
选项卡内的java 安卓工具栏   java接口VS API VS公共类   无法解析java。lang.ClassNotFoundException:在安卓 studio中找不到类“com.example.安卓.camera2basic.AutoFitTextureView”?   java等待线程正常完成   java在JTable中的prepareRenderer方法中编辑单元格数据是否可行?   java SessionNotCreatedException selenium webdriver   java Android Studio Gradle CreateProcess错误=2   java找不到适用于异常(int)的构造函数   javascript如何在不使用正则表达式的情况下检查输入是否为表情符号?   从JAVA运行ant时,JAVA_HOME变量不正确   long的java min值引发异常   java如何在这段代码中实现侦听器?   带有透明文本的java Android按钮   图像Java扫描仪问题(JFrame)   java模拟输入蒸汽似乎在Junit测试的第一次输入中就被吃掉了   压缩Java Deflater,现在和将来的结果相同(确定性)   java JTable getModel()。setValueAt从数组中删除第一个元素   java我有不同于编译器和计算器的价值   使用C#客户端调用基本身份验证java webservice   java相同类型的多个@Embedded字段在持久化后始终为空