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

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类。getConstructor找不到兼容的构造函数   java单元测试自定义输入和输出格式   javascript Java UI线程内存不足错误被阻止   多线程在Java并发API中从线程池中选择线程的逻辑是什么?   java在MySQL数据库上存储歌曲(BLOb支持)   java快速且可扩展的IO传递   jsf c:forEach-inside-primeface(例如p:panelgrid)inside-ui:repeat   tomcat与JavaServlet3.0文件上传,如何获取maxfilesize值   java JNI,加载2次相同的dll(不同的名称),如何选择使用哪一个?   java将InputStream复制到OutputStream将停止,除非我也向系统写入。出来   java Set反向安全约束   比如在java中使用整数时?   java使用@接口抑制IntelliJ中的某些警告   java我的ASCII艺术在JLabel上是错误的   JavaSpring工具源代码(或带有SpringIde的Eclipse)崩溃   向片段添加ListView时出现java错误   循环Java循环错误需要重新审视   JavaAspectJ:匹配GenericServlet。带注释子类实例的init()调用