STMicroelectronics UM2193 MotionAR Activity Recognition Library

STMicroelectronics UM2193 MotionAR Activity Recognition Library

Zavedení

Motion AR je součástí knihovny middlewaru softwaru X-CUBE-MEMS1 a běží na STM32. Poskytuje informace v reálném čase o typu činnosti prováděné uživatelem. Dokáže rozlišit tyto činnosti: stacionární, chůze, rychlá chůze, jogging, jízda na kole, jízda autem.

Tato knihovna je určena pouze pro práci s ST MEMS.

Algoritmus je poskytován ve formátu statické knihovny a je navržen pro použití na mikrokontrolérech STM32 založených na architektuře ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 nebo ARM® Cortex®-M7.

Je postaven na softwarové technologii STM32Cube, která usnadňuje přenositelnost mezi různými mikrokontroléry STM32.

Software je dodáván s sampImplementace běžící na rozšiřující desce X-NUCLEO-IKS01A3 nebo X-NUCLEO-IKS4A1 na vývojové desce NUCLEO-F401RE, NUCLEO-L152RE nebo NUCLEO-U575ZI-Q.

Zkratky a zkratky

Tabulka 1. Seznam zkratek

Akronym Popis
API Aplikační programovací rozhraní
BSP Balíček podpory desky
GUI Grafické uživatelské rozhraní
HAL Vrstva abstrakce hardwaru
IDE Integrované vývojové prostředí

Knihovna middlewaru Motion AR v rozšíření softwaru X-CUBE-MEMS1

Pohyb AR skončilview

Knihovna Motion AR rozšiřuje funkčnost softwaru X-CUBE-MEMS1.
Knihovna získává data z akcelerometru a poskytuje informace o typu činnosti prováděné uživatelem.

Knihovna je určena pouze pro ST MEMS. Funkčnost a výkon při použití jiných MEMS senzorů nejsou analyzovány a mohou se výrazně lišit od toho, co je popsáno v dokumentu.
SampImplementace je k dispozici na rozšiřujících deskách X-NUCLEO-IKS01A3 nebo X-NUCLEO-IKS4A1 namontovaných na vývojové desce NUCLEO-F401RE, NUCLEO-L152RE nebo NUCLEO-U575ZI-Q.

Knihovna Motion AR

Technické informace plně popisující funkce a parametry API Motion AR lze nalézt v zkompilovaném HTML kódu MotionAR_Package.chm file umístěné ve složce Dokumentace.

Popis knihovny Motion AR

  • Knihovna rozpoznávání aktivity Motion AR spravuje data získaná z akcelerometru; to představuje:
  • možnost rozlišit tyto aktivity: stacionární, chůze, rychlá chůze, jogging, jízda na kole, jízda autem
  • rozpoznávání pouze na základě údajů akcelerometru
  • požadované údaje z akcelerometru sampfrekvence: 16 Hz
  • požadavky na zdroje:
    • Cortex-M3: 8.5 kB kódu a 1.4 kB datové paměti
    • Cortex-M33: 7.8 kB kódu a 1.4 kB datové paměti
    • Cortex-M4: 7.9 kB kódu a 1.4 kB datové paměti
    • Cortex-M7: 8.1 kB kódu a 1.4 kB datové paměti
  • k dispozici pro architektury ARM Cortex-M3, Cortex-M33, Cortex-M4 a Cortex-M7

MotionAR API

MotionAR API jsou:

  • uint8_t MotionAR_GetLibVersion(char *verze)
    • načte verzi knihovny
    • *verze je ukazatel na pole 35 znaků
    • vrátí počet znaků v řetězci verze
  • void MotionAR_Initialize(void)
    • provádí inicializaci knihovny MotionAR a nastavení vnitřního mechanismu
    • modul CRC v mikrokontroléru STM32 (v registru povolení periferních hodin RCC) musí být
      povoleno před použitím knihovny
      Poznámka: Tato funkce musí být vyvolána před použitím knihovny kalibrace akcelerometru.
  • void MotionAR_Reset(void)
    • resetuje algoritmy rozpoznávání aktivity
  • void MotionAR_Update(MAR_input_t *data_in, MAR_output_t *data_out, int64_t
    timestamp)
    • provádí algoritmus rozpoznávání aktivity
    • Parametr *data_in je ukazatel na strukturu se vstupními daty
    • parametry pro typ struktury MAR_input_t jsou:
      • acc_x je hodnota senzoru akcelerometru v ose X v g
      • acc_y je hodnota senzoru akcelerometru v ose Y vg
      • acc_z je hodnota senzoru akcelerometru v ose Z v g
    • Parametr *data_out je ukazatel na výčet s následujícími položkami:
      • MAR_NOACTIVITY = 0
      • MAR_STATIONARY = 1
      • MAR_WALKING = 2
      • MAR_FASTWALKING = 3
      • MAR_JOGGING = 4
      • MAR_BIKING = 5
      • MAR_DRIVING = 6
    • timestamp je relativní čas pro aktuální sample v ms
  • void MotionAR_ Set Orientation_ Acc(const char *acc_orientation)
    • nastavuje orientaci dat akcelerometru
    • konfigurace se obvykle provádí ihned po volání funkce Motion AR_ Initialize
    • *parametr orientace acc_ je ukazatel na řetězec tří znaků označující směr každé z kladných orientací referenčního snímku použitého pro výstup dat z akcelerometru v sekvenci x, y, z. Platné hodnoty jsou: n (sever) nebo s (jih), w (západ) nebo e (východ), u (nahoru) nebo d (dolů)
    • Jak je znázorněno na obrázku níže, senzor akcelerometru X-NUCLEO-IKS4A1 má SEU (x-South, y- East, z-Up), takže řetězec je: „seu“.

Obrázek 1. Orientace snímače napřample

Knihovna middlewaru MotionAR v rozšíření softwaru X-CUBE-MEMS1

API flow char

Obrázek 2. Logická sekvence Motion AR API

Knihovna middlewaru MotionAR v rozšíření softwaru X-CUBE-MEMS1

Demo kód

Následující demonstrační kód čte data ze senzoru akcelerometru a získává kód aktivity

[…] #define VERSION_STR_LENG 35 […] /*** Inicializace ***/ char lib_version[VERSION_STR_LENG]; char acc_orientation[] = "seu"; /* Inicializační funkce API rozpoznávání aktivit */ MotionAR_Initialize(); /* Volitelné: Získat verzi */ MotionAR_GetLibVersion(lib_version); /* Nastaví orientaci akcelerometru */ MotionAR_SetOrientation_Acc(acc_orientation); […] /*** Použití algoritmu rozpoznávání aktivity ***/ Timer_ OR_ Data Rate_ Interrupt_ Handler() {
MAR_input_t data_ in; MAR_ output_ t aktivita; /* Získání zrychlení X/Y/Z v g */ MEMS_Read_AccValue(&data_in.acc_x, &data_in.acc_y, &data_in.acc_z); /* Získání aktuálního času v ms */ TIMER_Get_TimeValue(×tamp_slečna); /* Aktualizace algoritmu rozpoznávání aktivity */ MotionAR_Update(data_in, data_out, timestamp_slečna); }

Výkon algoritmu

Algoritmus rozpoznávání aktivity používá pouze data z akcelerometru a běží na nízké frekvenci (16 Hz), aby se snížila spotřeba energie.

Tabulka 2. Výkon algoritmu

Aktivita Pravděpodobnost detekce (typická)(1) Nejlepší výkon Citlivý Přenášejte pozice
Stacionární 92.27 % Držení v ruce a těžké textové zprávy Vše: kapsa u kalhot, kapsa u košile, zadní kapsa, u hlavy atd.
Chůze 99.44 % Kroková rychlost ≥ 1.4 kroku/s Kroková rychlost ≤ 1.2 kroku/s vše
Rychlá chůze 95.94 % Kroková rychlost ≥ 2.0 kroku/s Vše
Běhání 98.49 % Kroková rychlost ≥ 2.2 kroku/s Doba trvání < 1 minuta; rychlost < 8 km/h Kapsa u kalhot, švih paže, v ruce
Jízda na kole 91.93 % Venkovní rychlost ≥11 Km/h Sedadlo spolujezdce, odkládací schránka Batoh, kapsa na košili, kapsa na kalhoty
Řízení 78.65 % Rychlost ≥ 48 Km/h Sedadlo spolujezdce, odkládací schránka Držák na pohár, palubní deska, kapsa na košili, kapsa na kalhoty
  1. Typické specifikace nejsou zaručeny

Tabulka 3. Cortex-M4 a Cortex-M3: Algoritmus uplynulého času (µs) 

Cortex-M4 STM32F401RE na 84 MHz Cortex-M3 STM32L152RE na 32 MHz
Min Prům Max Min Prům Max
2 6 153 8 130 4883

Tabulka 4. Cortex-M33 a Cortex-M7: Algoritmus uplynulého času (μs) 

Cortex-M33 STM32U575ZI-Q na 160 MHz Cortex-M7 STM32F767ZI na 96 MHz
Min Prům Max Min Prům Max
< 1 2 74 5 9 145

Sample aplikace

Middleware MotionAR lze snadno manipulovat za účelem vytváření uživatelských aplikací; tak jakoampaplikace je k dispozici ve složce Aplikace.
Je navržen pro provoz na vývojové desce NUCLEO-F401RE, NUCLEO-L152RE nebo NUCLEO-U575ZI-Q připojené k rozšiřující desce X-NUCLEO-IKS01A3 nebo X-NUCLEO-IKS4A1.

Aplikace rozpoznává prováděné činnosti v reálném čase. Data lze zobrazit pomocí GUI. Algoritmus rozpozná stacionární, chůzi, rychlou chůzi, jogging, jízdu na kole a řízení. Pro sledování dat v reálném čase je vyžadováno připojení USB kabelem. Deska je napájena z PC přes USB připojení. To umožňuje uživateli zobrazit detekovanou aktivitu, data akcelerometru, čas stamp a případně další data ze senzorů v reálném čase pomocí GUI aplikace MEMS-Studio.

Aplikace MEMS-Studio

SampTato aplikace používá GUI aplikaci MEMS-Studio, kterou lze stáhnout www.st.com.

Krok 1. Ujistěte se, že jsou nainstalovány potřebné ovladače a že je k PC připojena deska STM32 Nucleo s příslušnou rozšiřující deskou.
Krok 2. Spuštěním aplikace MEMS-Studio otevřete hlavní okno aplikace.

Pokud je k PC připojena deska STM32 Nucleo s podporovaným firmwarem, je automaticky detekován příslušný COM port. Stisknutím tlačítka Connect otevřete tento port.

Obrázek 3. MEMS-Studio – Connect 

Aplikace MEMS-Studio

Krok 3. Po připojení k desce STM32 Nucleo s podporovaným firmwarem se otevře záložka Library Evaluation.

Chcete-li spustit a zastavit streamování dat, přepněte příslušné Ikona Start / Ikona tlačítko stop na vnější svislé nástrojové liště.
Data pocházející z připojeného senzoru mohou být viewed výběrem karty Tabulka dat na vnitřním svislém panelu nástrojů.

Obrázek 4. MEMS-Studio – Vyhodnocení knihovny – Tabulka dat 

Obrázek 5. MEMS-Studio – Hodnocení knihovny – Rozpoznávání aktivit

Aplikace MEMS-Studio

Krok 5. Vyberte Uložit do File na vnitřní svislé nástrojové liště otevřete okno konfigurace protokolování dat. Vyberte, který senzor a údaje o aktivitě chcete uložit do protokolu file. Ukládání můžete spustit nebo zastavit kliknutím na příslušné tlačítko Start / Stop.

Obrázek 6. MEMS-Studio – Vyhodnocení knihovny – Uložit do File

Aplikace MEMS-Studio

Reference

Všechny následující zdroje jsou volně dostupné na www.st.com.

  1. UM1859: Začínáme s rozšířením softwaru X-CUBE-MEMS1 motion MEMS a senzoru prostředí pro STM32Cube
  2. UM1724: Desky STM32 Nucleo-64 (MB1136)
  3. UM3233: Začínáme s MEMS-Studio

Historie revizí

Tabulka 5. Historie revizí dokumentu

Datum Verze Změny
10-dub-2017 1 Počáteční vydání.
26. ledna 2018 2 Aktualizován oddíl 3 Sample aplikace.
Přidány odkazy na vývojovou desku NUCLEO-L152RE a tabulku 3. Algoritmus uplynulého času (μs).
19-března-2018 3 Aktualizovaný úvod, část 2.1 Pohyb AR přesview a Část 2.2.5 Výkon algoritmu.
14. února 2019 4 Aktualizovaný obrázek 1. Orientace snímače example, Tabulka 3. Algoritmus uplynulého času (µs) a Obrázek 3. STM32 Nucleo: LED diody, tlačítko, propojka.
Přidány informace o kompatibilitě rozšiřující desky X-NUCLEO-IKS01A3.
20-března-2019 5 Aktualizovaná část 2.2.2 Motion AR API, Obrázek 3. MEMS-Studio – Connect, Obrázek 4. MEMS-Studio – Vyhodnocení knihovny – Tabulka dat, Obrázek 5. MEMS-Studio – Vyhodnocení knihovny – Rozpoznávání aktivity a Obrázek 6. MEMS-Studio – Hodnocení knihovny – Uložit do File.
04-dub-2024 6 Aktualizovat Sekce Úvod, Sekce 2.1: Konec MotionARview, Část 2.2.1: Knihovna MotionAR popis, MotionAR API, Část 2.2.4: Demo kód, Část 2.2.5: Výkon algoritmu, Část 3: Sample aplikace a Část 4: Aplikace MEMS-Studio.

DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ

STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky.

Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících.

Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.

Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.

ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST viz www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.

Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.

© 2024 STMicroelectronics – Všechna práva vyhrazena

Logo

Dokumenty / zdroje

STMicroelectronics UM2193 MotionAR Activity Recognition Library [pdfUživatelská příručka
UM2193 MotionAR Activity Recognition Library, UM2193, MotionAR Activity Recognition Library, Activity Recognition Library, Recognition Library, Library

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *