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

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

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

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

Одним из вариантов является переключение между протоколами TCP и UDPx3. TCP является «гарантированной» передачей пакетов, но сбои в работе сети могут быть проблематичными из-за ограниченных ресурсов ЦП на экране WiFi и потенциально могут привести к потере данных переполнения буфера. UDPx3 позволяет избежать этих проблем с сетью, просто отправляя каждую точку данных несколько раз и не ожидая подтверждения передачи. Хотя это и не «гарантировано», но иногда он может быть более надежным, чем TCP.

Другой вариант - попробовать разные настройки задержки. Какие настройки лучше всего подходят для любого компьютера / платы WiFi, могут отличаться, но в целом более длительные задержки дают экрану WiFi немного больше места для обработки сетевых сбоев. Однако, если задержка становится слишком большой, можно перезапустить кольцевой буфер, который хранит данные ЭЭГ перед отправкой. Особенно при более высокой частоте дискретизации важно не увеличивать время ожидания. Оптимальны 3 варианта установки задержки, но можно попробовать любую задержку, вручную отправляя сообщения об окончании передачи на плату WiFi непосредственно через API (https://app.swaggerhub.com/apis/pushtheworld/openbci-WiFi-сервер/ 2.0.0).

5.1.4. Плата Cyton с WiFi Shield

На рис. 5.2 показаны платы Cyton и WiFi Shield.

Рис. 5.2. Платы Cyton и WiFi Shield

При подключении WiFi Shield к плате Cyton два синих светодиода (на WiFi Shield и на плате Cyton) будут непрерывно гореть синим цветом (рис. 5.3).

125

Рис. 5.3. Два синих светодиода на платах

При переключении режима платы на аналоговый вход вспомогательный индикатор D4 гаснет. Это можно сделать в графическом интерфейсе программы

OpenBCI или запустить в Python:

from openbci import wifi as bci

shield = bci.OpenBCIWiFi(ip_address = '192.168.1.141', log=True, high_speed=True) shield.wifi_write('/2') #analog mode

Светодиод D4 выключается. Это нормально. Чтобы светодиод включился, Cyton должен установить на выводе D4 высокое напряжение. Когда Cyton переключается на цифровой вход вместо аналогового, он меняет вывод, управляющий светодиодом D4, поэтому светодиод не получает ток для включения.

5.1.5. Плата Ganglion с WiFi Shield

На рис. 5.4 показаны платы Ganglion и WiFi Shield.

Рис. 5.4. Платы Ganglion и WiFi Shield

126

Плата Ganglion работает от 3,0 вольт, а WiFi Shield - от 3,3 вольт. Поэтому можно использовать WiFi Shield для питания платы Ganglion; использование платы Ganglion для питания WiFi Shield не рекомендуется. WiFi Shield потребляет больше тока, чем плата Ganglion, поэтому рекомендуется использовать аккумуляторные батареи Li-Po.

Для использования одной батареи питания 1,5 В необходимо перевести переключатель EXT PWR в положение ON. Для использования двух батарей переключатель EXT PWR необходимо перевести в положение OFF.

5.1.6. Режим работы WiFi Shield

Существует два основных режима работы для WiFi Shield, это режим WiFi Station и режим WiFi Direct. Светодиодный индикатор состояния D2 используется для указания режима работы WiFi Shield при запуске.

5.1.7. Режим WiFi Station

WiFi Station должен иметь прошивку v1.3.0. Режим WiFi Station соединяет WiFi Shield с Wi-Fi роутером, таким как домашняя беспроводная сеть, используя стандарт 802.1 b/g/n. С помощью этого режима можно отправлять большой поток данных, особенно при увеличении скорости передачи данных и количества каналов через программное обеспечение. Медленные или старые маршрутизаторы могут привести к потере данных. Протокол UDP и пакетный режим UDP были использованы в прошивке v2.0.0, которая работает более стабильно.

5.1.8. Режим WiFi Direct

WiFi Direct предназначен для подключения напрямую к ПК без маршрутизатора Wi-Fi. Режим WiFi Direct обеспечивает высокоскоростную передачу данных, например, 1000 Гц с 16 каналами и нулевым сжатием, эти скорости и пропускная способность легко перевариваются в этом одноранговом режиме передачи данных Wi-Fi.

5.1.9. Светодиодный индикатор состояния D2

Если светодиодный индикатор D2 горит непрерывно при запуске WiFi Shield, настоятельно рекомендуется обновить прошивку с помощью беспроводного обновления до 2.0.0 или более поздней.

Если WiFI Shield не может подключиться к беспроводной сети, например, когда сохраненная беспроводная сеть не находится в зоне действия, или у WiFi Shield нет учетных данных, сохраненных в памяти, WiFi Shield будет

127

находиться в режиме WiFi Direct. Светодиодный индикатор D2 будет мигать 10 раз за 2 секунды, указывая, что WiFi Shield находится в режиме WiFi Direct.

Если в настройках WiFi Shield сохранены учетные данные беспроводной сети, индикатор D2 будет мигать 4 раза за 2 секунды, указывая на то, что WiFi Shield выполняет поиск сохраненной беспроводной сети. Если сохраненная сеть найдена, WiFi Shield подключится к беспроводной сети и мигнет 2 раза за 2 секунды. После этого WiFi Shield будет находится в режиме WiFi Station. Если сохраненная сеть не будет найдена в течение 10 секунд, WiFi Shield переключится в режим WiFi Direct.

WiFi Manager, инструмент, используемый для хранения учетных данных беспроводной сети в настройках WiFi Shield, может быть запущен либо в режиме WiFi Client, либо в режиме WiFi Direct.

5.1.10.Замечания по работе с WiFi Shield

Для обновления прошивки WiFi Shield плата не должна находиться под управлением платы OpenBCI (Cyton или Ganglion). WiFi Shield должен быть включен независимо от Ganglion или Cyton. Переключатель режима питания EXT PWR должен быть в выключенном положении. Таким образом, WiFi Shield может сам эффективно включать и выключать питание.

При возникновении проблем с подключением к сети WiFi Shield необходимо выключить и включить заново WiFi на конечном устройстве.

Подключение к сети WiFi может осуществляться до 10-15 секунд.

Как только WiFi Shield подключится к сети, он больше не будет отображаться в настройках Wi-Fi на оконечном устройстве с уникальным идентификатором OpenBCI-XXXX. Чтобы он появился снова, необходимо запустить диспетчер WiFi или «Удалить учетные данные» на WiFi Shield.

WiFi Shield не работает на уровне системы безопасности сети предприятия, поэтому для предотвращения несанкционированного доступа к передаваемой информации необходимо использовать режим Wi-Fi Direct с настройками собственной сети Wi-Fi.

5.1.11.Настройка режима WiFi Station

Для потоковой передачи данных в графический интерфейс OpenBCI WiFi Shield должен находиться в той же беспроводной сети, что и подключаемый компьютер, смартфон или любое другое устройство, с которым необходимо связать WiFi Shield. WiFi должен быть включен независимо от платы Ganglion, при этом WiFi Shield должен быть отключен. С платой Cyton переключатель EXT PWR должен быть в выключенном положении.

Если при включении WiFi Shield индикатор D2 будет мигать 4 раза в 2 секунды, а затем в течение 10 секунд 2 раза каждые 2 секунды, то WiFi Shield будет подключен к локальной сети.

128

Перед тем как WiFi Shield присоединился к сети, он выступает в качестве точки доступа WiFi, при этом светодиод D2 мигает 10 раз за 2 секунды. WiFi Shield будет иметь имя, например «OpenBCI-A4AD», где последние четыре цифры являются шестнадцатеричными и уникальными для каждого WiFi Shield.

Чтобы подключить WiFi Shield к локальной сети WiFi, необходимо на ПК запустить менеджер WiFi сетей. Затем выполнить поиск беспроводных сетей и сохранить учетные данные беспроводной сети.

WiFi Shield OpenBCI не может быть связан с несколькими сетями WiFi одновременно. Однако, если WiFi Shield находится вне зоны действия сети, с которой он в настоящее время связан, он снова появится в качестве “горячей” точки, и индикатор D2 вспыхнет 10 раз за 2 секунды. При этом, если переподключится к точке доступа, а затем подключить WiFi Shield к другой сети WiFi, то предыдущие сетевые учетные данные будут перезаписаны новыми.

5.1.12. Изменение сохраненных учетных данных

Если WiFi Shield мигает 4 раза в течение 2 секунд, а затем 2 раза в течение 2 секунд, то WiFi Shield уже имеет IP-адрес и подключен к беспроводной сети. Для изменения учетных данных WiFi Shield необходимо запустить WiFi Manager или стереть сохраненные беспроводные учетные данные. Использование WiFi Manager позволяет держать WiFi Shield подключенным к плате OpenBCI. Удаление сохраненных беспроводных учетных данных при подключенной плате OpenBCI может не сработать, поскольку плата OpenBCI не позволит WiFi Shield выполнить требуемый сброс.

5.1.13. Стирание сохраненных учетных данных

Если индикатор D2 мигает четыре раза в течение двух секунд после включения питания, WiFi Shield выполняет поиск беспроводной сети, которая соответствует учетным данным беспроводной сети, хранящимся во флэшпамяти. Если светодиод D2 мигает 2 раза за 2 секунды, то WiFi Shield успешно подключился к беспроводной сети, соответствующей сохраненным учетным данным во флэш-памяти. Если светодиод D2 мигает 10 раз в течение 2 секунд, то WiFi Shield прекратил поиск беспроводной сети, соответствующей учетным данным беспроводной сети, хранящимся во флэш-памяти.

Далее необходимо стереть сохраненные учетные данные, иначе WiFi Shield потратит 10 секунд на поиск беспроводной сети, соответствующей учетным данным беспроводной сети, хранящимся во флэш-памяти. Если WiFi Shield находится вне зоны действия сохраненной беспроводной сети, то WiFi Shield выполнит поиск беспроводной сети. При этом он не найдет ее и через 10 секунд

129