ST X-CUBE-MEMS1 softversko proširenje senzora i algoritma kretanja - korisnički priručnik

Proširenje softvera za senzore i algoritam kretanja X-CUBE-MEMS1

Informacije o proizvodu

Specifikacije

  • Product Name: MotionPW Real-time Pedometer
  • Kompatibilnost: X-CUBE-MEMS1 proširenje za STM32Cube
  • Proizvođač: STMicroelectronics
  • Library: MotionPW Middleware Library
  • Data Acquisition: Accelerometer
  • Sampling Frekvencija: 50 Hz

Upute za upotrebu proizvoda

Gotovoview

The MotionPW library expands the functionality of the
X-CUBE-MEMS1 software by acquiring data from the accelerometer to
provide information about the number of steps and cadence performed
with the wearable device.

Kompatibilnost

The library is designed for ST MEMS sensors only. Using other
MEMS senzori mogu rezultirati različitim funkcionalnostima i
performanse.

Implementacija

A sampimplementacija je dostupna za X-NUCLEO-IKS4A1 i
X-NUCLEO-IKS01A3 expansion boards mounted on specified development
ploče.

Technical Information

For detailed functions and parameters of the MotionPW APIs,
refer to the MotionPW_Package.chm compiled HTML file nalazi se u
Documentation folder.

API-ji

  • MotionPW_GetLibVersion(char *version)
  • MotionPW_Initialize(void)
  • MotionPW_Update(MPW_input_t *data_in, MPW_output_t
    *data_out)
  • MotionPW_ResetPedometerLibrary(void)
  • MotionPW_ResetStepCount(void)
  • MotionPW_UpdateEnergyThreshold(float *energy_threshold)

Često postavljana pitanja (FAQ)

Q: Can I use MotionPW library with non-ST MEMS sensors?

A: The library is designed for ST MEMS sensors only.
Compatibility with other MEMS sensors is not guaranteed.

P: Koji su potrebni podaci akcelerometra sampling
frekvencija?

O: Traženi sampling frequency is 50 Hz for accurate
detection of steps and cadence.

Q: How do I initialize the MotionPW library?

A: Call the MotionPW_Initialize() function before using the
fitness activity library. Ensure the CRC module in the STM32
microcontroller is enabled.

“`

UM2350
Uputstvo za upotrebu
Getting started with MotionPW real-time pedometer for wrist library in X-CUBEMEMS1 expansion for STM32Cube
Uvod
The MotionPW middleware library is part of the X-CUBE-MEMS1 software and runs on STM32 Nucleo. It provides real-time information about the number of steps and cadence which the user just performed with the wearable device (e.g. a smart watch). This library is intended to work with ST MEMS only. The algorithm is provided in static library format and is designed to be used on STM32 microcontrollers based on the ARM® Cortex®-M3, ARM Cortex®-M33, ARM® Cortex®-M4, ARM® Cortex®-M7 architecture. It is built on top of STM32Cube software technology to ease portability across different STM32 microcontrollers. The software comes with sampimplementacija radi na X-NUCLEO-IKS4A1 ili X-NUCLEO-IKS01A3 ploči za proširenje na NUCLEO-F401RE, NUCLEO-U575ZI-Q ili NUCLEO-L152RE razvojnoj ploči.

UM2350 – Rev 4 – Maj 2025. Za više informacija obratite se lokalnoj prodajnoj kancelariji STMicroelectronics.

www.st.com

UM2350
Akronimi i kratice

1

Akronimi i kratice

Akronim API BSP GUI HAL IDE

Tabela 1. Lista akronima

Interfejs za programiranje aplikacije Paket podrške za ploču Grafički korisnički interfejs Sloj apstrakcije hardvera Integrisano razvojno okruženje

Opis

UM2350 – Rev 4

strana 2/16

2
2.1 2.2
2.2.1
2.2.2
Napomena:

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

MotionPW overview
The MotionPW library expands the functionality of the X-CUBE-MEMS1 software.
The library acquires data from the accelerometer and provides information about the number of steps and cadence the user just performed with the wearable device.
Biblioteka je dizajnirana samo za ST MEMS. Funkcionalnost i performanse pri korištenju drugih MEMS senzora se ne analiziraju i mogu se značajno razlikovati od onoga što je opisano u dokumentu.
A sample implementation is available for X-NUCLEO-IKS4A1 and X-NUCLEO-IKS01A3 expansion boards, mounted on aNUCLEO-F401RE, NUCLEO-U575ZI-Q or NUCLEO-L152RE development board.

MotionPW library
Technical information fully describing the functions and parameters of the MotionPW APIs can be found in the MotionPW_Package.chm compiled HTML file koji se nalazi u folderu Dokumentacija.

MotionPW library description

The MotionPW pedometer library manages the data acquired from the accelerometer; it features:

·

possibility of detecting the number of steps, cadence and confidence

·

prepoznavanje samo na osnovu podataka akcelerometra

·

potrebni podaci akcelerometra sampfrekvencija od 50 Hz

·

zahtjevi za resursima:

Cortex-M3: 3.7 kB koda i 1.8 kB memorije podataka

Cortex-M33: 3.5 kB koda i 1.8 kB memorije podataka

Cortex-M4: 3.5 kB koda i 1.8 kB memorije podataka

Cortex-M7: 3.6 kB koda i 1.8 kB memorije podataka

·

dostupno za ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 i ARM® Cortex®-M7

arhitekture

MotionPW APIs

The MotionPW library APIs are:

·

uint8_t MotionPW_GetLibVersion(char *version)

preuzima verziju biblioteke

*verzija je pokazivač na niz od 35 znakova

vraća broj znakova u stringu verzije

·

void MotionPW_Initialize(void)

­ performs MotionPW library initialization and setup of the internal mechanism including the dynamic memory allocation

This function must be called before using the fitness activity library and the CRC module in the STM32 microcontroller (in RCC peripheral clock enable register) has to be enabled.

UM2350 – Rev 4

strana 3/16

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

·

void MotionPW_Update(MPW_input_t *data_in, MPW_output_t *data_out)

­ executes pedometer for wrist algorithm

Parametar *data_in je pokazivač na strukturu sa ulaznim podacima

­ the parameters for the structure type MPW_input_t are:

AccX je vrijednost senzora akcelerometra na X osi u g

AccY je vrijednost senzora akcelerometra na Y osi u g

AccZ je vrijednost senzora akcelerometra na Z osi u g

­ CurrentActivity is the enumerated input type MPW_activity_t with the following values:

MPW_UNKNOWN_ACTIVITY = 0x00

MPW_WALKING = 0x01

MPW_FASTWALKING = 0x02

MPW_JOGGING = 0x03

Parametar *data_out je pokazivač na strukturu sa izlaznim podacima

­ the parameters for the structure type MPW_output_t are:

Nsteps is number of steps performed by user

Cadence is the cadence of user steps

Confidence is the confidence of calculated output parameter

·

void MotionPW_ResetPedometerLibrary(void)

­ resets the library internal variables and mechanism into default values (including current step count)

·

void MotionPW_ResetStepCount(void)

resetuje trenutni broj koraka

·

void MotionPW_UpdateEnergyThreshold(float *energy_threshold)

­ updated energy threshold to fine tune step detection algorithm

­ *energy_threshold parameter is a pointer to energy threshold value

UM2350 – Rev 4

strana 4/16

2.2.3

API dijagram toka

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Figure 1. MotionPW API logic sequence
Počni
Inicijaliziraj
GetLibVersion
Čekajte Prekid čitanja podataka tajmera

Pročitajte ažuriranje podataka akcelerometra
Get Outputs

2.2.4

Demo code The following demonstration code example reads data from the accelerometer sensor, obtains the current activity from MotionAW library and gets the number of steps, cadence and confidence from MotionPW library.
[…] #define VERSION_STR_LENG 35 […] /* Inicijalizacija */ char lib_version[VERSION_STR_LENG];
/* Pedometer API initialization function */ MotionPW_Initialize();
/* Activity recognition API initialization function */ MotionAW_Initialize();
/* Optional: Get version */ MotionPW_GetLibVersion(lib_version);
[…] /* Korištenje pedometra za algoritam za zglob */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_input_t MPW_data_in; MPW_output_t MPW_data_out;

UM2350 – Rev 4

strana 5/16

2.2.5

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
MAW_input_t MAW_data_in; MAW_output_t MAW_data_out;
/* Get acceleration X/Y/Z in g */ MEMS_Read_AccValue(&MAW_data_in.Acc_X, &MAW_data_in.Acc_Y, &MAW_data_in.Acc_Z);
/* Get current activity */ MotionAW_Update(&MAW_data_in, &MAW_data_out, Timestamp);
MPW_data_in.Acc_X = MAW_data_in.Acc_X; MPW_data_in.Acc_Y = MAW_data_in.Acc_Y; MPW_data_in.Acc_Z = MAW_data_in.Acc_Z;
if (MAW_data_out.current_activity == MAW_WALKING) {
MPW_data_in.currentActivity = MPW_WALKING; } else if (MAW_data_out.current_activity == MAW_FASTWALKING) {
MPW_data_in.currentActivity = MPW_FASTWALKING; } else if (MAW_data_out.current_activity == MAW_JOGGING) {
MPW_data_in.currentActivity = MPW_JOGGING; } else {
MPW_data_in.currentActivity = MPW_UNKNOWN_ACTIVITY; }
/* Run pedometer for wrist algorithm */ MotionPW_Update(&MPW_data_in, &MPW_data_out); }
Algorithm performance The pedometer for wrist algorithm uses data from the accelerometer only and runs at a low frequency (50 Hz) to reduce power consumption. When replicating fitness activity with the STM32 Nucleo board, ensure the board is oriented perpendicularly to the forearm, to simulate the wristband position.
Figure 2. Orientation system for wrist-worn devices

Tabela 2. Vrijeme proteka algoritma (µs) Cortex-M4, Cortex-M3

Cortex-M4 STM32F401RE na 84 MHz

Min

Avg

Max

38

49

616

Cortex-M3 STM32L152RE na 32 MHz

Min

Avg

Max

296

390

3314

UM2350 – Rev 4

strana 6/16

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

Tabela 3. Vrijeme trajanja algoritma (µs) Cortex-M33 i Cortex-M7

Cortex-M33 STM32U575ZI-Q na 160 MHz

Min

Avg

Max

57

63

359

Cortex-M7 STM32F767ZI na 96 MHz

Min

Avg

Max

61

88

1301

2.3

Sample application

The MotionPW middleware can be easily manipulated to build user applications.

A sample application is provided in the Application folder. It is designed to run on a NUCLEO-F401RE, NUCLEOU575ZI-Q or NUCLEO-L152RE development board connected to an X-NUCLEO-IKS4A1 or X-NUCLEO-IKS01A3 expansion board.

The application recognizes the steps, cadence and confidence in real-time. The data can be displayed through a GUI.

Slika 3. STM32 Nucleo: LED diode, dugme, kratkospojnik

Gornja slika prikazuje korisničko dugme B1 i tri LED diode NUCLEO-F401RE ploče. Kada se ploča napaja, LED LD3 (PWR) se uključuje.
A USB cable connection is required to monitor real-time data. The board is powered by the PC via USB connection. This working mode allows the user to display detected steps, cadence and confidence, accelerometer data, time stamp i eventualno druge podatke senzora, u realnom vremenu, koristeći MEMS-Studio.

2.4

Aplikacija MEMS Studio

The sampOva aplikacija koristi aplikaciju MEMS-Studio, koja se može preuzeti sa www.st.com.

Korak 1. Uverite se da su potrebni drajveri instalirani i da je STM32 Nucleo ploča sa odgovarajućom pločom za proširenje povezana na računar.

UM2350 – Rev 4

strana 7/16

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

Korak 2.

Pokrenite aplikaciju MEMS-Studio da otvorite glavni prozor aplikacije.
Ako je STM32 Nucleo ploča sa podržanim firmverom povezana na PC, ona se automatski detektuje. Pritisnite dugme [Connect] da uspostavite vezu sa pločom za procenu.

Slika 4. MEMS-Studio – Connect

Korak 3. Kada se poveže na STM32 Nucleo ploču sa podržanim firmverom, otvara se kartica [Library Evaluation].

Da biste pokrenuli i zaustavili prijenos podataka, uključite odgovarajuću vertikalnu traku s alatima [Start].

ili dugme [Stop] na spoljnoj strani

Podaci koji dolaze od povezanog senzora mogu biti viewed odabirom kartice [Tabela podataka] na unutrašnjoj vertikalnoj traci sa alatkama.

Slika 5. MEMS-Studio – Evaluacija biblioteke – Tabela podataka

UM2350 – Rev 4

strana 8/16

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Korak 4. Kliknite na [Pedometar] da biste otvorili namjenski prozor aplikacije. Slika 6. MEMS-Studio – Evaluacija biblioteke – Pedometar

Korak 5.

Kliknite na [Save To File] da biste otvorili prozor za konfiguraciju evidentiranja podataka. Odaberite podatke senzora i pedometra koji će se sačuvati u file. Možete započeti ili zaustaviti spremanje klikom na odgovarajući
dugme.

Slika 7. MEMS-Studio – Procjena biblioteke – Sačuvaj u File

UM2350 – Rev 4

strana 9/16

UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube

Korak 6.

Način ubrizgavanja podataka može se koristiti za slanje prethodno prikupljenih podataka u biblioteku i primanje
rezultat. Odaberite karticu [Data Injection] na okomitoj traci sa alatkama da biste otvorili namjenski view za ovu funkcionalnost.

Slika 8. MEMS-Studio – Evaluacija biblioteke – Ubacivanje podataka

Korak 7.

Kliknite na dugme [Browse] da odaberete file sa prethodno snimljenim podacima u CSV formatu. Podaci će biti učitani u tabelu u toku view. Ostala dugmad će postati aktivna. Možete kliknuti na:
Dugme [Offline Mode] za uključivanje/isključivanje offline moda firmvera (režim koji koristi prethodno snimljene podatke).
Dugmad [Start]/[Stop]/[Step]/[Repeat] za kontrolu prijenosa podataka iz MEMS-Studio u biblioteku.

UM2350 – Rev 4

strana 10/16

UM2350
Reference

3

Reference

Svi sljedeći resursi su besplatno dostupni na www.st.com. 1. UM1859: Početak korištenja X-CUBE-MEMS1 MEMS pokreta i softvera za senzore okoliša
proširenje za STM32Cube 2. UM1724: STM32 Nucleo-64 ploče (MB1136) 3. UM3233: Početak rada s MEMS-Studio

UM2350 – Rev 4

strana 11/16

UM2350

Istorija revizija

Tabela 4. Istorija revizije dokumenta

Datum

Version Changes

24-Jan-2018 1 Initial release.

21-Mar-2018 2 Updated Introduction and Section 2.1 MotionPW overview. Updated Section 2.2.5: Algorithm performance and Figure 3. STM32 Nucleo: LEDs, button, jumper.
20-Feb-2019 3 Added X-NUCLEO-IKS01A3 expansion board compatibility information.

Updated Section Introduction, Section 2.1: MotionPW overview, Section 2.2.1: MotionPW library 20-May-2025 4 description, Section 2.2.2: MotionPW APIs, Section 2.2.4: Demo code, Section 2.2.5: Algorithm
performans, Odjeljak 2.3: Sample aplikacija, Odjeljak 2.4: Aplikacija MEMS Studio

UM2350 – Rev 4

strana 12/16

UM2350
Sadržaj
Sadržaj
1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 MotionPW middleware library in X-CUBE-MEMS1 software expansion for
STM32Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.1 MotionPW overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 MotionPW library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 MotionPW library description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.2 MotionPW APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.3 API flow chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.4 Demo code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.5 Algorithm performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Sample application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Aplikacija MEMS Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Istorija revizija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

UM2350 – Rev 4

strana 13/16

UM2350
Lista tabela

Lista tabela

Tabela 1. Tabela 2. Tabela 3. Tabela 4.

Lista akronima. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Vrijeme trajanja algoritma (µs) Cortex-M4, Cortex-M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Vrijeme proteka algoritma (µs) Cortex-M33 i Cortex-M7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Istorija revizija dokumenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

UM2350 – Rev 4

strana 14/16

UM2350
Spisak brojki

Spisak brojki

Slika 1. Slika 2. Slika 3. Slika 4. Slika 5. Slika 6. Slika 7. Slika 8.

MotionPW API logic sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Orientation system for wrist-worn devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 STM32 Nucleo: LEDs, button, jumper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 MEMS-Studio – Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MEMS-Studio – Library Evaluation – Data Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MEMS-Studio – Library Evaluation – Pedometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MEMS-Studio – Library Evaluation – Save To File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MEMS-Studio – Library Evaluation – Data Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

UM2350 – Rev 4

strana 15/16

UM2350
VAŽNO OBAVIJEST PAŽLJIVO PROČITAJTE STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi ​​u trenutku potvrde narudžbe. Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca. ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine. Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod. ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika. Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.
© 2025 STMicroelectronics Sva prava zadržana

UM2350 – Rev 4

strana 16/16

Dokumenti / Resursi

ST X-CUBE-MEMS1 Sensor and Motion Algorithm Software Expansion [pdf] Korisnički priručnik
STM32 Nucleo, X-NUCLEO-IKS4A1, X-NUCLEO-IKS01A3, X-CUBE-MEMS1 Sensor and Motion Algorithm Software Expansion, X-CUBE-MEMS1, Sensor and Motion Algorithm Software Expansion, Motion Algorithm Software Expansion, Algorithm Software Expansion, Software Expansion

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *