ST X - logoUM2225
Brugermanual

Kom godt i gang med MotionEC E-Compass-bibliotek i realtid i X-CUBE-MEMS1-udvidelse til STM32Cube

Indledning

MotionEC er en middleware-bibliotekskomponent i X-CUBE-MEMS1-softwaren og kører på STM3z2. Det giver information i realtid om enhedens orientering og bevægelsesstatus baseret på data fra en enhed.
Det giver følgende output: enhedsorientering (quaternioner, Euler-vinkler), enhedsrotation (virtuelt gyroskopfunktionalitet), tyngdekraftsvektor og lineær acceleration.
Dette bibliotek er kun beregnet til at fungere med ST MEMS.
Algoritmen leveres i statisk biblioteksformat og er designet til at blive brugt på STM32 mikrocontrollere baseret på ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 og ARM® Cortex®-M7 arkitekturer.
Den er bygget oven på STM32Cube softwareteknologi for at lette portabiliteten på tværs af forskellige STM32 mikrocontrollere.
Softwaren leveres med sampimplementeringen kører på X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 eller X-NUCLEO-IKS02A1 udvidelseskort på et NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE eller NUCLEO-L073RZ udviklingskort.

Akronymer og forkortelser

Tabel 1. Liste over akronymer

Akronym Beskrivelse
API Applikationsprogrammeringsgrænseflade
BSP Bestyrelsesstøttepakke
GUI Grafisk brugerflade
HAL Hardwareabstraktionslag
IDE Integreret udviklingsmiljø

MotionEC middleware-bibliotek i X-CUBE-MEMS1 softwareudvidelse til STM32Cube

2.1 MotionEC overståetview
MotionEC-biblioteket udvider funktionaliteten af ​​X-CUBE-MEMS1-softwaren.
Biblioteket henter data fra accelerometeret og magnetometeret og giver information om enhedens orientering og bevægelsesstatus baseret på data fra en enhed.
Biblioteket er kun designet til ST MEMS. Funktionalitet og ydeevne ved brug af andre MEMS-sensorer analyseres ikke og kan være væsentligt anderledes end det, der er beskrevet i dokumentet.
A sampimplementeringen er tilgængelig på X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 og X-NUCLEO-IKS02A1 udvidelseskort, monteret på et NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE eller NUCLEO-L073RE.
2.2 MotionEC-bibliotek
Teknisk information, der fuldstændigt beskriver funktionerne og parametrene for MotionEC API'erne, kan findes i MotionEC_Package.chm kompilerede HTML file findes i mappen Dokumentation.

2.2.1 MotionEC biblioteksbeskrivelse
MotionEC E-Compass-biblioteket administrerer data indsamlet fra accelerometeret og magnetometeret; den indeholder:

  • enhedsorientering (quaternioner, Euler-vinkler), enhedsrotation (virtuelt gyroskopfunktionalitet), tyngdekraftsvektor og lineære accelerationsoutput
  • funktionalitet kun baseret på accelerometer- og magnetometerdata
  • nødvendige accelerometer og magnetometer data sampling frekvens på op til 100 Hz
  • ressourcekrav:
    – Cortex-M0+: 3.7 kB kode og 0.1 kB datahukommelse
    – Cortex-M3: 3.8 kB kode og 0.1 kB datahukommelse
    – Cortex-M33: 2.8 kB kode og 0.1 kB datahukommelse
    – Cortex-M4: 2.9 kB kode og 0.1 kB datahukommelse
    – Cortex-M7: 2.8 kB kode og 0.1 kB datahukommelse
  • tilgængelig til ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 og Cortex M7 arkitekturer

2.2.2 MotionEC API'er
MotionEC API'erne er:

  • uint8_t MotionEC_GetLibVersion(char *version)
    – henter versionen af ​​biblioteket
    – *version er en pegepind til en matrix på 35 tegn
    – returnerer antallet af tegn i versionsstrengen
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – udfører MotionEC-biblioteksinitialisering og opsætning af den interne mekanisme.
    – mcu_type er typen af ​​MCU:
    ◦ MFX_CM0P_MCU_STM32 er en standard STM32 MCU
    ◦ MFX_CM0P_MCU_BLUE_NRG1 er BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 er BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP er BlueNRG -LP
    – freq er sensoren sampling frekvens [Hz]

Note: Denne funktion skal kaldes, før du bruger E-Compass-biblioteket, og CRC-modulet i STM32-mikrocontroller (i RCC perifert clock-aktiveringsregister) skal aktiveres, før du bruger biblioteket

  • void MotionEC_SetFrequency(float freq)
    – indstiller sampling-frekvens (ændring af filtreringsparametrene)
    – freq er sensoren samplingfrekvens [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – kører E-Compass-algoritmen (accelerometer og magnetometer datafusion)
    – *data_in er en pegepind til en struktur med inputdata
    – parametrene for strukturtypen MEC_input_t er:
    ◦ acc[3] er en række accelerometerdata i ENU-konventionen, målt i g
    ◦ mag[3] er en række magnetometerkalibrerede data i ENU-konventionen, målt i μT/50
    ◦ deltatid s er deltatiden (dvs. tidsforsinkelse mellem gammelt og nyt datasæt) målt i s
    – *data_out er en pegepind til en struktur med outputdata
    – parametrene for strukturtypen MEC_output_t er:
    ◦ quaternion[4] er et array, der indeholder quaternion i ENU-konventionen, der repræsenterer 3Dangular-orienteringen af ​​enheden i rummet; rækkefølgen af ​​elementer er: X, Y, Z, W, med altid positivt element W
    ◦ euler[3] er en række Euler-vinkler i ENU-konventionen, der repræsenterer enhedens 3D-vinkelorientering i rummet; rækkefølgen af ​​elementerne er: krøjning, stigning, rulning, målt i grader
    ◦ i_gyro[3] er et array af vinkelhastigheder i ENU-konventionen, der repræsenterer en virtuel gyroskopsensor, målt i dps
    ◦ gravitation[3] er en række accelerationer i ENU-konventionen, der repræsenterer gravitationsvektoren, målt i g
    ◦ lineær[3] er en række accelerationer i ENU-konventionen, der repræsenterer enhedens lineære acceleration, målt i g
    ST X CUBE MEMS1 MotionEC er et Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – henter aktiverings-/deaktiveringstilstanden for Euler-vinkelberegningen
    – *tilstand er en pegepind til den aktuelle aktiverings-/deaktiveringstilstand
  • void MotionEC_SetOrientationEnable(MEC_state_t state)
    – indstiller aktiverings-/deaktiveringstilstanden for Euler-vinkelberegningen
    – tilstand er den nye aktiverings-/deaktiveringstilstand, der skal indstilles
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – henter aktiverings-/deaktiveringstilstanden for den virtuelle gyroskopberegning
    – *tilstand er en pegepind til den aktuelle aktiverings-/deaktiveringstilstand
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    – indstiller aktiverings-/deaktiveringstilstanden for den virtuelle gyroskopberegning
    – tilstand er den nye aktiverings-/deaktiveringstilstand, der skal indstilles
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – henter aktiverings-/deaktiveringstilstanden for tyngdekraftsvektorberegningen
    – *tilstand er en pegepind til den aktuelle aktiverings-/deaktiveringstilstand
  • void MotionEC_SetGravityEnable(MEC_state_t state)
    – indstiller aktiverings-/deaktiveringstilstanden for tyngdekraftsvektorberegningen
    – tilstand er den nye aktiverings-/deaktiveringstilstand, der skal indstilles
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – henter aktiverings-/deaktiveringstilstanden for beregningen af ​​lineær acceleration
    – *tilstand er en pegepind til den aktuelle aktiverings-/deaktiveringstilstand
  • void MotionEC_SetLinearAccEnable(MEC_state_t state)
    – indstiller aktiverings-/deaktiveringstilstanden for beregningen af ​​lineær acceleration
    – tilstand er den nye aktiverings-/deaktiveringstilstand, der skal indstilles

2.2.3 API-flowdiagram

ST X CUBE MEMS1 MotionEC er en Middleware Library-sekvens

2.2.4 Demokode
Følgende demonstrationskode læser data fra accelerometer- og magnetometersensorerne og henter ECompass-dataene (dvs. quaternion, Euler-vinkler osv.).

ST X CUBE MEMS1 MotionEC er en Middleware Library- Demo-kodeST X CUBE MEMS1 MotionEC er et Middleware Library- Demo-kode1

2.2.5 Algoritmeydelse
E-Compass-algoritmen bruger kun data fra accelerometeret og magnetometeret. Den kører ved en lav frekvens (op til 100 Hz) for at reducere strømforbruget.

ST X CUBE MEMS1 MotionEC er et Middleware Library- Data Injection1

Sample ansøgning

MotionEC middleware kan let manipuleres til at bygge brugerapplikationer; somampapplikationen findes i mappen Application.
Det er designet til at køre på et NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE eller NUCLEO-L073RZ udviklingskort forbundet til et X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 eller X-NUCLEO-IKS02A1expansionskort.

ST X CUBE MEMS1 MotionEC er en Middleware Library-adapter

Applikationen genkender enhedens orientering og rotation i realtid. Dataene kan vises gennem en GUI.
Algoritmen giver følgende output: enhedsorientering (quaternioner, Euler-vinkler), enhedsrotation (virtuelt gyroskopfunktionalitet), tyngdekraftsvektor og lineær acceleration.
3.1 MEMS-Studio applikation
Sample applikationen bruger MEMS-Studio applikationen, som kan downloades fra www.st.com.
Trin 1. Sørg for, at de nødvendige drivere er installeret, og at STM32 Nucleo-kortet med passende udvidelseskort er tilsluttet pc'en.
Trin 2. Start programmet MEMS-Studio for at åbne programmets hovedvindue.
Hvis et STM32 Nucleo-kort med understøttet firmware er tilsluttet pc'en, detekteres den passende COM-port automatisk. Tryk på [Connect]-knappen for at oprette forbindelse til evalueringstavlen.

ST X CUBE MEMS1 MotionEC er et Middleware Library- Connect

Trin 3. Når den er tilsluttet et STM32 Nucleo-kort med understøttet firmware, åbnes fanen [Library Evaluation].
For at starte og stoppe datastreaming skal du skifte til den relevante [Start] ST X CUBE MEMS1 MotionEC er et Middleware Library-ikon eller [Stop] ST X CUBE MEMS1 MotionEC er et Middleware Library-ikon1 knappen på den ydre lodrette værktøjslinje.
De data, der kommer fra den tilsluttede sensor, kan være viewed at vælge fanen [Datatabel] på den indvendige lodrette værktøjslinje.

ST X CUBE MEMS1 MotionEC er en Middleware Library- Data Table

Trin 4. Klik på [E-Compass] for at åbne den dedikerede side for dette bibliotek.

ST X CUBE MEMS1 MotionEC er et Middleware Library-Compass

Figuren ovenfor viser en STM32 Nucleo grafisk model. Modellens orientering og rotation er baseret på E-Compass data (quaternioner) beregnet af algoritmen.
For at justere den virkelige enheds bevægelse med den grafiske model skal du pege enheden mod skærmen og trykke på [Nulstil model].
Overskriftsværdien repræsenterer den rigtige enhedsoverskrift.
At pege enheden lige op eller ned (langs op-aksen af ​​ENU-referencerammen, med ±5 graders tolerance) giver N/A værdi for overskriften: det er ikke muligt at skelne til hvilket kardinalpunkt enheden peger på.
Godhedsværdien giver 0 til 3 værdier og er relateret til magnetometerkalibreringen: Jo højere værdien er, desto bedre resultater af E-Compass dataalgoritmen.
Trin 5. Klik på [Gem til File] for at åbne datalogningskonfigurationsvinduet. Vælg de sensor- og E-kompasdata, der skal gemmes i file. Du kan starte eller stoppe med at gemme ved at klikke på den tilsvarende knap.

ST X CUBE MEMS1 MotionEC er et Middleware-bibliotek - Gem til File

Trin 6. Datainjektionstilstand kan bruges til at sende de tidligere indhentede data til biblioteket og modtage resultatet. Vælg fanen [Data Injection] på den lodrette værktøjslinje for at åbne den dedikerede view for denne funktionalitet.

ST X CUBE MEMS1 MotionEC er et Middleware Library- Data Injection

Trin 7. Klik på knappen [Gennemse] for at vælge file med de tidligere registrerede data i CSV-format.
Dataene vil blive indlæst i tabellen i den aktuelle view.
Andre knapper bliver aktive. Du kan klikke på:
– [Offline-tilstand]-knap for at slå firmware-offline-tilstanden til/fra (tilstand, der bruger de tidligere registrerede data).
– Knapperne [Start]/[Stop]/[Step]/[Repeat] til at styre datatilførslen fra MEMS-Studio til biblioteket.

Referencer

Alle følgende ressourcer er gratis tilgængelige på www.st.com.

  1. UM1859: Kom godt i gang med X-CUBE-MEMS1 motion MEMS og miljøsensorsoftwareudvidelse til STM32Cube
  2.  UM1724: STM32 Nucleo-64-kort (MB1136)
  3. UM3233: Kom godt i gang med MEMS-Studio

Revisionshistorie

Tabel 4. Dokument revisionshistorik

Dato Version Ændringer
18-maj-17 1 Første udgivelse.
25-jan-18 2 Tilføjet referencer til NUCLEO-L152RE udviklingskort og tabel 2.
Algoritme for forløbet tid (μs).
21-mars-18 3 Opdateret introduktion og afsnit 2.1 MotionEC overståetview.
26. nov. 18 4 Tilføjet tabel 3. Cortex -M0+: algoritme for forløbet tid (µs). Tilføjet referencer til ARM®
Cortex® – M0+ og NUCLEO-L073RZ udviklingskort.
19. februar 19 5 Opdateret figur 1. ENU-referenceramme, tabel 2. Cortex -M4 og Cortex-M3: algoritme for forløbet tid (µs), tabel 3.
Cortex -M0+: algoritme for forløbet tid (µs), figur 3. Adapter til sensorudvidelseskort forbundet til STM32
Nucleo, figur 4. Unicleo hovedvindue, figur 5. Fanen Brugermeddelelser, figur 6. E-Kompas vindue og figur 7. Datalog vindue. Tilføjet oplysninger om X-NUCLEO-IKS01A3 udvidelseskortkompatibilitet.
25-mars-20 6 Opdateret introduktion, afsnit 2.2.1: MotionEC-biblioteksbeskrivelse og afsnit 2.2.5: Algoritmeydelse.
Tilføjet ARM Cortex-M7 arkitektur kompatibilitet information.
17-sep-24 7 Opdateret afsnitsintroduktion,
Afsnit 2.1: MotionEC overview,
Afsnit 2.2.1: MotionEC-bibliotek
beskrivelse, afsnit 2.2.2: MotionEC
API'er, afsnit 2.2.5: Algoritme
ydeevne, afsnit 3: Sample
applikation, afsnit 3.1: MEMS-Studio applikation

VIGTIG MEDDELELSE – LÆS OMHYGGELIGT
STMicroelectronics NV og dets datterselskaber ("ST") forbeholder sig retten til at foretage ændringer, rettelser, forbedringer, modifikationer og forbedringer af ST-produkter og/eller dette dokument til enhver tid uden varsel. Købere bør indhente de seneste relevante oplysninger om ST-produkter, før de afgiver ordre. ST-produkter sælges i henhold til STs salgs- og salgsbetingelser på tidspunktet for ordrebekræftelse.
Købere er alene ansvarlige for valg, udvælgelse og brug af ST-produkter, og ST påtager sig intet ansvar for ansøgningsassistance eller design af købers produkter.
Ingen licens, hverken udtrykkelig eller underforstået, til nogen intellektuel ejendomsret er givet af ST heri.
Videresalg af ST-produkter med andre bestemmelser end de oplysninger, der er angivet heri, annullerer enhver garanti givet af ST for et sådant produkt.
ST og ST-logoet er varemærker tilhørende ST. For yderligere information om ST-varemærker, se www.st.com/varemærker. Alle andre produkt- eller tjenestenavne tilhører deres respektive ejere.
Oplysningerne i dette dokument erstatter og erstatter oplysninger, der tidligere er leveret i alle tidligere versioner af dette dokument.

© 2024 STMicroelectronics – Alle rettigheder forbeholdes

Dokumenter/ressourcer

ST X-CUBE-MEMS1 MotionEC er et Middleware-bibliotek [pdf] Brugermanual
X-CUBE-MEMS1 MotionEC er et Middleware Library, X-CUBE-MEMS1, MotionEC er et Middleware Library, Middleware Library, Library

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *