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

uvicmuse-debug的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如何通过标记名检索多个标记中的元素以进行selenium自动化测试   java iText如何查找最后一行被拆分到下一页   java如何在hudson中的特定jdk上运行Findbugs和PMD?   如何确保java程序与java Environment 6兼容?   对形状进行分组,这样我就可以通过鼠标点击和java处理循环浏览它们   使用生成器映射对象时,java定义无效   maven Java:Struts2和IntelliJ供初学者使用   java子类不继承父类字段   java Android Grid View在Android版本kitkat上崩溃   java Hibernate从缓存返回错误的列表,即使预期的列表与缓存的列表不同   java SendGrid:模板和替换标记   用于普通生产者| Kafka流的java自定义分区器   安卓理解Java内部类中的作用域   无法从Android Studio中的非静态方法调用java非静态方法   比较两个XML响应的JavaXMLUnit   java使用keytool列出密钥   不使用Java客户端库将视频上传到YouTube数据API v3   java My While循环即使在满足条件时也不会结束   自动在外部存储字符串数据,以便以后在Java中使用