Manual de usuario de expansión de software de sensor y algoritmo de movimiento ST X-CUBE-MEMS1

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

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *