OpenBCI是个面向脑机接口EEG信号采集的开源硬件,本文使用python SDK(因为OpenBCI官方还没有Matlab的SDK,Matlab读个串口那么难吗?肯定是开发人员懒)实时获取OpenBCI数据流并导入Matlab。详情参见官网[LSL labstreaminglayer]。更详细的教程在这里[OpenBCI_MATLAB]本文主要是参考的它。

7c213df318a22fc3c9922c520a94d737.png

安装python

这里下载[python],我装的是3.6.1版(一定要装32位)。安装的时候注意勾选安装pip,装完之后在命令行直接输入“pip install pyserial”“pip install pylsl”分别安装这两个库,如果安装时候报错,多试几次就好了。如果pip没装上,则需要手动装这两个库:串口[pyserial]和Lab Streaming Layer[pylsl]。

下载OpenBCI_MATLAB

这里[OpenBCI_MATLAB]。下载之后解压。添加其中的Matlab-Python–>labstreaminglayer文件夹到Matlab路径,这里主要是一些Matlab实时读取数据的函数。

完成之后在Matlab命令行测试函数:

lsl_loadlib()

如果不报错,证明这个labstreaminglayer添加好了。

获取数据流

插入OpenBCI无线接收器,打开板子电源。

打开电脑CMD,导航到刚刚下载的OpenBCI_MATLAB–>Matlab-Python文件夹(即openbci_matlab.py所在的文件夹)

windows下只需要使用pushd命令 就可以了。

c15437f53236da45553d15d66438498a.png

完成之后,输入python openbci_matlab.py -p "COM5",COM5是我的设备连接的串口号(设备管理器里查看)。

8458e2413da39d923fa62d5189e1c1d2.png

看到输出BEGIN则就可以开始了,继续输入/start,开始获取数据,可以看到获取的数据流.

数据流输入Matlab

打开Matlab,找到Matlab-Python–>examples文件夹里的ReceiveData.m文件运行。可以看到数据流的滚动。任务完成!

bc3bf63a769db19b60a7f7999644dadf.png

如果要看波形,找到Matlab-Python–>labstreaminglayer文件夹里的vis_stream.m文件,运行即可。参数设置如下。

b80e542a3fd38d6945c7a63720c69c12.png

4459ef6768d86361c95f7fed33c8f6fe.png

可以用Matlab看到实时的波形了。原谅我这个波形,电极没接,都是噪声。

注:(1)中间可能会遇到一些报错,尤其是在CMD运行python的时候,这个耐心摸索,python可能需要再装一个numpy的库。(2)每次数据采完,重启一下板子。

加油!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐