Приложение для мониторинга мозговой активности и трекинга взгляда в реальном времени с возможностью синхронизации с видеоматериалами.
- Подключение BrainBit — поиск и подключение устройств BrainBit через Bluetooth
- Проверка контакта электродов — мониторинг качества наложения электродов (O1, O2, T3, T4)
- Калибровка — автоматическая калибровка для получения точных данных
- Мониторинг в реальном времени — отображение внимания, альфа/бета/тета ритмов
- Трекинг взгляда — определение направления взгляда через веб-камеру
- Синхронная запись — одновременная запись данных мозга и взгляда при просмотре видео
- Просмотр результатов — анализ записей с синхронизацией по видео
- Python 3.9+
- Устройство BrainBit
- Веб-камера (для трекинга взгляда)
- Windows 10/11
git clone https://github.com/kelpi-e/palmacode.git
cd palmacodepython -m venv venv
venv\Scripts\activatepip install -r requirements.txt| Пакет | Назначение |
|---|---|
pyneurosdk2 |
SDK для работы с нейроинтерфейсами |
pyem-st-artifacts |
Обнаружение артефактов в сигнале |
PyQt6 |
Графический интерфейс |
PyQt6-WebEngine |
Веб-компоненты |
pyqtgraph |
Графики в реальном времени |
numpy |
Числовые вычисления |
opencv-python |
Работа с камерой и трекинг |
python main.py- Нажмите «Начать поиск» для обнаружения устройств BrainBit
- Выберите устройство из списка для подключения
- Нажмите «Начать проверку» для проверки контакта электродов
- Убедитесь, что все индикаторы (O1, O2, T3, T4) зелёные
- Нажмите «Начать калибровку» и дождитесь завершения
- Отображает данные в реальном времени:
- Внимание — уровень концентрации (0-100%)
- Альфа — расслабление, медитация
- Бета — активное мышление, концентрация
- Тета — дремота, творчество
- Загрузите видеофайл (MP4, AVI, MKV, MOV)
- Нажмите «Тест камеры» для проверки веб-камеры
- Выполните «Калибровку» трекинга взгляда
- Нажмите «НАЧАТЬ ЗАПИСЬ» — видео откроется на полный экран
- После просмотра нажмите «СТОП» — данные сохранятся автоматически
- Загрузите JSON-файл с результатами записи
- Загрузите соответствующее видео (опционально)
- Используйте плеер для навигации — графики синхронизируются с видео
- Анализируйте:
- Графики внимания и спектральных данных
- Тепловую карту взгляда
- Значения метрик в каждый момент времени
palmacode/
├── main.py # Главное приложение и интерфейс
├── brain_bit_controller.py # Контроллер устройства BrainBit
├── eye_tracker.py # Модуль трекинга взгляда
├── styles.py # Стили интерфейса
├── widgets.py # Кастомные виджеты
├── requirements.txt # Зависимости
├── reports/ # Папка с отчётами записей
│ └── report_*.json # JSON-файлы с данными
├── logs/ # Логи SDK
└── ui/ # UI файлы (опционально)
Записи сохраняются в JSON формате:
{
"created_at": "2025-12-06T11:29:37.123456",
"ended_at": "2025-12-06T11:35:42.654321",
"video_file": "stimulus.mp4",
"video_path": "C:/Videos/stimulus.mp4",
"total_records": 3600,
"records": [
{
"timestamp": "2025-12-06T11:29:37.223456",
"elapsed_sec": 0.1,
"video_ms": 100,
"attention": 45.5,
"alpha": 35,
"beta": 40,
"theta": 25,
"gaze_x": 0.52,
"gaze_y": 0.48,
"gaze_h": "center",
"gaze_v": "center",
"left_eye": true,
"right_eye": true
}
]
}| Поле | Тип | Описание |
|---|---|---|
timestamp |
string | Абсолютное время записи (ISO 8601) |
elapsed_sec |
float | Секунды от начала записи |
video_ms |
int | Позиция видео в миллисекундах |
attention |
float | Уровень внимания (0-100%) |
alpha |
int | Альфа-ритм (0-100%) |
beta |
int | Бета-ритм (0-100%) |
theta |
int | Тета-ритм (0-100%) |
gaze_x |
float | Координата взгляда X (0-1) |
gaze_y |
float | Координата взгляда Y (0-1) |
gaze_h |
string | Горизонтальное направление (left/center/right) |
gaze_v |
string | Вертикальное направление (up/center/down) |
left_eye |
bool | Левый глаз открыт |
right_eye |
bool | Правый глаз открыт |
| Клавиша | Действие |
|---|---|
F |
Полноэкранный режим видео |
Esc |
Выход из полноэкранного режима |
Пробел |
Пауза/воспроизведение |
MIT License
команда Bugsdestroytto:
