🧠 基于脑机接口(BCI)的专注力和生产力辅助系统,专为ADHD患者设计
Mind Daemon 通过 Emotiv BCI 设备监测用户的认知状态,并通过智能环境控制提供自动化辅助,帮助用户维持专注、减少分心、优化工作状态。
- 🧠 实时BCI监测: 使用Emotiv头戴设备监测脑电信号
- 📊 认知状态分析: AI分析专注度、压力、疲劳、放松等状态
- 🎵 智能音乐控制: 根据状态自动切换专注/放松音乐
- 💡 环境光控制: 智能调节灯光颜色和亮度
- 🌈 屏幕光晕提醒: 柔和的视觉提醒和状态指示
- 📱 实时Dashboard: Web界面显示所有数据和状态
- 🤖 MiniMax AI决策: 基于LLM的智能干预建议
# 安装uv包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh
# 同步项目依赖
uv sync# 启动Mind Daemon主程序
uv run mind-daemon# 在浏览器中打开前端Dashboard
open dashboard/index.html
# 或直接访问文件路径:file:///path/to/Mind-Daemon/dashboard/index.html- 目标设定: 用户设定专注目标和预计完成时间
- 实时监测: BCI设备实时检测用户专注程度和认知状态
- 智能决策: AI Agent根据认知状态做出环境调节决策
- 自动调节: 系统自动控制光晕效果、背景音乐等环境因素
- 状态切换: 在专注、放松、心流等状态间智能切换
- 低专注 → 放松模式: 播放放松音乐,显示舒缓光晕
- 准备专注: 手势控制进入专注准备,播放背景音乐
- 高专注 → 心流状态: 逐渐降低音乐音量,逐渐降低光晕亮度至0,减少干扰
- 认知过载: 停止音乐,显示警示光晕
Mind-Daemon/
├── src/mind_daemon/ # 主要源代码
│ ├── agent/ # 智能Agent系统
│ │ ├── intelligent_agent.py # MiniMax LLM驱动的智能决策
│ │ ├── control_center.py # 中央控制协调
│ │ ├── state_manager.py # 状态管理
│ │ └── bci_interface.py # BCI-Agent通信接口
│ ├── bci/ # 脑机接口处理
│ │ ├── state_analyzer.py # 实时认知状态分析
│ │ ├── csv_logger.py # BCI数据记录
│ │ └── cortex.py # Emotiv Cortex API
│ ├── peripheral/ # 外设控制
│ │ ├── halo_controller.py # 屏幕光晕效果
│ │ ├── halo.py # PyQt6光晕实现
│ │ └── music_player.py # 智能音乐播放
│ └── detect/ # 手势检测
│ ├── config.py # 连接到开发板的配置文件
│ ├── gesture_detector.py # 控制开发板上的ros服务和socket服务
│ └── socket_client.py # 通过socket获取开发板上检测到的手势识别数据
├── dashboard/ # 前端监控界面
│ ├── index.html # 主监控页面
│ ├── css/ # 样式文件
│ └── js/ # JavaScript逻辑
├── music/ # 背景音乐文件
│ ├── focus/ # 专注音乐
│ └── relax/ # 放松音乐
├── docs/ # 文档
└── tests/ # 测试用例
- 智能决策: 基于MiniMax LLM的智能环境调节策略
- 状态管理: 用户认知状态和系统状态的统一管理
- 控制协调: 各个子系统间的协调控制
- Cortex API: Emotiv设备的WebSocket通信接口
- 状态分析: 实时脑电信号的认知状态识别
- 数据记录: CSV格式的完整数据记录
- 屏幕光晕: 基于认知状态的视觉反馈
- 智能音乐: 根据专注水平自动调节的背景音乐
- 控制开发板服务: 利用控制脚本实现封装完好的开发板上ros的手势识别服务与socket服务控制功能
- 数据通信: 通过socket将手势识别的数据传递给Agent模块
基础要求:
- Python 3.12+
- macOS/Linux/Windows
- 2GB+ 可用内存
硬件设备:
- Emotiv BCI设备 (EPOC/Insight) - 可选,支持开发模式
- D-Robotics RDK X5开发板 - 用于手势识别 (可选)
软件依赖:
- uv包管理器 - Python依赖管理
- PyQt6 - 光晕效果 (可选)
- 现代浏览器 - 用于Dashboard监控界面
| 认知状态 | 光晕颜色 | 视觉效果 | 含义 |
|---|---|---|---|
| 高专注 | 🟢 绿色 | 稳定发光 | 保持心流状态 |
| 中等专注 | 🟡 黄色 | 柔和呼吸 | 专注进行中 |
| 低专注 | 🟠 橙色 | 提醒闪烁 | 注意力分散 |
| 放松 | 🔵 青色 | 舒缓呼吸 | 休息状态 |
| 困倦 | 🟣 紫色 | 慢速脉冲 | 需要休息 |
| 认知过载 | 🔴 红色 | 快速闪烁 | 降低负荷 |
| 中性 | 🔵 蓝色 | 默认发光 | 基线状态 |
- 专注状态: 播放专注音乐,高专注时逐渐减音量
- 放松状态: 播放舒缓音乐,适中音量
- 认知过载: 停止音乐播放,减少干扰
- 低专注: 轻柔背景音乐,较低音量
- 实时记录: EEG通道数据、性能指标、认知状态
- 事件标记: 会话开始/结束、状态变化、用户操作
- 完整元数据: 时间戳、用户ID、会话信息
timestamp,datetime_str,cognitive_state,confidence,attention_current,
engagement_score,relaxation_score,AF3,F7,F3,FC5,T7,P7,O1,O2,P8,T8,
FC6,F4,F8,AF4,session_id,user_id,notes- Emotiv EPOC/Insight: 官方支持的EEG头戴设备
- Emotiv Launcher: 必须运行的配套软件
- 设备凭证: 需要Emotiv开发者账号的Client ID/Secret
- D-Robotics RDK X5: 由地瓜机器人提供的开发板
- USB/MIPI 摄像头: 用于拍摄获取用户当前手势
- 操作系统: macOS, Windows, Linux
- Python: 3.8+ (推荐3.12)
- 内存: 至少2GB可用内存
- 显示: 支持图形界面 (光晕效果)
- PyQt6: 光晕效果支持
- MiniMax API: 智能决策增强
- 音频输出: 音乐播放功能
git clone <repository-url>
cd Mind-Daemon安装依赖:
uv sync配置说明: 项目已包含基础配置文件,默认启用开发模式。如需自定义:
# 1. 可选:安装额外依赖
uv add PyQt6 # 用于光晕效果
# 2. 可选:配置环境变量
# 编辑 .env 文件,配置以下信息:
# - EMOTIV_CLIENT_ID: 从 emotiv.com 开发者账户获取
# - EMOTIV_CLIENT_SECRET: 从 emotiv.com 开发者账户获取
# - RDK_HOST: 开发板地址 (如: 192.168.1.100)
# - MINIMAX_API_KEY: 从 api.minimax.chat 获取 (可选)
# 3. 可选:配置Emotiv设备
# - 安装EMOTIV Launcher
# - 连接设备或创建虚拟设备在 .env 文件中配置以下关键参数:
# BCI设备配置 (如有Emotiv设备)
EMOTIV_CLIENT_ID=your_client_id
EMOTIV_CLIENT_SECRET=your_client_secret
# MiniMax LLM API配置 (用于智能决策)
# 在 https://api.minimaxi.com 获取API密钥 (JWT token格式)
MINIMAX_API_KEY=your_minimax_api_key_here
MINIMAX_GROUP_ID=your_group_id_here
MINIMAX_MODEL=MiniMax-Text-01
# 开发模式 (无BCI设备时启用)
DEV_MODE=true
# 系统路径 (使用项目相对路径)
MUSIC_DIR=music
WINDOW_PY_PATH=src/mind_daemon/peripheral/window.py系统使用MiniMax API进行智能决策,需要正确配置API密钥:
获取MiniMax API密钥:
- 访问 MiniMax AI开放平台
- 注册账户并完成实名认证
- 在
账户管理 > 接口密钥中创建API密钥 - 复制API密钥(JWT格式,以
eyJhbGciOiJSUzI1NiI开头)
支持的模型:
MiniMax-M1: 推理模型,输出token较多,建议流式输出MiniMax-Text-01: 文本模型,适合结构化输出(推荐)
API测试:
# 测试MiniMax API连接
python test_minimax_api.py在启动系统前,建议运行健康检查确保所有组件正常:
# 运行完整的系统健康检查
uv run python -m mind_daemon.utils.health_check
- [BCI外设使用指南](docs/BCI_外设使用指南.md)
- [Cortex API使用文档](docs/CortexAPI_使用文档.md)
- [RDK开发者手册](https://d-robotics.github.io/rdk_doc/RDK)
- [项目介绍](docs/intro.md)
- [演示指南](docs/DEMO_GUIDE.md)
# 生成JSON格式报告
uv run python -m mind_daemon.utils.health_check --json- 实时BCI数据处理
- 多种认知状态识别
- 智能Agent决策引擎
- [] 屏幕光晕效果控制
- 智能音乐播放系统
- 完整CSV数据记录
- 多模态演示系统
- 手势检测集成
- 启动主程序:
uv run mind-daemon- 打开前端监控:
# 在浏览器中打开Dashboard
open dashboard/index.html
# 或直接访问文件路径
# file:///path/to/Mind-Daemon/dashboard/index.html程序启动后会显示:
- 🌐 WebSocket服务器运行在
ws://localhost:8889 - 🧠 BCI数据处理服务已启动
- 🎛️ 环境控制服务已就绪
- 📊 前端Dashboard可通过浏览器访问
Dashboard主要功能:
- 🧠 实时认知状态监控 - 显示当前专注度、放松度、压力等指标
- 💡 环境控制状态 - 实时显示光晕颜色、音乐播放状态
- 📊 数据可视化图表 - 认知状态的历史趋势和变化曲线
- 🤖 AI决策摘要 - MiniMax Agent的智能决策和建议
- ⚡ 系统操作记录 - 环境调节动作的实时记录
# 方式1: 命令行打开
open dashboard/index.html
# 方式2: 浏览器直接访问
# 将以下路径粘贴到浏览器地址栏:
# file:///你的项目路径/Mind-Daemon/dashboard/index.htmlWebSocket连接: ws://localhost:8889
数据格式:
{
"basic": {
"light": {
"is_on": true,
"color_hex": "#FF5733",
"lightness": 75
},
"music": {
"is_playing": true,
"name": "专注音乐",
"type": "Focus"
},
"Scores": {
"At": 68, // 专注度 (0-100)
"Ex": 45, // 兴奋度 (0-100)
"Re": 72, // 放松度 (0-100)
"St": 35 // 压力值 (0-100)
}
},
"advanced": {
"State": "Focused", // 当前认知状态
"Summary": "用户专注度较高,系统正在维持当前环境配置",
"Action": "保持专注音乐,调节光晕为绿色"
}
}当没有BCI设备时,系统会自动启用开发模式,使用模拟数据:
开发模式特性:
- 📈 自动生成模拟BCI数据
- 🎲 随机认知状态变化
- 🔄 完整系统功能测试
- 📱 前端Dashboard正常工作
手动启用:
# 在.env文件中设置
echo "DEV_MODE=true" >> .env# 1. 启动系统
uv run mind-daemon
# 2. 在新终端打开Dashboard
open dashboard/index.html
# 3. 检查WebSocket连接
# 浏览器开发者工具 -> Network -> WS -> 查看连接状态验证检查点:
- ✅ WebSocket连接成功 (
ws://localhost:8889) - ✅ 认知状态数据实时更新
- ✅ 光晕颜色随状态变化
- ✅ 音乐播放状态显示
- ✅ AI决策摘要正常显示
音乐目录结构:
music/
├── focus/ # 专注音乐 (古典、器乐)
└── relax/ # 放松音乐 (环境音、慢节奏)
支持格式: .mp3, .wav, .m4a, .flac
自动播放逻辑:
- 🧠 检测到压力 → 自动切换放松音乐
- 🎯 检测到分心 → 自动切换专注音乐
- 🔄 连续播放,智能选曲避重复
- 🔇 60秒切换冷却时间
屏幕边缘光晕效果用于:
- 🔴 压力提醒 (红色/橙色)
- 🔵 专注辅助 (蓝色)
- 🟢 放松指示 (绿色)
- 🟡 注意力提醒 (黄色)
控制逻辑:
- 30秒激活冷却时间
- 15秒颜色变化冷却时间
- 心理学颜色原理指导
光晕测试:
# 交互式光晕测试
python test_halo_effects.py
# 快速颜色序列测试
python test_halo_effects.py sequence
# 压力场景测试
python test_halo_effects.py stress
# 专注场景测试
python test_halo_effects.py focus
# 放松场景测试
python test_halo_effects.py relax
# 完整测试套件
python test_halo_effects.py all支持的光晕颜色:
- 基础颜色:红、绿、蓝、紫、橙、粉、黄、青、白
- 情境颜色:暖白、冷蓝、柔绿、夕阳橙、薰衣草、薄荷绿
决策流程:
- BCI数据采集 → 实时脑电信号
- 状态分析 → 传统算法 + AI分析
- 阈值判断 → 触发条件检测
- MiniMax决策 → LLM生成干预策略
- 环境控制 → 执行具体调节动作
支持的状态:
- 🎯
FOCUSED- 专注状态 - 😌
RELAXED- 放松状态 - 😰
STRESSED- 压力状态 - 😴
FATIGUED- 疲劳状态 - 😵
DISTRACTED- 分心状态
实时监控面板包含:
-
基础数据标签页:
- 💡 灯光状态和控制
- 🎵 音乐播放状态
- 🪟 窗帘状态
- 📊 认知分数实时图表
-
高级分析标签页:
- 🧠 当前精神状态
- 📝 AI生成的状态摘要
- ⚡ 系统执行的动作
- 📈 历史趋势分析
-
实时数据流:
- 🔄 每秒更新数据
- 📈 动态图表显示
- 🎨 状态颜色编码
- ⏰ 时间戳显示
1. 系统无法启动
# 检查依赖安装
uv sync
# 重新启动
uv run mind-daemon2. Dashboard无法连接
# 检查端口占用
lsof -i :8889
# 确认WebSocket服务正常运行
# 浏览器开发者工具 -> Console 查看错误信息3. BCI设备问题
- 确保 Emotiv Launcher 运行中
- 检查设备连接和权限
- 可启用开发模式:
DEV_MODE=true
4. 前端显示异常
- 清除浏览器缓存
- 确认
dashboard/index.html路径正确 - 检查浏览器控制台错误信息
- 🔐 所有BCI数据本地处理,不上传云端
- 🔑 API密钥安全存储在.env文件中
- 📊 可选择关闭数据记录功能
- 🏠 完全离线运行(除LLM API调用外)
- Fork 项目
- 创建功能分支:
git checkout -b feature/new-feature - 提交更改:
git commit -m 'Add new feature' - 推送分支:
git push origin feature/new-feature - 提交Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Emotiv公司提供的BCI技术支持
- 地瓜机器人公司提供的RDK X5开发板支持
- MiniMax团队的LLM服务
- PyQt6团队的UI框架
- 所有贡献者和测试用户
- 📧 Email: aster@hdu.edu.cn
- 🐛 Issues: GitHub Issues
Mind Daemon - 让AI成为你专注力的守护者 🧠✨
