From 104dc610f15ff3f9dde6fbf60bdbc84658cccce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=81=D0=BB=D0=B3?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Mon, 29 Dec 2025 01:46:48 +0100 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1f956cb..773f945 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,22 @@ STM32 Audio Analyzer — система реального времени для ## Архитектура -- **MCU (firmware)** +- **[MCU (firmware)](firmware/README.md)** - STM32F103C8T6, FreeRTOS, TinyUSB, CMSIS‑DSP. - ADC1 + DMA (circular, double‑buffer 2×512) с триггером от TIM3, частота дискретизации 22.05 кГц. - Обработка: удаление DC, RMS в dBFS, Hann‑окно, RFFT 512, поиск пика 100–8000 Гц. - Передача каждые 100 мс пакетом 12 байт по USB CDC. -- **Collector (Python)** +- **[Collector (Python)](services/collector/README.md)** - Читает бинарный протокол с /dev/ttyACM0, ресинхронизация по SOF=0xAA. - Проверка CRC‑8/ATM, диапазонов, подсчёт статистики ошибок. - Запись в TimescaleDB (`audio_data`), параллельно пушит JSON по WebSocket (`ws://…/ws/live`). -- **API (FastAPI)** +- **[API (FastAPI)](services/api/README.md)** - REST `/api/v1/audio/latest|range|export/csv`, `/api/v1/stats/summary`, `/api/v1/events/loud`. - База: `audio_data` + непрерывный агрегат `audio_data_1min` (avg/max/min/доминирующая частота, доля тишины). -- **Frontend (React + Vite)** +- **[Frontend (React)](services/frontend/README.md)** - Live‑дашборд: вертикальный аудио‑метр, peak‑hold за 3 секунды, история частоты, текущая нота. - Источник данных — WebSocket `VITE_WS_URL`, REST для исторических запросов при необходимости.