项目概述:这是我脑机接口课程最后的实验报告,简而言之实现了从设备端接受眨眼信号,传输到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
作用
- 这个图只有一个节


1069

被折叠的 条评论
为什么被折叠?



