4.8.13. Обновление прошивки платы Ganglion с использованием аппаратного обеспечения
Старые версии плат Ganglion (до 2017 года) могут быть запрограммированы только с помощью аппаратных средств. Новые версии плат Ganglion могут быть запрограммированы методом OTA или с помощью аппаратных средств.
Для программирования с использованием аппаратного обеспечения нужно (рис. 4.31):
“FTDI Breakout” или “OpenBCI Cyton Dongle”;
конденсаторы емкостью 0.1 мкФ;
проволочные перемычки;
Arduino IDE.
Для программирования можно использовать устройство Adafruit FTDI
Friend. Также можно использовать любое FTDI устройство, которое использует только 3V для логических уровней.
Плата Ganglion является 3-х вольтовым устройством. Поэтому нельзя подключать питание больше 3 В. Конденсатор емкостью 0.1мкФ должен быть включен между выводом “RESET” на плате Ganglion и “RTS” выводом на плате
FTDI.
Рис. 4.31. Инструменты для обновления прошивки
120
4.8.14. Настройка программы Arduino для программирования платы Ganglion
Необходимо следовать ранее описанному руководству и создать файл
OTA. Выбрать «Simblee» в строке меню “Tools=>Board” и открыть пример “DefaultGanglion” из “File=>Examples=>OpenBCI_Ganglion_Library=> DefaultGanglion” (рис. 4.32). Подключить устройство Dongle или FTDI Friend к
ПК и выбрать последовательный порт. Затем надо подключить устройство
Dongle или FTDI Friend к плате Ganglion.
Рис. 4.32. Создание файла OTA
Для выбора последовательного порта надо зайти в меню “Tools=>Port” и выбрать правильный порт для платы OpenBCI Dongle или платы FTDI Friend. На MacOS последовательный порт будет называться как “/dev/tty.usbserialDN00nnnn”, где nnnn - это комбинация цифр и букв, характерных для конкретной платы Ganglion. В Windows последовательный порт будет указан как пронумерованный COM-порт.
Далее надо проверить проводные соединения и нажать кнопку “Загрузить” (Upload). Если все подключено правильно, то плата Ganglion будет успешно прошита.
121
5.ПЛАТА WIFI SHIELD
5.1.Начало работы с платой WiFi Shield
Плата WiFi Shield разработана в программе KiCAD (программное обеспечение для разработки печатных плат с открытым исходным кодом).
Внешний вид разводки печатной платы приведен на рис. 5.1.
Рис. 5.1. Верхний и нижний слои печатной платы
WiFi Shield cовместим со всеми биосенсорными платами OpenBCI (16-
канальный Cyton Daisy, 8-канальный Cyton и 4-канальный Ganglion).
В настоящее время WiFi Shield поддерживает только уровень безопасности WPA. Можно использовать WiFi Direct для прямого перехода от WiFI Shield к компьютеру или использовать маршрутизатор с точкой доступа для создания собственной персональной сети Wi-Fi в местах, где есть только защита на уровне предприятия.
Однако у платы WiFi Shield возникают проблемы с надежностью (всплески циклического шума и пропущенные пакеты данных) в сочетании с платами Cyton и CytonDaisy. Эффективное использование WiFi Shield требует передовых технических навыков и знаний в области программирования.
WiFi Shield - это первое устройство с открытым исходным кодом, которое подключает биодатчики ЭЭГ непосредственно к Интернету, что позволяет легко обходить задержки сигналов в последовательных портах и низкоскоростных Bluetooth-соединениях. Кроме того, плата WiFI Shield позволяет осуществлять потоковую передачу быстрее и дальше, чем это возможно при использовании стандартного оборудования на основе Bluetooth. В большинстве беспроводных сетей WiFi Shield может работать с частотой 1000 Гц с платами Cyton и Daisy и с частотой 1600 Гц с платой Ganglion. С
122
высокоскоростным сетевым коммутатором возможны частоты дискретизации более 2000 Гц с теоретическим пределом 16000 Гц для Cyton, 8000 Гц для Cyton
с экраном Daisy и 12800 Гц для Ganglion. Каждый WiFi Shield имеет уникальный адрес в локальной сети, что позволяет на одном компьютере управлять набором устройств, быстро подключаясь к различным WiFi Shield и управляя ими. WiFi Shield позволяет использовать популярные протоколы обмена сообщениями, такие как MQTT, для потоковой передачи данных JSON или Raw напрямую в облачные сервисы, такие как Cloudbrain, Amazon Web Services IoT, Microsoft Azure IoT или Google Cloud IoT.
WiFi Shield имеет встроенный микроконтроллер ESP8266, который участвует в создании беспроводного соединения. ESP8266 - это первый в мире Arduino - совместимый Wi-Fi модуль. ESP8266 позволяет обновлять программное обеспечение по беспроводной сети (OTA). Для правильной работы WiFi Shield использует два контакта GPIO, соединенные с платами
Cyton / Ganglion.
Технические характеристики:
Питание: от 3,3 В до 6 В постоянного тока.
Потребляемый ток: 125 мА в режиме ожидания, 150 мА в режиме подключения и потоковой передачи данных.
Wi-Fi модуль: ESP8266.
Возможность ручного подключения / отключения шины питания от несущей платы.
5.1.1. Описание кнопок и контактов ввода-вывода
Верхняя кнопка “RESET” - это кнопка сброса, которая включает и выключает питание чипа ESP8266. Нельзя нажимать кнопку “RESET”, когда подключена плата Ganglion. Если необходимо выключить и включить WiFi Shield, то нужно отправить команду с Ganglion или Cyton, чтобы активировать перезагрузку WiFi Shield. Нижняя кнопка “PROG” используется для программирования WiFi Shield через последовательный UART интерфейс и подключена к GPIO 0.
WiFi Shield отключает каждый GPIO на Cyton и Ganglion, однако два из всех контактов GIPO были использованы для работы с WiFi Shield, один контакт используется для сброса, а другой - для линии выбора микросхемы, используемой в коммуникациях SPI.
WiFi Shield совместно с платой Cyton использует D13 и D18 и не использует другие контакты D11, D12, и D17. В аналоговом режиме это означает, что нельзя читать A7, когда подключен WiFi Shield.
WiFi Shield совместно с платой Ganglion использует D_24 и D_4 (A_5),
оставляя все остальные контакты открытыми для использования.
123
5.1.2. Руководство по началу работы с WiFi Shield
OpenBCI WiFi Shield представляет собой аппаратный продукт, предназначенный для работы с программным обеспечением OpenBCI GUI и позволяющий работать в паре с любой из двух плат OpenBCI. Преимущество Wi-Fi перед Bluetooth - увеличенная частота дискретизации. WiFi Shield увеличивает частоту дискретизации, передавая данные через WiFi, в отличие от Bluetooth. WiFi Shield может управляться через HTTP-запросы и может отправлять объекты JSON с данными величиной в несколько нано вольт. С подключенным WiFi Shield:
Cyton может передавать данные с частотой 50 Гц, 500 Гц, 1000 Гц, 2000 Гц, 4000 Гц, 8000 Гц и 16000 Гц.
Cyton + Daisy может передавать данные с частотой 250 Гц, 500 Гц, 1000 Гц, 2000 Гц, 4000 Гц и 8000 Гц.
Ganglion может передавать данные с частотой 200 Гц, 400 Гц, 800 Гц, 1600
Гц, 3200 Гц, 6400 Гц и 12800 Гц.
Известно, что у протокола Wi-Fi возникают проблемы с надежностью (потеря пакетов и пики циклического шума) при использовании с платами Cyton и CytonDaisy. Эффективное его использование требует передовых технических навыков и знаний в области программирования.
При подключении к Cyton + WiFi или Cyton + Daisy + WiFi с помощью графического интерфейса OpenBCI имеется возможность использовать протоколы TCP, UDP или UDPx3. Особое предпочтение уделяется протоколу
UDPx3.
5.1.3. Борьба с потерей пакетов в WiFi Shield
Сэмплируя при 16 каналах на частоте 1000 Гц, мы будем отбрасывать 50-60 смежных пакетов довольно часто (примерно каждую минуту). Проблема потери пакетов возникает из-за сложной электромагнитной обстановки в диапазоне 2,4 ГГц вследствие работы в этом диапазоне множества различных устройств.
Для устранения потери пакетов было использовано снижение частоты дискретизации до 250 Гц и уменьшение количества каналов до 8 при протоколах передачи TCP и UDPx3. Производительность иногда улучшалась, но не идеально.
В целом, беспроводная связь может стать проблемой в 2021 году и позже, когда все больше и больше устройств переключаются на ограниченное количество полос в спектре 2,4 ГГц. Иногда для понимания достаточно посмотреть спектр сигналов на частоте 2,4 ГГц, используя общедоступные инструменты для анализа спектра (https://www.ittsystems.com/wifi-analyzers-for- windows/).
Далее есть несколько вещей, которые можно попробовать для улучшения передачи данных.
124