ST X-CUBE-MEMS1 Sensor- und Bewegungsalgorithmus-Softwareerweiterung Benutzerhandbuch

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

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *