ST X - logoUM2225
Uživatelská příručka

Začínáme s knihovnou MotionEC E-Compass v reálném čase v rozšíření X-CUBE-MEMS1 pro STM32Cube

Zavedení

MotionEC je komponenta knihovny middlewaru softwaru X-CUBE-MEMS1 a běží na STM3z2. Poskytuje informace v reálném čase o orientaci zařízení a stavu pohybu na základě dat ze zařízení.
Poskytuje následující výstupy: orientaci zařízení (čtveřice, Eulerovy úhly), rotaci zařízení (funkce virtuálního gyroskopu), vektor gravitace a lineární zrychlení.
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 ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 a ARM® Architektury 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, X-NUCLEO-IKS4A1 nebo X-NUCLEO-IKS02A1 na vývojové desce NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE nebo NUCLEO-L073RZ.

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 MotionEC v softwarovém rozšíření X-CUBE-MEMS1 pro STM32Cube

2.1 MotionEC přesview
Knihovna MotionEC rozšiřuje funkčnost softwaru X-CUBE-MEMS1.
Knihovna získává data z akcelerometru a magnetometru a poskytuje informace o orientaci zařízení a stavu pohybu na základě dat ze zařízení.
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.
A sampImplementace je k dispozici na rozšiřující desce X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 a X-NUCLEO-IKS02A1 namontované na vývojové desce NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE nebo NUCLEO-L073RZ.
2.2 Knihovna MotionEC
Technické informace plně popisující funkce a parametry MotionEC API lze nalézt v MotionEC_Package.chm zkompilovaném HTML file umístěné ve složce Dokumentace.

2.2.1 Popis knihovny MotionEC
Knihovna MotionEC E-Compass spravuje data získaná z akcelerometru a magnetometru; má:

  • orientace zařízení (čtveřice, Eulerovy úhly), rotace zařízení (funkce virtuálního gyroskopu), výstup gravitačního vektoru a lineárního zrychlení
  • funkčnost založená pouze na datech akcelerometru a magnetometru
  • požadované údaje z akcelerometru a magnetometru sampfrekvence až 100 Hz
  • požadavky na zdroje:
    – Cortex-M0+: 3.7 kB kódu a 0.1 kB datové paměti
    – Cortex-M3: 3.8 kB kódu a 0.1 kB datové paměti
    – Cortex-M33: 2.8 kB kódu a 0.1 kB datové paměti
    – Cortex-M4: 2.9 kB kódu a 0.1 kB datové paměti
    – Cortex-M7: 2.8 kB kódu a 0.1 kB datové paměti
  • k dispozici pro architektury ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 a Cortex M7

2.2.2 MotionEC API
MotionEC API jsou:

  • uint8_t MotionEC_GetLibVersion(char *verze)
    – načte verzi knihovny
    – *verze je ukazatel na pole 35 znaků
    – vrátí počet znaků v řetězci verze
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, plovoucí frekvence)
    – provádí inicializaci knihovny MotionEC a nastavení vnitřního mechanismu.
    – mcu_type je typ MCU:
    ◦ MFX_CM0P_MCU_STM32 je standardní MCU STM32
    ◦ MFX_CM0P_MCU_BLUE_NRG1 je BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 je BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP je BlueNRG -LP
    – frekv je snímač sampfrekvence [Hz]

Poznámka: Tuto funkci je nutné zavolat před použitím knihovny E-Compass a před použitím knihovny je nutné povolit modul CRC v mikrokontroléru STM32 (v registru povolení periferních hodin RCC).

  • void MotionEC_SetFrequency (plovoucí frekvence)
    – nastaví sampling frekvence (úprava parametrů filtrování)
    – frekv je snímač sampfrekvence [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – spouští algoritmus E-Compass (fúze dat akcelerometru a magnetometru)
    – *data_in je ukazatel na strukturu se vstupními daty
    – parametry pro typ struktury MEC_input_t jsou:
    ◦ acc[3] je pole dat akcelerometru podle konvence ENU, měřeno v g
    ◦ mag[3] je pole magnetometrických kalibrovaných dat podle konvence ENU, měřeno v μT/50
    ◦ deltatime s je delta čas (tj. časové zpoždění mezi starým a novým souborem dat) měřený v s
    – *data_out je ukazatel na strukturu s výstupními daty
    – parametry pro typ struktury MEC_output_t jsou:
    ◦ čtveřice[4] je pole obsahující čtveřici podle konvence ENU, představující 3Dangular orientaci zařízení v prostoru; pořadí prvků je: X, Y, Z, W s vždy kladným prvkem W
    ◦ euler[3] je pole Eulerových úhlů podle konvence ENU představující 3D úhlovou orientaci zařízení v prostoru; pořadí prvků je: stáčení, sklon, náklon, měřeno ve stupních
    ◦ i_gyro[3] je pole úhlových rychlostí podle konvence ENU, které představuje snímač virtuálního gyroskopu, měřeno v dps
    ◦ gravitace[3] je pole zrychlení podle konvence ENU, které představuje vektor gravitace, měřený v g
    ◦ lineární[3] je pole zrychlení podle konvence ENU, které představuje lineární zrychlení zařízení, měřeno v g
    ST X CUBE MEMS1 MotionEC je Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – získá stav povolení/zakázaní výpočtu Eulerova úhlu
    – *state je ukazatel na aktuální stav povolení/zakázání
  • void MotionEC_SetOrientationEnable(stav MEC_state_t)
    – nastavuje stav povolení/zakázaní výpočtu Eulerova úhlu
    – state je nový stav povolení/zakázaní, který se má nastavit
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – získá stav zapnutí/vypnutí výpočtu virtuálního gyroskopu
    – *state je ukazatel na aktuální stav povolení/zakázání
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    – nastavuje stav zapnutí/vypnutí výpočtu virtuálního gyroskopu
    – state je nový stav povolení/zakázaní, který se má nastavit
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – získá stav zapnutí/vypnutí výpočtu vektoru gravitace
    – *state je ukazatel na aktuální stav povolení/zakázání
  • void MotionEC_SetGravityEnable(stav MEC_state_t)
    – nastavuje stav zapnutí/vypnutí výpočtu vektoru gravitace
    – state je nový stav povolení/zakázaní, který se má nastavit
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – získá stav povolení/zakázaní výpočtu lineárního zrychlení
    – *state je ukazatel na aktuální stav povolení/zakázání
  • void MotionEC_SetLinearAccEnable(MEC_state_t state)
    – nastavuje stav zapnutí/vypnutí výpočtu lineárního zrychlení
    – state je nový stav povolení/zakázaní, který se má nastavit

2.2.3 Vývojový diagram API

ST X CUBE MEMS1 MotionEC je sekvence Middleware Library

2.2.4 Demo kód
Následující demonstrační kód čte data ze senzorů akcelerometru a magnetometru a získává data ECompass (tj. čtveřice, Eulerovy úhly atd.).

ST X CUBE MEMS1 MotionEC je ukázkový kód knihovny MiddlewareST X CUBE MEMS1 MotionEC je ukázkový kód knihovny Middleware1

2.2.5 Výkonnost algoritmu
Algoritmus E-Compass využívá pouze data z akcelerometru a magnetometru. Pro snížení spotřeby energie běží na nízké frekvenci (až 100 Hz).

ST X CUBE MEMS1 MotionEC je Middleware Library-Data Injection1

Sample aplikace

Middleware MotionEC lze snadno manipulovat a vytvářet uživatelské aplikace; jakoampaplikace je k dispozici ve složce Aplikace.
Je navržen tak, aby fungoval na vývojové desce NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE nebo NUCLEO-L073RZ připojené k desce X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1nebo X-NUCLEO-IKS02A1expansion board

ST X CUBE MEMS1 MotionEC je adaptér Middleware Library

Aplikace rozpozná orientaci a rotaci zařízení v reálném čase. Data lze zobrazit pomocí GUI.
Algoritmus poskytuje následující výstupy: orientaci zařízení (čtveřice, Eulerovy úhly), rotaci zařízení (funkce virtuálního gyroskopu), vektor gravitace a lineární zrychlení.
3.1 Aplikace MEMS-Studio
SampTato aplikace používá 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. Stiskněte tlačítko [Connect] pro navázání spojení s vyhodnocovací deskou.

ST X CUBE MEMS1 MotionEC je Middleware Library-Connect

Krok 3. Po připojení k desce STM32 Nucleo s podporovaným firmwarem se otevře karta [Library Evaluation].
Chcete-li spustit a zastavit streamování dat, přepněte příslušné [Start] ST X CUBE MEMS1 MotionEC je ikona knihovny Middleware nebo [Stop] ST X CUBE MEMS1 MotionEC je Middleware Library- icon1 tlačítko na vnějším svislém panelu nástrojů.
Data pocházející z připojeného senzoru mohou být viewed výběrem záložky [Tabulka dat] na vnitřní svislé nástrojové liště.

ST X CUBE MEMS1 MotionEC je tabulka dat knihovny Middleware

Krok 4. Kliknutím na [E-Compass] otevřete stránku vyhrazenou pro tuto knihovnu.

ST X CUBE MEMS1 MotionEC je Middleware Library-Compass

Obrázek výše ukazuje grafický model STM32 Nucleo. Orientace a rotace modelu jsou založeny na datech E-Compass (čtveřice) vypočítaných algoritmem.
Chcete-li zarovnat skutečný pohyb zařízení s grafickým modelem, namiřte zařízení na obrazovku a stiskněte [Resetovat model].
Hodnota záhlaví představuje skutečný kurz zařízení.
Nasměrování zařízení přímo nahoru nebo dolů (podél osy Nahoru referenčního rámce ENU s tolerancí ±5 stupňů) poskytuje hodnotu N/A pro směr: není možné rozlišit, na který světový bod zařízení ukazuje.
Hodnota dobroty dává 0 až 3 hodnoty a souvisí s kalibrací magnetometru: čím vyšší je hodnota, tím lepší jsou výsledky datového algoritmu E-Compass.
Krok 5. Klikněte na [Uložit do File] pro otevření okna konfigurace záznamu dat. Vyberte data senzoru a elektronického kompasu, která se mají uložit do file. Ukládání můžete spustit nebo zastavit kliknutím na příslušné tlačítko.

ST X CUBE MEMS1 MotionEC je knihovna middlewaru – uložit do File

Krok 6. Režim vkládání dat lze použít k odeslání dříve získaných dat do knihovny a přijetí výsledku. Výběrem karty [Data Injection] na svislém panelu nástrojů otevřete vyhrazené view pro tuto funkci.

ST X CUBE MEMS1 MotionEC je Middleware Library-Data Injection

Krok 7. Klepnutím na tlačítko [Procházet] vyberte file s dříve zachycenými daty ve formátu CSV.
Data budou načtena do tabulky v aktuálním view.
Ostatní tlačítka budou aktivní. Můžete kliknout na:
– Tlačítko [Offline Mode] pro zapnutí/vypnutí offline režimu firmwaru (režim využívající dříve zaznamenaná data).
– Tlačítka [Start]/[Stop]/[Step]/[Repeat] pro ovládání přenosu dat z MEMS-Studia do knihovny.

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 4. Historie revizí dokumentu

Datum Verze Změny
18. května 17 1 Počáteční vydání.
25. ledna 18 2 Přidány odkazy na vývojovou desku NUCLEO-L152RE a tabulku 2.
Algoritmus uplynulého času (μs).
21-března-18 3 Aktualizovaný úvod a sekce 2.1 MotionEC jsou ukončenyview.
26-listopad-18 4 Přidána tabulka 3. Cortex -M0+: algoritmus uplynulého času (µs). Přidány odkazy na ARM®
Vývojová deska Cortex® – M0+ a NUCLEO-L073RZ.
19. února 19 5 Aktualizovaný obrázek 1. Referenční rámec ENU, tabulka 2. Cortex -M4 a Cortex-M3: Algoritmus uplynulého času (µs), tabulka 3.
Cortex -M0+: Algoritmus uplynulého času (µs), Obrázek 3. Adaptér rozšiřující desky senzoru připojený k STM32
Nucleo, Obrázek 4. Hlavní okno Unicleo, Obrázek 5. Karta User Messages, Obrázek 6. Okno E-Compass a Obrázek 7. Okno Datalog. Přidány informace o kompatibilitě rozšiřující desky X-NUCLEO-IKS01A3.
25-března-20 6 Aktualizovaný úvod, část 2.2.1: Popis knihovny MotionEC a část 2.2.5: Výkon algoritmu.
Přidány informace o kompatibilitě architektury ARM Cortex-M7.
17. září - 24 7 Aktualizovaná sekce Úvod,
Část 2.1: Konec MotionECview,
Sekce 2.2.1: Knihovna MotionEC
popis, část 2.2.2: MotionEC
API, Oddíl 2.2.5: Algoritmus
výkon, oddíl 3: Sample
aplikace, Část 3.1: 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

Dokumenty / zdroje

ST X-CUBE-MEMS1 MotionEC je middlewarová knihovna [pdfUživatelská příručka
X-CUBE-MEMS1 MotionEC je Middleware Library, X-CUBE-MEMS1, MotionEC je Middleware Library, Middleware Library, Library

Reference

Zanechte komentář

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