- Программа показывает стимулы, и реагирует на информацию о P300, которая приходит по UDP
- Вычисляет на какую команду была реакция
- Для построение графического интерфейса используется инструмент PsychoPy
- .idea - информация для IDE (TODO добавить в .gitignore)
- src - содержит исходные коды модулей, подробнее будет рассмотрено далее
- stimulus_pics - содержит изображения стимулов
- venv - виртуальное окружение, содержит информацию о подключённых библиотеках в проекте
- main.py - запускаемый модуль, отображает GUI и реагирует на информацию с сокета
- p300_demonstartion.py - не используется
- p300_socket_class.py - содержит описание асинхронного UDP сокета
Общие параметры для отображения и расчёта команды:
- duration - задержка в секундах между демонстрациями стимулов
- type_show - тип отображения. (0 - всё кроме стимула, 1 - стимул, другое - режим демонстрации все стимулы)
- p300_delay - задержка появления P300 (Параметр необходимо откалибровать при реальных экспериментах)
Инициализация сокета
p300_info = p300_socket("localhost", 9000, None)
параметры:
- IP адрес слушателя, должен быть таким же как и в проекте FakeP300
- Порт слушателя, должен быть таким же как и в проекте FakeP300
- Указатель на событие, сейчас не используется нужно передавать
None
Работа в комбинации с FakeP300
FakeP300 используется для отправке сигнала о наличии P300
StimulusPresentation принимает сигнал и интерпретирует в команду.
Порядок работы:
- Выставить в src/main.py проекта StimulusPresentation type_show равным 0 или 1.
- Выбрать стимул, который нам интересен, например команда вперёд.
- При появлении (при
type_show == 1
, иначе оно должно наоборот пропасть) изоражения вперёд (Стрелка вверх). В консоле программы FakeP300 нажать Enter - В консоли 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 |