Рис. 8.56. Передача данных с плат Ganglion + WiFi на частоте 1600 Гц
При успешном подключении журнал консоли сервера Acquisition покажет записи как на рис. 8.57.
Рис. 8.57. Журнал консоли сервера Acquisition
8.5. Обработка данных с помощью LSL
Lab Streaming Layer (LSL) (лабораторный потоковый слой) это система синхронизации потоковых данных для анализа в реальном времени или записи. LSL это хороший способ отправить поток OpenBCI в приложения, которые могут записывать или манипулировать данными, такие как Matlab.
235
Далее рассмотрим, как настроить LSL с помощью API-интерфейса OpenBCI Python, а затем рассмотрим различные способы использования LSL для проведения экспериментов или записи данных.
Для начала надо скопировать или клонировать файл OpenBCI LSL с
ресурса Github (https://github.com/openbci-archive/OpenBCI_LSL). Потом загрузить и установить Python (версия 2 или 3) (https://www.python.org/downloads/). Если Python уже установлен на компьютере, то надо проверить его версию путем ввода команды “python – version”. Для использования программы Python необходимо установить следующие дополнительные пакеты:
pylsl (версия 1.10.5 или выше);
pyserial (версия 3.1.1 или выше);
NumPy (версия 1.11.1 или выше);
pyqtgraph (версия 0.9.10 или выше) (необязательно: требуется только для графического интерфейса GUI);
scipy (версия 0.17.1 или выше) (необязательно: требуется только для функциональности графического интерфейса GUI).
Для автоматической установки дополнительных пакетов с помощью “pip” перейти в папку «OpenBCI_LSL» и в командной строке терминала ввести команду “pip install -r requirements.txt”. У “pip” могут быть проблемы с установкой “numpy” и “scipy” для некоторых пользователей. Можно установить их вручную, если возникнут проблемы. Если появилось сообщение «pip: команда не найдена», то необходимо установить pip: sudo easy_install pip. Затем повторить команду выше.
Чтобы использовать функции графического интерфейса GUI, необходимо отдельно установить “PyQt4” или проверить версию уже установленного дополнения.
После вышеперечисленных установок можно переходить к передаче потока данных. Для начала надо убедиться, что ключ USB подключен к ПК и плата включена. После этого перейти в папку «OpenBCI_LSL» и ввести следующую команду: “python openbci_lsl.py –stream”. Через несколько секунд появится сообщение, как представлено на рис. 8.58.
Если возникнет ошибка из-за невозможности найти плату или последовательный порт, то можно отменить автоматическое обнаружение платы, указав последовательный порт в аргументе командной строки перед «-- stream». Формат команды выглядит следующим образом: “python openbci_lsl.py [PORT] –stream”. Пример выполнения команды: “python openbci_lsl.py /dev/ttyUSB0 –stream”. После инициализации платы можно начать потоковую передачу. Чтобы начать потоковую передачу, надо ввести команду “/start”. Чтобы остановить потоковую передачу, надо ввести команду “/stop”. Чтобы отключиться от последовательного порта, надо ввести команду “/exit”. Для отключения платы по завершении работы программы надо всегда выполнять команду “/exit”, чтобы убедиться, что последовательный порт надежно закрыт.
236
Рис. 8.58. Подключение к плате для потоковой передачи данных
Из интерфейса командной строки также настраиваются все параметры платы. Чтобы войти в режим «Настройки канала», нужно ввести символ «x», затем необходимые параметры настройки канала и символ «X». Пример ввода команды: “x3020000X”. Эта команда сделает следующее: «x» переводит вход в режим «Настройки канала»; канал 3 настроен на включение с усилением 2, нормальный вход отключен от выводов BIAS, отключен от SRB2, отключен от SRB1; последняя буква «X» фиксирует настройки в регистре настроек канала в АЦП ADS1299.
Чтобы просмотреть текущую версию платы и действующие настройки, используется команда “?”.
Если в любой момент времени при работе с платой появляется сообщение об ошибке при использовании интерфейса командной строки, то надо посмотреть раздел «Устранение неполадок» или найти проблему в репозитории
Github.
Используя командную строку, можно также изменить последовательность вывода каналов. Чтобы изменить метаданные последовательности выводимых каналов в потоке данных, потребуется ввести команду “/loc”, затем нажать пробел и ввести разделенный запятыми список нового набора последовательности каналов. Например, чтобы изменить последовательность каналов, установленную по умолчанию на новый набор из восьми каналов, команда может выглядеть следующим образом: “/loc F3,F4,C3,C4,T3,T4,P3,P4”.
237
Но выполнение этой команды можно осуществить только тогда, когда плата не транслирует данные.
Если требуется настроить плату и поток LSL с расширенными настройками, то можно сделать это, запустив графический интерфейс GUI. Запуск графического интерфейса GUI осуществляется по команде “python openbci_lsl.py” без флагов. Если подключить плату регистрации и ключ USB перед выполнением вышеуказанной команды, программа должна уже определить соответствующие настройки для платы (порт и плату Daisy). Если нет, можно ввести эти настройки самостоятельно в соответствующие поля (рис. 8. 59).
Рис. 8.59. Настройки для платы OpenBCI
Для потоковой передачи данных требуется, чтобы соответствующие поля Port, Daisy и LSL Stream были заполнены правильно. Далее надо нажать «Подключиться», а затем «Начать потоковую передачу». Чтобы приостановить потоковую передачу, необходимо нажать «Остановить потоковую передачу». Чтобы отключить плату, надо нажать «Отключить». Плата должна быть отключена, чтобы можно было изменить настройки LSL. После повторного «подключения» текущие настройки сохраняются до следующего отключения.
Для обеспечения постоянной производительности следует остановить потоковую передачу, прежде чем отсоединять плату.
Чтобы изменить настройки канала из графического интерфейса, необходимо нажать «Конфигурация платы» (Board Config). Но это должно быть сделано до того, как будет нажата кнопка «Подключить» (Connect).
Многие проблемы с подключением к плате могут быть просто решены путем перезапуска программы и платы. Для этого надо отключить USB-ключ,
238
выключить плату, вставить USB-ключ и включить плату в указанном порядке. Это должно исправить ситуацию.
После того, как будет установен Lab Streaming Layer с платой OpenBCI, надо будет ознакомиться с другими учебными пособиями для просмотра потока
вразличных программах (например, Matlab).
8.6.Обработка данных с помощью BrainBay
BrainBay это язык визуального программирования с открытым исходным кодом (VPL) для быстрого прототипирования этапов цифровой обработки сигналов ЭЭГ (или потоков данных).
Недавно был добавлен драйвер OpenBCI к программному обеспечению BrainBay для облегчения использования программы BrainBay с продуктами
OpenBCI.
BrainBay работает только с операционной системой Windows. Для начала надо загрузить и установить BrainBay (http://www.shifz.org/brainbay/).
После установки значок BrainBay должен появиться на рабочем столе. Чтобы узнать больше о возможностях BrainBay, следует нажать на один из вариантов демонстрации (рис. 8.60).
Рис. 8.60. Варианты демонстрации BrainBay
Чтобы начать использовать BrainBay самостоятельно, следует нажать «Design» => «New» на панели инструментов в верхней части экрана (рис. 8.61).
239