用 EEG 玩“弹球”:基于 BioAmp EXG + Arduino 的脑机接口小游戏

用 EEG 玩“弹球”:基于 BioAmp EXG + Arduino 的脑机接口小游戏
2025年11月14日 11:52 电子产品世界

想象一下:不需要键盘、鼠标或手柄,只靠“集中精神”,就能在电脑上操控一个游戏——屏幕中间的球,会在你和对手之间来回移动,你越专注,球就越向对面移动。

这正是本项目的核心:

利用 EEG(脑电信号) 和 BCI(脑机接口) 技术,实现一个 双人“脑控拔河”游戏。项目整体难度适合初学者,但覆盖了从硬件搭建、信号采集、上位机软件到游戏逻辑的一整条链路,非常适合作为脑机接口入门实践。脑电图(Electroencephalography, EEG) 是记录大脑自发电活动的一种方法。

特征为:

  • 使用电极贴在头皮表面(通常采用 International 10–20 System 国际 10–20 电极系统);

  • 记录到的是微伏级的电势变化;

  • 不同频段(如 α 波、β 波等)与不同的认知或生理状态相关。

Brain-Computer Interface(BCI),又称 Brain-Machine Interface(BMI),指的是将脑电等生物电信号与外部设备(如电脑、机械臂、轮椅等)进行直接连接的系统。

在这个项目中,BCI 的作用是:

将大脑活动 → 转换为 EEG 信号 → 由硬件放大采集 → 由软件分析转换成“专注程度” → 用于控制游戏中的球的运动。

在这个双人游戏中:

  • 屏幕中间有一个球;

  • 左右两侧分别为 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(参考电极)

  1. 在计划贴电极的皮肤区域涂抹 Nuprep 凝胶

  2. 轻轻揉搓一段时间,去除部分表层角质;

  3. 用湿巾或酒精棉片擦拭干净残留凝胶与污垢;

  4. 让皮肤保持洁净但略微湿润(有利于导电)。

Nuprep 的作用:

  • 降低皮肤-电极接触阻抗;

  • 提高信号质量;

  • 尽量减少皮肤刺激。

本项目使用的是 前额皮层(Prefrontal Cortex) 的 EEG:

  • Fp1 点位:前额左侧(10–20 系统中的一个标准点位);

玩家 A:

  • IN+(接 A0 的 EXG Pill) → 放在 Fp1;

  • IN−、REF → 放在左耳后骨性区域(mastoid)。

玩家 B:

  • IN+(接 A1 的 EXG Pill) → 放在 Fp1(对称位置);

  • IN−、REF → 同样放在耳后骨性区域。

核心原则:

  • 信号电极(IN+)贴在目标脑区;

  • 参考与负极电极放在相对稳定的骨性位置,减少肌肉干扰。

两块 EXG Pill 到 UNO R4 Minima 的连接关系:

  • VCC → 5V

  • GND → GND

  • OUT1 → A0(玩家 A)

  • OUT2 → A1(玩家 B)

再通过 Type-C 线将 Arduino UNO R4 与笔记本相连。

⚠ 安全注意:

一定要确保 VCC 与 GND 接线正确,反接可能损坏 EXG 传感器或开发板。

  1. 从 GitHub 下载:Chords-Arduino-Firmware 仓库 ZIP 包;

  2. 解压后,根据你使用的开发板型号进入对应文件夹,例如:UNO R4

  3. 打开 .ino 工程于 Arduino IDE 中;

  4. 选择正确的开发板与串口;

  5. 点击“Upload”上传固件;

  6. IDE 显示 “Done Uploading” 即表示烧录成功。

此时 UNO R4 就会以预设采样率从 A0、A1 采集 EEG 信号,并通过串口输出给上位机。

  1. 从 GitHub 下载 Chords-Python 仓库 ZIP 并解压;

  2. 在该目录下打开命令行/终端:

创建虚拟环境。

  1. 激活虚拟环境(Windows 示例):

终端前缀出现 (venv) 说明激活成功。

  1. 安装通用依赖:

  1. 安装游戏相关依赖:

  1. 在虚拟环境中运行:

  1. 浏览器会打开一个 Web 界面;

  2. 点击 “Start LSL” 按钮,启动 EEG 数据的 LSL 流;

  3. 点击 “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)。

Arduino脑机接口
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片