脑接口控制的Phaser 3游戏

项目概述:这是我脑机接口课程最后的实验报告,简而言之实现了从设备端接受眨眼信号,传输到openbci,然后通过timeflux和websocket,传到前端游戏,实现眨眼控制人物跳跃。(CV使用说明先打开openbci接受设备的信号,打开终端,输入conda activate timeflux,然后输入“timeflux yaml地址”,最后打开前端界面,注意三个代码文件要在一个文件内)

1.1 项目背景

本项目旨在利用脑机接口技术,通过采集的脑电波(EEG)信号来控制游戏中的角色。用户通过EEG设备生成的信号,经由Timeflux进行处理后,通过WebSocket传输至前端,最终实现了在Phaser 3游戏中控制角色的跳跃。今天的代码是在昨天的基础上修改更新的,对波数据进行了处理。

1.2 项目目标

  • 采集并传输EEG信号至游戏前端。
  • 使用Timeflux处理接收到的EEG信号,并将其发送到前端。
  • 基于EEG信号的特定阈值,控制Phaser 3游戏中角色的跳跃动作。

1.3 项目实现步骤:

1.3.1 Python环境配置及OpenBCI安装

1. Python与Miniconda安装

·安装工具: Miniconda

·Python版本: 安装了最新的Python版本。

·配置环境: 使用Miniconda配置Python环境,以便于管理不同项目所需的包和依赖。

Visual Studio Code配置
  • 编辑器: Visual Studio Code
  • 扩展插件: 安装了Python相关的扩展插件,以增强代码编写和调试功能。

运行代码: 成功在Visual Studio Code中编写并运行了Python代码。

2. OpenBCI软件安装

安装步骤:

1.下载并安装OpenBCI软件。

2.配置并连接设备,确保数据能够正确传输。

功能验证:

后面运行的时候Data TYpe要修改成TimeSeriesFile  Type要修改成EEG10

1.3.2 Timeflux YAML图及自定义节点的创建

这是最后成品的YAML图代码(main01.yaml):

graphs:

# ---------------------------
  - id: Broker-Graph
    nodes:
    - id: broker
      module: timeflux.nodes.zmq
      class: Broker 
#-----------------------------------
  - id: EEG-Graph
    nodes:
    - id: lsl_acquire
      module: timeflux.nodes.lsl
      class: Receive
      params:
        prop: type
        value: EEG10
        channels: [1, 2, 3, 4, 5, 6, 7, 8]
    - id: pub
      module: timeflux.nodes.zmq
      class: Pub
      params:
        topic: sig
    edges:
    - source: lsl_acquire
      target: pub
    rate: 10
#-------------------------------------
  - id: Disp-Graph
    nodes:
    - id: sub
      module: timeflux.nodes.zmq
      class: Sub
      params:
        topics: [sig]
    # - id: display
    #   module: timeflux.nodes.debug
    #   class: Display
    - id: bandpass
      module: timeflux_dsp.nodes.filters
      class: IIRFilter
      params: 
        rate: 250
        order: 3
        frequencies: [2,10]
    - id: data_streamer
      module: newnode
      class: DataStreamer
    edges:
    - source: sub:sig
      target: bandpass
      # target: display
    - source: bandpass
      target: data_streamer:sig 
    rate: 10 

这个 YAML 文件定义了 Timeflux 中的三个不同的图(graph):Broker-Graph、EEG-Graph 和 Disp-Graph。每个图都包含一组节点和边,用于描述数据流的处理过程。

1. Broker-Graph

- id: Broker-Graph

  nodes:

  - id: broker

    module: timeflux.nodes.zmq

    class: Broker

作用
  • 这个图只有一个节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值