ST X - logoUM2225
Brûkershânlieding

Te begjinnen mei MotionEC real-time E-Compass bibleteek yn X-CUBE-MEMS1 útwreiding foar STM32Cube

Ynlieding

De MotionEC is in middleware-bibleteekkomponint fan 'e X-CUBE-MEMS1-software en rint op STM3z2. It jout real-time ynformaasje oer it apparaat oriïntaasje en beweging status basearre op gegevens fan in apparaat.
It jout de folgjende útgongen: apparaat oriïntaasje (quaternions, Euler hoeken), apparaat rotaasje (virtuele gyroscope funksjonaliteit), swiertekrêft vector en lineêre fersnelling.
Dizze bibleteek is bedoeld om allinich te wurkjen mei ST MEMS.
It algoritme wurdt levere yn statysk bibleteekformaat en is ûntworpen om te brûken op STM32 mikrocontrollers basearre op de ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 en ARM® Cortex®-M7 arsjitektuer.
It is boud boppe op STM32Cube-softwaretechnology om portabiliteit oer ferskate STM32-mikrocontrollers makliker te meitsjen.
De software komt mei sample ymplemintaasje rint op X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1or X-NUCLEO-IKS02A1 útwreiding board op in NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE of NUCLEO-L073RZ ûntwikkeling board.

Acronyms en ôfkoartings

Tabel 1. List fan akronyms

Acronym Beskriuwing
API Applikaasje programmearring ynterface
BSP Board stipe pakket
GUI Grafyske brûkersynterface
HAL Hardware abstraksje laach
IDE Yntegreare ûntwikkelingsomjouwing

MotionEC middleware bibleteek yn X-CUBE-MEMS1 software útwreiding foar STM32Cube

2.1 MotionEC oerview
De MotionEC-bibleteek wreidet de funksjonaliteit fan 'e X-CUBE-MEMS1-software út.
De bibleteek krijt gegevens fan 'e accelerometer en magnetometer en jout ynformaasje oer de apparaatoriïntaasje en bewegingsstatus basearre op gegevens fan in apparaat.
De bibleteek is allinich ûntwurpen foar ST MEMS. Funksjonaliteit en prestaasjes by it brûken fan oare MEMS-sensors wurde net analysearre en kinne signifikant ferskille fan wat beskreaun yn it dokumint.
A sample ymplemintaasje is beskikber op X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 en X-NUCLEO-IKS02A1 útwreiding board, fêstmakke op in NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE of NUCLEO-L073RE.
2.2 MotionEC bibleteek
Technyske ynformaasje dy't de funksjes en parameters fan 'e MotionEC API's folslein beskriuwt, is te finen yn 'e MotionEC_Package.chm kompilearre HTML file leit yn de dokumintaasje map.

2.2.1 MotionEC bibleteek beskriuwing
De MotionEC E-Compass-bibleteek beheart gegevens krigen fan 'e accelerometer en magnetometer; it hat:

  • apparaat oriïntaasje (quaternions, Euler hoeken), apparaat rotaasje (virtuele gyroscoop funksjonaliteit), swiertekrêft vector en lineêre fersnelling útgongen
  • funksjonaliteit basearre op de accelerometer en magnetometer gegevens allinne
  • fereaske accelerometer en magnetometer gegevens sampling frekwinsje fan maksimaal 100 Hz
  • boarne easken:
    - Cortex-M0+: 3.7 kB koade en 0.1 kB gegevensûnthâld
    - Cortex-M3: 3.8 kB koade en 0.1 kB gegevensûnthâld
    - Cortex-M33: 2.8 kB koade en 0.1 kB gegevensûnthâld
    - Cortex-M4: 2.9 kB koade en 0.1 kB gegevensûnthâld
    - Cortex-M7: 2.8 kB koade en 0.1 kB gegevensûnthâld
  • beskikber foar ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 en Cortex M7-arsjitektuer

2.2.2 MotionEC APIs
De MotionEC API's binne:

  • uint8_t MotionEC_GetLibVersion(char *ferzje)
    - helje de ferzje fan 'e bibleteek op
    - *ferzje is in oanwizer nei in array fan 35 tekens
    - jout it oantal karakters werom yn 'e ferzjestring
    • void MotionEC_Initialize (MEC_mcu_type_t mcu_type, float freq)
    - fiert MotionEC bibleteek inisjalisaasje en opset fan de ynterne meganisme.
    - mcu_type is it type MCU:
    ◦ MFX_CM0P_MCU_STM32 is in standert STM32 MCU
    ◦ MFX_CM0P_MCU_BLUE_NRG1 is BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 is BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP is BlueNRG -LP
    - freq is de sensor sampling frekwinsje [Hz]

Noat: Dizze funksje moat oproppen wurde foardat jo de E-Compass-bibleteek brûke en de CRC-module yn STM32-mikrocontroller (yn RCC perifeare klok ynskeakelje register) moat ynskeakele wurde foardat de bibleteek brûkt wurdt

  • void MotionEC_SetFrequency(float freq)
    - stelt de samplingfrekwinsje (feroarje de filterparameters)
    - freq is de sensor sampling frekwinsje [Hz] • void MotionEC_Run (MEC_input_t *data_in, MEC_output_t *data_out)
    - rint it E-Compass-algoritme (fersnellingsmeter en magnetometer gegevensfúzje)
    – *data_in is in oanwizer nei in struktuer mei ynfiergegevens
    - de parameters foar it struktuertype MEC_input_t binne:
    ◦ acc[3] is in array fan accelerometergegevens yn ENU-konvinsje, mjitten yn g
    ◦ mag[3] is in array fan magnetometer-kalibreare gegevens yn ENU-konvinsje, mjitten yn μT/50
    ◦ deltatiid s is de deltatiid (dat wol sizze, tiidfertraging tusken âlde en nije gegevensset) mjitten yn s
    - *data_out is in oanwizer nei in struktuer mei útfiergegevens
    - de parameters foar it struktuertype MEC_output_t binne:
    ◦ quaternion[4] is array mei quaternion yn ENU-konvinsje, dy't de 3Dangular-oriïntaasje fan it apparaat yn 'e romte fertsjintwurdiget; folchoarder fan eleminten is: X, Y, Z, W, mei altyd posityf elemint W
    ◦ euler[3] is in array fan Euler-hoeken yn ENU-konvinsje, dy't de 3D-hoekige oriïntaasje fan it apparaat yn 'e romte fertsjintwurdiget; de folchoarder fan de eleminten is: yaw, pitch, roll, mjitten yn deg
    ◦ i_gyro[3] is in array fan hoeksnelheden yn ENU-konvinsje, dy't in firtuele gyroscoopsensor fertsjintwurdiget, mjitten yn dps
    ◦ swiertekrêft[3] is in array fan fersnellingen yn ENU-konvinsje, dy't de swiertekrêftfektor fertsjintwurdiget, mjitten yn g
    ◦ lineêr[3] is in array fan fersnellingen yn ENU-konvinsje, dy't de lineêre fersnelling fan it apparaat fertsjintwurdiget, mjitten yn g
    ST X CUBE MEMS1 MotionEC is in Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    - krijt de ynskeakelje / útskeakelje steat fan de Euler hoek berekkening
    - * steat is in oanwizer nei de hjoeddeiske ynskeakelje / útskeakelje steat
  • void MotionEC_SetOrientationEnable(MEC_state_t state)
    - stelt de ynskeakelje / útskeakelje steat fan de Euler hoek berekkening
    - steat is de nije ynskeakelje / útskeakelje steat te stellen
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    - krijt de tastân ynskeakelje / útskeakelje fan 'e berekkening fan' e firtuele gyroscoop
    - * steat is in oanwizer nei de hjoeddeiske ynskeakelje / útskeakelje steat
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    - stelt de yn- / útskeakelje tastân fan 'e firtuele gyroscoopberekkening yn
    - steat is de nije ynskeakelje / útskeakelje steat te stellen
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    - krijt de ynskeakelje / útskeakelje steat fan de swiertekrêft vector berekkening
    - * steat is in oanwizer nei de hjoeddeiske ynskeakelje / útskeakelje steat
  • void MotionEC_SetGravityEnable(MEC_state_t state)
    - stelt de ynskeakelje / útskeakelje steat fan de swiertekrêft vector berekkening
    - steat is de nije ynskeakelje / útskeakelje steat te stellen
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    - krijt de tastân ynskeakelje / útskeakelje fan 'e lineêre fersnellingsberekkening
    - * steat is in oanwizer nei de hjoeddeiske ynskeakelje / útskeakelje steat
  • void MotionEC_SetLinearAccEnable(MEC_state_t state)
    - stelt de yn- / útskeakelje tastân fan 'e lineêre fersnellingsberekkening yn
    - steat is de nije ynskeakelje / útskeakelje steat te stellen

2.2.3 API flow chart

ST X CUBE MEMS1 MotionEC is in Middleware Library- sekwinsje

2.2.4 Demo koade
De folgjende demonstraasjekoade lêst gegevens fan 'e accelerometer- en magnetometersensors en krijt de ECompass-gegevens (ie, quaternion, Euler-hoeken, ensfh.).

ST X CUBE MEMS1 MotionEC is in Middleware Library- Demo-koadeST X CUBE MEMS1 MotionEC is in Middleware Library- Demo code1

2.2.5 Algoritme prestaasjes
It E-Compass-algoritme brûkt allinich gegevens fan 'e accelerometer en magnetometer. It rint op in lege frekwinsje (oant 100 Hz) om enerzjyferbrûk te ferminderjen.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Data Injection1

Sample applikaasje

De MotionEC middleware kin maklik manipulearre wurde om brûkersapplikaasjes te bouwen; asampDe applikaasje wurdt levere yn 'e applikaasje map.
It is ûntworpen om te rinnen op in NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE of NUCLEO-L073RZ ûntwikkeling board ferbûn mei in X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 of X-NUCLEO-IKS02A1exption board.

ST X CUBE MEMS1 MotionEC is in Middleware Library- adapter

De applikaasje herkent de oriïntaasje en rotaasje fan it apparaat yn realtime. De gegevens kinne wurde werjûn fia in GUI.
It algoritme jout de folgjende útgongen: apparaat oriïntaasje (quaternions, Euler hoeken), apparaat rotaasje (virtuele gyroscope funksjonaliteit), swiertekrêft vector en lineêre fersnelling.
3.1 MEMS-Studio applikaasje
De sample applikaasje brûkt de MEMS-Studio-applikaasje, dy't kin wurde downloade fan www.st.com.
Stap 1. Soargje derfoar dat de nedige bestjoerders binne ynstalleare en it STM32 Nucleo-boerd mei passende útwreidingsboerd is ferbûn mei de PC.
Stap 2. Starte de MEMS-Studio-applikaasje om it haadapplikaasjefinster te iepenjen.
As in STM32 Nucleo-boerd mei stipe firmware is ferbûn mei de PC, wurdt de passende COM-poarte automatysk ûntdutsen. Druk op de knop [Ferbine] om ferbining te meitsjen mei it evaluaasjeboerd.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Connect

Stap 3. As ferbûn mei in STM32 Nucleo board mei stipe firmware [Bibliotheek Evaluaasje] ljepper wurdt iepene.
Om gegevensstreaming te begjinnen en te stopjen, skeakelje de passende [Start] ST X CUBE MEMS1 MotionEC is in Middleware Library- ikoan of [Stopje] ST X CUBE MEMS1 MotionEC is in Middleware Library- icon1 knop op 'e bûtenste fertikale arkbalke.
De gegevens dy't komme fan 'e ferbûne sensor kinne wêze viewed selektearje de ljepper [Data Table] op 'e binnenste fertikale arkbalke.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Data Table

Stap 4. Klikje op it [E-Kompas] om de tawijd side foar dizze bibleteek te iepenjen.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Kompas

De figuer hjirboppe lit in STM32 Nucleo grafysk model sjen. It model oriïntaasje en rotaasje binne basearre op E-Compass gegevens (quaternions) berekkene troch it algoritme.
Om de wirklike apparaatbeweging út te lijnen mei it grafyske model, wiis it apparaat nei it skerm en druk op [Model weromsette].
De heading wearde stiet foar de echte apparaat heading.
Pointing it apparaat rjocht omheech of omleech (lâns Up as fan ENU referinsje frame, mei ± 5 graad tolerânsje) jout N / A wearde foar de kop: it is net mooglik om te ûnderskieden nei hokker kardinaal punt it apparaat wiist nei.
De goedenswearde jout 0 oant 3 wearden en is relatearre oan de magnetometerkalibraasje: hoe heger de wearde, hoe better de resultaten fan it E-Compass-gegevensalgoritme.
Stap 5. Klikje op [Bewarje nei File] om it konfiguraasjefinster foar dataloging te iepenjen. Selektearje de sensor en E-Compass gegevens wurde bewarre yn de file. Jo kinne opslaan begjinne of stopje troch te klikken op de byhearrende knop.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Bewarje nei File

Stap 6. Gegevensynjeksjemodus kin brûkt wurde om de earder krigen gegevens nei de bibleteek te stjoeren en it resultaat te ûntfangen. Selektearje de ljepper [Data-ynjeksje] op 'e fertikale arkbalke om de tawijde te iepenjen view foar dizze funksjonaliteit.

ST X CUBE MEMS1 MotionEC is in Middleware Library- Data Injection

Stap 7. Klikje op de knop [Blêdzje] om de file mei de earder opnommen gegevens yn CSV-formaat.
De gegevens wurde laden yn 'e tabel yn' e aktuele view.
Oare knoppen wurde aktyf. Jo kinne klikke op:
- Knop [Offline modus] om de firmware offline modus oan/út te skeakeljen (modus mei de earder fêstleine gegevens).
- Knoppen [Start]/[Stopje]/[Stap]/[Werhelje] om de gegevensfeed fan MEMS-Studio nei de bibleteek te kontrolearjen.

Referinsjes

Alle folgjende boarnen binne frij beskikber op www.st.com.

  1. UM1859: Te begjinnen mei de X-CUBE-MEMS1 beweging MEMS en miljeu sensor software útwreiding foar STM32Cube
  2.  UM1724: STM32 Nucleo-64 boards (MB1136)
  3. UM3233: Te begjinnen mei MEMS-Studio

Revision skiednis

Tabel 4. Dokumint revyzje skiednis

Datum Ferzje Feroarings
18-mei-17 1 Inisjele release.
25-Jan-18 2 Referinsjes tafoege oan NUCLEO-L152RE-ûntwikkelingsboerd en tabel 2.
Ferline tiid (μs) algoritme.
21-Mar-18 3 Updated Ynlieding en Seksje 2.1 MotionEC oerview.
26-Nov-18 4 Tabel tafoege 3. Cortex -M0+: ferlyn tiid (µs) algoritme. Tafoege ferwizings nei ARM®
Cortex® - M0+ en NUCLEO-L073RZ ûntwikkeling board.
19 febrewaris 19 5 Bywurke figuer 1. ENU-referinsjeramt, Tabel 2. Cortex -M4 en Cortex-M3: algoritme foar ferrûne tiid (µs), Tabel 3.
Cortex -M0+: algoritme foar ferrûne tiid (µs), figuer 3. Adapter foar sensorútwreidingsboerd ferbûn mei de STM32
Nucleo, figuer 4. Unicleo haadfinster, figuer 5. Meidogger Berjochten ljepper, figuer 6. E-Compass finster en figuer 7. Datalog finster. Added X-NUCLEO-IKS01A3 útwreiding board komptabiliteit ynformaasje.
25-Mar-20 6 Updated Ynlieding, Seksje 2.2.1: MotionEC bibleteek beskriuwing en Seksje 2.2.5: Algoritme prestaasjes.
ARM Cortex-M7-arsjitektuerkompatibiliteitsynformaasje tafoege.
17-Sep-24 7 Bywurke seksje ynlieding,
Seksje 2.1: MotionEC oerview,
Seksje 2.2.1: MotionEC bibleteek
beskriuwing, Seksje 2.2.2: MotionEC
APIs, Seksje 2.2.5: Algoritme
prestaasjes, Seksje 3: Sample
applikaasje, Seksje 3.1: MEMS-Studio applikaasje

WICHTICH NOTICE - LÊS FERGESE
STMicroelectronics NV en har dochterûndernimmingen ("ST") behâlde it rjocht foar om feroarings, korreksjes, ferbetterings, oanpassings en ferbetterings oan ST-produkten en / of oan dit dokumint op elk momint sûnder notice te meitsjen. Keapers moatte de lêste relevante ynformaasje krije oer ST-produkten foardat se oarders pleatse. ST-produkten wurde ferkocht yn oerienstimming mei ST's ferkeapbetingsten en -betingsten yn plak op it momint fan bestellingserkenning.
Keapers binne allinich ferantwurdlik foar de kar, seleksje en gebrûk fan ST-produkten en ST nimt gjin oanspraaklikens oan foar help by oanfraach of it ûntwerp fan produkten fan keapers.
Gjin lisinsje, útdruklik of ymplisearre, foar in yntellektueel eigendomsrjocht wurdt hjiryn ferliend troch ST.
Wederferkeap fan ST-produkten mei bepalingen dy't ferskille fan 'e ynformaasje dy't hjiryn oanjûn binne, sil gjin garânsje ferliend troch ST foar sa'n produkt ûnjildich meitsje.
ST en it ST-logo binne hannelsmerken fan ST. Foar oanfoljende ynformaasje oer ST hannelsmerken, ferwize nei www.st.com/trademarks. Alle oare nammen fan produkten of tsjinsten binne it eigendom fan har respektive eigners.
Ynformaasje yn dit dokumint ferfangt en ferfangt ynformaasje earder levere yn alle eardere ferzjes fan dit dokumint.

© 2024 STMicroelectronics - Alle rjochten foarbehâlden

Dokuminten / Resources

ST X-CUBE-MEMS1 MotionEC is in Middleware Library [pdf] Hânlieding foar brûkers
X-CUBE-MEMS1 MotionEC is in Middleware Library, X-CUBE-MEMS1, MotionEC is in Middleware Library, Middleware Library, Library

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *