Skip to main content

02-Top Level Architecture

Vysokoúrovňová architektúra systému

System Context Diagram

Top-Level Architecture Top-Level Architecture - Hlavné komponenty systému Nodyne


Hlavné komponenty systému

Systém Nodyne pozostáva z 3 hlavných komponentov:

1. Hardware Component (Nositeľné zariadenie)

Účel: Fyzické zariadenie nosené vodičom na hlave, ktoré deteguje pohyby hlavy a vydáva alarmy.

Komponenty:

  • M5StickC Plus 2

    • Procesor: ESP32-PICO-V3-02 (240 MHz dual-core)
    • Memory: 8MB PSRAM + 8MB RAM
    • Display: 1.14" TFT LCD (135×240 px)
    • IMU: MPU6886 (6-axis: akcelerometer + gyroskop)
    • Audio: Buzzer/Speaker
    • LED: RGB LED indikátor
    • Batéria: 200mAh Li-Po
    • USB-C: Nabíjanie + Serial komunikácia
  • Elastická čelenka

    • Materiál: elastická textília
    • Účel: uchytenie zariadenia na čelo vodiča

Hmotnosť: ~20g Rozmery: 48×24×14 mm Cena: ~€35


2. Firmware Component (Arduino firmvér)

Účel: Softvér bežiaci na M5StickC Plus 2, ktorý spracováva IMU dáta a deteguje vzory spánku.

Hlavné moduly:

2.1 IMU Driver Module

  • Inicializácia MPU6886 senzora
  • Čítanie akcelerometra a gyroskopu
  • Výpočet roll/pitch/yaw pomocou AHRS algoritmu
  • Frekvencia: 50Hz (20ms period)

2.2 Calibration Module

  • Automatická kalibrácia pri štarte
  • Záznam baseline polohy hlavy
  • Trvanie: 3 sekundy (50 vzoriek × 60ms)
  • Uloženie kalibračných offsetov

2.3 Detection Engine

5 nezávislých detekčných algoritmov:

  1. Strong Nod - silné prikývnutie
  2. Micro Nods - mikrokývnutia
  3. Slow Drift - pomalé kĺzanie
  4. Freeze - zamrznutie (absencia pohybu)
  5. Side Tilt - bočný náklon

2.4 Alert System

  • Zvukový alarm (buzzer): striedavý tón 1000Hz/1500Hz
  • LED signalizácia: červené blikanie
  • Display notifikácia: typ alarmu

2.5 Telemetry Module

  • JSON formát telemetrie
  • Vysielanie cez USB Serial
  • Obsahuje: roll, pitch, motion, battery, alerts

3. Web Dashboard Component

Účel: Webová aplikácia pre vizualizáciu telemetrie a kalibráciu (demo účely).

Technológie:

  • Next.js (frontend framework)
  • Web Serial API (komunikácia s zariadením)
  • Three.js (3D vizualizácia hlavy)
  • Chart.js (grafy telemetrie)

Hlavné funkcie:

  • Real-time 3D vizualizácia orientácie hlavy
  • Grafy roll/pitch v čase
  • Štatistiky relácie (počet alarmov, max. náklon)
  • Vzdialené príkazy (kalibrácia, reset, stop alarm)

Poznámka: Dashboard je sekundárna funkcia - zariadenie funguje úplne samostatne bez pripojenia k dashboardu.


Použitie systému

Scenár 1: Samostatné použitie (Production)

  • M5StickC Plus 2 na hlave vodiča (uchytené čelenkou)
  • Zariadenie funguje autonómne
  • Alarmy cez reproduktor + LED + display
  • Žiadne pripojenie k počítaču

Scenár 2: S Web Dashboardom (Demo/Kalibrácia)

  • M5StickC Plus 2 pripojený USB káblom k laptopu
  • Web dashboard v prehliadači (Chrome/Edge)
  • Real-time vizualizácia telemetrie

Technologický stack

Hardware

KomponentTechnológiaŠpecifikácia
MCUESP32-PICO-V3-02240MHz dual-core, WiFi/BT
RAMPSRAM8MB
FlashSPI Flash8MB
IMUMPU68866-axis
DisplayTFT LCD1.14", 135×240 px
AudioBuzzerPWM driven
BatteryLi-Po200mAh, 3.7V

Firmware

LayerTechnológiaÚčel
IDEArduino IDEVývojové prostredie
Board SupportM5StickCPlus2 LibraryHAL pre M5StickC Plus 2
IMUMPU6886 DriverČítanie senzora
AHRSCustom algorithmRoll/Pitch výpočet
FilteringEMAExponential Moving Average
ProtocolJSONTelemetria formát

Web Dashboard

LayerTechnológiaÚčel
FrontendNext.jsUI
CommunicationWeb Serial APIUSB pripojenie
3D GraphicsThree.jsVizualizácia hlavy
ChartsChart.jsGrafy telemetrie
BrowserChrome/EdgeWeb Serial support

Rozhrania (Interfaces)

1. IMU Interface (I2C)

  • Protokol: I2C
  • Adresa: 0x68
  • Frekvencia: 400 kHz (Fast Mode)
  • Registre:
    • ACCEL_XOUT_H/L, ACCEL_YOUT_H/L, ACCEL_ZOUT_H/L
    • GYRO_XOUT_H/L, GYRO_YOUT_H/L, GYRO_ZOUT_H/L

2. USB Serial Interface

  • Fyzické: USB 2.0 Full Speed (12 Mbps)
  • Protokol: CDC (Communication Device Class)
  • Baudrate: 115200 bps
  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: None

3. Display Interface (SPI)

  • Protokol: SPI
  • Frekvencia: 40 MHz
  • Driver: ST7789V
  • Resolution: 135×240 px
  • Color depth: 16-bit (RGB565)

4. Alert Interfaces

  • Audio: PWM (variable frequency 500-2000Hz)
  • LED: GPIO (digital on/off)
  • Display: SPI (text rendering)

Výkonnostné charakteristiky

MetrikaHodnotaPoznámka
IMU Sampling Rate50 Hz20ms period
Detection Latency<500 msOd pohybu po detekciu
Alarm Latency<1000 msOd detekcie po alarm
Telemetry Rate10 Hz100ms period
Battery Life5-8 hodínZávisí od používania
Boot Time~2 sekundyOd zapnutia po ready
Calibration Time3 sekundy50 vzoriek

Architektúrne rozhodnutia

1. Prečo M5StickC Plus 2?

Výhody:

  • All-in-one riešenie (MCU + IMU + Display + Battery)
  • Kompaktné (48×24×14 mm)
  • Arduino ekosystém (rýchly vývoj)
  • Cenovo dostupné (~€30)

Alternatívy:

  • Arduino Nano 33 BLE Sense - väčší, vyžaduje externý displej/audio
  • Vlastný PCB s ESP32 - vyšší čas vývoja, vyššie náklady

2. Prečo USB Serial namiesto Bluetooth/WiFi?

USB Serial:

  • Nižšia spotreba energie (BT by znížil výdrž na 2-3h)
  • Jednoduchšia implementácia
  • Stabilnejšie pripojenie
  • Dashboard je len demo funkcia

V budúcnosti: Bluetooth Low Energy pre mobilnú aplikáciu

3. Prečo Web Serial API namiesto desktop app?

Web Serial API:

  • Žiadna inštalácia softvéru
  • Cross-platform (Windows, Mac, Linux)
  • Rýchly vývoj
  • Jednoduchá distribúcia

Nevýhoda: Funguje len v Chrome/Edge


Súlad s požiadavkami

Biznis požiadavkaArchitektúrne riešenieStatus
Cena ~€35M5StickC Plus 2 (€30) + čelenka (€3)
5 detekčných algoritmovDetection Engine s 5 modulmi
Real-time upozorneniaLatencia <1s, Alert System
Výdrž 5+ hodín200mAh batéria, 5-8h výdrž
Jednoduchá kalibrácia3s automatická kalibrácia
Open-sourceArduino firmvér na GitHub

Navigation: ⬅️ Business · ⬆️ SDLC · ⬅️ Projekt · ➡️ Solution Architecture