UM2225
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
- 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
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.).
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).
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
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.
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] nebo [Stop]
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ě.
Krok 4. Kliknutím na [E-Compass] otevřete stránku vyhrazenou pro tuto knihovnu.
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.
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.
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.
- UM1859: Začínáme s rozšířením softwaru X-CUBE-MEMS1 motion MEMS a senzoru prostředí pro STM32Cube
- UM1724: Desky STM32 Nucleo-64 (MB1136)
- 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 |