ST X - logotipUM2225
Uporabniški priročnik

Začetek uporabe knjižnice MotionEC E-Compass v realnem času v razširitvi X-CUBE-MEMS1 za STM32Cube

Uvod

MotionEC je komponenta knjižnice vmesne programske opreme programske opreme X-CUBE-MEMS1 in deluje na STM3z2. Zagotavlja informacije v realnem času o usmerjenosti naprave in stanju gibanja na podlagi podatkov iz naprave.
Zagotavlja naslednje izhode: orientacijo naprave (kvaternioni, Eulerjevi koti), rotacijo naprave (funkcionalnost virtualnega žiroskopa), vektor gravitacije in linearni pospešek.
Ta knjižnica je namenjena samo delovanju s ST MEMS.
Algoritem je na voljo v obliki statične knjižnice in je zasnovan za uporabo na mikrokrmilnikih STM32, ki temeljijo na ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 in ARM® Arhitekture Cortex®-M7.
Zgrajen je na vrhu tehnologije programske opreme STM32Cube za lažjo prenosljivost med različnimi mikrokontrolerji STM32.
Programska oprema je priložena sampimplementacija le, ki se izvaja na razširitveni plošči X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ali X-NUCLEO-IKS02A1 na razvojni plošči NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ali NUCLEO-L073RZ.

Kratice in okrajšave

Tabela 1. Seznam akronimov

akronim Opis
API Vmesnik za programiranje aplikacij
BSP Paket podpore plošče
GUI Grafični uporabniški vmesnik
HAL Plast abstrakcije strojne opreme
IDE Integrirano razvojno okolje

Knjižnica vmesne programske opreme MotionEC v razširitvi programske opreme X-CUBE-MEMS1 za STM32Cube

2.1 MotionEC konecview
Knjižnica MotionEC razširja funkcionalnost programske opreme X-CUBE-MEMS1.
Knjižnica pridobiva podatke iz merilnika pospeška in magnetometra ter zagotavlja informacije o orientaciji naprave in stanju gibanja na podlagi podatkov iz naprave.
Knjižnica je zasnovana samo za ST MEMS. Funkcionalnost in zmogljivost pri uporabi drugih senzorjev MEMS nista analizirani in se lahko bistveno razlikujeta od opisanega v dokumentu.
A sampIzvedba je na voljo na razširitveni plošči X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 in X-NUCLEO-IKS02A1, nameščeni na razvojni plošči NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ali NUCLEO-L073RZ.
2.2 Knjižnica MotionEC
Tehnične informacije, ki v celoti opisujejo funkcije in parametre API-jev MotionEC, lahko najdete v prevedenem HTML-ju MotionEC_Package.chm file ki se nahaja v mapi Dokumentacija.

2.2.1 Opis knjižnice MotionEC
Knjižnica MotionEC E-Compass upravlja podatke, pridobljene iz merilnika pospeška in magnetometra; ima:

  • orientacija naprave (kvaternioni, Eulerjevi koti), rotacija naprave (funkcionalnost virtualnega žiroskopa), gravitacijski vektor in izhodi linearnega pospeška
  • funkcionalnost, ki temelji samo na podatkih merilnika pospeška in magnetometra
  • potrebni podatki merilnika pospeška in magnetometra sampzvočna frekvenca do 100 Hz
  • zahteve glede sredstev:
    – Cortex-M0+: 3.7 kB kodnega in 0.1 kB podatkovnega pomnilnika
    – Cortex-M3: 3.8 kB kodnega in 0.1 kB podatkovnega pomnilnika
    – Cortex-M33: 2.8 kB kodnega in 0.1 kB podatkovnega pomnilnika
    – Cortex-M4: 2.9 kB kodnega in 0.1 kB podatkovnega pomnilnika
    – Cortex-M7: 2.8 kB kodnega in 0.1 kB podatkovnega pomnilnika
  • na voljo za arhitekture ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 in Cortex M7

2.2.2 API-ji MotionEC
API-ji MotionEC so:

  • uint8_t MotionEC_GetLibVersion(char *različica)
    – pridobi različico knjižnice
    – *različica je kazalec na niz 35 znakov
    – vrne število znakov v nizu različice
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – izvaja inicializacijo knjižnice MotionEC in nastavitev notranjega mehanizma.
    – mcu_type je tip MCU:
    ◦ MFX_CM0P_MCU_STM32 je standardni STM32 MCU
    ◦ 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
    – frekvenca je senzor sampling frekvenca [Hz]

Opomba: To funkcijo je treba poklicati pred uporabo knjižnice E-Compass in pred uporabo knjižnice mora biti omogočen modul CRC v mikrokrmilniku STM32 (v registru za omogočanje periferne ure RCC).

  • void MotionEC_SetFrequency(float freq)
    – nastavi sampling frekvenca (spreminjanje parametrov filtriranja)
    – frekvenca je senzor sampling frekvenca [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – poganja algoritem E-Compass (fuzija podatkov merilnika pospeška in magnetometra)
    – *data_in je kazalec na strukturo z vhodnimi podatki
    – parametri za tip strukture MEC_input_t so:
    ◦ acc[3] je niz podatkov merilnika pospeška po konvenciji ENU, merjen v g
    ◦ mag[3] je niz podatkov, umerjenih z magnetometrom po konvenciji ENU, merjen v μT/50
    ◦ deltatime s je delta čas (tj. časovni zamik med starim in novim naborom podatkov), izmerjen v s
    – *data_out je kazalec na strukturo z izhodnimi podatki
    – parametri za strukturni tip MEC_output_t so:
    ◦ kvaternion[4] je niz, ki vsebuje kvaternion v konvenciji ENU, ki predstavlja 3Dangularno orientacijo naprave v prostoru; vrstni red elementov je: X, Y, Z, W, pri čemer je vedno pozitiven element W
    ◦ euler[3] je niz Eulerjevih kotov po konvenciji ENU, ki predstavlja 3D-kotno orientacijo naprave v prostoru; vrstni red elementov je: odklon, naklon, nagib, merjeno v stopinjah
    ◦ i_gyro[3] je niz kotnih stopenj v konvenciji ENU, ki predstavlja virtualni žiroskopski senzor, merjen v dps
    ◦ gravitacija[3] je niz pospeškov po konvenciji ENU, ki predstavlja gravitacijski vektor, merjen v g
    ◦ linear[3] je niz pospeškov po konvenciji ENU, ki predstavlja linearni pospešek naprave, izmerjen v g
    ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme-
  • void MotionEC_GetOrientationEnable(MEC_state_t *stanje)
    – pridobi stanje omogoči/onemogoči izračun Eulerjevega kota
    – *stanje je kazalec na trenutno omogoči/onemogoči stanje
  • void MotionEC_SetOrientationEnable(stanje MEC_state_t)
    – nastavi stanje omogoči/onemogoči izračun Eulerjevega kota
    – stanje je novo stanje omogočanja/onemogočanja, ki ga je treba nastaviti
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *stanje)
    – pridobi stanje omogoči/onemogoči izračun virtualnega žiroskopa
    – *stanje je kazalec na trenutno omogoči/onemogoči stanje
  • void MotionEC_SetVirtualGyroEnable(stanje MEC_state_t)
    – nastavi stanje omogočanja/onemogočanja izračuna virtualnega žiroskopa
    – stanje je novo stanje omogočanja/onemogočanja, ki ga je treba nastaviti
  • void MotionEC_GetGravityEnable(MEC_state_t *stanje)
    – pridobi stanje omogoči/onemogoči izračun vektorja gravitacije
    – *stanje je kazalec na trenutno omogoči/onemogoči stanje
  • void MotionEC_SetGravityEnable(stanje MEC_state_t)
    – nastavi stanje omogoči/onemogoči izračun gravitacijskega vektorja
    – stanje je novo stanje omogočanja/onemogočanja, ki ga je treba nastaviti
  • void MotionEC_GetLinearAccEnable(MEC_state_t *stanje)
    – pridobi stanje omogoči/onemogoči izračun linearnega pospeška
    – *stanje je kazalec na trenutno omogoči/onemogoči stanje
  • void MotionEC_SetLinearAccEnable(stanje MEC_state_t)
    – nastavi stanje omogoči/onemogoči izračun linearnega pospeška
    – stanje je novo stanje omogočanja/onemogočanja, ki ga je treba nastaviti

2.2.3 Diagram poteka API-ja

ST X CUBE MEMS1 MotionEC je zaporedje knjižnic vmesne programske opreme

2.2.4 Demo koda
Naslednja predstavitvena koda bere podatke s senzorjev merilnika pospeška in magnetometra ter pridobi podatke ECompass (tj. kvaternion, Eulerjev kot itd.).

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – Demo kodaST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – Demo koda1

2.2.5 Delovanje algoritma
Algoritem E-Compass uporablja samo podatke iz merilnika pospeška in magnetometra. Deluje pri nizki frekvenci (do 100 Hz), da zmanjša porabo energije.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – vstavljanje podatkov1

Sample aplikacija

Vmesno programsko opremo MotionEC je mogoče enostavno manipulirati za izdelavo uporabniških aplikacij; kotampAplikacija je na voljo v mapi Application.
Zasnovan je za delovanje na razvojni plošči NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ali NUCLEO-L073RZ, povezani z razširitveno ploščo X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ali X-NUCLEO-IKS02A1.

ST X CUBE MEMS1 MotionEC je vmesnik knjižnice vmesne programske opreme

Aplikacija prepozna usmerjenost in rotacijo naprave v realnem času. Podatke je mogoče prikazati prek GUI.
Algoritem zagotavlja naslednje izhode: orientacijo naprave (kvaternioni, Eulerjevi koti), rotacijo naprave (funkcionalnost virtualnega žiroskopa), vektor gravitacije in linearni pospešek.
3.1 Aplikacija MEMS-Studio
Sample aplikacija uporablja aplikacijo MEMS-Studio, ki jo lahko prenesete s www.st.com.
1. korak. Prepričajte se, da so nameščeni potrebni gonilniki in da je plošča STM32 Nucleo z ustrezno razširitveno ploščo povezana z osebnim računalnikom.
2. korak. Zaženite aplikacijo MEMS-Studio, da odprete glavno okno aplikacije.
Če je na računalnik priključena plošča STM32 Nucleo s podprto vdelano programsko opremo, se samodejno zazna ustrezna vrata COM. Pritisnite gumb [Poveži], da vzpostavite povezavo z ocenjevalno ploščo.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme - Connect

3. korak. Pri povezavi s ploščo STM32 Nucleo s podprto vdelano programsko opremo se odpre zavihek [Library Evaluation].
Če želite začeti in ustaviti pretakanje podatkov, preklopite ustrezno [Start] ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – ikona ali [Stop] ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – ikona1 gumb na zunanji navpični orodni vrstici.
Podatki, ki prihajajo iz priključenega senzorja, so lahko viewizberite zavihek [Podatkovna tabela] v notranji navpični orodni vrstici.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – podatkovna tabela

4. korak. Kliknite na [E-kompas], da odprete namensko stran za to knjižnico.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme - Compass

Zgornja slika prikazuje grafični model STM32 Nucleo. Orientacija in rotacija modela temeljita na podatkih E-kompasa (kvaternionih), ki jih izračuna algoritem.
Če želite uskladiti dejansko gibanje naprave z grafičnim modelom, usmerite napravo proti zaslonu in pritisnite [Ponastavi model].
Vrednost naslova predstavlja pravi naslov naprave.
Če napravo usmerite naravnost navzgor ali navzdol (vzdolž gornje osi referenčnega okvirja ENU, z toleranco ±5 stopinj), dobite vrednost N/A za smer: ni mogoče razločiti, na katero kardinalno točko kaže naprava.
Vrednost dobrote daje vrednosti od 0 do 3 in je povezana s kalibracijo magnetometra: višja kot je vrednost, boljši so rezultati podatkovnega algoritma E-Compass.
5. korak. Kliknite na [Shrani v File], da odprete konfiguracijsko okno za beleženje podatkov. Izberite podatke senzorja in e-kompasa, ki jih želite shraniti v file. Shranjevanje lahko začnete ali končate s klikom na ustrezen gumb.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme - Shrani v File

6. korak Način vnosa podatkov lahko uporabite za pošiljanje predhodno pridobljenih podatkov v knjižnico in prejem rezultata. V navpični orodni vrstici izberite zavihek [Vstavljanje podatkov], da odprete namenski view za to funkcionalnost.

ST X CUBE MEMS1 MotionEC je knjižnica vmesne programske opreme – vstavljanje podatkov

7. korak Kliknite gumb [Prebrskaj], da izberete file s predhodno zajetimi podatki v formatu CSV.
Podatki bodo naloženi v tabelo v trenutnem view.
Drugi gumbi bodo postali aktivni. Lahko kliknete na:
– Gumb [Način brez povezave] za vklop/izklop načina brez povezave vdelane programske opreme (način, ki uporablja predhodno zajete podatke).
– Gumbi [Start]/[Stop]/[Step]/[Repeat] za nadzor podajanja podatkov iz MEMS-Studio v knjižnico.

Reference

Vsi naslednji viri so prosto dostopni na www.st.com.

  1. UM1859: Začetek uporabe X-CUBE-MEMS1 gibanja MEMS in razširitev programske opreme senzorja okolja za STM32Cube
  2.  UM1724: plošče STM32 Nucleo-64 (MB1136)
  3. UM3233: Uvod v MEMS-Studio

Zgodovina revizij

Tabela 4. Zgodovina revizij dokumenta

Datum Različica Spremembe
18. maj 17 1 Začetna izdaja.
25. januarja 18 2 Dodane reference na razvojno ploščo NUCLEO-L152RE in tabelo 2.
Algoritem pretečenega časa (μs).
21-mar-18 3 Konec posodobljenega uvoda in razdelka 2.1 MotionECview.
26-18 4 Dodana tabela 3. Cortex -M0+: algoritem pretečenega časa (µs). Dodane reference na ARM®
Cortex® – M0+ in razvojna plošča NUCLEO-L073RZ.
19-19.feb 5 Posodobljena slika 1. Referenčni okvir ENU, tabela 2. Cortex -M4 in Cortex-M3: algoritem pretečenega časa (µs), tabela 3.
Cortex -M0+: algoritem pretečenega časa (µs), Slika 3. Adapter razširitvene plošče senzorja, priključen na STM32
Nucleo, Slika 4. Glavno okno Unicleo, Slika 5. Zavihek Uporabniška sporočila, Slika 6. Okno E-Compass in Slika 7. Okno Datalog. Dodane informacije o združljivosti razširitvene plošče X-NUCLEO-IKS01A3.
25-mar-20 6 Posodobljen uvod, razdelek 2.2.1: Opis knjižnice MotionEC in razdelek 2.2.5: Zmogljivost algoritma.
Dodane informacije o združljivosti arhitekture ARM Cortex-M7.
17. september 24 7 Posodobljen oddelek Uvod,
Razdelek 2.1: Konec MotionECview,
Razdelek 2.2.1: Knjižnica MotionEC
opis, razdelek 2.2.2: MotionEC
API-ji, razdelek 2.2.5: Algoritem
predstava, 3. del: Sample
aplikacija, razdelek 3.1: aplikacija MEMS-Studio

POMEMBNO OBVESTILO – POZORNO PREBERITE
STMicroelectronics NV in njegove hčerinske družbe (»ST«) si pridržujejo pravico do sprememb, popravkov, izboljšav, modifikacij in izboljšav izdelkov ST in/ali tega dokumenta kadar koli brez predhodnega obvestila. Kupci morajo pred oddajo naročil pridobiti najnovejše ustrezne informacije o izdelkih ST. Izdelki ST se prodajajo v skladu s prodajnimi pogoji ST, ki veljajo v času potrditve naročila.
Kupci so izključno odgovorni za izbiro, izbiro in uporabo izdelkov ST in ST ne prevzema nobene odgovornosti za pomoč pri uporabi ali oblikovanje izdelkov kupcev.
ST v tem dokumentu ne podeljuje nobene licence, izrecne ali implicitne, za katero koli pravico do intelektualne lastnine.
Nadaljnja prodaja izdelkov ST z določbami, ki se razlikujejo od informacij, navedenih v tem dokumentu, razveljavi vsako garancijo, ki jo ST odobri za tak izdelek.
ST in logotip ST sta blagovni znamki ST. Za dodatne informacije o blagovnih znamkah ST glejte www.st.com/trademarks. Vsa druga imena izdelkov ali storitev so last njihovih lastnikov.
Informacije v tem dokumentu prevladajo in nadomeščajo informacije, ki so bile predhodno navedene v kateri koli prejšnji različici tega dokumenta.

© 2024 STMicroelectronics – Vse pravice pridržane

Dokumenti / Viri

ST X-CUBE-MEMS1 MotionEC je knjižnica vmesne programske opreme [pdf] Priročnik za lastnika
X-CUBE-MEMS1 MotionEC je knjižnica vmesne programske opreme, X-CUBE-MEMS1, MotionEC je knjižnica vmesne programske opreme, knjižnica vmesne programske opreme, knjižnica

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *