UM2225
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
- 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
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.).
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.
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.
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.
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] ali [Stop]
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.
4. korak. Kliknite na [E-kompas], da odprete namensko stran za to knjižnico.
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.
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.
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.
- UM1859: Začetek uporabe X-CUBE-MEMS1 gibanja MEMS in razširitev programske opreme senzorja okolja za STM32Cube
- UM1724: plošče STM32 Nucleo-64 (MB1136)
- 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 |