"ip": ..., // Enter your local ip address of server "delimiter": true, // will place `\r\n` at end of each chunk
"latency": 20000, // Time to wait between packet sends in micro seconds.. i.e. latency here is 20ms "sample_numbers": false, // Don't include sampleNumber in each sample
"timestamps": true // Include timestamps in each sample
}
Now when you start streaming data, you can simply look for `\r\n` in the incoming stream of data and each time you find it, you know you just got then end of packet and can parse everything before that `\r\n` as JSON.
5.4. SDK для платы Wifi Shield
SDK разработаны для взаимодействия стороннего микроконтроллера с WiFi Shield.
Сначала необходимо скачать и установить последнюю версию Arduino. Далее загрузить и установить OpenBCI Wifi Master. Для этого можно просто найти OpenBCI Wifi Master в Arduino Library Manager.
5.4.1. Ручная установка
Сначала необходимо загрузить последнюю версию OpenBCI_Wifi_Master (https://www.arduinolibraries.info/libraries/open-bci_wifi_master) с сайта arduinolibraries.info. Далее содержимое архива поместить в папку “OpenBCI_Wifi_Master”. Затем папку поместить по адресу:
на MacOS: /Documents/Arduino/libraries;
на Windows: C:\Users\username\Documents\Arduino\libraries.
Также можно клонировать официальный репозиторий для
OpenBCI_Wifi_Master_Library (https://github.com/OpenBCI/OpenBCI_Wifi_Maste r_Library) в папку libraries из Github с помощью клиента git.
5.4.2. Отправка данных на WiFi Shield
WiFi Shield действует как ведомое устройство SPI с платами Cyton или Ganglion. Максимальная скорость, с которой ESP8266 может работать, составляет 10 МГц. Примером является код SPISlave (https://github.com/esp8266/Arduino/blob/master/libraries/SPISlave/examples/SPISla ve_Test/SPISlave_Test.ino), на котором основан код для Wifi. Чтобы взаимодействовать с этой подчиненной библиотекой SPI, следует взглянуть на пример SPI Master, поскольку команды для получения данных и чтения регистра состояния строго определены и должны соблюдаться. Первое ограничение, которое накладывает ведомый SPI Arduino ESP8266, - это всегда отправлять 32 байта на сообщение. Формат байтового потока при передаче рассмотрен в разделе “Формат raw потока байтов”.
150
6. НАСТРОЙКА ПЛАТ CYTON И GANGLION ПЕРЕД РАБОТОЙ
6.1. Настройка для регистрации ЭЭГ
Сначала необходимо подключить провода электродов к плате Cyton, как показано на рис. 6.1. Соединения проводов представлены в табл. 6.1. Они соответствуют 8 каналам, доступным для передачи данных.
На плате Ganglion имеются штыри от 1 до 4, соответствующие 4-м входным каналам платы. Необходимо обратить внимание, что четыре переключателя на плате Ganglion должны быть установлены в положение "вниз" для регистрации ЭЭГ.
Рис. 6.1. Подключение проводов к плате Ganglion
|
|
|
Таблица 6.1 |
|
Цвет провода |
Вывод платы Cyton |
Вывод платы |
Функция |
|
электрода |
|
Ganglion |
|
|
|
|
|
|
|
Белый |
SRB2 |
REF |
Опорный |
|
|
(нижний вывод SRB) |
(верхний вывод) |
электрод |
|
|
|
|
|
|
Черный |
нижний косой штифт |
D_G (верхний |
Шумоподавляющий |
|
|
|
контакт) |
электрод |
|
|
|
|
|
|
Фиолетовый |
2N |
+2 |
Аналоговый вход |
|
|
(нижний вывод N2P) |
(в верхнем ряду) |
|
|
|
|
|
|
|
Красный |
7N |
+4 |
Аналоговый вход |
|
|
(нижний вывод N7P) |
(в верхнем ряду) |
|
|
|
|
|
|
|
Белый и черный электроды должны всегда соединяться с выводом SRB2 и нижним BIAS выводом, но фиолетовый и красный электроды могут быть соединены с любым из N1P через каналы N8P (или выводы 1 через 4 в случае использования платы Ganglion).
151
Опорный электрод (SRB2) необходимо закрепить на мочке уха. Относительно этого электрода будет измеряться разность потенциалов между ним и другими электродами, расположенными на голове. Электроды Fp1 и Fp2 (фронтальный полярный участок) располагаются на лобной части головы, как показано на рис. 6.2.
Рис. 6.2. Международный стандарт системы 10-20 для размещения электродов ЭЭГ на голове
Электроды O1 и O2 размещаются в затылочной области. На другой мочке уха должен быть расположен черный электрод для шумоподавления. Либо A1, либо A2 из системы 10-20.
После запуска графического интерфейса OpenBCI можно увидеть процесс регистрации (рис. 6.3).
Рис. 6.3. Рабочее окно программы в процессе регистрации
152
Для включения и отключения каналов можно использовать круглые кнопки с номерами внутри (рис. 6.4).
Рис. 6.4. Включение и отключение каналов
Для проверки работоспособности оборудования можно проверить возникновение некоторых мозговых волн.
Самый простой способ сознательно производить мозговые волны - закрывание и открывание глаз. Когда это происходит, то затылочная область (часть головного мозга, ответственная за обработку визуальной информации) входит в состояние альфа-волны с частотой от 7,5 до 12,5 Гц. Альфа-волны мозга являются самыми сильными ЭЭГ волнами. Исторически считается, что они представляют собой активность зрительной коры головного мозга в состоянии покоя. Альфа-подобные волны называются μ–волнами, которые возникают над двигательной корой головного мозга.
При закрывании глаз появится сильный альфа-всплеск, который будет виден и на графике быстрого преобразования Фурье (FFT), и на графике в правом нижнем углу графического интерфейса (рис. 6.5). Пик должен быть гдето между 7.5-12.5 Гц на оси х графика FFT, что указывает на сильное присутствие волн в этом диапазоне частот. Программа позволяет делать скриншоты рабочего окна при нажатии на кнопку “m”.
153
Рис. 6.5. Альфа-всплеск
На рис. 6.5 видно, что самые сильные альфа-волны появляются на канале 7 электрода O2 (затылочная область). Можно подсчитать количество волн в одном 1-секундном временном интервале на канале 7. Число волн должно соответствовать показаниям по оси X на графике БПФ.
6.2. Настройка для регистрации ЭКГ
Для регистрации одного канала ЭКГ понадобятся три электрода. Один заземляющий и два активных для снятия сигнала. Необходимо подключить два электрода к верхнему и нижнему контактам N1P, а последний контакт к контакту AGND (рис. 6.6).
При использовании платы Ganglion необходимо проверить, что на плате доступны для регистрации 4 дифференциальных канала. Для этого все четыре переключателя на плате должны быть в положении “UP” по умолчанию. Заземляющий электрод должен быть подключен к нижнему контакту “D_G” (управляемая “земля”). Нижний ряд штырей находится ближе к поверхности платы. Для каждого канала требуется два электрода - один подключен к верхнему контакту, другой - к нижнему контакту. Соответственно можно подключить до четырех электродов на груди к входным каналам с 1 по 4. Таким
154