X-CUBE-MEMS1 Sensor- und Bewegungsalgorithmus-Softwareerweiterung
“
Produktinformationen
Technische Daten
- Produktname: MotionPW Echtzeit-Schrittzähler
- Kompatibilität: X-CUBE-MEMS1-Erweiterung für STM32Cube
- Hersteller: STMicroelectronics
- Bibliothek: MotionPW Middleware Library
- Datenerfassung: Beschleunigungsmesser
- SampLingfrequenz: 50 Hz
Anweisungen zur Produktverwendung
Überview
Die MotionPW-Bibliothek erweitert die Funktionalität der
X-CUBE-MEMS1 Software durch Erfassung von Daten vom Beschleunigungsmesser zu
geben Auskunft über die Anzahl der Schritte und die Trittfrequenz
mit dem tragbaren Gerät.
Kompatibilität
Die Bibliothek ist ausschließlich für ST MEMS-Sensoren konzipiert. Bei Verwendung anderer
MEMS-Sensoren können zu unterschiedlichen Funktionen und
Leistung.
Durchführung
AlsampDie Implementierung ist verfügbar für X-NUCLEO-IKS4A1 und
X-NUCLEO-IKS01A3-Erweiterungskarten montiert auf spezifizierten Entwicklungs
Bretter.
Technische Informationen
Detaillierte Informationen zu den Funktionen und Parametern der MotionPW-APIs finden Sie unter
siehe das kompilierte HTML von MotionPW_Package.chm file befindet sich im
Dokumentationsordner.
APIs
- MotionPW_GetLibVersion(char *version)
- MotionPW_Initialize(void)
- MotionPW_Update(MPW_input_t *data_in, MPW_output_t
*Datenausgang) - MotionPW_ResetPedometerLibrary (leer)
- MotionPW_ResetStepCount(void)
- MotionPW_UpdateEnergyThreshold(float *Energieschwelle)
Häufig gestellte Fragen (FAQ)
F: Kann ich die MotionPW-Bibliothek mit Nicht-ST-MEMS-Sensoren verwenden?
A: Die Bibliothek ist nur für ST MEMS-Sensoren konzipiert.
Die Kompatibilität mit anderen MEMS-Sensoren kann nicht gewährleistet werden.
F: Was sind die erforderlichen Beschleunigungsdaten?ampLeng
Frequenz?
A: Die erforderlichen sampDie Sendefrequenz beträgt 50 Hz für eine genaue
Erkennung von Schritten und Trittfrequenz.
F: Wie initialisiere ich die MotionPW-Bibliothek?
A: Rufen Sie die Funktion MotionPW_Initialize() auf, bevor Sie die
Fitness-Aktivitätsbibliothek. Stellen Sie sicher, dass das CRC-Modul im STM32
Mikrocontroller ist aktiviert.
„`
UM2350
Benutzerhandbuch
Erste Schritte mit dem MotionPW-Echtzeit-Schrittzähler für die Handgelenkbibliothek in der X-CUBEMEMS1-Erweiterung für STM32Cube
Einführung
Die MotionPW-Middleware-Bibliothek ist Teil der X-CUBE-MEMS1-Software und läuft auf STM32 Nucleo. Sie liefert Echtzeitinformationen über die Anzahl der Schritte und die Trittfrequenz, die der Benutzer gerade mit dem tragbaren Gerät (z. B. einer Smartwatch) ausgeführt hat. Diese Bibliothek ist ausschließlich für ST MEMS vorgesehen. Der Algorithmus liegt im statischen Bibliotheksformat vor und ist für den Einsatz auf STM32-Mikrocontrollern mit ARM® Cortex®-M3, ARM Cortex®-M33, ARM® Cortex®-M4 und ARM® Cortex®-M7-Architektur konzipiert. Er basiert auf der STM32Cube-Softwaretechnologie und erleichtert so die Portabilität zwischen verschiedenen STM32-Mikrocontrollern. Die Software wird mitgeliefert.ample-Implementierung läuft auf der X-NUCLEO-IKS4A1- oder X-NUCLEO-IKS01A3-Erweiterungskarte auf einer NUCLEO-F401RE-, NUCLEO-U575ZI-Q- oder NUCLEO-L152RE-Entwicklungskarte.
UM2350 – Rev. 4 – Mai 2025. Weitere Informationen erhalten Sie von Ihrem lokalen STMicroelectronics-Vertriebsbüro.
www.st.com
UM2350
Akronyme und Abkürzungen
1
Akronyme und Abkürzungen
Akronym API BSP GUI HAL IDE
Tabelle 1. Liste der Akronyme
Anwendungsprogrammierschnittstelle Board Support Package Grafische Benutzeroberfläche Hardware-Abstraktionsschicht Integrierte Entwicklungsumgebung
Beschreibung
UM2350 – Rev. 4
2 / 16-Seite
2
2.1 2.2
2.2.1
2.2.2
Notiz:
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
MotionPW überview
Die MotionPW-Bibliothek erweitert die Funktionalität der X-CUBE-MEMS1-Software.
Die Bibliothek erfasst Daten vom Beschleunigungsmesser und liefert Informationen über die Anzahl der Schritte und die Trittfrequenz, die der Benutzer gerade mit dem tragbaren Gerät ausgeführt hat.
Die Bibliothek ist nur für ST MEMS konzipiert. Funktionalität und Leistung bei der Verwendung anderer MEMS-Sensoren werden nicht analysiert und können erheblich von den im Dokument beschriebenen abweichen.
AlsampDie Implementierung ist für die Erweiterungsplatinen X-NUCLEO-IKS4A1 und X-NUCLEO-IKS01A3 verfügbar, die auf einer Entwicklungsplatine NUCLEO-F401RE, NUCLEO-U575ZI-Q oder NUCLEO-L152RE montiert sind.
MotionPW-Bibliothek
Technische Informationen, die die Funktionen und Parameter der MotionPW-APIs vollständig beschreiben, finden Sie im kompilierten HTML-Format MotionPW_Package.chm file befindet sich im Ordner „Dokumentation“.
Beschreibung der MotionPW-Bibliothek
Die MotionPW-Schrittzählerbibliothek verwaltet die vom Beschleunigungsmesser erfassten Daten. Sie bietet:
·
Möglichkeit zur Erkennung der Anzahl der Schritte, der Trittfrequenz und des Vertrauens
·
Erkennung basiert ausschließlich auf Beschleunigungsmesserdaten
·
erforderliche Beschleunigungsmesserdaten samplingfrequenz von 50 Hz
·
Ressourcenbedarf:
Cortex-M3: 3.7 kB Code- und 1.8 kB Datenspeicher
Cortex-M33: 3.5 kB Code- und 1.8 kB Datenspeicher
Cortex-M4: 3.5 kB Code- und 1.8 kB Datenspeicher
Cortex-M7: 3.6 kB Code- und 1.8 kB Datenspeicher
·
verfügbar für ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 und ARM® Cortex®-M7
Architekturen
MotionPW-APIs
Die APIs der MotionPW-Bibliothek sind:
·
uint8_t MotionPW_GetLibVersion(char *version)
ruft die Bibliotheksversion ab
*version ist ein Zeiger auf ein Array von 35 Zeichen
gibt die Anzahl der Zeichen im Versionsstring zurück
·
void MotionPW_Initialize(void)
führt die Initialisierung der MotionPW-Bibliothek und die Einrichtung des internen Mechanismus einschließlich der dynamischen Speicherzuweisung durch
Diese Funktion muss vor der Verwendung der Fitnessaktivitätsbibliothek aufgerufen werden und das CRC-Modul im STM32-Mikrocontroller (im RCC-Peripherietakt-Aktivierungsregister) muss aktiviert werden.
UM2350 – Rev. 4
3 / 16-Seite
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
·
void MotionPW_Update(MPW_input_t *data_in, MPW_output_t *data_out)
führt einen Schrittzähler-Algorithmus für das Handgelenk aus
*data_in-Parameter ist ein Zeiger auf eine Struktur mit Eingabedaten
die Parameter für den Strukturtyp MPW_input_t sind:
AccX ist der Beschleunigungssensorwert in der X-Achse in g
AccY ist der Beschleunigungssensorwert in der Y-Achse in g
AccZ ist der Beschleunigungssensorwert in der Z-Achse in g
CurrentActivity ist der aufgezählte Eingabetyp MPW_activity_t mit den folgenden Werten:
MPW_UNKNOWN_ACTIVITY = 0x00
MPW_WALKING = 0x01
MPW_FASTWALKING = 0x02
MPW_JOGGING = 0x03
*data_out-Parameter ist ein Zeiger auf eine Struktur mit Ausgabedaten
die Parameter für den Strukturtyp MPW_output_t sind:
Nsteps ist die Anzahl der vom Benutzer ausgeführten Schritte
Die Kadenz ist die Kadenz der Benutzerschritte
Konfidenz ist die Konfidenz des berechneten Ausgabeparameters
·
void MotionPW_ResetPedometerLibrary(void)
setzt die internen Variablen und Mechanismen der Bibliothek auf Standardwerte zurück (einschließlich der aktuellen Schrittzahl)
·
void MotionPW_ResetStepCount(void)
setzt die aktuelle Schrittzahl zurück
·
void MotionPW_UpdateEnergyThreshold(float *energy_threshold)
aktualisierter Energieschwellenwert zur Feinabstimmung des Schritterkennungsalgorithmus
*energy_threshold-Parameter ist ein Zeiger auf den Energieschwellenwert
UM2350 – Rev. 4
4 / 16-Seite
2.2.3
API-Flussdiagramm
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
Abbildung 1. MotionPW API-Logiksequenz
Start
Initialisieren
GetLibVersion
Warten Sie, bis der Timer abläuft, und unterbrechen Sie das Lesen von Daten
Aktualisierung der Beschleunigungsmesserdaten lesen
Ausgaben abrufen
2.2.4
Democode Der folgende Democode, z. B.ample liest Daten vom Beschleunigungssensor, erhält die aktuelle Aktivität aus der MotionAW-Bibliothek und ruft die Anzahl der Schritte, die Trittfrequenz und das Vertrauen aus der MotionPW-Bibliothek ab.
[…] #define VERSION_STR_LENG 35 […] /* Initialisierung */ char lib_version[VERSION_STR_LENG];
/* Initialisierungsfunktion der Schrittzähler-API */ MotionPW_Initialize();
/* Initialisierungsfunktion der Aktivitätserkennungs-API */ MotionAW_Initialize();
/* Optional: Version abrufen */ MotionPW_GetLibVersion(lib_version);
[…] /* Schrittzähler für Handgelenksalgorithmus verwenden */ Timer_OR_DataRate_Interrupt_Handler() {
MPW_input_t MPW_data_in; MPW_output_t MPW_data_out;
UM2350 – Rev. 4
5 / 16-Seite
2.2.5
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
MAW_input_t MAW_data_in; MAW_output_t MAW_data_out;
/* Beschleunigung X/Y/Z in g ermitteln */ MEMS_Read_AccValue(&MAW_data_in.Acc_X, &MAW_data_in.Acc_Y, &MAW_data_in.Acc_Z);
/* Aktuelle Aktivität abrufen */ 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;
wenn (MAW_data_out.current_activity == MAW_WALKING) {
MPW_data_in.currentActivity = MPW_WALKING; } sonst wenn (MAW_data_out.current_activity == MAW_FASTWALKING) {
MPW_data_in.currentActivity = MPW_FASTWALKING; } sonst wenn (MAW_data_out.current_activity == MAW_JOGGING) {
MPW_data_in.currentActivity = MPW_JOGGING; } sonst {
MPW_data_in.currentActivity = MPW_UNKNOWN_ACTIVITY; }
/* Schrittzähler für Handgelenk-Algorithmus ausführen */ MotionPW_Update(&MPW_data_in, &MPW_data_out); }
Algorithmusleistung: Der Schrittzähler-Algorithmus für das Handgelenk nutzt ausschließlich Daten des Beschleunigungssensors und läuft mit einer niedrigen Frequenz (50 Hz), um den Stromverbrauch zu senken. Achten Sie beim Simulieren von Fitnessaktivitäten mit der STM32 Nucleo-Platine darauf, dass die Platine senkrecht zum Unterarm ausgerichtet ist, um die Position des Armbands zu simulieren.
Abbildung 2. Orientierungssystem für am Handgelenk getragene Geräte
Tabelle 2. Algorithmus-Verstrichene Zeit (µs) Cortex-M4, Cortex-M3
Cortex-M4 STM32F401RE bei 84 MHz
Mindest
Durchschnitt
Max
38
49
616
Cortex-M3 STM32L152RE bei 32 MHz
Mindest
Durchschnitt
Max
296
390
3314
UM2350 – Rev. 4
6 / 16-Seite
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
Tabelle 3. Algorithmus-Verstrichene Zeit (µs) Cortex-M33 und Cortex-M7
Cortex-M33 STM32U575ZI-Q bei 160 MHz
Mindest
Durchschnitt
Max
57
63
359
Cortex-M7 STM32F767ZI bei 96 MHz
Mindest
Durchschnitt
Max
61
88
1301
2.3
Sampdie Bewerbung
Die MotionPW-Middleware kann leicht manipuliert werden, um Benutzeranwendungen zu erstellen.
AlsampDie Anwendung ist im Anwendungsordner verfügbar. Sie ist für die Ausführung auf einer Entwicklungsplatine NUCLEO-F401RE, NUCLEOU575ZI-Q oder NUCLEO-L152RE konzipiert, die an eine Erweiterungsplatine X-NUCLEO-IKS4A1 oder X-NUCLEO-IKS01A3 angeschlossen ist.
Die Anwendung erkennt Schritte, Trittfrequenz und Vertrauen in Echtzeit. Die Daten können über eine GUI angezeigt werden.
Abbildung 3. STM32 Nucleo: LEDs, Taste, Jumper
Die obige Abbildung zeigt die Benutzertaste B1 und die drei LEDs der NUCLEO-F401RE-Platine. Sobald die Platine mit Strom versorgt wird, leuchtet die LED LD3 (PWR).
Zur Überwachung von Echtzeitdaten ist eine USB-Kabelverbindung erforderlich. Die Stromversorgung erfolgt über den PC über eine USB-Verbindung. In diesem Arbeitsmodus können erkannte Schritte, Trittfrequenz und Vertrauen, Beschleunigungsdaten, Zeitmessung usw. angezeigt werden.amp und eventuell andere Sensordaten in Echtzeit mithilfe des MEMS-Studios.
2.4
MEMS Studio-Anwendung
Die sampDie Anwendung verwendet die Anwendung MEMS-Studio, die von www.st.com heruntergeladen werden kann.
Schritt 1. Stellen Sie sicher, dass die erforderlichen Treiber installiert sind und die STM32-Nucleo-Platine mit der entsprechenden Erweiterungskarte an den PC angeschlossen ist.
UM2350 – Rev. 4
7 / 16-Seite
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
Schritt 2.
Starten Sie die MEMS-Studio-Anwendung, um das Hauptanwendungsfenster zu öffnen.
Wenn ein STM32 Nucleo Board mit unterstützter Firmware an den PC angeschlossen ist, wird es automatisch erkannt. Mit der Schaltfläche [Verbinden] wird die Verbindung zum Evaluation Board hergestellt.
Abbildung 4. MEMS-Studio – Verbinden
Schritt 3. Bei Verbindung mit einer STM32 Nucleo-Platine mit unterstützter Firmware wird die Registerkarte [Library Evaluation] geöffnet.
Um das Daten-Streaming zu starten und zu stoppen, schalten Sie die entsprechende vertikale Symbolleiste [Start] um.
oder [Stop]-Taste auf der äußeren
Die vom angeschlossenen Sensor kommenden Daten können sein viewWählen Sie dazu die Registerkarte [Datentabelle] in der inneren vertikalen Symbolleiste aus.
Abbildung 5. MEMS-Studio – Bibliotheksauswertung – Datentabelle
UM2350 – Rev. 4
8 / 16-Seite
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
Schritt 4. Klicken Sie auf [Pedometer], um das entsprechende Anwendungsfenster zu öffnen. Abbildung 6. MEMS-Studio – Bibliotheksauswertung – Pedometer
Schritt 5.
Klicken Sie auf [Speichern unter File], um das Konfigurationsfenster für die Datenaufzeichnung zu öffnen. Wählen Sie die Sensor- und Schrittzählerdaten aus, die im file. Sie können das Speichern starten oder stoppen, indem Sie auf die entsprechende
Taste.
Abbildung 7. MEMS-Studio – Bibliotheksauswertung – Speichern unter File
UM2350 – Rev. 4
9 / 16-Seite
UM2350
MotionPW-Middleware-Bibliothek in der X-CUBE-MEMS1-Softwareerweiterung für STM32Cube
Schritt 6.
Der Dateneinfügungsmodus kann verwendet werden, um die zuvor erfassten Daten an die Bibliothek zu senden und die
Ergebnis. Wählen Sie die Registerkarte [Dateneinfügung] in der vertikalen Symbolleiste, um das dedizierte view für diese Funktionalität.
Abbildung 8. MEMS-Studio – Bibliotheksauswertung – Dateneinspeisung
Schritt 7.
Klicken Sie auf die Schaltfläche [Durchsuchen], um die file mit den zuvor erfassten Daten im CSV-Format. Die Daten werden in die Tabelle im aktuellen view. Andere Schaltflächen werden aktiv. Sie können auf Folgendes klicken:
Schaltfläche [Offline-Modus], um den Offline-Modus der Firmware ein-/auszuschalten (Modus, der die zuvor erfassten Daten verwendet).
Schaltflächen [Start]/[Stop]/[Schritt]/[Wiederholen] zur Steuerung der Datenzufuhr von MEMS-Studio zur Bibliothek.
UM2350 – Rev. 4
10 / 16-Seite
UM2350
Verweise
3
Verweise
Alle der folgenden Ressourcen sind kostenlos auf www.st.com verfügbar. 1. UM1859: Erste Schritte mit der X-CUBE-MEMS1 Motion MEMS- und Umgebungssensor-Software
Erweiterung für STM32Cube 2. UM1724: STM32 Nucleo-64-Boards (MB1136) 3. UM3233: Erste Schritte mit MEMS-Studio
UM2350 – Rev. 4
11 / 16-Seite
UM2350
Versionsgeschichte
Tabelle 4. Revisionsverlauf des Dokuments
Datum
Versionsänderungen
24 2018 Erstveröffentlichung.
21. März 2018 2 Aktualisierte Einführung und Abschnitt 2.1 MotionPW überview. Abschnitt 2.2.5: Algorithmusleistung und Abbildung 3 aktualisiert. STM32 Nucleo: LEDs, Taste, Jumper.
20 2019 Informationen zur Kompatibilität der X-NUCLEO-IKS3A01-Erweiterungskarte hinzugefügt.
Aktualisierte Abschnittseinführung, Abschnitt 2.1: MotionPW überview, Abschnitt 2.2.1: MotionPW-Bibliothek 20. Mai 2025 4 Beschreibung, Abschnitt 2.2.2: MotionPW-APIs, Abschnitt 2.2.4: Democode, Abschnitt 2.2.5: Algorithmus
Leistung, Abschnitt 2.3: Sample-Anwendung, Abschnitt 2.4: MEMS Studio-Anwendung
UM2350 – Rev. 4
12 / 16-Seite
UM2350
Inhalt
Inhalt
1 Akronyme und Abkürzungen . ...
STM32Cube . ...view . ... . . . . . 3
2.2.1 Beschreibung der MotionPW-Bibliothek. ... 3 2.2.2 API-Flussdiagramm . ... . . . . . . . . 3 2.2.3 Leistungsfähigkeit des Algorithmus . ...ample-Anwendung . ... 7
3 Referenzen . ... . . . . . . . . . . . . . . . . . . . . . . .11
UM2350 – Rev. 4
13 / 16-Seite
UM2350
Tabellenverzeichnis
Tabellenverzeichnis
Tabelle 1. Tabelle 2. Tabelle 3. Tabelle 4.
Liste der Akronyme . ... . . . . . . . . 2 Algorithmus-Verstrichenzeit (µs) Cortex-M4 und Cortex-M3 . ... . . . 6
UM2350 – Rev. 4
14 / 16-Seite
UM2350
Abbildungsverzeichnis
Abbildungsverzeichnis
Abbildung 1. Abbildung 2. Abbildung 3. Abbildung 4. Abbildung 5. Abbildung 6. Abbildung 7. Abbildung 8.
MotionPW API-Logiksequenz . ... 5 STM6 Nucleo: LEDs, Taster, Jumper . ... . . . 32 MEMS-Studio – Bibliotheksauswertung – Datentabelle. ... File . ...
UM2350 – Rev. 4
15 / 16-Seite
UM2350
WICHTIGER HINWEIS SORGFÄLTIG LESEN STMicroelectronics NV und seine Tochtergesellschaften („ST“) behalten sich das Recht vor, jederzeit ohne Vorankündigung Änderungen, Korrekturen, Erweiterungen, Modifikationen und Verbesserungen an ST-Produkten und/oder an diesem Dokument vorzunehmen. Käufer sollten die neuesten relevanten Informationen über ST-Produkte einholen, bevor sie Bestellungen aufgeben. ST-Produkte werden gemäß den Verkaufsbedingungen von ST verkauft, die zum Zeitpunkt der Auftragsbestätigung gelten. Käufer sind allein verantwortlich für die Auswahl, Auswahl und Verwendung von ST-Produkten, und ST übernimmt keine Haftung für Anwendungsunterstützung oder das Design von Käuferprodukten. ST gewährt hierin keine ausdrückliche oder stillschweigende Lizenz an geistigen Eigentumsrechten. Der Weiterverkauf von ST-Produkten mit Bestimmungen, die von den hierin enthaltenen Informationen abweichen, führt zum Erlöschen jeglicher von ST für dieses Produkt gewährten Garantien. ST und das ST-Logo sind Warenzeichen von ST. Weitere Informationen zu ST-Marken finden Sie unter www.st.com/trademarks. Alle anderen Produkt- oder Dienstleistungsnamen sind Eigentum ihrer jeweiligen Inhaber. Informationen in diesem Dokument ersetzen und ersetzen Informationen, die zuvor in früheren Versionen dieses Dokuments bereitgestellt wurden.
© 2025 STMicroelectronics Alle Rechte vorbehalten
UM2350 – Rev. 4
16 / 16-Seite
Dokumente / Ressourcen
![]() |
ST X-CUBE-MEMS1 Sensor- und Bewegungsalgorithmus-Softwareerweiterung [pdf] Benutzerhandbuch STM32 Nucleo, X-NUCLEO-IKS4A1, X-NUCLEO-IKS01A3, X-CUBE-MEMS1 Sensor- und Bewegungsalgorithmus-Softwareerweiterung, X-CUBE-MEMS1, Sensor- und Bewegungsalgorithmus-Softwareerweiterung, Bewegungsalgorithmus-Softwareerweiterung, Algorithmus-Softwareerweiterung, Softwareerweiterung |