想象一下:不需要键盘、鼠标或手柄,只靠“集中精神”,就能在电脑上操控一个游戏——屏幕中间的球,会在你和对手之间来回移动,你越专注,球就越向对面移动。
这正是本项目的核心:
利用 EEG(脑电信号) 和 BCI(脑机接口) 技术,实现一个 双人“脑控拔河”游戏。项目整体难度适合初学者,但覆盖了从硬件搭建、信号采集、上位机软件到游戏逻辑的一整条链路,非常适合作为脑机接口入门实践。脑电图(Electroencephalography, EEG) 是记录大脑自发电活动的一种方法。
特征为:
-
使用电极贴在头皮表面(通常采用 International 10–20 System 国际 10–20 电极系统);
-
记录到的是微伏级的电势变化;
-
不同频段(如 α 波、β 波等)与不同的认知或生理状态相关。
Brain-Computer Interface(BCI),又称 Brain-Machine Interface(BMI),指的是将脑电等生物电信号与外部设备(如电脑、机械臂、轮椅等)进行直接连接的系统。
在这个项目中,BCI 的作用是:
在这个双人游戏中:
-
屏幕中间有一个球;
-
左右两侧分别为 Player A 和 Player B;
-
双方佩戴 EEG 采集电极,集中注意力时,大脑 β 波(13–30 Hz)会增强,α 波(8–13 Hz)相对减弱;
-
程序根据 β/α 比值(beta-to-alpha ratio) 估算专注程度;
-
谁的 β/α 比更高,谁对球施加的“力”就更大,球就会向对手一侧移动;
-
当球越过其中一方的边界线时,另一方获胜。
简单来说:
-
α 波(8–13 Hz):放松、闭眼休息、平静状态;
-
β 波(13–30 Hz):任务执行、思考、注意力集中。
利用这两个频段的相对强弱,就可以构建一个很直观的“专注度指标”。
-
BioAmp EXG Pill × 2
-
用于放大与过滤脑电(EEG)信号;
-
本项目中,一个玩家使用一个 EXG Pill,共两路 EEG。
-
BioAmp Cables × 2
-
将 EXG Pill 与凝胶电极连接到头皮与耳后骨性部位。
-
Arduino UNO R4 Minima × 1(含 Type-C 数据线)
-
作为数据采集与串口传输平台;
-
使用模拟输入 A0、A1 接收两个通道的 EEG 信号。
-
Gel electrodes 凝胶电极 × 6
-
IN+:Fp1 前额位置;
-
IN−、REF:耳后骨性区域。
-
每个玩家 3 片:
-
Nuprep 皮肤准备凝胶 × 1 + 酒精棉片 × 2
-
降低皮肤阻抗,去除角质与油污,提高信号质量。
-
面包板 × 1、跳线若干(公对公、公对母)
-
用于连接 EXG Pill 与 Arduino;
-
原型验证使用,若长期使用建议改为洞洞板/焊接板。
-
笔记本电脑 × 1
-
运行 Arduino IDE、Python 及游戏前端界面。

-
Arduino IDE:
-
用于烧录 Chords Arduino Firmware 到 UNO R4。
-
Python 3.11.x:
-
运行 Chords Python;
-
通过 LSL(Lab Streaming Layer)输出 EEG 数据;
-
启动 Web 应用,显示游戏界面。
-
Chords Arduino Firmware(GitHub 仓库):
-
针对不同开发板准备好的固件模板;
-
负责将 EXG Pill 的模拟信号采样并通过串口输出。
-
Chords Python(GitHub 仓库):
-
串口读取 UNO 数据;
-
数据预处理与滤波;
-
提取 α、β 波功率;
-
计算 β/α 比值;
-
将结果映射为游戏中的“球的受力”。
-
负责:
若你拿到的是未组装版本,需要:
-
焊接排针(header pins);
-
焊接 JST PH 2.0 插座;
-
确保焊点可靠、无虚焊与短路。
每个 EXG Pill 使用 3 根公对母线与面包板连接:
-
黑色线 → GND
-
红色线 → VCC(5V)
-
黄色线 → OUT(模拟输出)
两块 EXG Pill 分别接到不同模拟通道(A0、A1)。
-
将 BioAmp Cable 接到 EXG Pill 对应接口;
-
在每条 BioAmp Cable 的末端连接凝胶电极:
-
IN+(信号输入正极)
-
IN−(信号输入负极)
-
REF(参考电极)
-
在计划贴电极的皮肤区域涂抹 Nuprep 凝胶;
-
轻轻揉搓一段时间,去除部分表层角质;
-
用湿巾或酒精棉片擦拭干净残留凝胶与污垢;
-
让皮肤保持洁净但略微湿润(有利于导电)。
Nuprep 的作用:
-
降低皮肤-电极接触阻抗;
-
提高信号质量;
-
尽量减少皮肤刺激。
本项目使用的是 前额皮层(Prefrontal Cortex) 的 EEG:
-
Fp1 点位:前额左侧(10–20 系统中的一个标准点位);
玩家 A:
-
IN+(接 A0 的 EXG Pill) → 放在 Fp1;
-
IN−、REF → 放在左耳后骨性区域(mastoid)。
玩家 B:
-
IN+(接 A1 的 EXG Pill) → 放在 Fp1(对称位置);
-
IN−、REF → 同样放在耳后骨性区域。
两块 EXG Pill 到 UNO R4 Minima 的连接关系:
-
VCC → 5V
-
GND → GND
-
OUT1 → A0(玩家 A)
-
OUT2 → A1(玩家 B)
再通过 Type-C 线将 Arduino UNO R4 与笔记本相连。
-
从 GitHub 下载:Chords-Arduino-Firmware 仓库 ZIP 包;
-
解压后,根据你使用的开发板型号进入对应文件夹,例如:UNO R4;
-
打开 .ino 工程于 Arduino IDE 中;
-
选择正确的开发板与串口;
-
点击“Upload”上传固件;
-
IDE 显示 “Done Uploading” 即表示烧录成功。
此时 UNO R4 就会以预设采样率从 A0、A1 采集 EEG 信号,并通过串口输出给上位机。

-
从 GitHub 下载 Chords-Python 仓库 ZIP 并解压;
-
在该目录下打开命令行/终端:
创建虚拟环境。
-
激活虚拟环境(Windows 示例):
终端前缀出现 (venv) 说明激活成功。
-
安装通用依赖:
-
安装游戏相关依赖:
-
在虚拟环境中运行:
-
浏览器会打开一个 Web 界面;
-
点击 “Start LSL” 按钮,启动 EEG 数据的 LSL 流;
-
点击 “EEG Tug of War” 游戏按钮,进入脑控拔河游戏界面。
进入游戏后,你会看到:
-
屏幕中间有一个球;
-
左侧为 Player A,右侧为 Player B;
-
球初始位于中间位置。
游戏规则:
-
双方同时佩戴电极,面对屏幕;
-
尽量 专注于屏幕中央的球;
-
系统实时计算两位玩家的 β/α 比值;
-
比值大的一方施加的“力”更大,球向对方方向移动;
-
当球触碰到某一侧的边界线时,另一方获胜。
界面操作:
-
Start / Restart:
-
Start:开始游戏;
-
游戏进行中按钮会变为 Restart,点击后重新开始。
-
Pause:暂停游戏,冻结球的位置。
-
Resume:从暂停位置继续游戏。
-
Exit:退出当前游戏界面。
本项目完成了一个完整的 双通道 EEG + BCI + 实时游戏交互 示例:
-
硬件层:
-
使用两块 BioAmp EXG Pill + Arduino UNO R4 完成双通道 EEG 采集;
-
按照 10–20 系统在 Fp1 布置电极,采集前额皮层脑电。
-
软件层:
-
Chords Arduino Firmware 完成底层数据采集;
-
Chords Python 完成数据读取、频谱分析、α/β 提取与 LSL 输出;
-
浏览器游戏前端根据 β/α 比值实现实时“脑控拔河”。
-
应用层:
-
玩家靠“集中注意力”控制球的运动;
-
游戏本身既是交互娱乐,也是一种 专注训练/放松训练 工具。
-
引入更多 EEG 指标:如 θ 波、γ 波等,设计更复杂的游戏机制;
-
加入自适应难度:根据玩家当前状态自动调整游戏灵敏度;
-
使用机器学习对 EEG 特征进行分类,实现更复杂的指令集(比如多种操作);
-
将游戏拓展为单人训练模式,用于冥想、注意力训练反馈(Neurofeedback)。









