UM2225
Vartotojo vadovas
Darbo su MotionEC realiuoju laiku E-Compass biblioteka pradžia X-CUBE-MEMS1, skirta STM32Cube
Įvadas
MotionEC yra X-CUBE-MEMS1 programinės įrangos tarpinės programinės įrangos bibliotekos komponentas ir veikia STM3z2. Ji teikia informaciją apie įrenginio orientaciją ir judėjimo būseną realiuoju laiku pagal duomenis iš įrenginio.
Jis suteikia šiuos išėjimus: įrenginio orientaciją (kvadratinius, Eulerio kampus), įrenginio sukimąsi (virtualaus giroskopo funkcionalumą), gravitacijos vektorių ir tiesinį pagreitį.
Ši biblioteka skirta dirbti tik su ST MEMS.
Algoritmas pateikiamas statinės bibliotekos formatu ir yra skirtas naudoti STM32 mikrovaldikliuose, pagrįstuose ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 ir ARM®. Cortex®-M7 architektūros.
Jis sukurtas naudojant STM32Cube programinės įrangos technologiją, kad būtų lengviau perkelti įvairius STM32 mikrovaldiklius.
Programinė įranga pateikiama su sampdiegimas veikia X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 arba X-NUCLEO-IKS02A1 išplėtimo plokštėje NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE arba NUCLEO-L073REZ kūrimo plokštėje.
Akronimai ir santrumpos
1 lentelė. Akronimų sąrašas
Akronimas | Aprašymas |
API | Programų programavimo sąsaja |
BSP | Valdybos palaikymo paketas |
GUI | Grafinė vartotojo sąsaja |
HAL | Aparatinės įrangos abstrakcijos sluoksnis |
IDE | Integruota kūrimo aplinka |
MotionEC tarpinės programinės įrangos biblioteka X-CUBE-MEMS1 programinės įrangos plėtinyje, skirta STM32Cube
2.1 MotionEC baigėsiview
MotionEC biblioteka išplečia X-CUBE-MEMS1 programinės įrangos funkcionalumą.
Biblioteka renka duomenis iš akselerometro ir magnetometro ir pateikia informaciją apie įrenginio orientaciją bei judėjimo būseną pagal duomenis iš įrenginio.
Biblioteka skirta tik ST MEMS. Funkcionalumas ir veikimas naudojant kitus MEMS jutiklius nėra analizuojami ir gali labai skirtis nuo aprašytų dokumente.
A sample įgyvendinti galima X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ir X-NUCLEO-IKS02A1 išplėtimo plokštėse, sumontuotose ant NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE arba NUCLEO-LE073 plėtimosi plokštės.
2.2 MotionEC biblioteka
Techninę informaciją, visiškai apibūdinančią MotionEC API funkcijas ir parametrus, galite rasti MotionEC_Package.chm sudarytame HTML file esančiame aplanke Dokumentacija.
2.2.1 MotionEC bibliotekos aprašymas
MotionEC E-Compass biblioteka valdo duomenis, gautus iš akselerometro ir magnetometro; jame yra:
- įrenginio orientacija (keturkampiai, Eulerio kampai), įrenginio sukimasis (virtuali giroskopo funkcija), gravitacijos vektorius ir linijinio pagreičio išėjimai
- funkcionalumas pagrįstas tik akselerometro ir magnetometro duomenimis
- reikalingi akselerometro ir magnetometro duomenys samplingavimo dažnis iki 100 Hz
- išteklių reikalavimai:
– Cortex-M0+: 3.7 kB kodo ir 0.1 kB duomenų atminties
– Cortex-M3: 3.8 kB kodo ir 0.1 kB duomenų atminties
– Cortex-M33: 2.8 kB kodo ir 0.1 kB duomenų atminties
– Cortex-M4: 2.9 kB kodo ir 0.1 kB duomenų atminties
– Cortex-M7: 2.8 kB kodo ir 0.1 kB duomenų atminties - galima ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 ir Cortex M7 architektūroms
2.2.2 MotionEC API
MotionEC API yra:
- uint8_t MotionEC_GetLibVersion (char * versija)
– nuskaito bibliotekos versiją
– *versija yra žymeklis į 35 simbolių masyvą
– grąžina simbolių skaičių versijos eilutėje
• void MotionEC_Initialize (MEC_mcu_type_t mcu_type, float freq)
– atlieka MotionEC bibliotekos inicijavimą ir vidinio mechanizmo sąranką.
– mcu_type yra MCU tipas:
◦ MFX_CM0P_MCU_STM32 yra standartinis STM32 MCU
◦ MFX_CM0P_MCU_BLUE_NRG1 yra BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 yra BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP yra BlueNRG -LP
– freq yra jutiklio samplingavimo dažnis [Hz]
Pastaba: Šią funkciją reikia iškviesti prieš naudojant E-Compass biblioteką, o prieš naudojant biblioteką turi būti įjungtas CRC modulis STM32 mikrovaldiklyje (RCC periferinio laikrodžio įjungimo registre).
- void MotionEC_SetFrequency(float freq)
– nustato samplingavimo dažnis (filtravimo parametrų keitimas)
– freq yra jutiklio samplingavimo dažnis [Hz] • negalioja MotionEC_Run (MEC_input_t *data_in, MEC_output_t *data_out)
– veikia E-Compass algoritmas (akcelerometro ir magnetometro duomenų suliejimas)
– *data_in yra rodyklė į struktūrą su įvesties duomenimis
– MEC_input_t struktūros tipo parametrai yra šie:
◦ acc[3] yra akselerometro duomenų masyvas pagal ENU susitarimą, matuojamas g
◦ mag[3] yra magnetometro kalibruotų duomenų masyvas pagal ENU susitarimą, matuojamas μT/50
◦ deltalaikas s yra delta laikas (ty laiko delsa tarp seno ir naujo duomenų rinkinio), matuojamas s
– *data_out yra rodyklė į struktūrą su išvesties duomenimis
– MEC_output_t struktūros tipo parametrai yra šie:
◦ quaternion[4] yra masyvas, kuriame yra kvaternionas pagal ENU susitarimą, nurodantis įrenginio 3kampinę orientaciją erdvėje; elementų tvarka yra: X, Y, Z, W, su visada teigiamu elementu W
◦ euleris[3] yra Eulerio kampų masyvas pagal ENU susitarimą, vaizduojantis įrenginio 3D kampinę orientaciją erdvėje; elementų tvarka yra tokia: posūkis, žingsnis, posūkis, matuojamas laipsniais
◦ i_gyro[3] yra kampinių dažnių masyvas pagal ENU susitarimą, vaizduojantis virtualų giroskopo jutiklį, matuojamas dps
◦ gravitacija[3] yra pagreičių masyvas pagal ENU susitarimą, vaizduojantis gravitacijos vektorių, matuojamas g
◦ tiesinis[3] yra pagreičių masyvas pagal ENU susitarimą, reiškiantis įrenginio linijinį pagreitį, išmatuotą g
- void MotionEC_GetOrientationEnable(MEC_state_t *state)
– gauna Eulerio kampo skaičiavimo įjungimo/išjungimo būseną
– *būsena yra dabartinės įjungimo / išjungimo būsenos rodyklė - void MotionEC_SetOrientationEnable (MEC_state_t būsena)
– nustato Eulerio kampo skaičiavimo įjungimo/išjungimo būseną
– būsena yra nauja įgalinimo / išjungimo būsena, kurią reikia nustatyti - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
– gauna virtualaus giroskopo skaičiavimo įjungimo / išjungimo būseną
– *būsena yra dabartinės įjungimo / išjungimo būsenos rodyklė - void MotionEC_SetVirtualGyroEnable (MEC_state_t būsena)
– nustato virtualaus giroskopo skaičiavimo įjungimo/išjungimo būseną
– būsena yra nauja įgalinimo / išjungimo būsena, kurią reikia nustatyti - void MotionEC_GetGravityEnable(MEC_state_t *state)
– gauna gravitacijos vektoriaus skaičiavimo įjungimo/išjungimo būseną
– *būsena yra dabartinės įjungimo / išjungimo būsenos rodyklė - void MotionEC_SetGravityEnable (MEC_state_t būsena)
– nustato gravitacijos vektoriaus skaičiavimo įjungimo/išjungimo būseną
– būsena yra nauja įgalinimo / išjungimo būsena, kurią reikia nustatyti - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
– gauna tiesinio pagreičio skaičiavimo įjungimo/išjungimo būseną
– *būsena yra dabartinės įjungimo / išjungimo būsenos rodyklė - void MotionEC_SetLinearAccEnable (MEC_state_t būsena)
– nustato tiesinio pagreičio skaičiavimo įjungimo/išjungimo būseną
– būsena yra nauja įgalinimo / išjungimo būsena, kurią reikia nustatyti
2.2.3 API srauto diagrama
2.2.4 Demonstracinis kodas
Šis demonstracinis kodas nuskaito duomenis iš akselerometro ir magnetometro jutiklių ir gauna ECompass duomenis (ty kvaternioną, Eulerio kampus ir kt.).
2.2.5 Algoritmo veikimas
E-Compass algoritmas naudoja tik akselerometro ir magnetometro duomenis. Jis veikia žemu dažniu (iki 100 Hz), kad sumažintų energijos sąnaudas.
Sample paraiška
MotionEC tarpinė programinė įranga gali būti lengvai valdoma kuriant vartotojo programas; kaipampprograma pateikiama aplanke Programa.
Jis skirtas veikti NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE arba NUCLEO-L073RZ kūrimo plokštėje, prijungtoje prie X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 arba X-NUCLEO-IKSions02A1expan plokštės.
Programa realiu laiku atpažįsta įrenginio orientaciją ir sukimąsi. Duomenys gali būti rodomi per GUI.
Algoritmas pateikia šiuos išėjimus: įrenginio orientaciją (kvadratinius, Eulerio kampus), įrenginio sukimąsi (virtualaus giroskopo funkcionalumą), gravitacijos vektorių ir tiesinį pagreitį.
3.1 MEMS-Studio programa
Šample programa naudoja MEMS-Studio programą, kurią galima atsisiųsti iš www.st.com.
1 veiksmas. Įsitikinkite, kad įdiegtos reikiamos tvarkyklės ir prie kompiuterio prijungta STM32 Nucleo plokštė su atitinkama išplėtimo plokšte.
2 veiksmas. Paleiskite programą MEMS-Studio, kad atidarytumėte pagrindinį programos langą.
Jei prie kompiuterio prijungiama STM32 Nucleo plokštė su palaikoma programine įranga, atitinkamas COM prievadas aptinkamas automatiškai. Paspauskite [Connect] mygtuką, kad užmegztumėte ryšį su vertinimo plokšte.
3 veiksmas. Prijungus prie STM32 Nucleo plokštės su palaikoma programine įranga, atidaromas skirtukas [Library Evaluation].
Norėdami pradėti ir sustabdyti duomenų srautinį perdavimą, perjunkite atitinkamą [Pradėti] arba [Stop]
mygtuką išorinėje vertikalioje įrankių juostoje.
Iš prijungto jutiklio gaunami duomenys gali būti viewed pasirinkę skirtuką [Duomenų lentelė] vidinėje vertikalioje įrankių juostoje.
4 veiksmas. Spustelėkite [E-Compass], kad atidarytumėte šiai bibliotekai skirtą puslapį.
Aukščiau pateiktame paveikslėlyje parodytas STM32 Nucleo grafinis modelis. Modelio orientacija ir pasukimas yra pagrįsti E-Compass duomenimis (ketvironiais), apskaičiuotais pagal algoritmą.
Norėdami suderinti tikrąjį įrenginio judėjimą su grafiniu modeliu, nukreipkite įrenginį į ekraną ir paspauskite [Reset model].
Antraštės reikšmė parodo tikrą įrenginio antraštę.
Nukreipus įrenginį tiesiai aukštyn arba žemyn (išilgai ENU atskaitos rėmo aukštyn ašies, su ±5 laipsnių tolerancija), antraštei gaunama N/A reikšmė: neįmanoma atskirti, į kurį pagrindinį tašką nukreipia prietaisas.
Gerumo reikšmė suteikia nuo 0 iki 3 verčių ir yra susijusi su magnetometro kalibravimu: kuo didesnė vertė, tuo geresni E-Compass duomenų algoritmo rezultatai.
5 veiksmas. Spustelėkite [Išsaugoti File], kad atidarytumėte duomenų registravimo konfigūracijos langą. Pasirinkite jutiklį ir E-kompaso duomenis, kuriuos norite išsaugoti file. Galite pradėti arba sustabdyti išsaugojimą spustelėdami atitinkamą mygtuką.
6 veiksmas. Duomenų įvedimo režimu galima siųsti anksčiau gautus duomenis į biblioteką ir gauti rezultatą. Vertikalioje įrankių juostoje pasirinkite skirtuką [Data Injection], kad atidarytumėte tam skirtą view šiai funkcijai.
7 veiksmas. Spustelėkite mygtuką [Naršyti], kad pasirinktumėte file su anksčiau užfiksuotais duomenimis CSV formatu.
Duomenys bus įkeliami į lentelę srovėje view.
Kiti mygtukai taps aktyvūs. Galite spustelėti:
– Mygtukas [Offline Mode], skirtas įjungti / išjungti programinės įrangos neprisijungus režimą (režimas, kuriame naudojami anksčiau užfiksuoti duomenys).
– Mygtukai [Start]/[Stop]/[Step]/[Repeat], norėdami valdyti duomenų tiekimą iš MEMS-Studio į biblioteką.
Nuorodos
Visi šie ištekliai yra laisvai prieinami www.st.com.
- UM1859: darbo pradžia su X-CUBE-MEMS1 judesio MEMS ir aplinkos jutiklio programinės įrangos plėtra, skirta STM32Cube
- UM1724: STM32 Nucleo-64 plokštės (MB1136)
- UM3233: darbo su MEMS-Studio pradžia
Revizijų istorija
4 lentelė. Dokumento taisymo istorija
Data | Versija | Pakeitimai |
18 m. gegužės 17 d | 1 | Pradinis išleidimas. |
25-sausio-18 | 2 | Pridėtos nuorodos į NUCLEO-L152RE kūrimo plokštę ir 2 lentelę. Prabėgusio laiko (μs) algoritmas. |
21 m. kovo 18 d | 3 | Atnaujintas įvadas ir 2.1 skyrius „MotionEC“ baigėsiview. |
26 m. lapkričio 18 d | 4 | Pridėta 3 lentelė. Cortex -M0+: praėjusio laiko (µs) algoritmas. Pridėtos nuorodos į ARM® Cortex® – M0+ ir NUCLEO-L073RZ kūrimo plokštė. |
19 m. vasario 19 d | 5 | Atnaujintas 1 pav. ENU atskaitos rėmelis, 2 lentelė. Cortex -M4 ir Cortex-M3: praėjusio laiko (µs) algoritmas, 3 lentelė. Cortex -M0+: praėjusio laiko (µs) algoritmas, 3 pav. Jutiklio išplėtimo plokštės adapteris, prijungtas prie STM32 Nucleo, 4 pav. Unicleo pagrindinis langas, 5 pav. Vartotojo pranešimų skirtukas, 6 pav. E-Compass langas ir 7 pav. Duomenų žurnalo langas. Pridėta X-NUCLEO-IKS01A3 išplėtimo plokštės suderinamumo informacija. |
25 m. kovo 20 d | 6 | Atnaujintas įvadas, 2.2.1 skyrius: MotionEC bibliotekos aprašymas ir 2.2.5 skyrius: Algoritmo veikimas. Pridėta ARM Cortex-M7 architektūros suderinamumo informacija. |
17-24-XNUMX | 7 | Atnaujintas skyriaus įvadas, 2.1 skirsnis: MotionEC baigtasview, 2.2.1 skyrius: MotionEC biblioteka aprašymas, 2.2.2 skirsnis: MotionEC API, 2.2.5 skirsnis: Algoritmas pasirodymas, 3 skyrius: Sample programa, 3.1 skyrius: MEMS-Studio programa |
SVARBI PRANEŠIMAS – ATIDŽIAI SKAITYKITE
STMicroelectronics NV ir jos dukterinės įmonės („ST“) pasilieka teisę bet kuriuo metu be įspėjimo keisti, taisyti, patobulinti, modifikuoti ir tobulinti ST gaminius ir (arba) šį dokumentą. Prieš pateikdami užsakymą pirkėjai turėtų gauti naujausią atitinkamą informaciją apie ST gaminius. ST gaminiai parduodami pagal ST pardavimo sąlygas, galiojančias užsakymo patvirtinimo metu.
Pirkėjai yra išimtinai atsakingi už ST gaminių pasirinkimą, pasirinkimą ir naudojimą, o ST neprisiima jokios atsakomybės už pagalbą taikant ar pirkėjų gaminių dizainą.
ST nesuteikia jokios tiesioginės ar numanomos licencijos jokioms intelektinės nuosavybės teisėms.
Perpardavus ST gaminius, kurių nuostatos skiriasi nuo čia pateiktos informacijos, panaikina bet kokią ST tokiam produktui suteiktą garantiją.
ST ir ST logotipas yra ST prekių ženklai. Daugiau informacijos apie ST prekių ženklus žr www.st.com/trademarks. Visi kiti produktų ar paslaugų pavadinimai yra atitinkamų savininkų nuosavybė.
Informacija šiame dokumente pakeičia ir pakeičia informaciją, anksčiau pateiktą bet kokiose ankstesnėse šio dokumento versijose.
© 2024 STMicroelectronics – Visos teisės saugomos
Dokumentai / Ištekliai
![]() |
ST X-CUBE-MEMS1 MotionEC yra tarpinės programinės įrangos biblioteka [pdfNaudotojo vadovas X-CUBE-MEMS1 MotionEC yra tarpinės programinės įrangos biblioteka, X-CUBE-MEMS1, MotionEC yra tarpinių programų biblioteka, tarpinių programų biblioteka, biblioteka |