Extinderea software-ului pentru senzori și algoritmi de mișcare X-CUBE-MEMS1
“
Informații despre produs
Specificații
- Product Name: MotionPW Real-time Pedometer
- Compatibilitate: extensie X-CUBE-MEMS1 pentru STM32Cube
- Producator: STMicroelectronics
- Library: MotionPW Middleware Library
- Data Acquisition: Accelerometer
- Sampling Frecvență: 50 Hz
Instrucțiuni de utilizare a produsului
Pesteview
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.
Compatibilitate
The library is designed for ST MEMS sensors only. Using other
MEMS sensors may result in different functionality and
performanţă.
Implementarea
A sample implementation is available for X-NUCLEO-IKS4A1 and
X-NUCLEO-IKS01A3 expansion boards mounted on specified development
scânduri.
Informații tehnice
For detailed functions and parameters of the MotionPW APIs,
refer to the MotionPW_Package.chm compiled HTML file situat în
Documentation folder.
API-uri
- 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)
Întrebări frecvente (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.
Î: Care sunt datele necesare pentru accelerometruampling
frecvenţă?
A: S-ul necesarampling 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
Manual de utilizare
Getting started with MotionPW real-time pedometer for wrist library in X-CUBEMEMS1 expansion for STM32Cube
Introducere
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 sampImplementarea fișierului rulează pe placa de expansiune X-NUCLEO-IKS4A1 sau X-NUCLEO-IKS01A3 pe o placă de dezvoltare NUCLEO-F401RE, NUCLEO-U575ZI-Q sau NUCLEO-L152RE.
UM2350 – Rev 4 – Mai 2025 Pentru informații suplimentare, contactați biroul local de vânzări STMicroelectronics.
www.st.com
UM2350
Acronime si abrevieri
1
Acronime si abrevieri
Acronimul API BSP GUI HAL IDE
Tabelul 1. Lista de acronime
Interfață de programare a aplicațiilor Pachet de suport pentru placă de bază Interfață grafică cu utilizatorul Nivel de abstractizare hardware Mediu de dezvoltare integrat
Descriere
UM2350 – Rev 4
pagina 2/16
2
2.1 2.2
2.2.1
2.2.2
Nota:
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.
Biblioteca este concepută numai pentru ST MEMS. Funcționalitatea și performanța atunci când se utilizează alți senzori MEMS nu sunt analizate și pot fi semnificativ diferite de cele descrise în document.
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 aflat în folderul Documentation.
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
·
recunoașterea bazată numai pe datele accelerometrului
·
date necesare accelerometru sampfrecventa ling de 50 Hz
·
cerințe de resurse:
Cortex-M3: 3.7 kB de cod și 1.8 kB de memorie de date
Cortex-M33: 3.5 kB de cod și 1.8 kB de memorie de date
Cortex-M4: 3.5 kB de cod și 1.8 kB de memorie de date
Cortex-M7: 3.6 kB de cod și 1.8 kB de memorie de date
·
disponibil pentru ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 și ARM® Cortex®-M7
arhitecturi
MotionPW APIs
The MotionPW library APIs are:
·
uint8_t MotionPW_GetLibVersion(char *version)
preia versiunea bibliotecii
*version este un pointer către un array de 35 de caractere
returnează numărul de caractere din șirul de versiune
·
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
pagina 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
Parametrul *data_in este un pointer către o structură cu date de intrare
the parameters for the structure type MPW_input_t are:
AccX este valoarea senzorului accelerometrului pe axa X în g
AccY este valoarea senzorului accelerometrului pe axa Y în g
AccZ este valoarea senzorului accelerometrului pe axa Z în 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
*data_out parameter is a pointer to a structure with output data
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)
resets the current step count
·
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
pagina 4/16
2.2.3
Diagramă API
UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Figure 1. MotionPW API logic sequence
Început
Inițializați
GetLibVersion
Întrerupere citire date cronometru expirări așteptare
Citiți actualizarea datelor accelerometrului
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 […]
/* Initialization */ 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);
[…]
/* Using Pedometer for wrist algorithm */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_input_t MPW_data_in; MPW_output_t MPW_data_out;
UM2350 – Rev 4
pagina 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
Tabelul 2. Timpul de scurgere al algoritmului (µs) Cortex-M4, Cortex-M3
Cortex-M4 STM32F401RE la 84 MHz
Min
Mediu
Max
38
49
616
Cortex-M3 STM32L152RE la 32 MHz
Min
Mediu
Max
296
390
3314
UM2350 – Rev 4
pagina 6/16
UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Tabelul 3. Timpul de scurgere al algoritmului (µs) Cortex-M33 și Cortex-M7
Cortex- M33 STM32U575ZI-Q la 160 MHz
Min
Mediu
Max
57
63
359
Cortex- M7 STM32F767ZI la 96 MHz
Min
Mediu
Max
61
88
1301
2.3
Sample aplicație
The MotionPW middleware can be easily manipulated to build user applications.
A sampAplicația este furnizată în folderul Aplicație. Este concepută să ruleze pe o placă de dezvoltare NUCLEO-F401RE, NUCLEOU575ZI-Q sau NUCLEO-L152RE conectată la o placă de expansiune X-NUCLEO-IKS4A1 sau X-NUCLEO-IKS01A3.
The application recognizes the steps, cadence and confidence in real-time. The data can be displayed through a GUI.
Figura 3. STM32 Nucleo: LED-uri, buton, jumper
Figura de mai sus prezintă butonul utilizator B1 și cele trei LED-uri ale plăcii NUCLEO-F401RE. Odată ce placa este alimentată, LED-ul LD3 (PWR) se aprinde.
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 eventual alte date ale senzorului, în timp real, folosind MEMS-Studio.
2.4
Aplicația MEMS Studio
Sample application uses MEMS-Studio application, which can be downloaded from www.st.com.
Pasul 1. Asigurați-vă că sunt instalate driverele necesare și că placa STM32 Nucleo cu placa de expansiune corespunzătoare este conectată la computer.
UM2350 – Rev 4
pagina 7/16
UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Pasul 2.
Lansați aplicația MEMS-Studio pentru a deschide fereastra principală a aplicației.
Dacă o placă STM32 Nucleo cu firmware compatibil este conectată la PC, aceasta este detectată automat. Apăsați butonul [Conectare] pentru a stabili conexiunea cu placa de evaluare.
Figura 4. MEMS-Studio – Conectare
Pasul 3. Când este conectat la o placă STM32 Nucleo cu firmware acceptat, se deschide fila [Library Evaluation].
Pentru a porni și a opri redarea în flux a datelor, comutați bara de instrumente verticală [Start] corespunzătoare.
sau butonul [Stop] de pe capacul exterior
Datele care provin de la senzorul conectat pot fi viewși selectând fila [Tabel de date] din bara de instrumente verticală interioară.
Figura 5. MEMS-Studio – Evaluare bibliotecă – Tabel de date
UM2350 – Rev 4
pagina 8/16
UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Step 4. Click on the [Pedometer] to open the dedicated application window. Figure 6. MEMS-Studio – Library Evaluation – Pedometer
Pasul 5.
Faceți clic pe [Salvare în File] to open the dataloging configuration window. Select the sensor and pedometer data to be saved in the filePuteți începe sau opri salvarea făcând clic pe elementul corespunzător
buton.
Figura 7. MEMS-Studio – Evaluare bibliotecă – Salvare în File
UM2350 – Rev 4
pagina 9/16
UM2350
MotionPW middleware library in X-CUBE-MEMS1 software expansion for STM32Cube
Pasul 6.
Modul de injecție a datelor poate fi utilizat pentru a trimite datele achiziționate anterior către bibliotecă și a primi
rezultat. Selectați fila [Injecție date] din bara de instrumente verticală pentru a deschide meniul dedicat view pentru această funcționalitate.
Figura 8. MEMS-Studio – Evaluare bibliotecă – Injecție de date
Pasul 7.
Faceți clic pe butonul [Browse] pentru a selecta file cu datele capturate anterior în format CSV. Datele vor fi încărcate în tabel în curent viewAlte butoane vor deveni active. Puteți face clic pe:
Butonul [Offline Mode] pentru a activa/dezactiva modul offline al firmware-ului (modul care utilizează datele capturate anterior).
Butoanele [Start]/[Stop]/[Step]/[Repeat] pentru a controla fluxul de date de la MEMS-Studio către bibliotecă.
UM2350 – Rev 4
pagina 10/16
UM2350
Referințe
3
Referințe
Toate resursele următoare sunt disponibile gratuit pe www.st.com. 1. UM1859: Noțiuni introductive despre software-ul X-CUBE-MEMS1 pentru senzori de mișcare MEMS și de mediu
expansiune pentru STM32Cube 2. UM1724: plăci STM32 Nucleo-64 (MB1136) 3. UM3233: Introducere în MEMS-Studio
UM2350 – Rev 4
pagina 11/16
UM2350
Istoricul reviziilor
Tabelul 4. Istoricul revizuirilor documentului
Data
Schimbări de versiune
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
performanță, Secțiunea 2.3: Sampaplicația, Secțiunea 2.4: Aplicația MEMS Studio
UM2350 – Rev 4
pagina 12/16
UM2350
Cuprins
Cuprins
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 Sampaplicația . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Aplicația MEMS Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Referințe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Istoricul reviziilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
UM2350 – Rev 4
pagina 13/16
UM2350
Lista de tabele
Lista de tabele
Tabelul 1. Tabelul 2. Tabelul 3. Tabelul 4.
List of acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Algorithm elapse time (µs) Cortex-M4, Cortex-M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Algorithm elapse time (µs) Cortex-M33 and Cortex-M7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
UM2350 – Rev 4
pagina 14/16
UM2350
Lista figurilor
Lista figurilor
Figura 1. Figura 2. Figura 3. Figura 4. Figura 5. Figura 6. Figura 7. Figura 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
pagina 15/16
UM2350
NOTIFICARE IMPORTANT CITIȚI CU ATENȚIE STMicroelectronics NV și filialele sale (“ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii. Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST și ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor. Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta. Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs. ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați www.st.com/trademarks. Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi. Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.
© 2025 STMicroelectronics Toate drepturile rezervate
UM2350 – Rev 4
pagina 16/16
Documente/Resurse
![]() |
ST X-CUBE-MEMS1 Sensor and Motion Algorithm Software Expansion [pdfManual de utilizare 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 |