去年我写了一篇OpenBCI的博客【OpenBCI】:Matlab实时读取数据流(labstreaminglayer),讲述如何用python的SDK将OpenBCI数据读取到Matlab中。
后来我想,既然是串口通信,能不能用Matlab串口直接读取OpenBCI的数据,跳过官方的python。答案是肯定的。下面讲述一下我利用串口调试助手对OpenBCI原始数据包的解码过程及其数据格式,这样大家可以用任何语言(例如C#,.Matlab等)的串口通信去开发OpenBCI,不再拘泥于python。
1.连接串口
要利用串口调试助手去解码OpenBCI数据,我们先下载一个串口调试助手【串口调试助手下载】
打开串口调试助手,设置串口格式如下:
串口波特率:115200
数据位:8
停止位:1
校验位:无
选择OpenBCI对应的串口号(我的是COM3),打开串口。此时我们再重启一下OpenBCI就可以看到,串口调试助手显示以下信息。代表OpenBCI就位。

2.获取数据包
此时给串口发送不同的字母代表不同的指令:
b--------------begin, 开始采集数据
s--------------stop,停止采集数据
f--------------filter,添加60Hz工频滤波器(国内为50Hz,暂时用不到)
g-----------