ST X - logoUM2225
Instrukcja obsługi

Rozpoczęcie pracy z biblioteką MotionEC E-Compass w czasie rzeczywistym w rozszerzeniu X-CUBE-MEMS1 dla STM32Cube

Wstęp

MotionEC to biblioteka middleware oprogramowania X-CUBE-MEMS1, która działa na STM3z2. Dostarcza informacji w czasie rzeczywistym o orientacji urządzenia i stanie ruchu na podstawie danych z urządzenia.
Zapewnia następujące dane wyjściowe: orientacja urządzenia (kwaterniony, kąty Eulera), obrót urządzenia (funkcjonalność wirtualnego żyroskopu), wektor grawitacji i przyspieszenie liniowe.
Ta biblioteka jest przeznaczona do pracy wyłącznie z ST MEMS.
Algorytm jest dostępny w formacie biblioteki statycznej i przeznaczony jest do stosowania w mikrokontrolerach STM32 opartych na architekturach ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 i ARM® Cortex®-M7.
Został zbudowany na bazie technologii oprogramowania STM32Cube, aby ułatwić przenoszenie między różnymi mikrokontrolerami STM32.
Oprogramowanie jest dostarczane z sampImplementacja pliku le uruchomiona na karcie rozszerzeń X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 lub X-NUCLEO-IKS02A1 na płycie rozwojowej NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE lub NUCLEO-L073RZ.

Akronimy i skróty

Tabela 1. Lista akronimów

Akronim Opis
API Interfejs programowania aplikacji
BSP Pakiet wsparcia zarządu
Interfejs graficzny Graficzny interfejs użytkownika
HAL Warstwa abstrakcji sprzętu
Środowisko programistyczne (IDE) Zintegrowane środowisko programistyczne

Biblioteka oprogramowania pośredniczącego MotionEC w rozszerzeniu oprogramowania X-CUBE-MEMS1 dla STM32Cube

2.1 MotionEC ponadview
Biblioteka MotionEC rozszerza funkcjonalność oprogramowania X-CUBE-MEMS1.
Biblioteka pobiera dane z akcelerometru i magnetometru i na podstawie danych z urządzenia dostarcza informacji o orientacji i stanie ruchu urządzenia.
Biblioteka jest przeznaczona wyłącznie dla ST MEMS. Funkcjonalność i wydajność podczas korzystania z innych czujników MEMS nie są analizowane i mogą znacznie różnić się od opisanych w dokumencie.
JakampImplementacja jest dostępna na kartach rozszerzeń X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 i X-NUCLEO-IKS02A1 zamontowanych na płytach deweloperskich NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE lub NUCLEO-L073RZ.
2.2 Biblioteka MotionEC
Pełne informacje techniczne opisujące funkcje i parametry interfejsów API MotionEC można znaleźć w skompilowanym pliku HTML MotionEC_Package.chm file znajduje się w folderze Dokumentacja.

2.2.1 Opis biblioteki MotionEC
Biblioteka MotionEC E-Compass zarządza danymi pozyskanymi z akcelerometru i magnetometru. Oferuje ona:

  • orientacja urządzenia (kwaterniony, kąty Eulera), obrót urządzenia (funkcjonalność wirtualnego żyroskopu), wektor grawitacji i wyjścia przyspieszenia liniowego
  • funkcjonalność oparta wyłącznie na danych z akcelerometru i magnetometru
  • wymagane dane akcelerometru i magnetometruampczęstotliwość ling do 100 Hz
  • wymagania dotyczące zasobów:
    – Cortex-M0+: 3.7 kB kodu i 0.1 kB pamięci danych
    – Cortex-M3: 3.8 kB kodu i 0.1 kB pamięci danych
    – Cortex-M33: 2.8 kB kodu i 0.1 kB pamięci danych
    – Cortex-M4: 2.9 kB kodu i 0.1 kB pamięci danych
    – Cortex-M7: 2.8 kB kodu i 0.1 kB pamięci danych
  • dostępne dla architektur ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 i Cortex M7

2.2.2 Interfejsy API MotionEC
Interfejsy API MotionEC to:

  • uint8_t MotionEC_GetLibVersion(char *wersja)
    – pobiera wersję biblioteki
    – *wersja jest wskaźnikiem do tablicy 35 znaków
    – zwraca liczbę znaków w ciągu wersji
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – wykonuje inicjalizację biblioteki MotionEC i konfigurację wewnętrznego mechanizmu.
    – mcu_type to typ MCU:
    ◦ MFX_CM0P_MCU_STM32 to standardowy mikrokontroler STM32
    ◦ MFX_CM0P_MCU_BLUE_NRG1 to BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 to BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP to BlueNRG -LP
    – częstotliwość to czujnik sampczęstotliwość ling [Hz]

Notatka: Tę funkcję należy wywołać przed użyciem biblioteki E-Compass, a moduł CRC w mikrokontrolerze STM32 (w rejestrze włączania zegara peryferyjnego RCC) musi zostać włączony przed użyciem biblioteki.

  • void MotionEC_SetFrequency(float częstotliwość)
    – ustawia sampczęstotliwość ling (modyfikacja parametrów filtrowania)
    – częstotliwość to czujnik sampczęstotliwość ling [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – uruchamia algorytm E-Compass (połączenie danych z akcelerometru i magnetometru)
    – *data_in to wskaźnik do struktury z danymi wejściowymi
    – parametry dla typu struktury MEC_input_t to:
    ◦ acc[3] to tablica danych akcelerometru w konwencji ENU, mierzona w g
    ◦ mag[3] to tablica skalibrowanych danych magnetometru w konwencji ENU, mierzona w μT/50
    ◦ deltatime s to czas delta (czyli opóźnienie czasowe między starym a nowym zestawem danych) mierzony w s
    – *data_out to wskaźnik do struktury z danymi wyjściowymi
    – parametry typu struktury MEC_output_t to:
    ◦ quaternion[4] to tablica zawierająca kwaternion w konwencji ENU, reprezentująca orientację kątową urządzenia w przestrzeni; kolejność elementów to: X, Y, Z, W, przy czym element W jest zawsze dodatni
    ◦ euler[3] to tablica kątów Eulera w konwencji ENU, reprezentująca trójwymiarową orientację kątową urządzenia w przestrzeni; kolejność elementów jest następująca: odchylenie, pochylenie, przechylenie, mierzone w stopniach
    ◦ i_gyro[3] to tablica prędkości kątowych w konwencji ENU, reprezentująca wirtualny czujnik żyroskopu, mierzona w dps
    ◦ grawitacja[3] to tablica przyspieszeń w konwencji ENU, reprezentująca wektor grawitacji mierzony w g
    ◦ linear[3] to tablica przyspieszeń w konwencji ENU, reprezentująca liniowe przyspieszenie urządzenia mierzone w g
    ST X CUBE MEMS1 MotionEC jest biblioteką middleware-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – pobiera stan włączenia/wyłączenia obliczenia kąta Eulera
    – *state jest wskaźnikiem do bieżącego stanu włączania/wyłączania
  • void MotionEC_SetOrientationEnable(stan MEC_state_t)
    – ustawia stan włączenia/wyłączenia obliczania kąta Eulera
    – stan to nowy stan włączania/wyłączania, który należy ustawić
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – pobiera stan włączania/wyłączania obliczeń wirtualnego żyroskopu
    – *state jest wskaźnikiem do bieżącego stanu włączania/wyłączania
  • void MotionEC_SetVirtualGyroEnable(stan MEC_state_t)
    – ustawia stan włączania/wyłączania obliczeń wirtualnego żyroskopu
    – stan to nowy stan włączania/wyłączania, który należy ustawić
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – pobiera stan włączania/wyłączania obliczeń wektora grawitacji
    – *state jest wskaźnikiem do bieżącego stanu włączania/wyłączania
  • void MotionEC_SetGravityEnable(stan MEC_state_t)
    – ustawia stan włączenia/wyłączenia obliczeń wektora grawitacji
    – stan to nowy stan włączania/wyłączania, który należy ustawić
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – pobiera stan włączenia/wyłączenia obliczeń przyspieszenia liniowego
    – *state jest wskaźnikiem do bieżącego stanu włączania/wyłączania
  • void MotionEC_SetLinearAccEnable(stan MEC_state_t)
    – ustawia stan włączenia/wyłączenia obliczeń przyspieszenia liniowego
    – stan to nowy stan włączania/wyłączania, który należy ustawić

2.2.3 Schemat przepływu API

ST X CUBE MEMS1 MotionEC to biblioteka middleware - sekwencja

2.2.4 Kod demonstracyjny
Poniższy kod demonstracyjny odczytuje dane z czujników akcelerometru i magnetometru i pobiera dane ECompass (tj. kwaterniony, kąty Eulera itp.).

ST X CUBE MEMS1 MotionEC to biblioteka middleware — kod demonstracyjnyST X CUBE MEMS1 MotionEC to biblioteka middleware — kod demonstracyjny 1

2.2.5 Wydajność algorytmu
Algorytm E-Compass wykorzystuje dane tylko z akcelerometru i magnetometru. Działa na niskiej częstotliwości (do 100 Hz), aby zmniejszyć zużycie energii.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — wstrzykiwanie danych1

Sampplik aplikacji

Oprogramowanie pośredniczące MotionEC można łatwo modyfikować w celu tworzenia aplikacji użytkownika;ampPlik aplikacji znajduje się w folderze aplikacji.
Jest przeznaczony do działania na płycie rozwojowej NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE lub NUCLEO-L073RZ podłączonej do płyty rozszerzeń X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 lub X-NUCLEO-IKS02A1.

ST X CUBE MEMS1 MotionEC to biblioteka middleware-adapter

Aplikacja rozpoznaje orientację i obrót urządzenia w czasie rzeczywistym. Dane mogą być wyświetlane za pomocą GUI.
Algorytm zapewnia następujące dane wyjściowe: orientacja urządzenia (kwaterniony, kąty Eulera), obrót urządzenia (funkcjonalność wirtualnego żyroskopu), wektor grawitacji i przyspieszenie liniowe.
3.1 Aplikacja MEMS-Studio
SampAplikacja korzysta z aplikacji MEMS-Studio, którą można pobrać ze strony www.st.com.
Krok 1. Upewnij się, że niezbędne sterowniki są zainstalowane i płyta STM32 Nucleo z odpowiednią kartą rozszerzeń jest podłączona do komputera.
Krok 2. Uruchom aplikację MEMS-Studio, aby otworzyć główne okno aplikacji.
Jeśli do komputera podłączona jest płytka STM32 Nucleo z obsługiwanym oprogramowaniem układowym, odpowiedni port COM jest automatycznie wykrywany. Naciśnij przycisk [Connect], aby nawiązać połączenie z płytką ewaluacyjną.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — Connect

Krok 3. Po podłączeniu do płytki STM32 Nucleo z obsługiwanym oprogramowaniem sprzętowym otwiera się zakładka [Ocena biblioteki].
Aby rozpocząć i zatrzymać przesyłanie strumieniowe danych, przełącz odpowiedni przycisk [Start]. ST X CUBE MEMS1 MotionEC to biblioteka middleware — ikona lub [Zatrzymaj] ST X CUBE MEMS1 MotionEC to biblioteka middleware- ikona1 przycisk na zewnętrznym pionowym pasku narzędzi.
Dane pochodzące z podłączonego czujnika mogą być viewwybierając kartę [Tabela danych] na wewnętrznym pionowym pasku narzędzi.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — tabela danych

Krok 4Kliknij na [E-Kompas], aby otworzyć dedykowaną stronę dla tej biblioteki.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — Compass

Powyższy rysunek przedstawia graficzny model STM32 Nucleo. Orientacja i obrót modelu są oparte na danych E-Compass (kwaternionach) obliczonych przez algorytm.
Aby dopasować rzeczywisty ruch urządzenia do modelu graficznego, skieruj urządzenie w stronę ekranu i naciśnij przycisk [Resetuj model].
Wartość nagłówka reprezentuje rzeczywisty nagłówek urządzenia.
Skierowanie urządzenia prosto w górę lub w dół (wzdłuż osi górnej układu odniesienia ENU, z tolerancją ±5 stopni) powoduje wyświetlenie wartości N/A dla kierunku: nie da się określić, na który punkt kardynalny wskazuje urządzenie.
Wartość dobroci przyjmuje wartości od 0 do 3 i jest związana z kalibracją magnetometru: im wyższa wartość, tym lepsze wyniki algorytmu danych E-Compass.
Krok 5Kliknij na [Zapisz do File] aby otworzyć okno konfiguracji rejestrowania danych. Wybierz dane czujnika i kompasu elektronicznego, które mają zostać zapisane w fileMożesz rozpocząć lub zatrzymać zapisywanie, klikając odpowiedni przycisk.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — zapisz w File

Krok 6. Tryb Data Injection można wykorzystać do wysłania wcześniej pozyskanych danych do biblioteki i otrzymania wyniku. Wybierz kartę [Data Injection] na pasku narzędzi pionowych, aby otworzyć dedykowany view dla tej funkcjonalności.

ST X CUBE MEMS1 MotionEC to biblioteka middleware — wstrzykiwanie danych

Krok 7. Kliknij przycisk [Przeglądaj], aby wybrać file z wcześniej przechwyconymi danymi w formacie CSV.
Dane zostaną załadowane do tabeli w bieżącym view.
Inne przyciski staną się aktywne. Możesz kliknąć na:
– Przycisk [Tryb offline] służący do włączania/wyłączania trybu offline oprogramowania sprzętowego (tryb wykorzystujący wcześniej przechwycone dane).
– Przyciski [Start]/[Stop]/[Krok]/[Powtórz] służące do sterowania przesyłaniem danych z MEMS-Studio do biblioteki.

Odniesienia

Wszystkie poniższe zasoby są dostępne bezpłatnie na stronie www.st.com.

  1. UM1859: Pierwsze kroki z rozszerzeniem oprogramowania MEMS ruchu X-CUBE-MEMS1 i czujnika środowiskowego dla STM32Cube
  2.  UM1724: Płyty STM32 Nucleo-64 (MB1136)
  3. UM3233: Pierwsze kroki z MEMS-Studio

Historia rewizji

Tabela 4. Historia zmian dokumentów

Data Wersja Zmiany
18-maj-17 1 Pierwsze wydanie.
25-sty-18 2 Dodano odniesienia do płyty rozwojowej NUCLEO-L152RE i Tabeli 2.
Algorytm czasu upłyniętego (μs).
21-marca-18 3 Zaktualizowany wstęp i sekcja 2.1 MotionECview.
26-lis-18 4 Dodano tabelę 3. Cortex -M0+: algorytm czasu upłyniętego (µs). Dodano odniesienia do ARM®
Cortex® – płyta rozwojowa M0+ i NUCLEO-L073RZ.
19-lut-19 5 Zaktualizowany rysunek 1. Układ odniesienia ENU, tabela 2. Cortex-M4 i Cortex-M3: algorytm czasu upłyniętego (µs), tabela 3.
Cortex -M0+: algorytm czasu upłyniętego (µs), Rysunek 3. Adapter płytki rozszerzeń czujników podłączony do STM32
Nucleo, Rysunek 4. Główne okno Unicleo, Rysunek 5. Karta User Messages, Rysunek 6. Okno E-Compass i Rysunek 7. Okno Datalog. Dodano informacje o zgodności płyty rozszerzeń X-NUCLEO-IKS01A3.
25-marca-20 6 Zaktualizowany wstęp, sekcja 2.2.1: Opis biblioteki MotionEC i sekcja 2.2.5: Wydajność algorytmu.
Dodano informacje o zgodności architektury ARM Cortex-M7.
17-wrz-24 7 Zaktualizowany wstęp do sekcji,
Sekcja 2.1: MotionEC ponadview,
Sekcja 2.2.1: Biblioteka MotionEC
Opis, Sekcja 2.2.2: MotionEC
API, Sekcja 2.2.5: Algorytm
wydajność, Sekcja 3: Sample
aplikacja, Sekcja 3.1: Aplikacja MEMS-Studio

WAŻNA INFORMACJA – PRZECZYTAJ UWAŻNIE
STMicroelectronics NV i jej spółki zależne („ST”) zastrzegają sobie prawo do wprowadzania zmian, poprawek, ulepszeń, modyfikacji i udoskonaleń produktów ST i/lub niniejszego dokumentu w dowolnym momencie bez powiadomienia. Nabywcy powinni uzyskać najnowsze istotne informacje o produktach ST przed złożeniem zamówienia. Produkty ST są sprzedawane zgodnie z warunkami sprzedaży ST obowiązującymi w momencie potwierdzenia zamówienia.
Nabywcy ponoszą wyłączną odpowiedzialność za wybór, selekcję i użytkowanie produktów ST. ST nie ponosi żadnej odpowiedzialności za pomoc w stosowaniu ani za konstrukcję produktów nabywców.
ST nie udziela żadnej licencji, wyraźnej ani dorozumianej, na jakiekolwiek prawa własności intelektualnej.
Odsprzedaż produktów ST z postanowieniami różniącymi się od informacji zawartych w niniejszym dokumencie powoduje unieważnienie gwarancji udzielonej przez ST na taki produkt.
ST i logo ST są znakami towarowymi ST. Aby uzyskać dodatkowe informacje o znakach towarowych ST, zapoznaj się z www.st.com/trademarks. Wszystkie inne nazwy produktów lub usług są własnością ich odpowiednich właścicieli.
Informacje zawarte w niniejszym dokumencie zastępują informacje podane wcześniej w jakiejkolwiek poprzedniej wersji tego dokumentu.

© 2024 STMicroelectronics – Wszelkie prawa zastrzeżone

Dokumenty / Zasoby

ST X-CUBE-MEMS1 MotionEC jest biblioteką middleware [plik PDF] Instrukcja obsługi
X-CUBE-MEMS1 MotionEC to biblioteka middleware, X-CUBE-MEMS1, MotionEC to biblioteka middleware, biblioteka middleware, biblioteka

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *