CatLearned / StimulusPresentation

GUI + UDP receiver

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StimulusPresentation

  • Программа показывает стимулы, и реагирует на информацию о P300, которая приходит по UDP
  • Вычисляет на какую команду была реакция
  • Для построение графического интерфейса используется инструмент PsychoPy

Директории проекта

  • .idea - информация для IDE (TODO добавить в .gitignore)
  • src - содержит исходные коды модулей, подробнее будет рассмотрено далее
  • stimulus_pics - содержит изображения стимулов
  • venv - виртуальное окружение, содержит информацию о подключённых библиотеках в проекте

Директория src

  • main.py - запускаемый модуль, отображает GUI и реагирует на информацию с сокета
  • p300_demonstartion.py - не используется
  • p300_socket_class.py - содержит описание асинхронного UDP сокета

src/main.py

Общие параметры для отображения и расчёта команды:

  • duration - задержка в секундах между демонстрациями стимулов
  • type_show - тип отображения. (0 - всё кроме стимула, 1 - стимул, другое - режим демонстрации все стимулы)
  • p300_delay - задержка появления P300 (Параметр необходимо откалибровать при реальных экспериментах)

Инициализация сокета p300_info = p300_socket("localhost", 9000, None) параметры:

  1. IP адрес слушателя, должен быть таким же как и в проекте FakeP300
  2. Порт слушателя, должен быть таким же как и в проекте FakeP300
  3. Указатель на событие, сейчас не используется нужно передавать None

Работа в комбинации с FakeP300

FakeP300 используется для отправке сигнала о наличии P300

StimulusPresentation принимает сигнал и интерпретирует в команду.

Порядок работы:

  1. Выставить в src/main.py проекта StimulusPresentation type_show равным 0 или 1.
  2. Выбрать стимул, который нам интересен, например команда вперёд.
  3. При появлении (при type_show == 1, иначе оно должно наоборот пропасть) изоражения вперёд (Стрелка вверх). В консоле программы FakeP300 нажать Enter
  4. В консоли StimulusPresentation должна появиться выбранная команда.

Команды <---> Изображения

Команда вперёд Команда стоп Команда назад Команда направо Команда налево
Команда вперёд! Команда стоп! Команда назад! Команда направо! Команда налево!

Эксперимент с задержками

Метка StimulusPresentation, с Метка FakeP300, с Задержка, с
1 1593257576.4118557 1593257576.403877 0.007978677749633789
2 1593257578.644633 1593257578.637651 0.006982088088989258
3 1593257581.2783465 1593257581.2653556 0.012990951538085938
4 1593257584.1948898 1593257584.1879084 0.006981372833251953
5 1593257589.8283796 1593257589.8273795 0.0010001659393310547
6 1593257593.095061 1593257593.093066 0.001995086669921875
7 1593257596.6288996 1593257596.620921 0.007978677749633789
8 1593257599.1289077 1593257599.1179378 0.010969877243041992
9 1593257601.762248 1593257601.762248 0.0
10 1593257604.3954263 1593257604.3824608 0.01296544075012207
11 1593257607.2118537 1593257607.199913 0.011940717697143555
12 1593257609.9787617 1593257609.9657698 0.012991905212402344
13 1593257612.6622674 1593257612.6532922 0.00897526741027832
14 1593257615.6124568 1593257615.599463 0.012993812561035156
15 1593257620.629563 1593257620.6236033 0.005959749221801758
16 1593257623.6958032 1593257623.681841 0.013962268829345703
17 1593257627.7296817 1593257627.7246966 0.00498509407043457
18 1593257630.0298164 1593257630.015854 0.013962507247924805
19 1593257632.7960773 1593257632.7880952 0.007982015609741211
20 1593257636.2630267 1593257636.2500606 0.012966156005859375
AVG 0.008828091621398925
MIN 0.0
MAX 0.013962507247924805

About

GUI + UDP receiver


Languages

Language:Python 92.9%Language:JavaScript 3.7%Language:QML 2.5%Language:C 0.4%Language:C++ 0.2%Language:HTML 0.1%Language:TeX 0.0%Language:Jupyter Notebook 0.0%Language:Fortran 0.0%Language:CSS 0.0%Language:Roff 0.0%Language:MATLAB 0.0%Language:ASP 0.0%Language:XSLT 0.0%Language:Smarty 0.0%Language:PowerShell 0.0%Language:Batchfile 0.0%Language:VBScript 0.0%Language:Shell 0.0%Language:Makefile 0.0%