用于控制openbci设备的库
pyOpenBC的Python项目详细描述
openbci python
为所有openbci生物传感器提供稳定的python驱动程序
使用这个repo为使用python开发提供了一个构建块。python库的目标是为所有openbci生物传感器提供稳定的python驱动程序
- 允许python用户安装一个模块并使用他们选择的任何板
- 提供使用python将数据传输到其他应用程序(如lab streaming layer)的示例。
- 在提取和转换原始二进制字节流时执行繁重的工作
- 为初学者使用python处理openbci数据提供了基础
待办事项
- 添加神经节辅助数据
要求
- python 2.7或3.4+
- 目前,cyton可以在windows、linux和macos上运行。
- 神经节只能在Linux上工作(支持蓝牙的Linux虚拟机也可以工作)。
- 众所周知,WiFi屏蔽在不同的计算机配置中存在可靠性问题。有效地使用它需要高级的技术技能和编程知识。请注意,此处提供的代码尚未经过所有平台的测试。
安装
首先,确保您有必要的依赖关系。
pipinstallnumpypyserialbitstringxmltodictrequests
Linux用户可能还需要bluepy
。
然后您可以使用pip安装openbci模块。
pipinstall-ihttps://test.pypi.org/simple/pyOpenBCI
安装后,请尝试运行提供的示例以确保可以连接到OpenBCI板。
重要注意事项
目前神经节板只能用于linux操作系统。众所周知,WiFi屏蔽在不同的计算机配置中存在可靠性问题。有效地使用它需要高级的技术技能和编程知识。请注意,此处提供的代码尚未经过所有平台的测试。
入门
首先,您需要使用以下命令之一初始化电路板:
对于cyton板:
# For Windows replace '*' with the port numberboard=OpenBCICyton(port='COM*')# For MacOS and Linux replace '*' with the port numberboard=OpenBCICyton(port='/dev/ttyUSB*')
要查找连接到的COM端口,可以使用OpenBCI图形用户界面。否则,您可以将端口号保留为none,函数find_port()将运行并连接到它找到的第一个cyton加密狗。
对于cyton+雏菊:
# For Windows replace '*' with the port numberboard=OpenBCICyton(port='COM*',daisy=True)# For MacOS and Linux replace '*' with the port numberboard=OpenBCICyton(port='/dev/ttyUSB*',daisy=True)
要查找连接到的COM端口,可以使用OpenBCI图形用户界面。否则,您可以将端口号保留为none,函数find_port()将运行并连接到它找到的第一个cyton加密狗。
对于神经节:
# For Linux replace '*' with the mac address.board=OpenBCIGanglion(mac='*')
如果你需要找到神经节的mac地址,你可以使用类似于nrf connect找到神经节。否则,您可以将mac地址保留为none,函数find_mac()将运行(注意:您需要使用sudo运行脚本,此函数才能运行)。
WiFi屏蔽:
board=OpenBCIWifi(shield_name='OpenBCI-2254',sample_rate=200)
发送命令
一旦你初始化了电路板,你就可以使用openbci sdks上的命令了(神经节,cyton,Wifi屏蔽)使用Python向板发送命令(确保命令是字符串)。
# Write commands to the boardboard.write_command(command)
这里有一张最常见的表格:
<表><广告>初始化流
要启动流,可以将以下命令与回调函数一起使用。您可以在examples文件夹中查看一些预先编写的回调函数。
# Start streamboard.start_stream(callback)
start_stream函数的输出是回调函数上的openbcisample。openbcisample对象具有以下属性:
- packet_id=输入数据包的ID。
- channels_data=每个通道的原始脑电数据。4个用于神经节,8个用于细胞素,16个用于细胞素+雏菊。
- 辅助数据=加速计数据。
由于通道数据和辅助数据是电路板读取的原始计数数据,我们需要将数据乘以比例因子。每个电路板都有一个特定的比例因子:
对于cyton和cyton+雏菊板:
将每个数乘以uvolts以将信道数据转换为uvolts。
uVolts_per_count=(4500000)/24/(2**23-1)#uV/count
乘以每单位加速数,将辅助数据转换为g。
pipinstallnumpypyserialbitstringxmltodictrequests0
用于神经节板
乘以伏特/u计数,将信道数据转换为伏特。
pipinstallnumpypyserialbitstringxmltodictrequests1
乘以每单位加速数,将辅助数据转换为g。
pipinstallnumpypyserialbitstringxmltodictrequests2
用于WiFi屏蔽
WiFi屏蔽已经以伏特为单位输出数据,以G为单位输出AUX数据。
示例(打印原始数据)
要测试此示例,请使用py examples\print_raw_example.py
或python examples\print_raw_example.py
pipinstallnumpypyserialbitstringxmltodictrequests3
示例(简单LSL拖缆)
要运行此示例,请使用py examples\lsl_example.py
或python examples\lsl_example.py
pipinstallnumpypyserialbitstringxmltodictrequests4
我们是谁?
openbci python存储库的创始人是jermey frey。python驱动程序是最流行的存储库之一,贡献者最多!
这些回购协议的贡献者主要是使用python进行数据采集和分析的人。
参与其中
如果您认为您可以在上面列出的任何领域提供帮助(我们打赌您可以),或者在我们还没有想到的任何领域提供帮助(在这里我们可以确定您可以),那么请查看我们的贡献者指南和我们的指南。ref="roadmap.md" rel="nofollow">路线图
请注意,对我们非常重要的是,我们要为每个想参与的人保持一个积极和支持的环境。当您加入我们时,我们要求您在所有在线和离线互动中遵守我们的行为准则。
联系我们
如果您想报告问题或建议增强功能,我们希望您在Github存储库中打开一个问题,因为这样我们就可以直接解决它。但您也可以通过电子邮件(Gmail.com上的PushtheWorldLLC)或在Twitter上联系[AJ][Link_AJ_Keller]
了解更多信息
您可能会感兴趣:
- 购买acytonref="https://shop.openbci.com/collections/frontpage网站/产品/WiFi屏蔽?variant=44534009550" rel="nofollow">wifi-shield来自openbci
- 通过[Push the World]BCI Consulting,学习如何使用OpenBCI设备
当然,您还想知道我们的:
词汇表
openbci板通常被称为生物传感器。生物传感器将生物数据转换成数字数据。
神经节有4个通道,这意味着神经节可以同时读取4个电压读数。
cyton有8个通道,而带有daisy的cyton则有16个通道。频道。
一般来说,细胞素的记录质量高,噪音小。噪音不是信号。
谢谢
太感谢你了(丹克·舍恩!谢谢你!为了参观这个项目,我们希望您能与我们一起踏上这个奇妙的旅程,让openbci编程变得轻松有趣。
许可证:
麻省理工学院< /P>