X-CUBE-MEMS1 Sensor- en bewegingsalgoritme-software-uitbreiding
“
Productinformatie
Specificaties
- Productnaam: MotionPW Real-time stappenteller
- Compatibiliteit: X-CUBE-MEMS1-uitbreiding voor STM32Cube
- Fabrikant: STMicroelectronics
- Bibliotheek: MotionPW Middleware-bibliotheek
- Gegevensverzameling: Accelerometer
- Sampfrequentie: 50 Hz
Instructies voor productgebruik
Overview
De MotionPW-bibliotheek breidt de functionaliteit van de
X-CUBE-MEMS1-software door gegevens van de accelerometer te verkrijgen om
informatie geven over het aantal stappen en de cadans die worden uitgevoerd
met het draagbare apparaat.
Verenigbaarheid
De bibliotheek is uitsluitend ontworpen voor ST MEMS-sensoren. Met andere
MEMS-sensoren kunnen resulteren in verschillende functionaliteiten en
prestatie.
Uitvoering
Alsampde implementatie is beschikbaar voor X-NUCLEO-IKS4A1 en
X-NUCLEO-IKS01A3 uitbreidingskaarten gemonteerd op gespecificeerde ontwikkeling
planken.
Technische informatie
Voor gedetailleerde functies en parameters van de MotionPW API's,
raadpleeg de gecompileerde HTML van MotionPW_Package.chm file gelegen in de
Documentatiemap.
API's
- MotionPW_GetLibVersion(char *versie)
- MotionPW_Initialize(void)
- MotionPW_Update(MPW_input_t *data_in, MPW_output_t
*data_uit) - MotionPW_ResetPedometerLibrary(void)
- MotionPW_ResetStepCount(void)
- MotionPW_UpdateEnergyThreshold(float *energie_drempel)
Veelgestelde vragen (FAQ)
V: Kan ik de MotionPW-bibliotheek gebruiken met niet-ST MEMS-sensoren?
A: De bibliotheek is uitsluitend ontworpen voor ST MEMS-sensoren.
Compatibiliteit met andere MEMS-sensoren kan niet worden gegarandeerd.
V: Welke accelerometergegevens zijn vereist?ampleng
frequentie?
A: De vereiste sampDe lengtefrequentie is 50 Hz voor nauwkeurige
detectie van stappen en cadans.
V: Hoe initialiseer ik de MotionPW-bibliotheek?
A: Roep de MotionPW_Initialize()-functie aan voordat u de
Fitnessactiviteitenbibliotheek. Zorg voor de CRC-module in de STM32
microcontroller is ingeschakeld.
“`
UM2350
Gebruiksaanwijzing
Aan de slag met MotionPW realtime stappenteller voor polsbibliotheek in X-CUBEMEMS1-uitbreiding voor STM32Cube
Invoering
De MotionPW middlewarebibliotheek maakt deel uit van de X-CUBE-MEMS1-software en draait op STM32 Nucleo. Het biedt realtime informatie over het aantal stappen en de cadans die de gebruiker zojuist heeft uitgevoerd met het draagbare apparaat (bijv. een smartwatch). Deze bibliotheek is uitsluitend bedoeld voor gebruik met ST MEMS. Het algoritme wordt geleverd in statisch bibliotheekformaat en is ontworpen voor gebruik op STM32-microcontrollers gebaseerd op de ARM® Cortex®-M3, ARM Cortex®-M33, ARM® Cortex®-M4 en ARM® Cortex®-M7-architectuur. Het is gebouwd op basis van STM32Cube-softwaretechnologie om de portabiliteit tussen verschillende STM32-microcontrollers te vergemakkelijken. De software wordt geleverd metample implementatie die draait op een X-NUCLEO-IKS4A1 of X-NUCLEO-IKS01A3 uitbreidingsbord op een NUCLEO-F401RE, NUCLEO-U575ZI-Q of NUCLEO-L152RE ontwikkelbord.
UM2350 – Rev 4 – mei 2025 Neem voor meer informatie contact op met uw lokale STMicroelectronics-verkoopkantoor.
www.st.com
UM2350
Acroniemen en afkortingen
1
Acroniemen en afkortingen
Acroniem API BSP GUI HAL IDE
Tabel 1. Lijst met acroniemen
Applicatieprogrammeerinterface Boardondersteuningspakket Grafische gebruikersinterface Hardware-abstractielaag Geïntegreerde ontwikkelomgeving
Beschrijving
UM2350 – Rev4
pagina 2/16
2
2.1 2.2
2.2.1
2.2.2
Opmerking:
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
MotionPW voorbijview
De MotionPW-bibliotheek breidt de functionaliteit van de X-CUBE-MEMS1-software uit.
De bibliotheek verzamelt gegevens van de versnellingsmeter en geeft informatie over het aantal stappen en de cadans die de gebruiker zojuist met het draagbare apparaat heeft gezet.
De bibliotheek is alleen ontworpen voor ST MEMS. Functionaliteit en prestaties bij gebruik van andere MEMS-sensoren worden niet geanalyseerd en kunnen aanzienlijk verschillen van wat in het document wordt beschreven.
AlsampDe implementatie is beschikbaar voor X-NUCLEO-IKS4A1 en X-NUCLEO-IKS01A3 uitbreidingsborden, gemonteerd op een NUCLEO-F401RE, NUCLEO-U575ZI-Q of NUCLEO-L152RE ontwikkelbord.
MotionPW-bibliotheek
Technische informatie die de functies en parameters van de MotionPW API's volledig beschrijft, is te vinden in de gecompileerde HTML-code van MotionPW_Package.chm file bevindt zich in de map Documentatie.
Beschrijving van de MotionPW-bibliotheek
De MotionPW-stappentellerbibliotheek beheert de gegevens die door de accelerometer zijn verkregen en omvat:
·
mogelijkheid om het aantal stappen, de cadans en het vertrouwen te detecteren
·
herkenning uitsluitend gebaseerd op accelerometergegevens
·
vereiste accelerometergegevens sampfrequentie van 50 Hz
·
vereisten voor middelen:
Cortex-M3: 3.7 kB code en 1.8 kB datageheugen
Cortex-M33: 3.5 kB code en 1.8 kB datageheugen
Cortex-M4: 3.5 kB code en 1.8 kB datageheugen
Cortex-M7: 3.6 kB code en 1.8 kB datageheugen
·
beschikbaar voor ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 en ARM® Cortex®-M7
architecturen
MotionPW API's
De MotionPW-bibliotheek-API's zijn:
·
uint8_t MotionPW_GetLibVersion(char *versie)
haalt de bibliotheekversie op
*versie is een aanwijzer naar een array van 35 tekens
retourneert het aantal tekens in de versiereeks
·
leeg MotionPW_Initialize(leeg)
voert MotionPW-bibliotheekinitialisatie en -instelling van het interne mechanisme uit, inclusief de dynamische geheugentoewijzing
Deze functie moet worden aangeroepen voordat u de fitnessactiviteitenbibliotheek kunt gebruiken en de CRC-module in de STM32-microcontroller (in het RCC-perifere klok-inschakelregister) moet worden ingeschakeld.
UM2350 – Rev4
pagina 3/16
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
·
void MotionPW_Update(MPW_input_t *data_in, MPW_output_t *data_out)
voert stappenteller uit voor polsalgoritme
*data_in parameter is een aanwijzer naar een structuur met invoergegevens
de parameters voor het structuurtype MPW_input_t zijn:
AccX is de accelerometersensorwaarde in de X-as in g
AccY is de accelerometersensorwaarde op de Y-as in g
AccZ is de accelerometersensorwaarde in de Z-as in g
CurrentActivity is het genummerde invoertype MPW_activity_t met de volgende waarden:
MPW_ONBEKENDE_ACTIVITEIT = 0x00
MPW_LOPEN = 0x01
MPW_SNELWANDELEN = 0x02
MPW_JOGGING = 0x03
*data_out-parameter is een aanwijzer naar een structuur met uitvoergegevens
de parameters voor het structuurtype MPW_output_t zijn:
Nsteps is het aantal stappen dat door de gebruiker wordt uitgevoerd
Cadence is de cadans van de stappen van de gebruiker
Vertrouwen is het vertrouwen in de berekende uitvoerparameter
·
void MotionPW_ResetPedometerLibrary(void)
reset de interne variabelen en het mechanisme van de bibliotheek naar de standaardwaarden (inclusief het huidige aantal stappen)
·
void MotionPW_ResetStepCount(void)
reset het huidige stappenaantal
·
void MotionPW_UpdateEnergyThreshold(float *energie_drempel)
bijgewerkte energiedrempel om het algoritme voor stapdetectie nauwkeurig af te stemmen
*energy_threshold-parameter is een aanwijzer naar de energiedrempelwaarde
UM2350 – Rev4
pagina 4/16
2.2.3
API-stroomschema
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
Figuur 1. MotionPW API-logicasequentie
Begin
Initialiseren
GetLibVersie
Wacht Verlopen Timer Gegevens Lezen Onderbreking
Accelerometergegevensupdate lezen
Uitvoer ophalen
2.2.4
Democode De volgende demonstratiecode example leest gegevens van de accelerometersensor, verkrijgt de huidige activiteit van de MotionAW-bibliotheek en verkrijgt het aantal stappen, de cadans en het vertrouwen van de MotionPW-bibliotheek.
[…] #define VERSION_STR_LENG 35 […] /* Initialisatie */ char lib_version[VERSION_STR_LENG];
/* Initialisatiefunctie voor stappenteller-API */ MotionPW_Initialize();
/* Initialisatiefunctie voor activiteitsherkenning-API */ MotionAW_Initialize();
/* Optioneel: versie ophalen */ MotionPW_GetLibVersion(lib_version);
[…] /* Stappenteller gebruiken voor pols-algoritme */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_input_t MPW_data_in; MPW_output_t MPW_data_out;
UM2350 – Rev4
pagina 5/16
2.2.5
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
MAW_input_t MAW_data_in; MAW_output_t MAW_data_out;
/* Versnelling X/Y/Z in g ophalen */ MEMS_Read_AccValue(&MAW_data_in.Acc_X, &MAW_data_in.Acc_Y, &MAW_data_in.Acc_Z);
/* Huidige activiteit ophalen */ MotionAW_Update(&MAW_data_in, &MAW_data_out, Timestamp);
MPW_gegevens_in.Acc_X = MAW_gegevens_in.Acc_X; MPW_gegevens_in.Acc_Y = MAW_gegevens_in.Acc_Y; MPW_gegevens_in.Acc_Z = MAW_gegevens_in.Acc_Z;
als (MAW_data_out.huidige_activiteit == MAW_WALKING) {
MPW_data_in.currentActivity = MPW_WALKING; } anders als (MAW_data_out.current_activity == MAW_FASTWALKING) {
MPW_data_in.currentActivity = MPW_FASTWALKING; } anders als (MAW_data_out.current_activity == MAW_JOGGING) {
MPW_data_in.currentActivity = MPW_JOGGING; } anders {
MPW_data_in.currentActivity = MPW_ONBEKENDE_ACTIVITEIT; }
/* Stappenteller uitvoeren voor pols-algoritme */ MotionPW_Update(&MPW_data_in, &MPW_data_out); }
Prestaties van het algoritme: Het stappenteller-algoritme voor de pols gebruikt alleen gegevens van de accelerometer en werkt op een lage frequentie (50 Hz) om het stroomverbruik te verminderen. Zorg er bij het repliceren van fitnessactiviteiten met het STM32 Nucleo-bord voor dat het bord loodrecht op de onderarm staat om de positie van de polsband te simuleren.
Figuur 2. Oriëntatiesysteem voor polsgedragen apparaten
Tabel 2. Algoritme verlooptijd (µs) Cortex-M4, Cortex-M3
Cortex-M4 STM32F401RE op 84 MHz
Mijn
Gemiddeld
Maximaal
38
49
616
Cortex-M3 STM32L152RE op 32 MHz
Mijn
Gemiddeld
Maximaal
296
390
3314
UM2350 – Rev4
pagina 6/16
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
Tabel 3. Algoritme-verlooptijd (µs) Cortex-M33 en Cortex-M7
Cortex-M33 STM32U575ZI-Q bij 160 MHz
Mijn
Gemiddeld
Maximaal
57
63
359
Cortex-M7 STM32F767ZI op 96 MHz
Mijn
Gemiddeld
Maximaal
61
88
1301
2.3
Sample applicatie
De MotionPW-middleware kan eenvoudig worden gemanipuleerd om gebruikersapplicaties te bouwen.
AlsampDe applicatie is beschikbaar in de Application-map. Deze is ontworpen om te draaien op een NUCLEO-F401RE, NUCLEOU575ZI-Q of NUCLEO-L152RE ontwikkelbord, aangesloten op een X-NUCLEO-IKS4A1 of X-NUCLEO-IKS01A3 uitbreidingsbord.
De applicatie herkent de stappen, cadans en het vertrouwen in realtime. De gegevens kunnen via een grafische gebruikersinterface worden weergegeven.
Figuur 3. STM32 Nucleo: LED's, knop, jumper
De bovenstaande afbeelding toont de gebruikersknop B1 en de drie LED's van het NUCLEO-F401RE-bord. Zodra het bord van stroom wordt voorzien, gaat LED LD3 (PWR) AAN.
Een USB-kabelverbinding is vereist om realtime gegevens te monitoren. Het bord wordt gevoed door de pc via een USB-verbinding. In deze werkmodus kan de gebruiker gedetecteerde stappen, cadans en betrouwbaarheid, accelerometergegevens en tijd weergeven.amp en eventueel andere sensorgegevens, in real-time, met behulp van de MEMS-Studio.
2.4
MEMS Studio-applicatie
De sampDe applicatie maakt gebruik van de MEMS-Studio applicatie, die gedownload kan worden van www.st.com.
Stap 1. Zorg ervoor dat de benodigde stuurprogramma's zijn geïnstalleerd en dat het STM32 Nucleo-bord met de juiste uitbreidingskaart op de pc is aangesloten.
UM2350 – Rev4
pagina 7/16
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
Stap 2.
Start de MEMS-Studio-applicatie om het hoofdvenster van de applicatie te openen.
Als een STM32 Nucleo-bord met ondersteunde firmware op de pc is aangesloten, wordt deze automatisch gedetecteerd. Druk op de knop [Connect] om verbinding te maken met het evaluatiebord.
Figuur 4. MEMS-Studio – Verbinden
Stap 3. Wanneer u verbinding maakt met een STM32 Nucleo-bord met ondersteunde firmware, wordt het tabblad [Bibliotheekevaluatie] geopend.
Om het streamen van gegevens te starten en te stoppen, schakelt u de desbetreffende verticale werkbalk [Start] in of uit.
of [Stop] knop aan de buitenkant
De gegevens die afkomstig zijn van de aangesloten sensor kunnen zijn viewdoor het tabblad [Gegevenstabel] op de binnenste verticale werkbalk te selecteren.
Figuur 5. MEMS-Studio – Bibliotheekevaluatie – Gegevenstabel
UM2350 – Rev4
pagina 8/16
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
Stap 4. Klik op [Stappenteller] om het bijbehorende applicatievenster te openen. Figuur 6. MEMS-Studio – Bibliotheekevaluatie – Stappenteller
Stap 5.
Klik op [Opslaan naar File] om het configuratievenster voor datalogging te openen. Selecteer de sensor- en stappentellergegevens die u wilt opslaan in de file. U kunt het opslaan starten of stoppen door op de overeenkomstige knop te klikken
knop.
Figuur 7. MEMS-Studio – Bibliotheekevaluatie – Opslaan in File
UM2350 – Rev4
pagina 9/16
UM2350
MotionPW middleware-bibliotheek in X-CUBE-MEMS1 software-uitbreiding voor STM32Cube
Stap 6.
De Data Injection-modus kan worden gebruikt om de eerder verkregen gegevens naar de bibliotheek te sturen en de
resultaat. Selecteer het tabblad [Data Injection] op de verticale werkbalk om de speciale view voor deze functionaliteit.
Figuur 8. MEMS-Studio – Bibliotheekevaluatie – Data-injectie
Stap 7.
Klik op de knop [Bladeren] om de file met de eerder vastgelegde gegevens in CSV-formaat. De gegevens worden in de tabel geladen in de huidige view. Andere knoppen worden actief. U kunt klikken op:
[Offline-modus]-knop om de offline-modus van de firmware in/uit te schakelen (modus die gebruikmaakt van eerder vastgelegde gegevens).
[Start]/[Stop]/[Stap]/[Herhalen]-knoppen om de gegevensfeed van MEMS-Studio naar de bibliotheek te regelen.
UM2350 – Rev4
pagina 10/16
UM2350
Referenties
3
Referenties
Alle volgende bronnen zijn gratis beschikbaar op www.st.com. 1. UM1859: Aan de slag met de X-CUBE-MEMS1 bewegings-MEMS en omgevingssensorsoftware
uitbreiding voor STM32Cube 2. UM1724: STM32 Nucleo-64-borden (MB1136) 3. UM3233: Aan de slag met MEMS-Studio
UM2350 – Rev4
pagina 11/16
UM2350
Revisiegeschiedenis
Tabel 4. Document revisiegeschiedenis
Datum
Versiewijzigingen
24-jan-2018 1 Eerste release.
21-mrt-2018 2 Bijgewerkte inleiding en sectie 2.1 MotionPW overviewBijgewerkte sectie 2.2.5: Algoritmeprestaties en figuur 3. STM32 Nucleo: LED's, knop, jumper.
20-2019-3 01 Compatibiliteitsinformatie voor X-NUCLEO-IKS3AXNUMX uitbreidingskaart toegevoegd.
Bijgewerkte sectie-inleiding, sectie 2.1: MotionPW overview, Sectie 2.2.1: MotionPW-bibliotheek 20-mei-2025 4 beschrijving, Sectie 2.2.2: MotionPW API's, Sectie 2.2.4: Democode, Sectie 2.2.5: Algoritme
Prestatie, Sectie 2.3: Sample applicatie, Sectie 2.4: MEMS Studio applicatie
UM2350 – Rev4
pagina 12/16
UM2350
Inhoud
Inhoud
1 Acroniemen en afkortingen . ...
STM32Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.1 MotionPW overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 MotionPW-bibliotheek . ... . . . . . . . 3
2.2.1 Beschrijving van de MotionPW-bibliotheek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.2 MotionPW API's. ... 3 2.2.3 API-stroomdiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.4 Democode . ... . . . . . . . 5 2.2.5 Prestaties van het algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Sample applicatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 MEMS Studio applicatie . ... . . 7
3 Referenties . ... . . . . . . . . . . . . . . . . . . . . . . . . .11
UM2350 – Rev4
pagina 13/16
UM2350
Lijst met tabellen
Lijst met tabellen
Tabel 1. Tabel 2. Tabel 3. Tabel 4.
Lijst met acroniemen . ... . . . . . . . 2 Verlooptijd algoritme (µs) Cortex-M4 en Cortex-M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Documentrevisiegeschiedenis . ... . . . . 33
UM2350 – Rev4
pagina 14/16
UM2350
Lijst met figuren
Lijst met figuren
Figuur 1. Figuur 2. Figuur 3. Figuur 4. Figuur 5. Figuur 6. Figuur 7. Figuur 8.
Logicasequentie van de MotionPW API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Oriëntatiesysteem voor om de pols gedragen apparaten . ... 6 STM32 Nucleo: LED's, knop, jumper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 MEMS-Studio – Verbinden . ... . . . 8 MEMS-Studio – Bibliotheekevaluatie – Gegevenstabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MEMS-Studio – Bibliotheekevaluatie – Stappenteller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MEMS-Studio – Bibliotheekevaluatie – Opslaan in File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 MEMS-Studio – Bibliotheekevaluatie – Data-injectie . ...
UM2350 – Rev4
pagina 15/16
UM2350
BELANGRIJKE MEDEDELING ZORGVULDIG LEZEN STMicroelectronics NV en haar dochterondernemingen (“ST”) behouden zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen, correcties, verbeteringen, aanpassingen en verbeteringen aan ST-producten en/of dit document aan te brengen. Kopers dienen de laatste relevante informatie over ST-producten te verkrijgen voordat ze bestellingen plaatsen. ST-producten worden verkocht in overeenstemming met de verkoopvoorwaarden van ST die van kracht zijn op het moment van orderbevestiging. Kopers zijn als enige verantwoordelijk voor de keuze, selectie en het gebruik van ST-producten en ST aanvaardt geen aansprakelijkheid voor hulp bij de toepassing of het ontwerp van producten van kopers. ST geeft hierin geen licentie, expliciet of impliciet, op enig intellectueel eigendomsrecht. Doorverkoop van ST-producten met bepalingen die afwijken van de informatie die hierin wordt uiteengezet, maakt elke garantie die door ST voor een dergelijk product wordt verleend, ongeldig. ST en het ST-logo zijn handelsmerken van ST. Raadpleeg voor meer informatie over ST-handelsmerken www.st.com/trademarks. Alle andere product- of servicenamen zijn eigendom van hun respectievelijke eigenaren. De informatie in dit document vervangt en vervangt informatie die eerder werd verstrekt in eerdere versies van dit document.
© 2025 STMicroelectronics Alle rechten voorbehouden
UM2350 – Rev4
pagina 16/16
Documenten / Bronnen
![]() |
ST X-CUBE-MEMS1 Sensor- en bewegingsalgoritme-software-uitbreiding [pdf] Gebruikershandleiding STM32 Nucleo, X-NUCLEO-IKS4A1, X-NUCLEO-IKS01A3, X-CUBE-MEMS1 Sensor- en bewegingsalgoritme-software-uitbreiding, X-CUBE-MEMS1, Sensor- en bewegingsalgoritme-software-uitbreiding, Bewegingsalgoritme-software-uitbreiding, Algoritme-software-uitbreiding, Software-uitbreiding |