UM 2225
Uzantmanlibro
Komencu kun MotionEC realtempa E-Compass-biblioteko en X-CUBE-MEMS1 vastiĝo por STM32Cube
Enkonduko
La MotionEC estas mezvarba biblioteko komponanto de la programaro X-CUBE-MEMS1 kaj funkcias per STM3z2. Ĝi provizas realtempajn informojn pri la aparato-orientiĝo kaj movada stato surbaze de datumoj de aparato.
Ĝi disponigas la sekvajn produktaĵojn: aparatorientiĝo (kvaternioj, Euler-anguloj), aparatrotacio (virtuala giroskopfunkcio), gravitvektoro kaj lineara akcelo.
Ĉi tiu biblioteko estas intencita labori kun ST MEMS nur.
La algoritmo estas provizita en senmova bibliotekformato kaj estas dizajnita por esti uzata sur STM32 mikroregiloj bazitaj sur la ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 kaj ARM®. Cortex®-M7-arkitekturoj.
Ĝi estas konstruita supre de STM32Cube programaro teknologio por faciligi porteblon tra malsamaj STM32 mikroregiloj.
La programaro venas kun sample efektivigo funkcianta sur X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 aŭ X-NUCLEO-IKS02A1 ekspansiotabulo sur NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE aŭ NUCLEO-L073RZ-disvolva tabulo.
Akronimoj kaj mallongigoj
Tabelo 1. Listo de akronimoj
Akronimo | Priskribo |
API | Interfaco de programado de aplikaĵoj |
BSP | Estraro-subtena pako |
GUI | Grafika uzantinterfaco |
HAL | Aparataro abstrakta tavolo |
IDE | Integrita evolumedio |
MotionEC-mezvarobiblioteko en X-CUBE-MEMS1-programa ekspansio por STM32Cube
2.1 MotionEC finiĝisview
La MotionEC-biblioteko vastigas la funkciecon de la programaro X-CUBE-MEMS1.
La biblioteko akiras datenojn de la akcelometro kaj magnetometro kaj disponigas informojn pri la aparatorientiĝo kaj movadstatuso bazita sur datenoj de aparato.
La biblioteko estas desegnita nur por ST MEMS. Funkcieco kaj efikeco dum uzado de aliaj MEMS-sensiloj ne estas analizitaj kaj povas esti signife diferencaj de tio, kio priskribis en la dokumento.
A sample-efektivigo haveblas sur X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 kaj X-NUCLEO-IKS02A1 ekspansiotabulo, muntita sur NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE aŭ NUCLEO-L073R-disvolvado.
2.2 MotionEC-biblioteko
Teknikaj informoj plene priskribantaj la funkciojn kaj parametrojn de la MotionEC-API-oj troveblas en la MotionEC_Package.chm kompilita HTML file troviĝas en la dosierujo Dokumentado.
2.2.1 Bibliotekopriskribo de MotionEC
La MotionEC E-Compass-biblioteko administras datumojn akiritajn de la akcelometro kaj magnetometro; ĝi prezentas:
- aparatorientiĝo (kvaternioj, Euler-anguloj), aparatrotacio (virtuala giroskopfunkcio), gravitvektoro kaj liniaj akcelproduktaĵoj
- funkcieco bazita sur la akcelometro kaj magnetometro datumoj nur
- bezonata akcelometro kaj magnetometro datumoj sampling frekvenco de ĝis 100 Hz
- Postuloj pri rimedoj:
– Cortex-M0+: 3.7 kB de kodo kaj 0.1 kB de datummemoro
– Cortex-M3: 3.8 kB de kodo kaj 0.1 kB de datummemoro
– Cortex-M33: 2.8 kB de kodo kaj 0.1 kB de datummemoro
– Cortex-M4: 2.9 kB de kodo kaj 0.1 kB de datummemoro
– Cortex-M7: 2.8 kB de kodo kaj 0.1 kB de datummemoro - disponebla por arkitekturoj ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 kaj Cortex M7
2.2.2 MotionEC-APIoj
La MotionEC-APIoj estas:
- uint8_t MotionEC_GetLibVersion(char *versio)
– retrovas la version de la biblioteko
– *versio estas montrilo al tabelo de 35 signoj
– liveras la nombron da signoj en la versio-ĉeno
• void MotionEC_Initialize (MEC_mcu_type_t mcu_type, flosita frekvenco)
– faras MotionEC-bibliotekan inicialigon kaj aranĝon de la interna mekanismo.
- mcu_type estas la tipo de MCU:
◦ MFX_CM0P_MCU_STM32 estas norma STM32 MCU
◦ MFX_CM0P_MCU_BLUE_NRG1 estas BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 estas BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP estas BlueNRG -LP
– frekvo estas la sensilo sampling-frekvenco [Hz]
Notu: Ĉi tiu funkcio devas esti vokita antaŭ ol uzi la E-Compass-bibliotekon kaj la CRC-modulo en mikroregilo STM32 (en RCC periferia horloĝo ebliga registro) devas esti ebligita antaŭ ol uzi la bibliotekon.
- malplena MotionEC_SetFrequency (flotfrekvenco)
– starigas la sampling-frekvenco (modifante la filtrajn parametrojn)
– frekvo estas la sensilo sampling-frekvenco [Hz] • void MotionEC_Run (MEC_input_t *data_in, MEC_output_t *data_out)
- funkcias la algoritmon E-Compass (akcelometro kaj magnetometro-fuzio de datumoj)
– *data_in estas montrilo al strukturo kun eniga datumoj
– la parametroj por la strukturo-tipo MEC_input_t estas:
◦ acc[3] estas tabelo de akcelometraj datumoj en ENU-konvencio, mezurita en g
◦ mag[3] estas aro de magnetometro kalibris datenojn en ENU-konvencio, mezuritaj en μT/50
◦ delta tempo s estas la delta tempo (t.e., tempoprokrasto inter malnova kaj nova datumaro) mezurita en s.
– *data_out estas montrilo al strukturo kun eligo-datumoj
– la parametroj por la strukturo-tipo MEC_output_t estas:
◦ kvaternion[4] estas tabelo enhavanta kvaronion en ENU-konvencio, reprezentante la 3Dangulan orientiĝon de la aparato en la spaco; ordo de elementoj estas: X, Y, Z, W, kun ĉiam pozitiva elemento W
◦ eŭler[3] estas tabelo de Euler-anguloj en ENU-konvencio, reprezentante la 3D-angulan orientiĝon de la aparato en spaco; la ordo de la elementoj estas: yaw, tono, ruliĝo, mezurita en gradoj
◦ i_gyro[3] estas aro de angulaj indicoj en ENU-konvencio, reprezentante virtualan giroskopsensilon, mezurita en dps.
◦ gravito[3] estas tabelo de akceloj en ENU-konvencio, reprezentante la gravitvektoron, mezurita en g
◦ lineara[3] estas tabelo de akceloj en ENU-konvencio, reprezentante la aparaton lineara akcelado, mezurita en g
- void MotionEC_GetOrientationEnable (MEC_state_t *stato)
– ricevas la ebligi/malŝalti staton de la Euler-angula kalkulo
– *stato estas montrilo al la nuna ebliga/malŝaltita stato - malplena MotionEC_SetOrientationEnable (MEC_state_t stato)
– fiksas la ebligi/malŝalti staton de la Euler-angula kalkulo
– stato estas la nova ebliga/malŝaltota stato - malplena MotionEC_GetVirtualGyroEnable (MEC_state_t *stato)
– ricevas la ebligi/malŝalti staton de la virtuala giroskopa kalkulo
– *stato estas montrilo al la nuna ebliga/malŝaltita stato - malplena MotionEC_SetVirtualGyroEnable (MEC_state_t stato)
– fiksas la ebligi/malŝalti staton de la virtuala giroskopa kalkulo
– stato estas la nova ebliga/malŝaltota stato - malplena MotionEC_GetGravityEnable (MEC_state_t *stato)
– ricevas la ebligi/malŝalti staton de la gravita vektora kalkulo
– *stato estas montrilo al la nuna ebliga/malŝaltita stato - malplena MotionEC_SetGravityEnable (MEC_state_t stato)
– fiksas la ebligi/malŝalti staton de la gravita vektora kalkulo
– stato estas la nova ebliga/malŝaltota stato - void MotionEC_GetLinearAccEnable (MEC_state_t *stato)
– ricevas la ebligi/malŝalti staton de la lineara akcela kalkulo
– *stato estas montrilo al la nuna ebliga/malŝaltita stato - void MotionEC_SetLinearAccEnable (MEC_state_t stato)
– fiksas la ebligi/malŝalti staton de la lineara akcela kalkulo
– stato estas la nova ebliga/malŝaltota stato
2.2.3 API-fludiagramo
2.2.4 Demo-kodo
La jena pruvkodo legas datumojn de la akcelometro kaj magnetometro-sensiloj kaj ricevas la ECompass-datenojn (t.e., kvaronjono, Euler-anguloj, ktp.).
2.2.5 Algoritma agado
La E-Compass-algoritmo uzas datumojn de la akcelometro kaj magnetometro nur. Ĝi funkcias je malalta frekvenco (ĝis 100 Hz) por redukti energikonsumon.
Sample aplikaĵo
La MotionEC-mezvaro povas esti facile manipulita por konstrui uzantajn aplikojn; kielampla aplikaĵo estas provizita en la dosierujo de Apliko.
Ĝi estas desegnita por funkcii sur NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE aŭ NUCLEO-L073RZ-disvolva tabulo konektita al X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 aŭ X-NUCLEO-IKS02A1-vastigtabulo.
La aplikaĵo rekonas la aparaton orientiĝon kaj rotacion en reala tempo. La datumoj povas esti montritaj per GUI.
La algoritmo disponigas la sekvajn produktaĵojn: aparatorientiĝo (kvaternioj, Euler-anguloj), aparatrotacio (virtuala giroskopfunkcio), gravitvektoro kaj linia akcelado.
3.1 MEMS-Studia aplikaĵo
La sampla aplikaĵo uzas la aplikaĵon MEMS-Studio, de kiu oni povas elŝuti www.st.com.
Paŝo 1. Certigu, ke la necesaj ŝoforoj estas instalitaj kaj la STM32 Nucleo-tabulo kun taŭga ekspansia tabulo estas konektita al la komputilo.
Paŝo 2. Lanĉu la MEMS-Studio-aplikaĵon por malfermi la ĉefan aplikaĵfenestron.
Se STM32 Nucleo-tabulo kun subtenata firmvaro estas konektita al la komputilo, la taŭga COM-haveno estas aŭtomate detektita. Premu la butonon [Konekti] por establi konekton al la taksa tabulo.
Paŝo 3. Kiam ligite al STM32 Nucleo-tabulo kun subtenata firmvaro, la langeto [Biblioteko-Taksado] estas malfermita.
Por komenci kaj ĉesigi datumfluadon, ŝaltu la taŭgan [Komencu] aŭ [Haltu]
butono sur la ekstera vertikala ilobreto.
La datumoj venantaj de la konektita sensilo povas esti viewed elektante la langeton [Datumtabelo] sur la interna vertikala ilbreto.
Paŝo 4. Klaku sur la [E-Kompaso] por malfermi la dediĉitan paĝon por ĉi tiu biblioteko.
La supra figuro montras grafikan modelon STM32 Nucleo. La modelorientiĝo kaj rotacio baziĝas sur E-Kompaso-datenoj (kvaternioj) kalkulitaj per la algoritmo.
Por vicigi la realan aparaton movadon kun la grafika modelo, direktu la aparaton al la ekrano kaj premu la [Restarigi modelon].
La titola valoro reprezentas la realan aparaton.
Montri la aparaton rekte supren aŭ malsupren (laŭ Supren-akso de ENU referenca kadro, kun ±5-grada toleremo) donas N/A valoron por la titolo: estas ne eble distingi al kiu kardinala punkto la aparato montras.
La bonvaloro donas 0 ĝis 3 valorojn kaj rilatas al la kalibrado de magnetometro: ju pli alta la valoro, des pli bonaj estas la rezultoj de la algoritmo de datumoj de E-Compass.
Paŝo 5. Alklaku [Konservi al File] por malfermi la agordan fenestron de datumregistrado. Elektu la sensilon kaj E-Kompason-datumojn por konservi en la file. Vi povas komenci aŭ ĉesi ŝpari alklakante la respondan butonon.
Paŝo 6. Data Injection-reĝimo povas esti uzata por sendi la antaŭe akiritajn datumojn al la biblioteko kaj ricevi la rezulton. Elektu la langeton [Injekto de datumoj] sur la vertikala ilobreto por malfermi la dediĉitan view por ĉi tiu funkcio.
Paŝo 7. Alklaku la butonon [Trarigardi] por elekti la file kun la antaŭe kaptitaj datumoj en CSV-formato.
La datumoj estos ŝarĝitaj en la tabelon en la nuna view.
Aliaj butonoj aktiviĝos. Vi povas klaki sur:
- Butono [Senreta Reĝimo] por ŝalti/malŝalti la firmvaran senreteman reĝimon (reĝimo utiliganta la antaŭe kaptitajn datumojn).
– [Komenco]/[Halti]/[Paŝo]/[Ripeti] por kontroli la datumfluon de MEMS-Studio al la biblioteko.
Referencoj
Ĉiuj jenaj rimedoj estas libere haveblaj ĉe www.st.com.
- UM1859: Komencu kun la X-CUBE-MEMS1-moviĝo MEMS kaj media sensila programaro ekspansio por STM32Cube
- UM1724: STM32 Nucleo-64-estraroj (MB1136)
- UM3233: Komenci kun MEMS-Studio
Historio de revizioj
Tabelo 4. Dokumenta reviziohistorio
Dato | Versio | Ŝanĝoj |
18-majo-17 | 1 | Komenca eldono. |
25-jan-18 | 2 | Aldonitaj referencoj al NUCLEO-L152RE-disvolva tabulo kaj Tabelo 2. Pasita tempo (μs) algoritmo. |
21-mar-18 | 3 | Ĝisdatigita Enkonduko kaj Sekcio 2.1 MotionEC finiĝisview. |
26-nov-18 | 4 | Aldonita Tabelo 3. Cortex -M0+: pasita tempo (µs) algoritmo. Aldonitaj referencoj al ARM® Cortex® - M0+ kaj NUCLEO-L073RZ-disvolva tabulo. |
19-feb-19 | 5 | Ĝisdatigita Figuro 1. ENU-referenca kadro, Tabelo 2. Cortex -M4 kaj Cortex-M3: tempopasita (µs) algoritmo, Tabelo 3. Cortex -M0+: pasinta tempo (µs) algoritmo, Figuro 3. Sensila vastiĝtabulo-adaptilo ligita al la STM32 Nucleo, Figuro 4. Ĉeffenestro de Unicleo, Figuro 5. Langeto Uzanto-Mesaĝoj, Figuro 6. Fenestro E-Compass kaj Figuro 7. Fenestro Datalog. Aldonita X-NUCLEO-IKS01A3 ekspansiotabulo kongruo informo. |
25-mar-20 | 6 | Ĝisdatigita Enkonduko, Sekcio 2.2.1: MotionEC-biblioteka priskribo kaj Sekcio 2.2.5: Algoritma agado. Aldonitaj informoj pri kongrueco de arkitekturo ARM Cortex-M7. |
17-Sep-24 | 7 | Ĝisdatigita Sekcia Enkonduko, Sekcio 2.1: MotionEC finiĝisview, Sekcio 2.2.1: MotionEC-biblioteko priskribo, Sekcio 2.2.2: MotionEC APIoj, Sekcio 2.2.5: Algoritmo agado, Sekcio 3: Sample aplikaĵo, Sekcio 3.1: MEMS-Studio-aplikaĵo |
GRAVA AVIZO – LEGU ATENTE
STMicroelectronics NV kaj ĝiaj filioj ("ST") rezervas la rajton fari ŝanĝojn, korektojn, plibonigojn, modifojn kaj plibonigojn al ST-produktoj kaj/aŭ al ĉi tiu dokumento iam ajn sen avizo. Aĉetantoj devas akiri la plej novajn rilatajn informojn pri ST-produktoj antaŭ ol fari mendojn. ST-produktoj estas venditaj laŭ la vendkondiĉoj de ST en la tempo de mendo agnosko.
Aĉetantoj respondecas nur pri la elekto, elekto kaj uzo de ST-produktoj kaj ST supozas neniun respondecon pri aplika helpo aŭ la dezajno de produktoj de aĉetantoj.
Neniu licenco, esprima aŭ implicita, al iu ajn intelekta proprieta rajto estas donita de ST ĉi tie.
Revendo de ST-produktoj kun dispozicioj malsamaj ol la informoj ĉi tie prezentitaj nuligos ajnan garantion donitan de ST por tia produkto.
ST kaj la ST-emblemo estas varmarkoj de ST. Por pliaj informoj pri ST-varmarkoj, referu al www.st.com/trademarks. Ĉiuj aliaj produktaj aŭ servonomoj estas la posedaĵo de siaj respektivaj posedantoj.
Informoj en ĉi tiu dokumento anstataŭas kaj anstataŭigas informojn antaŭe provizitajn en iuj antaŭaj versioj de ĉi tiu dokumento.
© 2024 STMicroelectronics - Ĉiuj rajtoj rezervitaj
Dokumentoj/Rimedoj
![]() |
ST X-CUBE-MEMS1 MotionEC estas Middleware Biblioteko [pdf] Manlibro de la posedanto X-CUBE-MEMS1 MotionEC estas Middleware Library, X-CUBE-MEMS1, MotionEC estas Middleware Library, Middleware Library, Library |