UM2225
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
- 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
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ď.).
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.
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
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.
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ť] alebo [Stop]
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.
Krok 4. Kliknutím na [E-Compass] otvoríte vyhradenú stránku pre túto knižnicu.
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.
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.
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.
- UM1859: Začíname s rozšírením softvéru X-CUBE-MEMS1 motion MEMS a senzora prostredia pre STM32Cube
- UM1724: dosky STM32 Nucleo-64 (MB1136)
- 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 |