Руководство для чайников по использованию оголовья Muse с Python

Итак, у вас есть повязка на голову Muse, и вы пытались с ней посредничать. Стало скучно — что дальше?

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

Что касается интерфейсов мозг-компьютер с повязкой Muse, онлайн-ресурсов довольно мало, и большинство из них трудно понять из-за проклятия знаний. Эта статья призвана решить эту проблему, поэтому все должно быть достаточно ясно, независимо от уровня ваших знаний.

Существует бесчисленное множество способов подключить Muse и отправить на нее код, но в этой статье я расскажу, как это сделать полностью на Python. Все инструкции основаны на Mac, но с небольшими изменениями они по-прежнему будут работать для Windows и Linux.

Настройка кода

Прежде чем мы коснемся оголовья Muse, мы должны разобраться с кодовой частью. Выполните 5 шагов ниже, чтобы установить все зависимости кода для Python и этого проекта.

Шаг 1

Поскольку весь код написан на Python, первым шагом будет загрузка Python, если вы еще этого не сделали. Посетите их сайт здесь и загрузите последнюю версию.

Шаг 2

После установки Python вы хотите открыть терминал на своем ноутбуке. Вы можете сделать это, найдя приложение Терминал или нажав (⌘ + пробел), а затем введя слово Терминал, чтобы приложение появилось во всплывающем окне. Если у вас возникли проблемы с открытием терминала, проверьте это.

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

Шаг 3

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

python --version

Если это дало вам ошибку в строке «команда не найдена: python», у вас может быть более новая версия python, поэтому вместо этого введите следующее.

python3 --version

Любая из приведенных выше команд должна была напечатать номер версии вашего программного обеспечения Python, если нет, вы можете вернуться к шагу 1 и попробовать еще раз.

Шаг 4

На этом этапе ваш Python должен быть запущен и работать. Прежде чем мы найдем редактор кода, мы должны проверить, установлена ​​ли зависимость Python pip. Pip — это пакет Python, который позволяет пользователю устанавливать дополнительные команды из индекса пакетов Python. Имея pip, вы можете установить инструменты для последующего использования всего одной строкой.

Чтобы проверить, установлен ли pip, введите одну из двух команд ниже. Если вам нужно было добавить «3» после python на шаге 3, вы захотите добавить «3» после pip на этом шаге.

pip --version

or:

pip3 --version

Шаг 5

После того, как вы подтвердите, что pip установлен, самое время найти редактор кода, в котором вы сможете отредактировать свой код. Я рекомендую код Visual Studio или код VS, разработанный Microsoft. Самое замечательное в коде VS — это то, что он прост в использовании и доступен в Windows, Linux и macOS.

Установка также очень проста. Нажмите здесь и загрузите его с их официального сайта, следуя их инструкциям.

После установки откройте его и оставьте на начальной странице.

На данный момент вы успешно установили всю кодовую часть! 🥳 Однако дело еще не сделано. Следующий набор инструкций покажет вам, как подключить повязку к коду, но обещаю, будет больше рук и веселья!

Подключение повязки Muse

Чтобы подключить оголовье Muse и передавать сигналы мозговых волн на ноутбук, необходимо загрузить несколько вещей. До 2016 года потоковую передачу с Muse можно было легко осуществить с помощью Muse Lab, программного обеспечения, специально разработанного для Muse Development, но с тех пор оно было отключено. 😢

Однако не бойтесь! Проведя пару долгих дней в Интернете, мне удалось найти несколько способов потоковой передачи повязки через Bluetooth без использования Muse Lab.

Изначально часть кода была устаревшей, но в итоге я нашел немного работающие вещи и модифицировал их. Следуйте инструкциям ниже, чтобы установить все.

Шаг 1

Во-первых, чтобы повязка Muse могла общаться с ноутбуком, необходимо создать розетку. Розетка в основном позволяет Bluetooth-сигналам Muse «подключаться» или подключаться к ноутбуку.

Есть несколько приложений, которые помогают создать эту розетку. Мой личный фаворит — Petal Metrics, который можно установить здесь, следуя инструкциям на сайте. Это очень удобно с отличным пользовательским интерфейсом. Petal Metrics работает на Windows, Linux и macOS.

Если Petal Metrics по какой-либо причине не работает, BlueMuse также является вариантом для пользователей Windows и только для пользователей Windows. Однако установка немного сложнее, и вместо простой загрузки требуется Github.

Шаг 2

Теперь, когда розетка создана, вы хотите подключить к ней повязку Muse. Под типом выберите LSL (уровень лабораторной потоковой передачи). Это сделано на изображении ниже. Сигналы LSL лучше всего подходят для того типа разработки, которым мы занимаемся, потому что они обеспечивают наилучшую синхронизацию времени.

Чтобы подключить Muse, просто включите его, включите Bluetooth на ноутбуке и нажмите большую зеленую кнопку поток.

При прокрутке будет написано «подключение» или «потоковая передача Muse ####», но вы ничего больше не увидите. Не волнуйтесь, вы все сделали правильно.

Шаг 3

Теперь вы официально транслируете свою повязку! Иди ты! На этом этапе вы примерно наполовину закончили весь проект. Чтобы на самом деле просмотреть данные, должен быть код, который превращает сигналы в визуальные эффекты. К счастью, Alexandre Barachant создал замечательную программу под названием Muselsl, которая достигает этого. Все, что нам нужно сделать, это установить Muselsl для просмотра и кодирования данных Muse.

Muselsl — это файл Github, поэтому его сложнее загрузить, но я покажу вам, как это сделать, всего за секунду.

Во-первых, вы хотите открыть репозиторий Muselsl Github. Сделать это можно здесь. Репозиторий GitHub — это причудливый способ папки для проекта кодирования. Затем вы хотите клонировать репозиторий. На странице нажмите большую зеленую кнопку код, а затем скопируйте ссылку, которую вы видите.

Скопировав ссылку, давайте перейдем к следующему шагу.

Шаг 4

На этом этапе нам нужно вернуться к коду VS, который мы установили в начале. Откройте код VS, если вы еще этого не сделали, и нажмите первую кнопку в левой строке меню. (См. изображение ниже)

Теперь нажмите синюю кнопку «Клонировать репозиторий». Вверху должна появиться панель поиска. Вставьте ссылку, которую вы скопировали из шага 3, в строку поиска. Откройте репозиторий в соответствии с инструкциями и доверьтесь автору, если будет предложено.

Шаг 5

Вы увидите кучу файлов слева, но пока оставьте их и откройте терминал кода VS, как показано на скриншоте ниже.

После открытия терминал должен выглядеть примерно так внизу:

Шаг 6

С открытым терминалом вы хотите использовать pip для установки muselsl. Напомним, pip — это команда, установленная в самом начале для установки других зависимостей Python.

Установить muselsl очень просто. Вставьте следующий код в терминал и нажмите «Enter». Опять же, код, который вы вставляете, зависит от того, какую версию Python (3 или без 3) распознает ваш ноутбук.

pip install muselsl

or:

pip3 install muselsl

Как только команда введена, дайте ей загрузиться и работать, это волшебство ✨

Одна ошибка, с которой я столкнулся, заключалась в том, что мой компьютер не распознавал pygatt. Если вы столкнулись с той же ошибкой, просто введите следующий код, а затем попробуйте переустановить muselsl еще раз, следуя приведенному выше коду.

pip install pygatt

or:

pip3 install pygatt

Шаг 7

Окончательно! Пришло время просмотреть и передать данные. Сначала откройте Petal Metrics ранее и начните потоковую передачу.

Затем перейдите к терминалу в коде VS и введите команду ниже

muselsl view

Ваш код найдет выход Petal Metrics и передаст данные, если вы правильно носите головную повязку. Это должно выглядеть примерно так:

Используя приведенные ниже команды, вы можете изменить способ отображения графика для более четкого представления.

Ура! Наконец-то вы установили соединение и можете просматривать свои мозговые волны! Следующий шаг — изменить код и заставить его распознавать ваши моргания 👁️.

Распознавание мигания

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

Единственное, что мы можем сделать с этим «провалом», — заставить компьютер распознать его. Когда компьютер его распознает, моргание может превратиться в сигнал что-то сделать или что-то показать. Приведенные ниже шаги покажут вам, как заставить компьютер распознавать ваши моргания.

Шаг 1

В репозитории Muselsl GitHub, который вы клонировали ранее, нажмите
examples > neurofeedback.py

neurofeedback.py — это файл, в котором собираются и распечатываются сигналы.

После нахождения файла вам может быть предложено установить Python для VS Code. Если нет, перейдите в левую строку меню, нажмите «Расширения», выполните поиск Python и установите Python. На следующем изображении показано, как установить Python в VS Code.

Шаг 2

Установив Python, вернитесь к файлу neurofeedback.py и нажмите кнопку запуска (маленький треугольник) в правом верхнем углу. Нажатие «Выполнить» должно вызвать терминал, и в терминале может отображаться множество ошибок. Не волнуйтесь, эти ошибки должны быть там.

Ошибки являются причиной импорта вверху:

Ваш компьютер не распознает эти команды, поэтому введите в терминал следующие команды, по одной за раз, а затем «ввод», чтобы установить каждый из этих нераспознанных файлов. Еще раз, в зависимости от типа вашего Python, введите «pip3» или «pip» для установки.

pip3 install numpy

or

pip install numpy
pip3 install matplotlib

or

pip install matplotlib
pip3 install utils

or

pip install utils
pip3 install sklearn

or

pip install sklearn

На этом этапе вы сможете без проблем запустить свой код. Теперь давайте перейдем к следующему шагу.

Шаг 3

Теперь ваш код работает, но в нем отсутствует поток ЭЭГ. Чтобы найти этот поток, включите Petal Metrics ранее и подключите Muse. Теперь, если вы запустите код, вы должны увидеть много чисел. Эти числа представляют альфа-волны.

Подробнее об этих волнах вы можете узнать в моей предыдущей статье.

Короче говоря, альфа-волны — это волны расслабленного состояния. На них практически не влияют движения мышц, такие как моргание. Чтобы сделать числа чувствительными к миганиям, мы должны напечатать дельта-волны.

Чтобы обнаружить дельта-волны, добавьте следующий код

print("Delta: ", band_powers[Band.Delta])

Поместите его туда, где он расположен на скриншоте.

Теперь, чтобы убедиться, что другие волны не отображаются, найдите строку ниже в коде и либо поставьте перед ней # (закомментировав ее, чтобы компьютер ее не распознал), либо полностью удалите ее.

print('Alpha Relaxation: ', alpha_metric)

Если вы правильно выполнили все приведенные выше инструкции, нажмите «Выполнить» еще раз, и вы должны увидеть дельта-волны.

Шаг 4

Дельта-волны могут легко обнаруживать моргание и движения мышц. Если вы внимательно посмотрите на цифры или на скриншот выше, вы увидите, что в ту секунду, когда вы «моргаете», числа становятся больше 1.

Теперь мы знаем, что больше 1 = мерцание, так что же нам делать с этой информацией?

Ну, в коде, если мы хотим, чтобы что-то произошло при заданном условии, мы используем оператор if. В случае обнаружения моргания компьютер должен напечатать «blink» если дельта-волна больше 1. Это можно сделать с помощью следующей строки:

if band_powers[Band.Delta] >= 1: 
                print("Blink!")

Линия должна располагаться ниже линии, на которой вы печатаете дельта-волны.

Шаг 5

Запуск кода с шага 4 даст вам что-то вроде:

О-о!
Одно моргание показывает столько же морганий…

Это связано с тем, что когда вы моргаете один раз, ваши мышцы изменяются в течение нескольких миллисекунд, а не только одной миллисекунды.Дельта-волны собираются быстрее, чем время, необходимое для одного моргания.

К счастью, есть простой способ это исправить. Все, что вам нужно сделать, это прокрутить код до самого верха и настроить экспериментальные параметры.

Даже не разбираясь в коде, можно увидеть кучу цифр. Эпоха означает период времени, а перекрытие означает хорошо перекрывающееся.

Длина сдвига ниже представляет собой длину перекрытия эпох, которая в нашем случае равна 0,2.

Это означает, что каждые 0,2 секунды будет происходить новое измерение ЭЭГ. Так как 0,2 слишком быстро для моргания, мы хотим изменить число на 1.

Это означает, что OVERLAP_LENGTH = 0, поскольку 1–0 = 1

Ваш код должен выглядеть так после корректировки:

Шаг 6

Наконец, давайте снова запустим код, моргнем и посмотрим, что произойдет.

Вуаля! Каждый раз, когда вы моргаете, дельта-число становится больше 1 и «Мигайте!» печатается один раз.

Заключение

Все готово! Ваша программа теперь распознает, когда вы моргнули!

Посмотрите это видео, где я демонстрирую код:

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

Если у вас возникнут какие-либо проблемы, не стесняйтесь обращаться ко мне в Linkedin, и еще раз спасибо за чтение!

Репозиторий GitHub: https://github.com/carolrongg/Muse-Blink-Detection.git

Ссылки