Expansión de software del sensor y algoritmo de movimiento X-CUBE-MEMS1
“
Información del producto
Presupuesto
- Nombre del producto: Podómetro en tiempo real MotionPW
- Compatibilidad: Expansión X-CUBE-MEMS1 para STM32Cube
- Fabricante: STMicroelectronics
- Biblioteca: Biblioteca de middleware MotionPW
- Adquisición de datos: acelerómetro
- SampFrecuencia de lingote: 50 Hz
Instrucciones de uso del producto
Encimaview
La biblioteca MotionPW amplía la funcionalidad de la
El software X-CUBE-MEMS1 adquiere datos del acelerómetro para
Proporcionar información sobre el número de pasos y la cadencia realizados
con el dispositivo portátil.
Compatibilidad
La biblioteca está diseñada únicamente para sensores ST MEMS. El uso de otros...
Los sensores MEMS pueden resultar en diferentes funcionalidades y
actuación.
Implementación
ComoampLa implementación está disponible para X-NUCLEO-IKS4A1 y
Placas de expansión X-NUCLEO-IKS01A3 montadas en el desarrollo especificado
tableros
Información técnica
Para conocer las funciones y parámetros detallados de las API de MotionPW,
Consulte el HTML compilado MotionPW_Package.chm file Ubicado en el
Carpeta de documentación.
API
- MotionPW_GetLibVersion(carácter *versión)
- MotionPW_Initialize(vacío)
- MotionPW_Update(MPW_entrada_t *datos_entrada, MPW_salida_t
*datos_de_salida) - MotionPW_ResetPedometerLibrary(vacío)
- MotionPW_ResetStepCount(vacío)
- MotionPW_UpdateEnergyThreshold(float *umbral_de_energía)
Preguntas frecuentes (FAQ)
P: ¿Puedo usar la biblioteca MotionPW con sensores MEMS que no sean ST?
R: La biblioteca está diseñada únicamente para sensores ST MEMS.
No se garantiza la compatibilidad con otros sensores MEMS.
P: ¿Cuáles son los datos del acelerómetro necesarios?ampabadejo
¿frecuencia?
A: El requeridoampLa frecuencia de medición es de 50 Hz para una precisión
Detección de pasos y cadencia.
P: ¿Cómo inicializo la biblioteca MotionPW?
A: Llame a la función MotionPW_Initialize() antes de usar el
Biblioteca de actividades físicas. Asegúrese de que el módulo CRC esté en el STM32.
El microcontrolador está habilitado.
"`
UM2350
Manual de usuario
Introducción al podómetro en tiempo real MotionPW para la biblioteca de muñecas en la expansión X-CUBEMEMS1 para STM32Cube
Introducción
La biblioteca de middleware MotionPW forma parte del software X-CUBE-MEMS1 y se ejecuta en STM32 Nucleo. Proporciona información en tiempo real sobre el número de pasos y la cadencia que el usuario acaba de realizar con el dispositivo portátil (por ejemplo, un reloj inteligente). Esta biblioteca está diseñada exclusivamente para funcionar con ST MEMS. El algoritmo se proporciona en formato de biblioteca estática y está diseñado para su uso en microcontroladores STM32 basados en la arquitectura ARM® Cortex®-M3, ARM Cortex®-M33, ARM® Cortex®-M4 y ARM® Cortex®-M7. Está basado en la tecnología de software STM32Cube para facilitar la portabilidad entre diferentes microcontroladores STM32. El software incluye...ampLa implementación se ejecuta en una placa de expansión X-NUCLEO-IKS4A1 o X-NUCLEO-IKS01A3 en una placa de desarrollo NUCLEO-F401RE, NUCLEO-U575ZI-Q o NUCLEO-L152RE.
UM2350 – Rev 4 – Mayo de 2025 Para obtener más información, comuníquese con su oficina de ventas local de STMicroelectronics.
www.st.com
UM2350
Siglas y abreviaturas
1
Siglas y abreviaturas
Acrónimo API BSP GUI HAL IDE
Tabla 1. Lista de siglas
Interfaz de programación de aplicaciones Paquete de soporte de placa Interfaz gráfica de usuario Capa de abstracción de hardware Entorno de desarrollo integrado
Descripción
UM2350 - Rev 4
página 2/16
2
2.1 2.2
2.2.1
2.2.2
Nota:
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
MotionPW terminadoview
La biblioteca MotionPW amplía la funcionalidad del software X-CUBE-MEMS1.
La biblioteca adquiere datos del acelerómetro y proporciona información sobre el número de pasos y la cadencia que el usuario acaba de realizar con el dispositivo portátil.
La biblioteca está diseñada únicamente para ST MEMS. La funcionalidad y el rendimiento cuando se utilizan otros sensores MEMS no se analizan y pueden ser significativamente diferentes de lo que se describe en el documento.
ComoampLa implementación está disponible para las placas de expansión X-NUCLEO-IKS4A1 y X-NUCLEO-IKS01A3, montadas en una placa de desarrollo NUCLEO-F401RE, NUCLEO-U575ZI-Q o NUCLEO-L152RE.
Biblioteca MotionPW
La información técnica que describe completamente las funciones y parámetros de las API de MotionPW se puede encontrar en el HTML compilado MotionPW_Package.chm. file ubicado en la carpeta Documentación.
Descripción de la biblioteca MotionPW
La biblioteca de podómetro MotionPW administra los datos adquiridos del acelerómetro; incluye:
·
Posibilidad de detectar el número de pasos, cadencia y confianza.
·
reconocimiento basado únicamente en datos del acelerómetro
·
datos requeridos del acelerómetro mampfrecuencia de ling de 50 Hz
·
requisitos de recursos:
Cortex-M3: 3.7 kB de código y 1.8 kB de memoria de datos
Cortex-M33: 3.5 kB de código y 1.8 kB de memoria de datos
Cortex-M4: 3.5 kB de código y 1.8 kB de memoria de datos
Cortex-M7: 3.6 kB de código y 1.8 kB de memoria de datos
·
Disponible para ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 y ARM® Cortex®-M7
arquitecturas
API de MotionPW
Las API de la biblioteca MotionPW son:
·
uint8_t MotionPW_GetLibVersion(carácter *versión)
recupera la versión de la biblioteca
*version es un puntero a una matriz de 35 caracteres
devuelve el número de caracteres en la cadena de versión
·
void MotionPW_Initialize(vacío)
Realiza la inicialización de la biblioteca MotionPW y la configuración del mecanismo interno, incluida la asignación de memoria dinámica
Esta función debe llamarse antes de utilizar la biblioteca de actividades de fitness y el módulo CRC en el microcontrolador STM32 (en el registro de habilitación del reloj periférico RCC) debe estar habilitado.
UM2350 - Rev 4
página 3/16
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
·
void MotionPW_Update(MPW_entrada_t *datos_entrada, MPW_salida_t *datos_salida)
ejecuta el algoritmo del podómetro de muñeca
*El parámetro data_in es un puntero a una estructura con datos de entrada
Los parámetros para el tipo de estructura MPW_input_t son:
AccX es el valor del sensor del acelerómetro en el eje X en g
AccY es el valor del sensor del acelerómetro en el eje Y en g
AccZ es el valor del sensor del acelerómetro en el eje Z en g
CurrentActivity es el tipo de entrada enumerado MPW_activity_t con los siguientes valores:
MPW_ACTIVIDAD_DESCONOCIDA = 0x00
MPW_CAMINANDO = 0x01
MPW_FASTWALKING = 0x02
MPW_JOGGING = 0x03
*El parámetro data_out es un puntero a una estructura con datos de salida
Los parámetros para el tipo de estructura MPW_output_t son:
Nsteps es el número de pasos realizados por el usuario
La cadencia es la cadencia de los pasos del usuario.
La confianza es la confianza del parámetro de salida calculado.
·
void MotionPW_ResetPedometerLibrary(void)
restablece las variables internas de la biblioteca y el mecanismo a los valores predeterminados (incluido el recuento de pasos actual)
·
void MotionPW_ResetStepCount(void)
restablece el recuento de pasos actual
·
void MotionPW_UpdateEnergyThreshold(float *energy_threshold)
Umbral de energía actualizado para ajustar el algoritmo de detección de pasos
*El parámetro energy_threshold es un puntero al valor del umbral de energía
UM2350 - Rev 4
página 4/16
2.2.3
Diagrama de flujo de API
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Figura 1. Secuencia lógica de la API MotionPW
Comenzar
Inicializar
Obtener versión de la biblioteca
Esperar a que caduque el temporizador de lectura de datos
Leer la actualización de datos del acelerómetro
Obtener resultados
2.2.4
Código de demostración El siguiente código de demostración ej.ampLee datos del sensor del acelerómetro, obtiene la actividad actual de la biblioteca MotionAW y obtiene el número de pasos, la cadencia y la confianza de la biblioteca MotionPW.
[…] #define VERSION_STR_LENG 35 […] /* Inicialización */ char lib_version[VERSION_STR_LENG];
/* Función de inicialización de la API del podómetro */ MotionPW_Initialize();
/* Función de inicialización de la API de reconocimiento de actividad */ MotionAW_Initialize();
/* Opcional: Obtener la versión */ MotionPW_GetLibVersion(lib_version);
[…] /* Uso del algoritmo de podómetro para la muñeca */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_entrada_t MPW_datos_entrada; MPW_salida_t MPW_datos_salida;
UM2350 - Rev 4
página 5/16
2.2.5
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
MAW_entrada_t MAW_datos_entrada; MAW_salida_t MAW_datos_salida;
/* Obtener la aceleración X/Y/Z en g */ MEMS_Read_AccValue(&MAW_data_in.Acc_X, &MAW_data_in.Acc_Y, &MAW_data_in.Acc_Z);
/* Obtener la actividad actual */ MotionAW_Update(&MAW_data_in, &MAW_data_out, Timestamp);
MPW_datos_en.Acc_X = MAW_datos_en.Acc_X; MPW_datos_en.Acc_Y = MAW_datos_en.Acc_Y; MPW_datos_en.Acc_Z = MAW_datos_en.Acc_Z;
si (MAW_datos_salida.actividad_actual == MAW_CAMINANDO) {
MPW_data_in.actividad_actual = MPW_CAMINANDO; } de lo contrario si (MAW_data_salida.actividad_actual == MAW_CAMINANDORÁPIDO) {
MPW_data_in.actividad_actual = MPW_CAMINATARÁPIDA; } de lo contrario si (MAW_data_out.actividad_actual == MAW_TROTAR) {
MPW_data_in.actividadActual = MPW_JOGGING; } de lo contrario {
MPW_data_in.actividad_actual = MPW_ACTIVIDAD_DESCONOCIDA; }
/* Ejecutar el algoritmo del podómetro para la muñeca */ MotionPW_Update(&MPW_data_in, &MPW_data_out); }
Rendimiento del algoritmo: El algoritmo del podómetro de muñeca utiliza únicamente los datos del acelerómetro y funciona a baja frecuencia (50 Hz) para reducir el consumo de energía. Al replicar la actividad física con la placa STM32 Nucleo, asegúrese de que la placa esté orientada perpendicularmente al antebrazo para simular la posición de la pulsera.
Figura 2. Sistema de orientación para dispositivos de muñeca
Tabla 2. Tiempo transcurrido del algoritmo (µs) Cortex-M4, Cortex-M3
Cortex-M4 STM32F401RE a 84MHz
Mínimo
Promedio
Máximo
38
49
616
Cortex-M3 STM32L152RE a 32MHz
Mínimo
Promedio
Máximo
296
390
3314
UM2350 - Rev 4
página 6/16
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Tabla 3. Tiempo transcurrido del algoritmo (µs) Cortex-M33 y Cortex-M7
Cortex-M33 STM32U575ZI-Q a 160 MHz
Mínimo
Promedio
Máximo
57
63
359
Cortex-M7 STM32F767ZI a 96 MHz
Mínimo
Promedio
Máximo
61
88
1301
2.3
Sample aplicación
El middleware MotionPW se puede manipular fácilmente para crear aplicaciones de usuario.
ComoampLa aplicación se encuentra en la carpeta de aplicaciones. Está diseñada para ejecutarse en una placa de desarrollo NUCLEO-F401RE, NUCLEOU575ZI-Q o NUCLEO-L152RE conectada a una placa de expansión X-NUCLEO-IKS4A1 o X-NUCLEO-IKS01A3.
La aplicación reconoce los pasos, la cadencia y la confianza en tiempo real. Los datos se pueden visualizar mediante una interfaz gráfica de usuario.
Figura 3. STM32 Nucleo: LED, botón, puente
La figura anterior muestra el botón de usuario B1 y los tres LED de la placa NUCLEO-F401RE. Una vez que se enciende la placa, el LED LD3 (PWR) se enciende.
Se requiere una conexión USB para monitorear los datos en tiempo real. La placa se alimenta desde el PC mediante una conexión USB. Este modo de funcionamiento permite al usuario visualizar los pasos detectados, la cadencia y la confianza, los datos del acelerómetro y el tiempo.amp y eventualmente otros datos de sensores, en tiempo real, utilizando el MEMS-Studio.
2.4
Aplicación MEMS Studio
Los sampLa aplicación utiliza la aplicación MEMS-Studio, que se puede descargar desde www.st.com.
Paso 1. Asegúrese de que los controladores necesarios estén instalados y que la placa STM32 Nucleo con la placa de expansión adecuada esté conectada a la PC.
UM2350 - Rev 4
página 7/16
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Paso 2.
Inicie la aplicación MEMS-Studio para abrir la ventana principal de la aplicación.
Si se conecta a la PC una placa STM32 Nucleo con firmware compatible, se detectará automáticamente. Pulse el botón [Connect] para establecer la conexión con la placa de evaluación.
Figura 4. MEMS-Studio – Conectar
Paso 3. Cuando se conecta a una placa STM32 Nucleo con firmware compatible, se abre la pestaña [Evaluación de biblioteca].
Para iniciar y detener la transmisión de datos, active la barra de herramientas vertical [Inicio] correspondiente.
o el botón [Detener] en el exterior
Los datos provenientes del sensor conectado pueden ser viewed seleccionando la pestaña [Tabla de datos] en la barra de herramientas vertical interior.
Figura 5. MEMS-Studio – Evaluación de biblioteca – Tabla de datos
UM2350 - Rev 4
página 8/16
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Paso 4. Haga clic en [Podómetro] para abrir la ventana de la aplicación. Figura 6. MEMS-Studio – Evaluación de la biblioteca – Podómetro
Paso 5.
Haga clic en [Guardar en File] para abrir la ventana de configuración del registro de datos. Seleccione los datos del sensor y del podómetro que se guardarán en el filePuede iniciar o detener el guardado haciendo clic en el botón correspondiente.
botón.
Figura 7. MEMS-Studio – Evaluación de la biblioteca – Guardar en File
UM2350 - Rev 4
página 9/16
UM2350
Biblioteca de middleware MotionPW en la expansión de software X-CUBE-MEMS1 para STM32Cube
Paso 6.
El modo de inyección de datos se puede utilizar para enviar los datos adquiridos previamente a la biblioteca y recibir los datos.
Resultado. Seleccione la pestaña [Inyección de datos] en la barra de herramientas vertical para abrir la ventana dedicada. view para esta funcionalidad.
Figura 8. MEMS-Studio – Evaluación de la biblioteca – Inyección de datos
Paso 7.
Haga clic en el botón [Explorar] para seleccionar el file con los datos capturados previamente en formato CSV. Los datos se cargarán en la tabla en el momento actual. viewSe activarán otros botones. Puedes hacer clic en:
Botón [Modo sin conexión] para activar o desactivar el modo sin conexión del firmware (modo que utiliza los datos capturados previamente).
Botones [Inicio]/[Detener]/[Paso]/[Repetir] para controlar la alimentación de datos desde MEMS-Studio a la biblioteca.
UM2350 - Rev 4
página 10/16
UM2350
Referencias
3
Referencias
Todos los siguientes recursos están disponibles de forma gratuita en www.st.com. 1. UM1859: Introducción al software de sensores ambientales y MEMS de movimiento X-CUBE-MEMS1
Expansión para STM32Cube 2. UM1724: Placas STM32 Nucleo-64 (MB1136) 3. UM3233: Introducción a MEMS-Studio
UM2350 - Rev 4
página 11/16
UM2350
Historial de revisiones
Tabla 4. Historial de revisión del documento
Fecha
Cambios de versión
24-Ene-2018 1 Lanzamiento inicial.
21-Mar-2018 2 Introducción actualizada y Sección 2.1 MotionPW terminadoview. Sección actualizada 2.2.5: Rendimiento del algoritmo y Figura 3. STM32 Nucleo: LED, botón, puente.
20-Feb-2019 3 Se agregó información de compatibilidad de la placa de expansión X-NUCLEO-IKS01A3.
Sección Introducción actualizada, Sección 2.1: MotionPW terminadoview, Sección 2.2.1: Biblioteca MotionPW 20 de mayo de 2025 4 descripción, Sección 2.2.2: API de MotionPW, Sección 2.2.4: Código de demostración, Sección 2.2.5: Algoritmo
rendimiento, Sección 2.3: Sampla aplicación, Sección 2.4: Aplicación MEMS Studio
UM2350 - Rev 4
página 12/16
UM2350
Contenido
Contenido
1 Siglas y abreviaturas . ...
STM32Cube . ...view . ... . . . . . . . 3
2.2.1 Descripción de la biblioteca MotionPW. ... 3 2.2.2 Diagrama de flujo de la API . ... . . . . . . . . . 3 2.2.3 Rendimiento del algoritmo . ...ampla aplicación . ... . . 7
3 Referencias . ... . . . . . . . . . . . . . . . . . . . . . . . . .11
UM2350 - Rev 4
página 13/16
UM2350
Lista de tablas
Lista de tablas
Tabla 1. Tabla 2. Tabla 3. Tabla 4.
Lista de acrónimos . ... . . . . . 2 Tiempo transcurrido del algoritmo (µs) Cortex-M4 y Cortex-M3 . ... . 6
UM2350 - Rev 4
página 14/16
UM2350
Lista de figuras
Lista de figuras
Figura 1. Figura 2. Figura 3. Figura 4. Figura 5. Figura 6. Figura 7. Figura 8.
Secuencia lógica de la API de MotionPW . ... 5 STM6 Nucleo: LED, botón, puente . ... . . . 32 MEMS-Studio – Evaluación de la biblioteca – Tabla de datos. ... File . ...
UM2350 - Rev 4
página 15/16
UM2350
AVISO IMPORTANTE LÉALO CUIDADOSAMENTE STMicroelectronics NV y sus subsidiarias ("ST") se reservan el derecho de realizar cambios, correcciones, mejoras, modificaciones y mejoras a los productos ST y/o a este documento en cualquier momento sin previo aviso. Los compradores deben obtener la información relevante más reciente sobre los productos ST antes de realizar pedidos. Los productos de ST se venden de conformidad con los términos y condiciones de venta de ST vigentes en el momento de la confirmación del pedido. Los compradores son los únicos responsables de la elección, selección y uso de los productos ST y ST no asume ninguna responsabilidad por la asistencia en la aplicación o el diseño de los productos de los compradores. ST no otorga ninguna licencia, expresa o implícita, sobre ningún derecho de propiedad intelectual en este documento. La reventa de productos ST con disposiciones diferentes a la información aquí establecida anulará cualquier garantía otorgada por ST para dicho producto. ST y el logotipo de ST son marcas comerciales de ST. Para obtener información adicional sobre las marcas comerciales de ST, consulte www.st.com/trademarks. Todos los demás nombres de productos o servicios son propiedad de sus respectivos dueños. La información de este documento sustituye y reemplaza la información proporcionada anteriormente en cualquier versión anterior de este documento.
© 2025 STMicroelectronics Todos los derechos reservados
UM2350 - Rev 4
página 16/16
Documentos / Recursos
![]() |
Expansión de software del sensor y algoritmo de movimiento ST X-CUBE-MEMS1 [pdf] Manual del usuario STM32 Nucleo, X-NUCLEO-IKS4A1, X-NUCLEO-IKS01A3, expansión de software para sensores y algoritmos de movimiento X-CUBE-MEMS1, expansión de software para sensores y algoritmos de movimiento X-CUBE-MEMS1, expansión de software para algoritmos de movimiento, expansión de software para algoritmos, expansión de software |