Отчет


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА №44
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
доцент, к.т.н. А.В. Никитин
должность, уч. степень, звание подпись, дата инициалы, фамилия
Отчёт о практической работе
по дисциплине: Научно-исследовательская работа
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № Z7440M Е.А. Ичетовкинподпись, дата инициалы, фамилия
Санкт-Петербург, 2018 г.
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ
на прохождение практики «научно-исследовательская работа» обучающегося направления подготовки/специальности «09.04.01 «Информатика и вычислительная техника» направленность «Системы мультимедиа и компьютерная графика».
Фамилия, имя, отчество обучающегося: Ичетовкин Егор Андреевич;
Группа № Z7440M;
Тема индивидуального задания: «Сборка нейроинтерфейса на программируемом микроконтроллере»;
Содержание отчета:
Индивидуальное задание;
Отчет, включающий в себя:
Титульный лист;
Материалы о выполнении индивидуального задания, включая:
Анализ предметной области задания: краткое описание, актуальность, научнотехническая проблематика и цель.
Выводы по результатам практики;
Список использованных источников.
Срок представления отчета на кафедру «___» _______ 2018 г.
Руководитель практики
_____________________ ___________________ __________________________
должность, уч. степень, звание подпись, дата инициалы, фамилия
Задание принял к исполнению:
Обучающийся
___________________ ________ _______ ___________________________________
Дата подпись инициалы, фамилия
Содержание
TOC \o "1-3" \h \z \u Введение PAGEREF _Toc504959628 \h 41. АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ PAGEREF _Toc504959629 \h 101.1 Постановка задачи PAGEREF _Toc504959630 \h 101.2 Обзор существующих решений PAGEREF _Toc504959631 \h 101.3 Возможные пути решения задачи, их достоинства и недостатки, PAGEREF _Toc504959632 \h 14обоснование выбора решения. PAGEREF _Toc504959633 \h 141.4 Обоснование применяемых технологий и инструментов. PAGEREF _Toc504959634 \h 15Выводы PAGEREF _Toc504959635 \h 152. РАЗРАБОТКА ПРЕДЛАГАЕМОГО РЕШЕНИЯ PAGEREF _Toc504959636 \h 162.1 Разработка архитектуры прототипа решения PAGEREF _Toc504959637 \h 162.2 Прототипы алгоритмов и структур данных PAGEREF _Toc504959638 \h 21Выводы PAGEREF _Toc504959639 \h 25Заключение PAGEREF _Toc504959640 \h 26Список использованных источников PAGEREF _Toc504959641 \h 27
Введение1) Краткое описание предметной области
Ученые изучают мозг по показателям его электрической активности, так как нервные клетки общаются между собой, передавая информацию друг другу с помощью импульсов тока. Около пятнадцати лет назад появились первые идеи преобразовать электрический сигнал в цифровые команды для управления внешними устройствами, т. е. создать нейро-компьютерный интерфейс [0].
Нейро-компьютерный интерфейс или нейроинтерфейс – это физический интерфейс приема или передачи сигналов между живыми нейронами биологического организма (например, мозгом животного) с одной стороны, и электронным устройством (например, компьютером) с другой стороны [1].
Идея использования электрического сигнала мозга в качестве канала для коммуникации возникла давно, но исследователи не сразу поняли потенциал такой инициативы. Чтобы чем-то управлять, нужно совершать действия сразу же после возникновения мысли.
Сделать такой быстрый канал для коммуникации раньше не представлялось возможным. А запрос на подобные технологии сформировался давно – больше всего они требуются в клинической области, когда у пациента работает мозг, но нарушена моторика.
Во всех технологиях интерфейс-мозг-компьютер ключевыми областями науки является психофизиология и нейрофизиология. Они объясняют, как работает мозг, как устроены нервные клетки, как они порождают электрические сигналы.
К этим двум областям примыкают специалисты примерно трех дисциплин: биоинженерии, математики, программировании.
Специалисты в биоинженерии конструируют приборы, например регистрирующие биопотенциал. Математики расшифровывают сигналы, которые регистрируются приборами. Специалисты в программировании выполняют инженерную часть: разрабатывают программы, которые проводят необходимые расчеты на вычислительном средстве[0].
2) Актуальность темы
В будущем у технологии нейроинтерфейса есть две ветви развития, которые могут пересекаться. Первое направление – медицинское. Данная технология нужна людям, которые физически не могут работать или не могут поддерживать здоровое взаимодействие с обществом. Важно в этой области найти специалистов, способных заниматься настройкой, установкой и обслуживанием этих сложных устройств.
Второе направление – нейрокибернетика реальных устройств, т. е. тесное взаимодействие мозга с вычислительной техникой. Все чаще люди сталкиваются с ситуацией, когда мозг умирает вследствие выхода из строя обслуживающих его органов. Но если нездорово тело (например, полный его паралич), человек может управлять манипулятором. Например в США, в нескольких лабораториях сделаны манипуляторы, которыми управляет полностью обездвиженный человек с нарушением моторной системы. При помощи мыслей, преобразуемых в цифровые команды, человек управляет манипуляторами и взаимодействует с их помощью с различными предметами.
Второе направление развития нейроинтерфейса несет в себе философско-гуманистическую проблему, а именно проблему жизни мозга. Бывают случаи, когда у человека вышла из строя не моторная система, а
внутренние органы, которые невозможно заменить. Можно сделать полный протез тела, который обеспечит мозг жизнью, но он будет не биологическим. Тогда взаимодействовать с внешним миром человек
сможет с помощью нейроинтерфейса. Но данная проблема требует этического, филосовского и гуманистического осмысления [2].
Создание устройств, способных считывать информацию с мозга человека и передавать ее на различные устройства может стать новым словом в развитии лечения различных неврологических заболеваний, таких как, например, паралич. Уже сейчас с помощью таких устройств полностью парализованный человек может выходить в интернет, писать письма, управлять бытовыми приборами и т. д. Но не стоит забывать, что человек – существо биосоциальное и применение нейрокомпьютерных интерфейсов необходимо не только
для продления жизни человека, но и для существования его личности.
30 октября 2015г.: Подписание меморандума о создании отраслевого союза «НейроНет».
«НейроНет» — среда информационного обмена следующего поколения. Технологии, продукты и услуги рынка «НейроНета», основанные на знаниях о мозге, существенно расширят возможности человека и охватят все аспекты его жизни. Следующая технологическая революция будет связана с технологиями «НейроНета» и кардинальным увеличением производительности умственного труда за счет интеграции мозга человека и вычислительных машин по средствам Нейроинтерфейса. Биотехнологическая революция стартовала после расшифровки генома человека, а стремительное развитие нейротехнологий начнется после завершения расшифровки (картирования) работы мозга.
«НейроНет» станет следующим этапом развития современного интернета (Web 4.0), в котором взаимодействие участников (человек — человек, человек — машина) будет осуществляться с помощью новых нейрокомпьютерных интерфейсов, а сами компьютеры станут нейроморфными (похожими на мозг) с помощью гибридных цифроаналоговых архитектур. Прогнозируется появление социальных нейросетей и полноценного гибридного человекомашинного интеллекта.
Дорожная карта «НейроНета» одобрена президиумом Совета при Президенте Российской Федерации по модернизации экономики и инновационному развитию России.
Применение технологий «НейроНета» в области образования позволит резко увеличить объем и скорость усвоения новых знаний, при этом развитие таких направлений, как нейрофитнес, позволит многократно усилить когнитивные способности.
В области медицины появятся технологии, позволяющие использовать искусственные конечности и дополнительные органы чувств. При этом уже в десятилетней перспективе ожидается завершение клинических испытаний инновационных лекарственных кандидатов для диагностики и лечения болезней Альцгеймера, Паркинсона, шизофрении, тревожных состояний, инсульта[4].
3) Научно-техническая проблема и ее новизна
Основной проблемой с инвазивными и полуинвазивными нейроинтерфейсами является повреждение нервной ткани электродом — нервы в месте контакта просто отмирают с течением времени. Необходимы технологии разъединения нервной ткани и электрода, обеспечивающие стабильное соединение. Другая проблема заключается в нахождении «правильного нерва» для контакта с электродом, что трудно в плотно упакованной коре мозга.
Не только мозг, но и вся нервная ткань является очень хрупким объектом. Это мешает созданию нейроинтерфейса, контактирующих, например, с сетчаткой (где уже находятся пять слоёв нейронов визуальной обработки). Для устройств, взаимодействующих со здоровой сетчаткой, более перспективны не нейроинтерфейсы, а мини-дисплеи, проецирующие изображение непосредственно на сетчатку.
Самой серьёзной проблемой является точность нейроинтерфейсов. Если для инвазивных нейроинтерфейсов точность зависит скорее от нейрохирурга и материалов, обеспечивающих надёжный контакт с правильной группой нейронов, то для неинвазивных нейроинтерфейсов точность — это прежде всего точность алгоритмов обработки регистрируемой информации.
Задача неинвазивных нейроинтерфейсов — восстановить активность группы нейронов по электрическому или магнитному полю.
Есть и альтернатива — экспериментальное установление связи между желаемым результатом работы нейроинтерфейса (например, желаемым движением робота или протеза руки) и регистрируемой при этом желании активностью датчиков. Таким образом происходит «обучение» нейроинтерфейса, после которого он работает в режиме «желание определённого движения — команда соответствующим моторам». И, конечно, установленная связь далеко не всегда является точной, устойчивой к ошибкам, к активности других электродов и временным изменениям[5].
И тем не менее, рынок нейроинтерфейсов уже начал свой осторожный рост.В XXI веке мир столкнулся с глобальными проблемами, среди которых:
-Старение населения;
-Нарастание сложности техносферы;
-Увеличение количества техногенных катастроф;
-Рост информационной нагрузки.
Ответом на это станет появление различных решений на основе технологий нейроинтерфесов (включая гибридный человекомашинный интеллект), которые позволят расширить ресурсы человеческого мозга и повысить его производительность за счет интеграции с техносферой.
К 2035 году предполагается появление не менее 10 национальных компаний-чемпионов в мировых сегменте рынка B2C и B2B с суммарной капитализацией порядка 70 млрд рублей каждая[4].
Нейроинтерфейсы являются, пожалуй, одной из самых фантастических технологий, разработка которых приближает нас к новому, непохожему на сегодня, миру будущего.
Нейроинтерфейсы потенциально позволят, например, читать и записывать мысли. Сейчас нас отделяет от возможности определения того, о чём думает другой человек, лишь проблема отсутствия достаточно надёжных алгоритмов обработки регистрируемой информации. Впрочем, определить, например, думает ли человек о движении, вспоминает ли произошедший ранее разговор или представляет какой-то визуальный образ, можно уже сегодня.
Уже сейчас существуют исследования, способные «увидеть» изображения по их образам в зрительной коре мозга. Уже получено первое изображение сна. Пока соответствующее разрешение не превосходит нескольких пикселей — из-за проблемы неточности контакта электродов.
В будущем, когда нейроинтерфейсы будут распространены повсеместно, кто-то может использовать их для визуальных или звуковых спам-галлюцинаций или передавать ложную информацию[5].
4) Цель работы и решаемые задачи.
Цель работы: Создание алгоритмов и программных, аппаратных средств обработки нейрокомпьютерного интерфейса.
Объектом исследования являются системы нейрокомпьютерных интерфейсов и данные ЭЭГ.
Предметом исследования являются принципы обработки и селекции
сигналов нейрокомпьютерного интерфейса.
Используемые методы - применение цифровых фильтров, технических методов устранения шума, обучаемых алгоритмов.
Планируемые результаты работы: Реализована аппаратная часть и программа обработки данных нейрокомпьютерного интерфейса, состоящая из следующих блоков:
Блок предобработки биоэлектрических сигналов, полученных при
помощи интерфейса компьютер-мозг на базе программируемого микроконтроллера.
Блок распознавания полезного сигнала при помощи средств машинного обучения;
Блок формирования управляющего сигнала.
Область применения: научная деятельность, разработка программных
продуктов.
1. АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ
1.1 Постановка задачи
Программно-аппаратный комплекс сбора и обработки данных
нейрокомпьютерного интерфейса включает в себя следующую аппаратную
составляющую:
-Плату регистрации ЭЭГ разработанную на базе микроконтроллера Arduino
-Набор электродов, специальную шапку с гнездами для установки электродов
-Провода для подключения электродов;
Программная часть комплекса включает в себя программу сбора и
обработки сигналов нейроинтерфейса. Алгоритм работы и процесс разработки основных блоков указанной программы, а также основные средства и методы, применяемые для разработки.
Задача реализации системы обработки данных нейрокомпьютерного
интерфейса сводится к четырем основным этапам:
-Подготовительный этап;
-Предобработка данных;
-Распознавание полезного сигнала;
-Формирование управляющего сигнала для взаимодействия с управляемыми объектами (робот, экранная клавиатура, компьютерная игра и т.д.).
1.2 Обзор существующих решений
В данной работе применяется неинвазивный метод снятия сигнала
мозговой активности с поверхности головы при помощи электродов и
усилителей ЭЭГ. В настоящее время на рынке появилось большое количество
подобных приборов разного класса. Останавливаться на рассмотрении
профессиональных комплексов со специализированным программным
обеспечением нет необходимости, так как в круг наших интересов входят
более мобильные приборы с возможностью ведения собственной разработки
программного обеспечения сбора и обработки данных.
Произведем обзор продукции некоторых производителей усилителей
ЭЭГ и нейрокомпьютерных интерфейсов[6].
Производитель: Neurobit Systems
Продукт: Neurobit Optima
Количество каналов: от 2 до 4.
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: Neurobit Recorder, BioExplorer, BioEra и BrainBay.
Заявленные возможности: EEG, EMG, HRV, GSR, TEMP-биофидбэк.
Частота дискретизации 2000 Гц, разрешение 16 бит.
Производитель: Pocket Neurobics
Продукт: Pocket Neurobics WIZ
Количество каналов: от 2 до 4.
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: BioExplorer, BioEra.
Заявленные возможности: EEG, ECG, EMG и HRV-биофидбэка, проведение SCP и гемоэнцефалографических (HEG) тренингов (nIR и pIR).
Производитель: BrainMaster Technologies.
Продукт: BrainMaster Atlantis.
Количество каналов: от 2 до 4.
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: BrainMaster 2.5SE,
BioExplorer.
Заявленные возможности: Частота дискретизации 1024 Гц,
разрешение 24 бит.
Производитель: Emotiv Systems
Продукт: Emotiv EPOC
Количество каналов: 14
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика :SDK для разработки на
C++, C#, SDK «для исследователей».
Заявленные возможности: определение четырех состояний сознания,
тринадцати сигналов мозга, работа с мимикой, микромимикой,
движениями головы (дополнительная опция – два гироскопа).
Само устройство представляет собой обод размером с наушники с
закрепленными на нем 16 пассивными влажными датчиками (2 опорных, 14 сигнальных), является беспроводным (в качестве протокола
беспроводной связи использует Bluetooth 4.0). Epoc работает с сигналом
разрешением от 14 до 16 бит на канал в частотном диапазоне от 0,16 Гц до
43 Гц.
Совместно с Ерос используются приложения, позволяющие создавать
профили для конкретных пользователей, наблюдать состояния мозга и
мышечной активности, а также играть в мини-игры, направленные на развитие способности контролировать различные мозговые импульсы.
Производитель: NeuroSky
Продукт: MindWave
Количество каналов: 1
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: ThinkGear Stream SDK
in C/C++, ThinkGear SDK .NET wrapper, ThinkGear SDK for Mac OSX,
Android Developer Tools, iOS Developer Tools.
Заявленные возможности: определение двух состояний сознания,
четырех сигналов мозга, миограмма (моргание).
Также как и Ерос представляет собой обруч, надеваемый на голову,
однако количество электродов в нем существенно меньше: три сухих
пассивных электрода (вход EEG (электрод на лбу), REF и GND (электрод на клипсе, размещаемой на ухе)). Передача данных на ПК реализована при
помощи технологии Bluetooth.
Данные нейрогарнитуры можно охарактеризовать как первые
нейроинтерфейсы потребительского класса. Получили широкое
распространение благодаря низкой стоимости большому количеству
программного обеспечения, созданного для данных устройств. Также стоит
упомянуть, что сама технология NeuroSky приобрела большую
популярность среди разработчиков ИМК, легла в основу таких проектов как Mindflex, Star Wars Force Trainer, XWave headset, MyndPlay BrainBand,
Necomimi, Shippo, Brainwave Zen Lamp, Puzzlebox Orbit: Brain-Controlled
Helicopterи т.д. Перечисленные проекты в основном носят развлекательный
Характер.

Производитель: OCZ Technology
Продукт: Neural Impulse Actuator
Neural Impulse Actuator
Количество каналов: 3
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: Есть
Заявленные возможности: определение двух ритмов электрической активности мозга: альфа- (до 13 Гц) и бета- (от 14 Гц) волны мозга, миограмма
(сокращение лицевых мышц, движения глаз). Программное обеспечение
данного нейроинтерфейса адаптировано для управления персональным
компьютером пользователя.
Производитель: OpenBCI
Продукт: OpenBCI Board
Количество каналов: до 16
Сопряжение с ПК: Предусмотрено
Приложение для пользователя/разработчика: OPENBCI FIRMWARE
SDK.
Заявленные возможности: ЭЭГ, ЭМГ, ЭКГ.
OpenBCI Board Позволяет снимать основные показательные ритмы электрической активности мозга:
-Дельта-ритм;
-Тэта-ритм;
-Альфа-ритм;
-Бета-ритм I;
-Бета-ритм II;
-Гамма-ритм.
Позволяет использовать как монополярный, так и биполярный способы
регистрации сигналов.
Частота дискретизации от 250 Гц.
Позволяет работать как с пассивными, так и с активными электродами.
Имеются модули EEGLAB, BCILAB, ERPLAB и FieldTrip для работы с
пакетом прикладных программ для решения задач технических вычислений
MATLAB.
1.3 Возможные пути решения задачи, их достоинства и недостатки,
обоснование выбора решения.
Для целей создания нейрокомпьютерного интерфейса в рамках данной
работы выбрана система построения нейроинтерфейса на базе контроллера Arduino в комплекте с электродами, так как данная плата, на платформе Uno имеет 6 аналоговых входов (обозначенных как A0 .. A5), каждый разрешением 10 бит (т.е. может принимать 1024 различных значения).Это позволит использовать до 6 электродов, что достаточно актуально, если есть необходимость добиться более точных результатов при измерении биоэлектрического сигнала[7].
Также данная плата, по сравнению со своими аналогами, имеет
невысокую цену.
1.4 Обоснование применяемых технологий и инструментов.
Поскольку устройство на безе контроллера Arduino имеет необходимые для реализации технические параметры, в данной работе рассматривается возможность создание нейрокомпьютерного интерфейса на базе данного микроконтроллера[7].
Характеристики Arduino UNO
Микроконтроллер ATmega328
Рабочее напряжение 5 ВВходное напряжение (рекомендуемое) 7-12 ВВходное напряжение (предельное) 6-20 ВЦифровые Входы/Выходы 14
Аналоговые входы 6
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ 2 Кб (ATmega328)
EEPROM 1 Кб (ATmega328)
Тактовая частота 16 МГц

ВыводыПроанализировав готовые решения на рынке нейрокомпьютерных интерфейсов, было принято решение о разработке и создание своего собственного прототипа на базе микроконтроллера Arduino.
2. РАЗРАБОТКА ПРЕДЛАГАЕМОГО РЕШЕНИЯ2.1 Разработка архитектуры прототипа решенияЭлектроэнцефалограф - медицинский электроизмерительный прибор для электроэнцефалографии, с помощью которого измеряют и регистрируют разность потенциалов между точками головного мозга, располагающимися в глубине или на его поверхности, и записывают электроэнцефалограмму. У энцефалографа коэффициент усиления порядка 20000[9].
Для этого в соответствии с рекомендациями на AD620 по поводу изменения коэффициента усиления AD620 заменим резистор задающий коэффициент усиления второго ОУ на резистор 25 Ом. Тогда коэффициент усиления второго ОУ станет около 2000, а коэффициент усиления всей схемы:
7*2000=14000
Теперь мы можем снимать электроэнцефалограмму при помощи этой схемы, но при помощи специальных электродов. Поэтому придётся доработать наше устройство следующим образом.
Во-первых, мы должны применить электроды, которые бы благополучно достигали кожу головы даже при наличии на ней волос. То есть электроды должны быть чем-то типа массажной расчёски. Делать мы такую “расчёску” будем при помощи так называемых штырьковых соединителей следующего вида, рисунок 1[8].
Рисунок 1 – штыревые электроды типа «Расчёска».
Скрепив штырьки следующим образом, получаем «Расчёску», подобную изображённой на рисунке 2[8].Рисунок 2 – «Расчёска».
Далее необходимо все короткие штырьки закоротить между собой и присоединить к проводу, который потом будет вести к входу усилителя. Длинные штырьки будут контачить с кожей головы.
Казалось бы, что задача изготовления электрода для подключения к голове решена. Однако тут возникает следующая проблема. Дело в том, что сопротивление кожа-электрод в такой схеме резко повышается, у штырьковых электродов из-за малой площади контакта штырьков с кожей это сопротивление подскакивает до 1 Мом и более. При этом сопротивление провода, к которому подключён электрод, всего лишь несколько Ом.
Практика показала, что огромное сопротивление датчика-электрода на коже головы, подключённое к входу усилителя, чьё сопротивление мало относительно сопротивления кожа-электрод, приводит к полной неработоспособности схемы, что выражается в том, что полезный сигнал буквально тонет в шумах.
Чтобы от этого избавиться в схему ставят, для согласования повторитель, у которого входное сопротивление стремится к бесконечности, а выходное к нулю.
Таким образом, схема сопряжения датчика-«Расчёски» с проводом должна иметь вид, изображенный на рисунке 3[8].
Рисунок 3 – повторитель.
Необходимо отметить, что для лучшего качества работы схемы необходимо чтобы повторитель был как можно ближе к датчикам на коже головы.
Для уменьшения действия шумов сигнальный провод и провода питания этой схемы лучше всего заключить в экран. То есть выполнить всё это на базе экранированного микрофонного провода. Тогда более полная схема подключения данных датчиков имеет вид представленный на рисунке 4[8].
Рисунок 4 – полная схема повторителя.
Здесь экран должен быть подключен к нулю схемы. В качестве ОУ для построения повторителя берём TLC272. Подключение показано на рисунке 5[8].
Рисунок 5 – подключение повторителя.
Объединив цифровую часть, усилитель аналоговой части, источник питания для усилителя и активные электроды отсюда, получим в результате схему энцефалографа вида изображенного на рисунке 6.
       В блоке питания, R1=2 кОм, R2=10 кОм. Необходимо отметить, что в данной схеме переключатель питания на Arduino должен быть в положении 5V. Для Arduino с переключателем питания в положении 3.3V необходимо в схему добавить делитель. Так же, мочка уха пациента подключается к нулю схемы – не к земле, не к физическому заземлению (которого на данной схеме и нет), а именно к нулевой точке блока питания (который внизу данного рисунка).
Так же необходимо отметить, что если привести характеристики данного энцефалографа к официальным медицинским стандартам, то из схемы необходимо убрать защитные диоды и резистор в 1КОм, а также добавить референтный электрод (right leg driver на основе AD705J) приведённый в схеме для AD620. Однако если использовать данный прибор не в медицине, а, например, для изготовления на его основе энцефалографа с реализацией устройств с мысленным управлением объектами, то вполне можете обойтись и без подключения в схему дополнительного референтного электрода[8].

Рисунок 6 - схема энцефалографа.
2.2 Прототипы алгоритмов и структур данныхЛюбой аналоговый датчик, да и сам аналоговый вход контроллера вносят в результирующее измеренное значение множество шумов. Они мешают нам получить реальное значение параметра с повторяемой точностью, пример сигнала до и после фильтрации на рисунке 7[10].

Рисунок 7 – пример фильтрации сигнала.
Подключив датчик к контроллеру, увидим постоянно скачущие значения физической величины. Если нам нужно управлять каким-либо исполнительным механизмом в зависимости от величины такого прыгающего значения, то механизм может вести себя довольно неадекватно. Так что любой аналоговый сигнал рекомендуется сглаживать при помощи программного фильтра.
Следующая программа для контроллера Arduino считывает аналоговый вход и выводит в монитор порта нефильтрованное значение, и два значения отфильтрованные двумя разными способами[10]:
int sensorPin = A0; // номер аналогового входа
// функция считывает аналоговый вход заданное количество раз// и возвращает отфильтрованное значениеint readMean(int pin, int samples){ // переменная для хранения суммы считанных значений int sum = 0; // чтение и складывание значений for (int i = 0; i < samples; i++){ sum = sum + analogRead(pin); } // делим сумму значений на количество измерений sum = sum/samples; // возвращаем среднее значение return sum;}// функция считывает аналоговый вход заданное количество раз// и возвращает медианное отфильтрованное значениеint readMedian (int pin, int samples){ // массив для хранения данных int raw[samples]; // считываем вход и помещаем величину в ячейки массива for (int i = 0; i < samples; i++){ raw[i] = analogRead(pin); } // сортируем массив по возрастанию значений в ячейках int temp = 0; // временная переменная
for (int i = 0; i < samples; i++){ for (int j = i; j < samples - 1; j++){ if (raw[j] > raw[j + 1]){ temp = raw[j]; raw[j] = raw[j + 1]; raw[j + 1] = temp; } } } // возвращаем значение средней ячейки массива return raw[samples/2];}void setup(){ Serial.begin(9600);}void loop(){ // выводим значение на аналоговом входе в монитор порта Serial.print(analogRead(sensorPin)); Serial.print(" "); // выводим среднеизмеренное значение Serial.print(readMean(sensorPin, 15)); Serial.print(" "); // выводим медианное отфильтрованное значение Serial.println(readMedian(sensorPin, 15)); delay(100);}
Изобретено множество программных фильтров, но мы рассмотрим два самых используемых типа: фильтр по среднему значению и медианный фильтр.
Фильтр по среднеизмеренному значению.
Данный алгоритм собирает несколько значений и вычисляет по ним среднее значение. Он довольно хорошо убирает шум, но требует больших затрат времени цикла от контроллера. Из-за того, что необходимо сделать несколько выборок сигнала с аналогового входа.
Таким образом увеличивается время ответа при опросе входного значения главной программой. Но медленное получение значения лучше чем скачущее значение[10]:.
1) Объявляем функцию с двумя параметрами: первый содержит номер аналогового входа Arduino, куда подключен датчик; а второй задает количество выборок.2) Далее мы циклически считываем значение аналогового входа и каждый раз прибавляем его к переменной:
sumint sum = 0;for (int i = 0; i < samples; i++){sum = sum + analogRead(pin);}3) Дальше находим среднее значение. Сумму всех значений выборок делим на количество выборок:sum = sum/samples;
Второй фильтр – медианный.
Алгоритм этого программного фильтра немного сложнее, но действеннее. Он не делает математических вычислений над выборками. Фильтр основан на допущении, что выбросы шума расположены равномерно как в позитивную сторону так и в негативную по отношению к реальному значению. Этот алгоритм считывает ряд значений с аналогового входа контроллера Arduino, сортирует их по возрастанию и выбирает значение, стоящее в центре полученного списка. В общем случае, если выбросы шума расположены равномерно с двух сторон от реального значения, то получим точную величину[10]:.
1) Объявляем функцию медианного фильтра, принимающую номер аналогового входа и количество выборокint readMedian (int pin, int samples){2) Дальше объявляем массив для хранения данных и в цикле заполняем этот массив считываемыми с аналогового входа даннымиint raw[samples];for (int i = 0; i < samples; i++){raw[i] = analogRead(pin);}Дальше алгоритм делает сортировку массива по значению. Для этого используется так называемый пузырьковый алгоритм. Он выстроит ячейки массива по порядку от меньших значений до больших.
И в конце функции возвращаем значение средней ячейки отсортированного массива.
return raw[samples/2];
Основной цикл программы.
В основном цикле программы мы просто циклически выводим полученные данные в монитор порта, чтобы проследить за изменениями измеряемого параметра во времени. В одну строку программа должна выводить нефильтрованное значение и два фильтрованных разными алгоритмами значения. Таким образом мы сможем оценить качество фильтрации разными способами.
Здесь задано считывание 15 выборок, но возможно, наблюдая за изменением качества фильтрации сигнала, выбрать другое количество[10]:
Serial.print(analogRead(sensorPin));Serial.print(" ");Serial.print(readMean(sensorPin, 15));Serial.print(" ");Serial.println(readMedian(sensorPin, 15));delay(100);
Выводы       Принципы, описанные здесь для построения энцефалографа, универсальны и подойдут для построения систем, где измеряется не только биопотенциалы человеческого тела (электрокардиограмма, энцефалограмма, электромиограмма).
В качестве датчиков может быть что угодно:
всевозможные температурные, звуковые, сейсмо датчики, датчики влажности, датчики давления, датчики обнаружения концентрации паров различных веществ, датчики освещённости, прочих излучений и т.д.
Описанные принципы подойдут для построения различных систем сбора, записи на компьютер и анализа данных самой разной природы. Причём сложность изготовления и настройки данных систем оказывается исчезающе малой, что еще раз подчёркивает правильность выбора контроллера Arduino для решения поставленных задач.
ЗаключениеВ данной работе раскрыты основные моменты развития электроэнцефалографических исследований, их взаимосвязь с работой нейроинтерфейсов. Описано современное состояние систем, произведен обзор устройств потребительского класса.
Таким образом, планируется разработка системы нейрокомпьютерного интерфейса на основе аппаратной платформы Arduino, позволяющая регистрировать и расшифровывать ритмы ЭЭГ для передачи управляющего сигнала от мозга к компьютеру.
Применение метода электроэнцефалографии накладывает определенные
недостатки на регистрируемый сигнал, связанные с его высокой зашумленностью. Частично проблемы с возникновением шума можно решить
при помощи выбора оптимального способа расположения электродов,
конфигурации каналов, корректного выбора референтной точки, инструктажа
испытуемого, обработки регистрируемого материала и формирования
управляющего сигнала, использованием цифровых (программных) фильтров.
Список использованных источников0. Нейроинтерфейсы: понятие, направления и проблемы развития // Киберленинка [Электронный ресурс]. URL: https://cyberleninka.ru/article/n/neyrointerfeysy-ponyatie-napravleniya-i-problemy-razvitiya (дата обращения: 28.1.2018).
1. Нейро-компьютерный интерфейс // Академик –
Словари и энциклопедии [Электронный ресурс]. URL:
http://dic.academic.ru/dic.nsf/ruwiki/515202 (дата обращения: 28.1.2018).
2. Нейроинтерфейсы // Хабрахабр [Электронный ресурс]. URL: http://habrahabr.ru/company/postnauka/
blog/203858/ (дата обращения: 17.12.2013).
3. Emotiv Insight – уникальный нейрошлем буду-
щего// Инвестиционный портфель – журнал успешно-
го инвестора [Электронный ресурс]. URL: http://inve-
stbag.com/tehnologii/emotiv-insight-unikalnyj-nejroshlem-
budushhego.htm (дата обращения: 27.12.2013).
4. О НейроНете // Отраслевой союз «НейроНет» [Электронный ресурс]. URL:
http://rusneuro.net/chto-takoe-nejronet (дата обращения: 28.1.2018).
5. Силой мысли: история нейроинтерфейсов, современные разработки и финансовые перспективы области // ИД «Комитет» [Электронный ресурс]. URL: https://vc.ru/18995-neurointerfaces (дата обращения: 28.1.2018).
6. Нейроинтерфейсы для людей (2003-2016). Купить или разработать самому? // Хабрахабр [Электронный ресурс]. URL: https://habrahabr.ru/company/neuronspace/blog/262357/ (дата обращения: 28.1.2018).
7. Arduino Uno общие сведения // Материалы по программированию Arduino переведены с официального сайта проекта Ардуино [Электронный ресурс]. URL: http://arduino.ru/Hardware/ArduinoBoardUno (дата обращения: 28.1.2018).
8. Энцефалограф на базе Arduino // Про интеллект [Электронный ресурс]. URL: http://www.prointellekt.ru/EEG1.php (дата обращения: 28.1.2018).
9. Л.Р. Зенков Клиническая электроэнцефалография с элементами эпилептологии. Изд-во “МЕДпресс-информ”
10. Шум аналогового входа // Гикматик [Электронный ресурс]. URL: http://geekmatic.in.ua/filtracia_shumov_analogovogo_signala (дата обращения: 28.1.2018).

Приложенные файлы

  • docx 23632178
    Размер файла: 220 kB Загрузок: 1

Добавить комментарий