ТЕХНИЧЕ ЗАДАНИЕ
Проект: Система трекинга силовых упражнений
Версия: MVP 1.0
⸻
1. Цель
Реализовать стабильное программное взаимодействие между:
• Браслетом спортсмена (Wrist Unit)
• До 10 датчиками движения (Weight Sensors)
• Мобильным приложением (iOS / Android)
Система должна:
• Определять активный датчик
• Синхронизировать движение браслета и датчика
• Передавать данные в приложение
• Рассчитывать базовые метрики упражнений
⸻
2. Архитектура системы
2.1 Компоненты
1️⃣ Wrist Unit (браслет)
• IMU (акселерометр + гироскоп)
• BLE модуль
• Уникальный ID
• Частота семплирования: 50–100 Hz
2️⃣ Weight Sensor (датчик на гантеле/штанге)
• IMU
• BLE
• Уникальный ID
• Магнитное или механическое крепление
• Частота семплирования: 50–100 Hz
3️⃣ Мобильное приложение
• BLE Central
• Обработка данных
• Визуализация
• Логирование тренировки
⸻
3. Протокол взаимодействия
3.1 Тип связи
Bluetooth Low Energy (BLE 5.0)
3.2 Роли
• Браслет — Peripheral
• Датчики — Peripheral
• Смартфон — Central
⸻
4. Логика работы
4.1 Начало тренировки
1. Пользователь открывает приложение
2. Приложение сканирует доступные BLE устройства
3. Отображает список:
• Wrist Unit (1)
• Weight Sensors (до 10)
4. Пользователь подключает:
• Свой браслет
• Выбранные датчики
⸻
4.2 Определение активного датчика
Алгоритм:
1. Браслет регистрирует движение руки
2. Датчик регистрирует движение веса
3. Приложение:
• Сравнивает timestamp
• Коррелирует сигналы IMU
4. Если корреляция > заданного порога → датчик активен
6.1 MVP-метрики
Программист должен реализовать:
• Определение повторений
• Темп повторения
• Время под нагрузкой (TUT)
• Амплитуда движения
• Пауза между подходами
⸻
6.2 Детекция повторения
Повторение =
1. Движение вверх (позитивная фаза)
2. Пик
3. Движение вниз (негативная фаза)
4. Достижение базового положения
Метод:
• Анализ пиков по оси основного движения
• Фильтрация шума (low-pass filter)
• Пороговая амплитуда
⸻
7. Синхронизация
Обязательно:
• Все устройства должны синхронизировать время через смартфон
• Drift компенсация каждые 30 секунд
• Максимальная погрешность ≤ 10 мс
⸻
8. Стабильность соединения
Программист должен:
• Реализовать авто-reconnect
• Обрабатывать потерю пакетов
• Логировать % packet loss
• Буферизацию на устройстве (2–5 секунд)
⸻
9. Калибровка
При первом запуске:
1. Пользователь стоит неподвижно
2. Определяется гравитационная ось
3. Устанавливается нулевая точка
⸻
10. Безопасность
• Шифрование BLE-соединения
• Авторизация через токен сессии
• Привязка датчиков к аккаунту
⸻
11. Нефункциональные требования
• Задержка передачи ≤ 100 мс
• Подключение до 10 датчиков одновременно
• Работа 90+ мин без разрыва
• Потребление батареи оптимизировано
⸻
12. Что нужно реализовать программисту
Firmware:
• BLE сервис
• Формирование пакетов
• Timestamp
• Буферизация
• OTA update support
Mobile:
• BLE сканирование
• Управление устройствами
• Синхронизация потоков
• Алгоритм корреляции
• Детекция повторов
• Логирование тренировки