ST X - logoUM2225
Návod na použitie

Začíname s knižnicou MotionEC E-Compass v reálnom čase v rozšírení X-CUBE-MEMS1 pre STM32Cube

Úvod

MotionEC je komponent knižnice middleware softvéru X-CUBE-MEMS1 a beží na STM3z2. Poskytuje informácie o orientácii zariadenia a stave pohybu v reálnom čase na základe údajov zo zariadenia.
Poskytuje nasledujúce výstupy: orientáciu zariadenia (kvaternióny, Eulerove uhly), rotáciu zariadenia (funkcia virtuálneho gyroskopu), vektor gravitácie a lineárne zrýchlenie.
Táto knižnica je určená len na prácu s ST MEMS.
Algoritmus je poskytovaný vo formáte statickej knižnice a je navrhnutý na použitie na mikrokontroléroch STM32 založených na ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 a ARM® architektúry Cortex®-M7.
Je postavený na softvérovej technológii STM32Cube, aby sa uľahčila prenosnosť medzi rôznymi mikrokontrolérmi STM32.
Softvér je dodávaný s sampImplementácia beží na rozširujúcej doske X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 alebo X-NUCLEO-IKS02A1 na vývojovej doske NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE alebo NUCLEO-L073RZ.

Skratky a skratky

Tabuľka 1. Zoznam akronymov

Skratka Popis
API Aplikačné programovacie rozhranie
BSP Balík podpory dosky
GUI Grafické používateľské rozhranie
HAL Vrstva abstrakcie hardvéru
IDE Integrované vývojové prostredie

Knižnica middlewaru MotionEC v softvérovom rozšírení X-CUBE-MEMS1 pre STM32Cube

2.1 MotionEC prečview
Knižnica MotionEC rozširuje funkčnosť softvéru X-CUBE-MEMS1.
Knižnica získava údaje z akcelerometra a magnetometra a poskytuje informácie o orientácii zariadenia a stave pohybu na základe údajov zo zariadenia.
Knižnica je určená len pre ST MEMS. Funkčnosť a výkon pri použití iných MEMS senzorov nie sú analyzované a môžu sa výrazne líšiť od toho, čo je opísané v dokumente.
Spoločnosť A sampImplementácia je k dispozícii na rozširujúcej doske X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 a X-NUCLEO-IKS02A1 namontovanej na vývojovej doske NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE alebo NUCLEO-L073RZ.
2.2 Knižnica MotionEC
Technické informácie plne popisujúce funkcie a parametre API MotionEC nájdete v kompilovanom HTML MotionEC_Package.chm file nachádza v priečinku Dokumentácia.

2.2.1 Popis knižnice MotionEC
Knižnica MotionEC E-Compass spravuje údaje získané z akcelerometra a magnetometra; má:

  • orientácia zariadenia (kvaternióny, Eulerove uhly), rotácia zariadenia (funkčnosť virtuálneho gyroskopu), výstupy gravitačného vektora a lineárneho zrýchlenia
  • funkčnosť založená len na údajoch akcelerometra a magnetometra
  • požadované údaje akcelerometra a magnetometra sampfrekvencia až 100 Hz
  • požiadavky na zdroje:
    – Cortex-M0+: 3.7 kB kódu a 0.1 kB dátovej pamäte
    – Cortex-M3: 3.8 kB kódu a 0.1 kB dátovej pamäte
    – Cortex-M33: 2.8 kB kódu a 0.1 kB dátovej pamäte
    – Cortex-M4: 2.9 kB kódu a 0.1 kB dátovej pamäte
    – Cortex-M7: 2.8 kB kódu a 0.1 kB dátovej pamäte
  • k dispozícii pre architektúry ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 a Cortex M7

2.2.2 MotionEC API
Rozhrania MotionEC API sú:

  • uint8_t MotionEC_GetLibVersion(char *verzia)
    – načíta verziu knižnice
    – *verzia je ukazovateľ na pole s 35 znakmi
    – vráti počet znakov v reťazci verzie
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – vykoná inicializáciu knižnice MotionEC a nastavenie vnútorného mechanizmu.
    – mcu_type je typ MCU:
    ◦ MFX_CM0P_MCU_STM32 je štandardný 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č sampling frekvencia [Hz]

Poznámka: Táto funkcia musí byť zavolaná pred použitím knižnice E-Compass a pred použitím knižnice musí byť povolený modul CRC v mikrokontroléri STM32 (v registri povolenia periférnych hodín RCC).

  • void MotionEC_SetFrequency (float freq)
    – nastaví sampfrekvencia (úprava parametrov filtrovania)
    – frekv. je snímač sampfrekvencia [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – spúšťa algoritmus E-Compass (fúzia údajov akcelerometra a magnetometra)
    – *data_in je ukazovateľ na štruktúru so vstupnými údajmi
    – parametre pre typ štruktúry MEC_input_t sú:
    ◦ acc[3] je pole údajov akcelerometra podľa konvencie ENU, merané v g
    ◦ mag[3] je pole magnetometrických kalibrovaných údajov podľa konvencie ENU, merané v μT/50
    ◦ deltatime s je delta čas (tj časové oneskorenie medzi starým a novým súborom údajov) meraný v s
    – *data_out je ukazovateľ na štruktúru s výstupnými údajmi
    – parametre pre typ štruktúry MEC_output_t sú:
    ◦ quaternion[4] je pole obsahujúce quaternion podľa konvencie ENU, ktoré predstavuje 3D uhlovú orientáciu zariadenia v priestore; poradie prvkov je: X, Y, Z, W, pričom prvok W je vždy kladný
    ◦ euler[3] je pole Eulerových uhlov podľa konvencie ENU, ktoré predstavuje 3D-uhlovú orientáciu zariadenia v priestore; poradie prvkov je: vybočenie, sklon, naklonenie, merané v stupňoch
    ◦ i_gyro[3] je pole uhlových rýchlostí podľa konvencie ENU, ktoré predstavuje snímač virtuálneho gyroskopu, merané v dps
    ◦ gravitácia[3] je pole zrýchlení podľa konvencie ENU, ktoré predstavuje vektor gravitácie meraný v g
    ◦ lineárne[3] je pole zrýchlení podľa konvencie ENU, ktoré predstavuje lineárne zrýchlenie zariadenia, merané v g
    ST X CUBE MEMS1 MotionEC je Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – získa stav povolenia/zakázania výpočtu Eulerovho uhla
    – *state je ukazovateľ na aktuálny stav zapnutia/vypnutia
  • void MotionEC_SetOrientationEnable(stav MEC_state_t)
    – nastavuje stav zapnutia/vypnutia výpočtu Eulerovho uhla
    – stav je nový stav povolenia/zakázania, ktorý sa má nastaviť
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – získa stav povolenia/zakázania výpočtu virtuálneho gyroskopu
    – *state je ukazovateľ na aktuálny stav zapnutia/vypnutia
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    – nastavuje zapnutie/vypnutie stavu výpočtu virtuálneho gyroskopu
    – stav je nový stav povolenia/zakázania, ktorý sa má nastaviť
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – získa stav povolenia/zakázania výpočtu vektora gravitácie
    – *state je ukazovateľ na aktuálny stav zapnutia/vypnutia
  • void MotionEC_SetGravityEnable(stav MEC_state_t)
    – nastavuje zapnutie/vypnutie stavu výpočtu vektora gravitácie
    – stav je nový stav povolenia/zakázania, ktorý sa má nastaviť
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – získa stav povolenia/zakázania výpočtu lineárneho zrýchlenia
    – *state je ukazovateľ na aktuálny stav zapnutia/vypnutia
  • void MotionEC_SetLinearAccEnable(MEC_state_t state)
    – nastavuje zapnutie/vypnutie stavu výpočtu lineárneho zrýchlenia
    – stav je nový stav povolenia/zakázania, ktorý sa má nastaviť

2.2.3 Vývojový diagram API

ST X CUBE MEMS1 MotionEC je sekvencia Middleware Library

2.2.4 Demo kód
Nasledujúci demonštračný kód číta údaje zo snímačov akcelerometra a magnetometra a získava údaje ECompass (tj kvaternión, Eulerove uhly atď.).

ST X CUBE MEMS1 MotionEC je ukážkový kód knižnice MiddlewareST X CUBE MEMS1 MotionEC je ukážkový kód knižnice Middleware1

2.2.5 Výkonnosť algoritmu
Algoritmus E-Compass využíva iba údaje z akcelerometra a magnetometra. Beží na nízkej frekvencii (do 100 Hz), aby sa znížila spotreba energie.

ST X CUBE MEMS1 MotionEC je Middleware Library-Data Injection1

Sample aplikácie

Middleware MotionEC sa dá ľahko manipulovať na vytváranie užívateľských aplikácií; akoampAplikácia sa nachádza v priečinku Aplikácia.
Je navrhnutý tak, aby fungoval na vývojovej doske NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE alebo NUCLEO-L073RZ pripojenej k expanznej doske X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 alebo X-NUCLEO-IKS02

ST X CUBE MEMS1 MotionEC je adaptér Middleware Library

Aplikácia rozpozná orientáciu a rotáciu zariadenia v reálnom čase. Dáta je možné zobraziť cez GUI.
Algoritmus poskytuje nasledujúce výstupy: orientáciu zariadenia (kvaternióny, Eulerove uhly), rotáciu zariadenia (funkcia virtuálneho gyroskopu), vektor gravitácie a lineárne zrýchlenie.
3.1 Aplikácia MEMS-Studio
SampAplikácia používa aplikáciu MEMS-Studio, ktorú si môžete stiahnuť z www.st.com.
Krok 1. Uistite sa, že sú nainštalované potrebné ovládače a že doska STM32 Nucleo s príslušnou rozširujúcou doskou je pripojená k počítaču.
Krok 2. Spustite aplikáciu MEMS-Studio a otvorte hlavné okno aplikácie.
Ak je k PC pripojená doska STM32 Nucleo s podporovaným firmvérom, automaticky sa zistí príslušný COM port. Stlačením tlačidla [Connect] vytvorte pripojenie k hodnotiacej doske.

ST X CUBE MEMS1 MotionEC je Middleware Library-Connect

Krok 3. Po pripojení k doske STM32 Nucleo s podporovaným firmvérom sa otvorí karta [Library Evaluation].
Ak chcete spustiť a zastaviť streamovanie údajov, prepnite príslušné [Spustiť] ST X CUBE MEMS1 MotionEC je ikona Middleware Library alebo [Stop] ST X CUBE MEMS1 MotionEC je Middleware Library- icon1 tlačidlo na vonkajšej vertikálnej lište nástrojov.
Dáta prichádzajúce z pripojeného snímača môžu byť viewed výberom karty [Data Table] na vnútornej vertikálnej lište nástrojov.

ST X CUBE MEMS1 MotionEC je Middleware Library-Data Table

Krok 4. Kliknutím na [E-Compass] otvoríte vyhradenú stránku pre túto knižnicu.

ST X CUBE MEMS1 MotionEC je Middleware Library-Compass

Obrázok vyššie zobrazuje grafický model STM32 Nucleo. Orientácia a rotácia modelu sú založené na údajoch E-Compass (kvaternióny) vypočítaných algoritmom.
Ak chcete zosúladiť skutočný pohyb zariadenia s grafickým modelom, nasmerujte zariadenie na obrazovku a stlačte [Resetovať model].
Hodnota nadpisu predstavuje skutočný nadpis zariadenia.
Nasmerovanie zariadenia priamo nahor alebo nadol (pozdĺž osi Hore referenčného rámca ENU s toleranciou ±5 stupňov) poskytuje hodnotu N/A pre smer: nie je možné rozlíšiť, na ktorý svetový bod zariadenie ukazuje.
Hodnota dobroty dáva 0 až 3 hodnoty a súvisí s kalibráciou magnetometra: čím vyššia je hodnota, tým lepšie sú výsledky dátového algoritmu E-Compass.
Krok 5. Kliknite na [Uložiť do File], čím otvoríte okno konfigurácie zaznamenávania údajov. Vyberte údaje snímača a elektronického kompasu, ktoré sa majú uložiť do file. Ukladanie môžete spustiť alebo zastaviť kliknutím na príslušné tlačidlo.

ST X CUBE MEMS1 MotionEC je Middleware Library-Uložiť do File

Krok 6 Režim vkladania údajov možno použiť na odoslanie predtým získaných údajov do knižnice a prijatie výsledku. Výberom karty [Data Injection] na zvislom paneli nástrojov otvorte vyhradené view pre túto funkciu.

ST X CUBE MEMS1 MotionEC je Middleware Library-Data Injection

Krok 7 Kliknutím na tlačidlo [Prehľadávať] vyberte file s predtým zachytenými údajmi vo formáte CSV.
Údaje sa načítajú do tabuľky v aktuálnom stave view.
Ostatné tlačidlá budú aktívne. Môžete kliknúť na:
– Tlačidlo [Offline Mode] na zapnutie/vypnutie offline režimu firmvéru (režim využívajúci predtým zaznamenané údaje).
– Tlačidlá [Start]/[Stop]/[Step]/[Repeat] na ovládanie dátového toku z MEMS-Studio do knižnice.

Referencie

Všetky nasledujúce zdroje sú voľne dostupné na www.st.com.

  1. UM1859: Začíname s rozšírením softvéru X-CUBE-MEMS1 motion MEMS a senzora prostredia pre STM32Cube
  2.  UM1724: dosky STM32 Nucleo-64 (MB1136)
  3. UM3233: Začíname s MEMS-Studio

História revízií

Tabuľka 4. História revízií dokumentu

Dátum Verzia Zmeny
18. mája 17 1 Prvotné uvoľnenie.
25. januára 18 2 Pridané odkazy na vývojovú dosku NUCLEO-L152RE a tabuľku 2.
Algoritmus uplynulého času (μs).
21-mar-18 3 Aktualizovaný úvod a časť 2.1 MotionEC sú ukončenéview.
26. novembra-18 4 Pridaná tabuľka 3. Cortex-MO+: algoritmus uplynulého času (us). Pridané odkazy na ARM®
Vývojová doska Cortex® – M0+ a NUCLEO-L073RZ.
19. februára 19 5 Aktualizovaný obrázok 1. Referenčný rámec ENU, tabuľka 2. Cortex -M4 a Cortex-M3: algoritmus uplynutého času (µs), tabuľka 3.
Cortex -M0+: Algoritmus uplynulého času (µs), Obrázok 3. Adaptér rozširujúcej dosky snímača pripojený k STM32
Nucleo, Obrázok 4. Hlavné okno Unicleo, Obrázok 5. Karta User Messages, Obrázok 6. Okno E-Compass a Obrázok 7. Okno Datalog. Pridané informácie o kompatibilite rozširujúcej dosky X-NUCLEO-IKS01A3.
25-mar-20 6 Aktualizovaný úvod, časť 2.2.1: Popis knižnice MotionEC a časť 2.2.5: Výkon algoritmu.
Pridané informácie o kompatibilite architektúry ARM Cortex-M7.
17. septembra 24 7 Aktualizovaná sekcia Úvod,
Sekcia 2.1: Koniec MotionECview,
Časť 2.2.1: Knižnica MotionEC
opis, časť 2.2.2: MotionEC
API, časť 2.2.5: Algoritmus
výkon, oddiel 3: Sample
aplikácia, časť 3.1: Aplikácia MEMS-Studio

DÔLEŽITÉ UPOZORNENIE – POZORNE ČÍTAJTE
STMicroelectronics NV a jej dcérske spoločnosti (“ST”) si vyhradzujú právo vykonávať zmeny, opravy, vylepšenia, úpravy a vylepšenia produktov ST a/alebo tohto dokumentu kedykoľvek bez upozornenia. Kupujúci by mali pred zadaním objednávky získať najnovšie relevantné informácie o produktoch ST. Produkty ST sa predávajú v súlade s obchodnými podmienkami ST platnými v čase potvrdenia objednávky.
Kupujúci sú výhradne zodpovední za výber, výber a používanie produktov ST a ST nepreberá žiadnu zodpovednosť za pomoc pri aplikácii alebo dizajn produktov kupujúcich.
Spoločnosť ST tu neudeľuje žiadnu licenciu, výslovnú ani implicitnú, na akékoľvek právo duševného vlastníctva.
Opätovný predaj produktov ST s ustanoveniami odlišnými od informácií uvedených v tomto dokumente ruší akúkoľvek záruku poskytnutú spoločnosťou ST na takýto produkt.
ST a logo ST sú ochranné známky spoločnosti ST. Ďalšie informácie o ochranných známkach ST nájdete na www.st.com/trademarks. Všetky ostatné názvy produktov alebo služieb sú majetkom ich príslušných vlastníkov.
Informácie v tomto dokumente nahrádzajú a nahrádzajú informácie predtým uvedené v akýchkoľvek predchádzajúcich verziách tohto dokumentu.

© 2024 STMicroelectronics – Všetky práva vyhradené

Dokumenty / zdroje

ST X-CUBE-MEMS1 MotionEC je Middleware Library [pdf] Používateľská príručka
X-CUBE-MEMS1 MotionEC je Middleware Library, X-CUBE-MEMS1, MotionEC je Middleware Library, Middleware Library, Library

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *