Expansão do software de sensor e algoritmo de movimento X-CUBE-MEMS1
“
Informações do produto
Especificações
- Nome do produto: Pedômetro em tempo real MotionPW
- Compatibilidade: Expansão X-CUBE-MEMS1 para STM32Cube
- Fabricante: STMicroelectronics
- Biblioteca: Biblioteca de Middleware MotionPW
- Aquisição de dados: Acelerômetro
- SampFrequência de leitura: 50 Hz
Instruções de uso do produto
Sobreview
A biblioteca MotionPW expande a funcionalidade do
Software X-CUBE-MEMS1 adquirindo dados do acelerômetro para
fornecer informações sobre o número de passos e cadência realizados
com o dispositivo vestível.
Compatibilidade
A biblioteca foi projetada apenas para sensores ST MEMS. Usando outros
Os sensores MEMS podem resultar em diferentes funcionalidades e
desempenho.
Implementação
Comoampa implementação está disponível para X-NUCLEO-IKS4A1 e
Placas de expansão X-NUCLEO-IKS01A3 montadas em desenvolvimento especificado
placas.
Informações técnicas
Para funções e parâmetros detalhados das APIs MotionPW,
consulte o HTML compilado MotionPW_Package.chm file localizado no
Pasta de documentação.
APIs
- MotionPW_GetLibVersion(char *versão)
- MotionPW_Initialize(void)
- MotionPW_Update(MPW_input_t *dados_entrada, MPW_saída_t
*saída de dados) - MotionPW_ResetPedometerLibrary(void)
- MotionPW_ResetStepCount(void)
- MotionPW_UpdateEnergyThreshold(flutuante *limiar_de_energia)
Perguntas Frequentes (FAQ)
P: Posso usar a biblioteca MotionPW com sensores MEMS não ST?
R: A biblioteca foi projetada somente para sensores ST MEMS.
A compatibilidade com outros sensores MEMS não é garantida.
P: Quais são os dados do acelerômetro necessários?ampmaruca
freqüência?
A: Os requisitos sampa frequência de medição é de 50 Hz para precisão
detecção de passos e cadência.
P: Como inicializo a biblioteca MotionPW?
A: Chame a função MotionPW_Initialize() antes de usar o
biblioteca de atividades físicas. Certifique-se de que o módulo CRC no STM32
o microcontrolador está habilitado.
“`
UM2350
Manual do usuário
Introdução à biblioteca de pedômetros de pulso em tempo real MotionPW na expansão X-CUBEMEMS1 para STM32Cube
Introdução
A biblioteca de middleware MotionPW faz parte do software X-CUBE-MEMS1 e roda no STM32 Nucleo. Ela fornece informações em tempo real sobre o número de passos e a cadência que o usuário acabou de executar com o dispositivo vestível (por exemplo, um relógio inteligente). Esta biblioteca destina-se a funcionar apenas com ST MEMS. O algoritmo é fornecido em formato de biblioteca estática e foi projetado para ser usado em microcontroladores STM32 baseados nas arquiteturas ARM® Cortex®-M3, ARM Cortex®-M33, ARM® Cortex®-M4 e ARM® Cortex®-M7. Ele é construído sobre a tecnologia de software STM32Cube para facilitar a portabilidade entre diferentes microcontroladores STM32. O software vem comampa implementação em execução na placa de expansão X-NUCLEO-IKS4A1 ou X-NUCLEO-IKS01A3 em uma placa de desenvolvimento NUCLEO-F401RE, NUCLEO-U575ZI-Q ou NUCLEO-L152RE.
UM2350 – Rev 4 – maio de 2025 Para mais informações, entre em contato com o escritório de vendas local da STMicroelectronics.
www.st.com
UM2350
Acrônimos e abreviações
1
Acrônimos e abreviações
Sigla API BSP GUI HAL IDE
Tabela 1. Lista de siglas
Interface de programação de aplicativos Pacote de suporte de placa Interface gráfica do usuário Camada de abstração de hardware Ambiente de desenvolvimento integrado
Descrição
UM2350 - Rev 4
Página 2 / 16
2
2.1 2.2
2.2.1
2.2.2
Observação:
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
MotionPW sobreview
A biblioteca MotionPW expande a funcionalidade do software X-CUBE-MEMS1.
A biblioteca adquire dados do acelerômetro e fornece informações sobre o número de passos e a cadência que o usuário acabou de executar com o dispositivo vestível.
A biblioteca foi projetada apenas para ST MEMS. A funcionalidade e o desempenho ao usar outros sensores MEMS não são analisados e podem ser significativamente diferentes do descrito no documento.
ComoampA implementação está disponível para placas de expansão X-NUCLEO-IKS4A1 e X-NUCLEO-IKS01A3, montadas em uma placa de desenvolvimento NUCLEO-F401RE, NUCLEO-U575ZI-Q ou NUCLEO-L152RE.
Biblioteca MotionPW
Informações técnicas que descrevem completamente as funções e parâmetros das APIs do MotionPW podem ser encontradas no HTML compilado do MotionPW_Package.chm file localizado na pasta Documentação.
Descrição da biblioteca MotionPW
A biblioteca de pedômetros MotionPW gerencia os dados adquiridos do acelerômetro; ela apresenta:
·
possibilidade de detectar o número de passos, cadência e confiança
·
reconhecimento baseado apenas em dados do acelerômetro
·
dados necessários do acelerômetro sampfrequência de 50 Hz
·
requisitos de recursos:
Cortex-M3: 3.7 kB de código e 1.8 kB de memória de dados
Cortex-M33: 3.5 kB de código e 1.8 kB de memória de dados
Cortex-M4: 3.5 kB de código e 1.8 kB de memória de dados
Cortex-M7: 3.6 kB de código e 1.8 kB de memória de dados
·
disponível para ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 e ARM® Cortex®-M7
arquiteturas
APIs do MotionPW
As APIs da biblioteca MotionPW são:
·
uint8_t MotionPW_GetLibVersion(char *versão)
recupera a versão da biblioteca
*versão é um ponteiro para uma matriz de 35 caracteres
retorna o número de caracteres na string da versão
·
void MotionPW_Initialize(void)
executa a inicialização da biblioteca MotionPW e a configuração do mecanismo interno, incluindo a alocação dinâmica de memória
Esta função deve ser chamada antes de usar a biblioteca de atividades de condicionamento físico e o módulo CRC no microcontrolador STM32 (no registro de habilitação de relógio periférico RCC) deve ser habilitado.
UM2350 - Rev 4
Página 3 / 16
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
·
void MotionPW_Update(MPW_input_t *dados_entrada, MPW_output_t *dados_saída)
executa algoritmo de pedômetro para pulso
*o parâmetro data_in é um ponteiro para uma estrutura com dados de entrada
os parâmetros para o tipo de estrutura MPW_input_t são:
AccX é o valor do sensor do acelerômetro no eixo X em g
AccY é o valor do sensor do acelerômetro no eixo Y em g
AccZ é o valor do sensor do acelerômetro no eixo Z em g
CurrentActivity é o tipo de entrada enumerado MPW_activity_t com os seguintes valores:
ATIVIDADE_DESCONHECIDA_MPW = 0x00
MPW_WALKING = 0x01
MPW_FASTWALKING = 0x02
MPW_JOGGING = 0x03
*o parâmetro data_out é um ponteiro para uma estrutura com dados de saída
os parâmetros para o tipo de estrutura MPW_output_t são:
Nsteps é o número de etapas executadas pelo usuário
Cadência é a cadência dos passos do usuário
A confiança é a confiança do parâmetro de saída calculado
·
void MotionPW_ResetPedometerLibrary(void)
redefine as variáveis internas da biblioteca e o mecanismo para os valores padrão (incluindo a contagem de passos atual)
·
vazio MotionPW_ResetStepCount(vazio)
redefine a contagem de passos atual
·
void MotionPW_UpdateEnergyThreshold(float *limiar_de_energia)
limite de energia atualizado para ajustar o algoritmo de detecção de passos
*o parâmetro energy_threshold é um ponteiro para o valor limite de energia
UM2350 - Rev 4
Página 4 / 16
2.2.3
Fluxograma de API
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Figura 1. Sequência lógica da API MotionPW
Começar
Inicializar
ObterLibVersion
Temporizador de espera expirando dados de interrupção de leitura
Ler atualização de dados do acelerômetro
Obter saídas
2.2.4
Código de demonstração O seguinte código de demonstração example lê dados do sensor do acelerômetro, obtém a atividade atual da biblioteca MotionAW e obtém o número de passos, cadência e confiança da biblioteca MotionPW.
[…] #define VERSION_STR_LENG 35 […] /* Inicialização */ char lib_version[VERSION_STR_LENG];
/* Função de inicialização da API do pedômetro */ MotionPW_Initialize();
/* Função de inicialização da API de reconhecimento de atividade */ MotionAW_Initialize();
/* Opcional: Obter versão */ MotionPW_GetLibVersion(lib_version);
[…] /* Usando o algoritmo Pedômetro para pulso */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_entrada_t MPW_dados_entrada; MPW_saída_t MPW_dados_saída;
UM2350 - Rev 4
Página 5 / 16
2.2.5
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Entrada_MAW_t Entrada_de_dados_MAW; Saída_MAW_t Saída_de_dados_MAW;
/* Obter aceleração X/Y/Z em g */ MEMS_Read_AccValue(&MAW_data_in.Acc_X, &MAW_data_in.Acc_Y, &MAW_data_in.Acc_Z);
/* Obter atividade atual */ MotionAW_Update(&MAW_data_in, &MAW_data_out, Timestamp);
MPW_dados_em.Acc_X = MAW_dados_em.Acc_X; MPW_dados_em.Acc_Y = MAW_dados_em.Acc_Y; MPW_dados_em.Acc_Z = MAW_dados_em.Acc_Z;
se (MAW_data_out.current_activity == MAW_WALKING) {
MPW_data_in.currentActivity = MPW_WALKING; } senão se (MAW_data_out.current_activity == MAW_FASTWALKING) {
MPW_data_in.currentActivity = MPW_FASTWALKING; } senão se (MAW_data_out.current_activity == MAW_JOGGING) {
MPW_data_in.currentActivity = MPW_JOGGING; } senão {
MPW_data_in.currentActivity = ATIVIDADE_DESCONHECIDA_MPW; }
/* Executar pedômetro para algoritmo de pulso */ MotionPW_Update(&MPW_data_in, &MPW_data_out); }
Desempenho do algoritmo: O algoritmo do pedômetro para pulso utiliza apenas dados do acelerômetro e opera em baixa frequência (50 Hz) para reduzir o consumo de energia. Ao replicar atividades físicas com a placa STM32 Nucleo, certifique-se de que a placa esteja perpendicular ao antebraço para simular a posição da pulseira.
Figura 2. Sistema de orientação para dispositivos usados no pulso
Tabela 2. Tempo de lapso do algoritmo (µs) Cortex-M4, Cortex-M3
Cortex-M4 STM32F401RE a 84 MHz
Mínimo
Média
Máx.
38
49
616
Cortex-M3 STM32L152RE a 32 MHz
Mínimo
Média
Máx.
296
390
3314
UM2350 - Rev 4
Página 6 / 16
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Tabela 3. Tempo de lapso do algoritmo (µs) Cortex-M33 e Cortex-M7
Cortex- M33 STM32U575ZI-Q a 160 MHz
Mínimo
Média
Máx.
57
63
359
Cortex- M7 STM32F767ZI a 96 MHz
Mínimo
Média
Máx.
61
88
1301
2.3
Sample aplicativo
O middleware MotionPW pode ser facilmente manipulado para criar aplicativos de usuário.
ComoampO aplicativo é fornecido na pasta Application. Ele foi projetado para ser executado em uma placa de desenvolvimento NUCLEO-F401RE, NUCLEOU575ZI-Q ou NUCLEO-L152RE conectada a uma placa de expansão X-NUCLEO-IKS4A1 ou X-NUCLEO-IKS01A3.
O aplicativo reconhece os passos, a cadência e a confiança em tempo real. Os dados podem ser exibidos por meio de uma interface gráfica.
Figura 3. STM32 Nucleo: LEDs, botão, jumper
A figura acima mostra o botão de usuário B1 e os três LEDs da placa NUCLEO-F401RE. Uma vez que a placa é energizada, o LED LD3 (PWR) liga.
É necessária uma conexão por cabo USB para monitorar os dados em tempo real. A placa é alimentada pelo PC via conexão USB. Este modo de funcionamento permite ao usuário exibir os passos detectados, a cadência e a confiança, os dados do acelerômetro e o tempo decorrido.amp e eventualmente outros dados de sensores, em tempo real, usando o MEMS-Studio.
2.4
Aplicação MEMS Studio
Os sampO aplicativo usa o aplicativo MEMS-Studio, que pode ser baixado em www.st.com.
Etapa 1. Certifique-se de que os drivers necessários estejam instalados e que a placa STM32 Nucleo com placa de expansão apropriada esteja conectada ao PC.
UM2350 - Rev 4
Página 7 / 16
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Passo 2.
Inicie o aplicativo MEMS-Studio para abrir a janela principal do aplicativo.
Se uma placa STM32 Nucleo com firmware suportado estiver conectada ao PC, ela será detectada automaticamente. Pressione o botão [Connect] para estabelecer a conexão com a placa de avaliação.
Figura 4. MEMS-Studio – Conectar
Etapa 3. Quando conectado a uma placa STM32 Nucleo com firmware compatível, a guia [Avaliação da biblioteca] é aberta.
Para iniciar e parar o streaming de dados, alterne a barra de ferramentas vertical apropriada [Iniciar].
ou botão [Parar] na parte externa
Os dados provenientes do sensor conectado podem ser viewed selecionando a guia [Data Table] na barra de ferramentas vertical interna.
Figura 5. MEMS-Studio – Avaliação da Biblioteca – Tabela de Dados
UM2350 - Rev 4
Página 8 / 16
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Etapa 4. Clique em [Pedômetro] para abrir a janela dedicada do aplicativo. Figura 6. MEMS-Studio – Avaliação da Biblioteca – Pedômetro
Passo 5.
Clique em [Salvar em File] para abrir a janela de configuração do registro de dados. Selecione os dados do sensor e do pedômetro a serem salvos na file. Você pode começar ou parar de salvar clicando no correspondente
botão.
Figura 7. MEMS-Studio – Avaliação da biblioteca – Salvar em File
UM2350 - Rev 4
Página 9 / 16
UM2350
Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para STM32Cube
Passo 6.
O modo de injeção de dados pode ser usado para enviar os dados adquiridos anteriormente para a biblioteca e recebê-los
resultado. Selecione a aba [Injeção de Dados] na barra de ferramentas vertical para abrir o dedicado view para esta funcionalidade.
Figura 8. MEMS-Studio – Avaliação de biblioteca – Injeção de dados
Passo 7.
Clique no botão [Navegar] para selecionar o file com os dados capturados anteriormente no formato CSV. Os dados serão carregados na tabela no formato atual view. Outros botões ficarão ativos. Você pode clicar em:
Botão [Modo offline] para ligar/desligar o modo offline do firmware (modo que utiliza os dados capturados anteriormente).
Botões [Iniciar]/[Parar]/[Etapa]/[Repetir] para controlar a alimentação de dados do MEMS-Studio para a biblioteca.
UM2350 - Rev 4
Página 10 / 16
UM2350
Referências
3
Referências
Todos os recursos a seguir estão disponíveis gratuitamente em www.st.com. 1. UM1859: Introdução ao software de sensor ambiental e MEMS de movimento X-CUBE-MEMS1
expansão para STM32Cube 2. UM1724: placas STM32 Nucleo-64 (MB1136) 3. UM3233: Introdução ao MEMS-Studio
UM2350 - Rev 4
Página 11 / 16
UM2350
Histórico de revisão
Tabela 4. Histórico de revisão do documento
Data
Mudanças na versão
24-jan-2018 1 Lançamento inicial.
21-Mar-2018 2 Introdução atualizada e Seção 2.1 MotionPW sobreview. Seção 2.2.5 atualizada: Desempenho do algoritmo e Figura 3. STM32 Nucleo: LEDs, botão, jumper.
20/2019/3 01 Adicionadas informações de compatibilidade da placa de expansão X-NUCLEO-IKS3AXNUMX.
Seção de introdução atualizada, Seção 2.1: MotionPW sobreview, Seção 2.2.1: Biblioteca MotionPW 20 de maio de 2025 4 descrição, Seção 2.2.2: APIs MotionPW, Seção 2.2.4: Código de demonstração, Seção 2.2.5: Algoritmo
desempenho, Seção 2.3: Sampo aplicativo, Seção 2.4: Aplicativo MEMS Studio
UM2350 - Rev 4
Página 12 / 16
UM2350
Conteúdo
Conteúdo
1 Siglas e abreviações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Biblioteca de middleware MotionPW na expansão de software X-CUBE-MEMS1 para
STM32Cube . ...view . ... . . . . . . . . . 3
2.2.1 Descrição da biblioteca MotionPW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.2 APIs do MotionPW. ... 3 2.2.3 Fluxograma da API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.4 Código de demonstração . ... . . . . . . . . 5 2.2.5 Desempenho do algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Sampo aplicativo . ... . . 7
3 Referências . ... . . . . . . . . . . . . . . . . . . . . . . . . .11
UM2350 - Rev 4
Página 13 / 16
UM2350
Lista de tabelas
Lista de tabelas
Tabela 1. Tabela 2. Tabela 3. Tabela 4.
Lista de siglas . ... . . . . . . 2 Tempo de lapso do algoritmo (µs) Cortex-M4 e Cortex-M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Histórico de revisão do documento . ... . . . 33
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.
Sequência lógica da API MotionPW . ... 5 STM6 Nucleo: LEDs, botão, jumper . ... . . . 32 MEMS-Studio – Avaliação da biblioteca – Tabela de dados. ... File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MEMS-Studio – Avaliação de biblioteca – Injeção de dados . ...
UM2350 - Rev 4
Página 15 / 16
UM2350
AVISO IMPORTANTE LEIA COM ATENÇÃO A STMicroelectronics NV e suas subsidiárias (“ST”) reservam-se o direito de fazer alterações, correções, aprimoramentos, modificações e melhorias nos produtos ST e/ou neste documento a qualquer momento sem aviso prévio. Os compradores devem obter as informações relevantes mais recentes sobre os produtos ST antes de fazer pedidos. Os produtos ST são vendidos de acordo com os termos e condições de venda da ST em vigor no momento da confirmação do pedido. Os compradores são os únicos responsáveis pela escolha, seleção e uso dos produtos ST e a ST não assume nenhuma responsabilidade pela assistência à aplicação ou pelo design dos produtos dos compradores. Nenhuma licença, expressa ou implícita, a qualquer direito de propriedade intelectual é concedida pela ST neste documento. A revenda de produtos ST com disposições diferentes das informações aqui estabelecidas anulará qualquer garantia concedida pela ST para tal produto. ST e o logotipo ST são marcas registradas da ST. Para obter informações adicionais sobre as marcas registradas da ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou serviços são de propriedade de seus respectivos proprietários. As informações neste documento substituem as informações fornecidas anteriormente em quaisquer versões anteriores deste documento.
© 2025 STMicroelectronics Todos os direitos reservados
UM2350 - Rev 4
Página 16 / 16
Documentos / Recursos
![]() |
Expansão de software de algoritmo de movimento e sensor ST X-CUBE-MEMS1 [pdf] Manual do Usuário STM32 Nucleo, X-NUCLEO-IKS4A1, X-NUCLEO-IKS01A3, Expansão de software de algoritmo de movimento e sensor X-CUBE-MEMS1, Expansão de software de algoritmo de movimento e sensor, Expansão de software de algoritmo de movimento, Expansão de software de algoritmo, Expansão de software |