@elata-biosciences/eeg-web-ble 添加实时 Web Bluetooth 传输。
当你的应用需要在 Chrome 或 Edge 中获取真实的头带数据时,请按本教程操作。
这一步在 EEG 技术栈之上为 Muse 兼容头带开启 Web Bluetooth。它应在你确定使用 EEG 之后进行(如果你的产品也使用摄像头生物信号,通常还在 rPPG 之后)。
开始之前
你需要:- Chrome 或 Edge
https://或localhost- 设备已开启蓝牙
- 一个受支持的 Muse 兼容设备
- 同时安装
@elata-biosciences/eeg-web和@elata-biosciences/eeg-web-ble
你将构建什么
你将:- 安装 BLE 传输包
- 创建
BleTransport - 订阅帧和状态事件
- 连接并开始数据流
第 1 步:安装包
第 2 步:传输模块 + 连接(一次粘贴)
使用一个模块,让导入、处理函数和生命周期集中在一起(例如src/headbandBle.ts)。在按钮点击时调用 connectHeadband()(浏览器 BLE 需要用户手势)。
headbandBle.ts
athenaDecoderFactory:
- 让兼容 Athena 的设备能够正常工作
- 使用
@elata-biosciences/eeg-web提供的受支持解码路径 - 避免之后在不同设备型号间测试时出现的常见故障
startStreaming() 是推荐的默认方式,因为它在一次调用中完成常见的 connect() 加 start() 流程,避免了应用连接成功却从未真正开始数据流的常见错误。
第 3 步:将数据帧转化为应用状态
onFrame 开始触发后,把数据移入你自己的应用状态,而不是只停留在 console.log 中。
常见的模式是:
- 接收
HeadbandFrameV1帧 - 提取 EEG 样本或元数据
- 计算或转发应用关心的数值
- 渲染图表、分数或自适应逻辑
第 4 步:在离开路由或组件时清理
当前视图离开时,停止数据流,以便之后的重连从干净的状态开始。将以下代码添加到上面的辅助函数旁边(与transport 在同一模块)。追加到 headbandBle.ts:
connect() 和 start()。本教程使用 startStreaming(),因为对大多数应用集成来说它是最安全的默认选择。
第 5 步:处理浏览器和平台限制
如果选择器始终不出现或navigator.bluetooth 不存在,请先检查:
- 页面运行在
https://或localhost上 - 你使用的是 Chrome 或 Edge
- 蓝牙已开启
- 目标设备已开机且可用
Athena 和经典版设备
SDK 支持:- Muse 2 和 Muse S classic BLE 设备
- Muse S Athena 协议 v2 设备
athenaDecoderFactory 是同时覆盖两种流程的最简单的受支持方式。
常见问题
navigator.bluetooth未定义:浏览器不受支持或不是安全上下文- 没有出现设备选择器:蓝牙已关闭,或页面没有运行在安全源上
- Athena 解码失败:确认你传入了
athenaDecoderFactory - 你需要支持 Safari 或 iOS:这个浏览器包不是合适的路径,请使用原生或桥接方案
下一步
eeg-web-ble 参考
传输 API 和选项
eeg-web 参考
EEG 运行时和模型
Web Bluetooth 指南
传输模型概览