Analýza požiadaviek pre detekciu pohybu

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání


Analýza požiadaviek

V tejto kapitole sa zameriame na tabuľky funkčných a nefunkčných požiadaviek, ktoré boli vyvodené z kontextu zadania bakalárskej práce. Zároveň sa budeme sa venovať opisu jednotlivých bodov funkčných požiadaviek. Požiadavky sú rozdelené do dvoch podkapitol. Prvá podkapitola sa venuje opisu požiadaviek firmvéru pre mikrokontrolér. V druhej podkapitole sa nachádza bližší opis požiadaviek desktopovej aplikácie.

Katalóg požiadaviek pre mikrokontrolér

Táto podkapitola je venovaná opisu funkčných a nefunkčných požiadaviek pre mikrokontrolér STM32L432KC. Úvodná časť obsahuje katalóg požiadaviek, ktoré boli navrhnuté v súvislosti s riešením tohto zadania, zatiaľ čo v druhej časti sa nachádza bližší opis požiadaviek.

Katalóg funkčných požiadaviek pre mikrokontrolér
# Požiadavka Poznámka
FP01 Získavanie údajov zo senzorov Mikrokontrolér komunikuje so senzormi a získava z nich údaje.
FP02 Spracovanie nameraných údajov Dáta získané z 3-osového gyroskopu a akcelerometra budú uložené do buffra.
FP03 Rýchlosť spracovania údajov Prenosová rýchlosť komunikácie medzi mikrokontrolérom a senzorom musí byť dostatočne rýchla a stabilná.
FP04 Energeticky nenáročné riešenie. Zariadenie musí optimalizovať spotrebu elektrickej energie. Je potrebné nájsť optimálnu konfiguráciu mikrokontroléra.
FP05 Komunikácia s PC Zariadenie musí komunikovať s počítačom cez USB v režime virtuálneho sériového portu.
FP06 Vnútorná pamäť zariadenia Zariadenie musí disponovať internou pamäťou, do ktorej bude ukladaný počet vyžiadaných meraní (podľa žiadosti z počítača).

[tabulka_funkcne_mc]

Katalóg nefunkčných požiadaviek pre mikrokontrolér
# Požiadavka
NP01 Inicializačný kód v jazyku C bude vygenerovaný prostredníctvom STM32CubeMX.
NP02 Firmvér pre zariadenie bude vytvorený v prostredí SW4STM32.
NP03 Komunikácia mikrokontroléra a senzorov pobeží cez zbernicu SPI.
NP04 Bude vytvorený driver pre komunikáciu cez zbernicu SPI.
NP05 Pre prácu s mikrokontrolérom bude použitý programovací jazyk C (verzia C99) a knižnica HAL.

[tabulka_nefunkcne_mc]

Prvou požiadavkou tejto práce je nadviazanie komunikácie medzi zvoleným mikrokontrolérom a senzorom. Rozhodli sme pre mikrokontrolér STM32L432KC, ktorý disponuje dostatočne vysokým a dobre škáľovateľným výkonom, ktorý potrebujeme pre zvýšenie rýchlosti spracovania príkazov a dát. Tento mikrokontrolér sa zároveň vyznačuje aj veľmi nízkou spotrebou, vďaka čomu môže byť neskôr použitý aj pri napájaní z externej batérie. Dôležitým faktorom pri voľbe bola aj cena, keďže sa snažíme o minimalizovanie nákladov.

Spomedzi širokej ponuky senzorov sme sa rozhodli pre senzor LSM9DS1 od firmy STMicroelectronics. Disponuje trojosovým MEMS akcelerometrom, gyroskopom a magnetometrom a senzorom teploty. Pri našom meraní použijeme len dve z týchto zariadení a to akcelerometer a gyroskop. Vďaka ich kombinácii dokáže senzor určiť naklonenie objektu v trojrozmernom priestore a rovnako aj smer pohybu. Senzor navyše podporuje SPI a $I^2C$ rozhrania, ktoré boli brané do úvahy pri prvotnom návrhu komunikácie. Rovnako ako mikrokontrolér aj tento senzor je dostupný za relatívne nízku cenu, čo nám umožní splniť požiadavku na zníženie nákladov projektu.

Komunikácia medzi mikrokontrolérom a senzorom prebieha cez rozhranie SPI, ktoré pracuje v plne duplexnom režime. Pre toto rozhranie sme sa rozhodli z dôvodu vyššej rýchlosti v porovnaní $I^2C$ rozhraním, ktorá nám umožní znížiť odozvu medzi prijatím a odoslaním dát. Vďaka tomu sme schopní dosiahnuť vyššie a stabilné prenosové rýchlosti, ktoré nám umožnia vykonať väčší počet meraní v krátkom časovom úseku. Keďže ide o komunikačné rozhranie na princípe master/slave, v pozícii master pracuje mikrokontrolér, ktorý inicializuje komunikáciu so senzorom. Senzor čaká na príkazy od zariadenia master, medzi ktorými môže byť príkaz na nastavenie akcelerometra a gyroskopu alebo príkaz so žiadosťou o odoslanie nameraných hodnôt.

Komunikácia medzi mikrokontrolérom a aplikáciou prebieha cez USB port. Pre potrebu komunikácie sme navrhli prototyp komunikačného protokolu, ktorý nám umožňuje odosielať príkazy na zápis a čítanie dát medzi počítačom a mikrokontrolérom. Vďaka tomu dokážeme vykonať nastavenie senzorov akcelerometra a gyroskopu priamo v počítačovej aplikácii a odoslať ho na spracovanie do mikrokontroléra. Ten spracuje získané dáta a vydá pokyn na nastavenie senzorov alebo čítanie dát zo senzorov. Namerané surové dáta spracuje prostredníctvom knižnice vytvorenej na spracovanie nameraných údajov a uloží ich dátového buffra. Dáta z buffra odosiela cez USB port priamo do počítača.

Katalóg požiadaviek pre aplikáciu

V tejto podkapitole sa venujeme opisu funkčných a nefunkčných požiadaviek pre desktopovú aplikáciu. V úvodnej časti sa nachádza katalóg funkčných a nefunkčných požiadaviek a v druhej časti je bližší opis týchto požiadaviek.

Katalóg funkčných požiadaviek pre aplikáciu
# Požiadavka Poznámka
FP01 Určenie polohy objektu v priestore Z dát získaných z 3-osového gyroskopu a akcelerometra vypočíta polohu objektu v priestore.
FP02 Komunikácia s mikrokontrolérom Aplikácia musí komunikovať s mikrokontrolérom prostredníctvom USB v režime virtuálneho sériového portu.
FP03 Responzívne používateľské rozhranie Používateľské rozhranie aplikácie musí byť jednoducho ovládateľné a prehľadné.
FP04 Vizualizácia výsledných hodnôt Aplikácia zobrazí polohu objektu v priestore v trojrozmernom virtuálnom prostredí.

[tabulka_funkcne_app]

Katalóg nefunkčných požiadaviek pre aplikáciu
# Požiadavka
NP01 Aplikácia na PC bude napísaná v jazyku C#.
NP02 Na vizualizáciu budú použité funkcie zbierky DirectX API.
NP03 Používateľské rozhranie bude vytvorené pomocou jazyka XAML.
NP04 Pre komunikáciu s mikrokontrolérom bude vytvorený prototyp jednoduchého komunikačného protokolu

[tabulka_nefunkcne_app]

Počítačová aplikácia má za úlohu zabezpečiť nastavenie komunikácie cez USB, nastavenie senzorov, spracovanie nameraných údajov a finálnu vizualizáciu nameraných hodnôt. Nastavenie komunikácie a senzorov sa vykonáva v príslušnom okne, v ktorom sa nachádzajú polia pre výber požadovaných hodnôt. Po vykonaní nastavenia sa sprístupní tlačidlo na nadviazanie spojenia medzi PC a mikrokontrolérom. Stlačením tlačidla sa odošlú nastavenia pre senzory a sprístupní sa tlačidlo pre spustenie merania a vizualizácie nameraných hodnôt.

Nastavenie komunikácie a senzorov prebieha v dvoch samostatných funkciách. Každá z nich číta dáta zvolené v okne pre dané nastavenie. Funkcie sú privolané a vykonané po stlačení tlačidla pre nadviazanie spojenia medzi PC a mikrokontrolérom a dáta pre nastavenie senzorov sú odoslané cez USB port. Ďalšia funkcia zabezpečuje spracovanie príkazu na meranie údajov z mikrokontroléra. Stlačením tlačidla pre spustenie merania sa odošle žiadosť s týmto príkazom a aplikácia čaká na prijatie nameraných dát.

Aplikácia príjme namerané dáta a odošle ich do funkcie pre ich spracovanie. V tejto funkcii sú surové dáta spracované podľa datasheetu a prepočítané do hodnôt použiteľných pri vizualizácii merania. Vizualizácia prebieha v 3D priestore prostredníctvom DirectX API. Vypočítané hodnoty sú priradené 3D objektu, ktorý v 3D priestore znázorňuje natočenie zachytené akcelerometrom a gyroskopom.