网上关于这个的教程实在是太少了,在我进行摸索之后,打算写一篇教程给大家一点帮助。首先声明,本人python萌新。
在版本5.0之前,OpenBCI GUI依赖于节点。js Electron应用程序通过TCP/IP在Mac、Linux和Windows机器上作为中间件处理通信。这要求用户允许在后台运行单独的应用程序。同时,有很多用户只想使用Python、C++或Cype来使用OpenBCI硬件。此时就选择了:BrainFlow!
这里我直接附上相关代码的文章:brainflow相关python的例程
其次在brainflow相关openbci WiFi的资料阅读相关要求,接下来我将使用pycharm进行开发
首次运行之前,请确保你已经安装好了相应的库。
import argparse
import time
import numpy as np
import brainflow
from brainflow.board_shim import BoardShim, BrainFlowInputParams
from brainflow.data_filter import DataFilter, FilterTypes, AggOperations
def main():
BoardShim.enable_dev_board_logger()
parser = argparse.ArgumentParser()
# use docs to check which parameters are required for specific board, e.g. for Cyton - set serial port
parser.add_argument('--timeout', type=int, help='timeout for device discovery or connection', required=False,
default=0)
parser.add_argument('--ip-port', type=int, help='ip port', required=False, default=0)
parser.add_argument('--ip-protocol', type=int, help='ip protocol, check IpProtocolType enum', required=False,
default=0)
parser.add_argument('--ip-address', type=str, help='ip address', required=False, default='')
parser.add_argument('--serial-port', type=str, help='serial port', required=False, default='')
parser.add_argument('--mac-address', type=str, help='mac address', required=False, default='')
parser.add_argument('--other-info', type=str, help='other info', required=False, default='')
parser.add_argument('--streamer-params', type=str, help='streamer params', required=False, default='')
parser.add_argument('--serial-number', type=str, help='serial number', required=False, default='')
parser.add_argument('--board-id', type=int, help='board id, check docs to get a list of supported boards',
required=True)
parser.add_argument('--file', type=str, help='file', required=False, default='')
args = parser.parse_args()
params = BrainFlowInputParams()
params.ip_port = args.ip_port
params.serial_port = args.serial_port
params.mac_address = args.mac_address
params.other_info = args.other_info
params.serial_number = args.serial_number
params.ip_address = args.ip_address
params.ip_protocol = args.ip_protocol
params.timeout = args.timeout
params.file = args.file
board = BoardShim(args.board_id, params)
board.prepare_session()
# board.start_stream () # use this for default options
board.start_stream(45000, args.streamer_params)
time.sleep(10)
# data = board.get_current_board_data (256) # get latest 256 packages or less, doesnt remove them from internal buffer
data = board.get_board_data() # get all data and remove it from internal buffer
board.stop_stream()
board.release_session()
print(data)
if __name__ == "__main__":
main()
运行这一段代码之后,会显示如下界面:
出现这个之后不要着急,原因是你需要给代码赋予相应的变量,此时我们看我上面给的关于板子的资料的链接
阅读得到我们的板子id为5,ip为192.169.4.1,中止时间为10s,端口为任意。接下来,打开pycharm,在底下找到终端
在终端中输入
python mimimi.py --board 5 --ip-address 192.168.4.1 --timeout 10 --ip-port 3
如果出现了以上结果,就说明
已经成功了。有问题可以私聊我,看到能解决的话可以回复。
如果能帮到你,记得点赞。