Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 2232

.pdf
Скачиваний:
26
Добавлен:
30.04.2022
Размер:
14.85 Mб
Скачать

Изменяя узел параметра «sensibility» (чувствительность), можно вручную настроить относительную «сложность», необходимую для достижения альфаобнаружения.

Такая система является гибкой для различных электродов и различного расположения электродов, поскольку она динамически корректирует свои ожидания относительно того, как альфа-всплеск «выглядит».

Этот пример показывает, что можно построить статистическую систему, или систему, основанную на простой логике, которую можно легко встроить с помощью визуального программирования в сложную и надежную систему обработки ЭЭГ волн.

8.4. Обработка данных в программе OpenViBE

Существует два основных способа подключения технологии OpenBCI к программному обеспечению OpenViBE:

1)подключение плат Cyton или Cyton + Daisy напрямую к OpenViBE с помощью драйвера;

2)подключение любой платы OpenBCI к графическому интерфейсу OpenBCI, а затем использование сетевого виджета для потоковой передачи данных по протоколу LSL на сервер сбора данных OpenViBE. Для этого сначала необходимо начать потоковую передачу из графического интерфейса, выбрав LSL на сервере сбора данных OpenViBE. В OpenViBE должна появиться опция в cвойствах драйвера “Driver Properties”, чтобы выбрать поток данных из графического интерфейса, который обычно определяется автоматически.

Для начала работы необходимо загрузить последнюю версию программного обеспечения OpenViBE (http://openvibe.inria.fr/downloads/).

Далее рассмотрим способ подключения плат регистрации напрямую к программе OpenViBE.

Сначала надо подключить плату OpenBCI и убедиться, что она распознается как COM-порт, а ее задержка установлена на 1 мс. Затем надо запустить сервер сбора сигналов OpenViBE (SAS) по адресу “C:=>Program Files=>openvibe=>openvibe-acquisition-server (обычно отображается при поиске «openvibe» в меню «Пуск») (рис. 8.51).

В SAS выбрать опцию OpenBCI (unstable) (нестабильно означает, что функционал не проверен полностью) из выпадающего списка. Затем открыть “Driver Properties”. В пункте «Устройство» выбрать номер COM-порта, к которому была подключена плата OBCI. В меню настроек SAS надо изменить допуск дрейфа с 2 мс (по умолчанию) на 10 мс. После выполненных действий нажать “Connect”. Если возникнет ошибка, то надо устранить возможные неполадки:

Посмотреть на окно терминала, которое открывает SAS. Там имеется подробный отчет о состоянии SAS.

230

Часто нажатие кнопки перезапуска на плате OBCI или оключение/подключение USB-ключа устраняет любые проблемы с подключением.

Если ошибка сообщает, что программа не может открыть выбранный порт, надо убедиться, что выбранный в параметрах драйвера COM-порт совпадает с COM-портом платы.

Рис. 8.51. Cервер сбора сигналов OpenViBE

После устранения проблем с подключением можно настроить “OpenViBE Designer”. XML-файл с готовыми настройками необходимо скачать по ссылке https://github.com/openbci-archive/Docs/blob/master/assets/files/Start_OBCI_Cyton

.xml.

Этот файл представляет собой набор настроек для вывода графиков, которые будут отображать как каналы ЭЭГ, так и каналы AUX. Для платы V3 каналы AUX соответствуют значениям акселерометра в трех основных направлениях. Далее открыть графический интерфейс OpenViBE Designer. Если не используется XML-файл из примера, то должна открыться пустая страница, как показано на рис. 8.52.

На панели инструментов справа развернуть папку «Acquisition and IO» и выбрать «Acquisition client». Этот объект представит входной поток с платы OpenBCI. Затем нажать и перетащить «Acquisition client» в область проектирования (рис. 8.53).

231

Рис. 8.52. Пустая страница OpenViBE Designer

Рис. 8.53. Размещение объекта «Acquisition client» в области проектирования

232

На той же панели инструментов надо развернуть папку «Visualization», затем папку «Basic» и выбрать «Signal display». После этого нажать и перетащить окно отображения сигнала в область проектирования. Затем соединить одинаковые цветные треугольники двух объектов (рис. 8.54).

Рис. 8.54. Соединение объектов

После выполнения этих действий будет все готово для передачи данных с платы регистрации ЭЭГ. Можно вернуться в графический интерфейс OpenViBE Acquisition Server и выбрать команду «Play». Должно появиться окно отображения сигнала, выводящее данные по мере их поступления с платы регистрации ЭЭГ (рис. 8.55).

После выполнения вышеуказанных действий данные будут транслироваться с платы OpenBCI на OpenViBE. Далее можно исследовать другие инструменты, которые предлагает программа OpenViBE.

Рассмотрим второй способ передачи данных, основанный на передачи потока из графического интерфейса OpenBCI в программу OpenViBE.

Пример передачи данных с плат Ganglion + WiFi на частоте 1600 Гц из графического интерфейса OpenBCI в OpenVibe (рис. 8.56) приведен в следующем ролике: https://www.youtube.com/watch?v=97rNewfbTKA.

233

Для начала надо подключить XML файл с настройками. XML файл с готовыми настройками можно скачать по ссылке https://github.com/openbciarchive/Docs/blob/master/assets/files/Start_OBCI_Cyton.xml.

Рис. 8.55. Вывод данных с платы регистрации ЭЭГ

Этот файл представляет собой набор настроек для вывода графиков, которые будут отображать как каналы ЭЭГ, так и каналы AUX. Для платы V3 каналы AUX соответствуют значениям акселерометра в трех основных направлениях. Нам не нужны объекты справа для обработки каналов AUX. Надо разорвать соединение с обработкой данных AUX, так как мы будем отправлять только данные с четырех каналов “TimeSeries” через LSL.

Далее нужно внести несколько изменений в XML файл OpenBCIOpenViBE, чтобы это работало с платой Ganglion, отправляющей данные по LSL. Необходимо сделать следующее:

1.Открыть графический интерфейс OpenBCI.

2.Начать сеанс с любым режимом данных.

3.Открыть виджет сети и установить для протокола значение LSL из раскрывающегося списка в правом верхнем углу виджета.

4.Выбрать нужный тип данных для потоковой передачи.

5.На сервере сбора данных OpenViBE выбрать драйвер в качестве

LabStreamingLayer (LSL).

6.Нажать“Пуск” в виджете сети OpenBCI GUI.

7.Нажать «Connect and Play» на сервере сбора данных OpenViBE.

8.Нажать кнопку «Play» в графическом интерфейсе OpenViBE Designer.

234

Рис. 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