前言
openbci-ts 是一个基于 TypeScript 编写的用于与 OpenBCI 脑电采集设备进行交互的 npm 包。如果你想要使用 OpenBCI 设备进行脑电信号的获取和分析,那么 openbci-ts 可能是你不错的选择之一。
在本篇文章中,我们将会介绍 openbci-ts 的使用方法,并提供一些示例代码,帮助你快速地上手使用这个 npm 包。
安装与引入
openbci-ts 可以通过 npm 进行安装,命令如下:
npm install openbci-ts --save
接着,在你的 TypeScript 或 JavaScript 代码中引入 openbci-ts:
import OpenBCI from 'openbci-ts';
基本用法
openbci-ts 中最基本的类是 OpenBCI,用于与 OpenBCI 设备进行交互。在初始化 OpenBCI 对象时,需要传入一个 OpenBCIBoardType 类型的参数,指明你使用的 OpenBCI 设备的具体型号。常用的 OpenBCIBoardType 类型有以下几种:
- OpenBCIBoardType.OBCI_BOARD_CYTON:适用于 Cyton 型号的 OpenBCI 设备。
- OpenBCIBoardType.OBCI_BOARD_CYTON_DAISY:适用于 Cyton Daisy 型号的 OpenBCI 设备。
- OpenBCIBoardType.OBCI_BOARD_GANGLION_WIFI:适用于 Ganglion WiFi 型号的 OpenBCI 设备。
下面是一个初始化 OpenBCI 对象的示例代码:
import OpenBCI, { OpenBCIBoardType } from 'openbci-ts'; const boardType = OpenBCIBoardType.OBCI_BOARD_CYTON; const openBCI = new OpenBCI(boardType);
开始和停止数据采集
初始化 OpenBCI 对象以后,你可以调用它的 start()
方法来启动数据采集:
openBCI.start();
要停止数据采集,可以调用 stop()
方法:
openBCI.stop();
注册事件监听器
openbci-ts 中的数据处理是基于事件的。可以使用 on()
方法为 OpenBCI 对象注册事件监听器,以便在接收到数据时进行相应的处理。以下是 openbci-ts 支持的事件类型:
- 'accelerometer':加速度计数据事件。
- 'boardFailure':OpenBCI 设备故障事件。
- 'close':与设备断开连接事件。
- 'impedance':阻抗测量事件。
- 'rawDataPacket':原始数据包事件。
- 'ready':准备就绪事件。
以 'rawDataPacket' 事件为例,可以使用以下代码为 OpenBCI 对象注册事件监听器,并在接收到数据时输出数据包的内容:
openBCI.on('rawDataPacket', (packet: OpenBCIRawDataPacket) => { console.log(packet); });
发送指令
使用 write()
方法可以向 OpenBCI 设备发送指令。需要注意,OpenBCI 设备的指令遵循 OpenBCI 协议,具体指令的编写方式可以参考 OpenBCI 官方文档。
以下是一个向 OpenBCI 设备发送 'v'
指令的示例代码:
openBCI.write('v');
关闭连接
当你完成与 OpenBCI 设备的交互后,应该关闭与设备的连接,以避免资源的浪费。可以使用 close()
方法来断开与设备的连接:
openBCI.close();
示例代码
下面是一个从 OpenBCI 设备获取原始脑电信号并输出的示例代码:
-- -------------------- ---- ------- ------ -------- - ---------------- - ---- ------------- ----- --------- - ---------------------------------- ----- ------- - --- ------------------- ------------------- -- -- - -------------------- ------ -- --------- ---------------- --- --------------------------- -------- --------------------- -- - -------------------- --- ------------- -- - --------------- ---------------- -- -------
本示例代码首先初始化了一个 OpenBCI 对象,并在 ready
事件触发后启动数据采集。在 rawDataPacket
事件触发时,输出数据包的内容。10 秒钟后,停止数据采集并断开与设备的连接。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600553d781e8991b448d1217