ST X - logoUM2225
Uputstvo za upotrebu

Početak rada s MotionEC bibliotekom E-Compass u stvarnom vremenu u X-CUBE-MEMS1 proširenju za STM32Cube

Uvod

MotionEC je komponenta biblioteke međuvera softvera X-CUBE-MEMS1 i radi na STM3z2. Pruža informacije u realnom vremenu o orijentaciji uređaja i statusu kretanja na osnovu podataka s uređaja.
Pruža sljedeće izlaze: orijentaciju uređaja (kvaternioni, Eulerovi uglovi), rotaciju uređaja (funkcionalnost virtuelnog žiroskopa), gravitacijski vektor i linearno ubrzanje.
Ova biblioteka je namijenjena za rad samo sa ST MEMS.
Algoritam je obezbeđen u statičnom formatu biblioteke i dizajniran je da se koristi na STM32 mikrokontrolerima zasnovanim na ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 i ARM® Cortex®-M7 arhitekture.
Izgrađen je na vrhu softverske tehnologije STM32Cube kako bi se olakšala prenosivost kroz različite STM32 mikrokontrolere.
Softver dolazi sa sampimplementacija radi na X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 ili X-NUCLEO-IKS02A1 ploči za proširenje na NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ili NUCLEO-L073RZ razvojnoj ploči.

Akronimi i kratice

Tabela 1. Lista akronima

Akronim Opis
API Interfejs za programiranje aplikacije
BSP Paket podrške za ploču
GUI Grafičko korisničko sučelje
HAL Sloj hardverske apstrakcije
IDE Integrirano razvojno okruženje

MotionEC biblioteka međuvera u X-CUBE-MEMS1 softverskoj ekspanziji za STM32Cube

2.1 MotionEC je završenview
MotionEC biblioteka proširuje funkcionalnost softvera X-CUBE-MEMS1.
Biblioteka prikuplja podatke sa akcelerometra i magnetometra i pruža informacije o orijentaciji uređaja i statusu kretanja na osnovu podataka sa uređaja.
Biblioteka je dizajnirana samo za ST MEMS. Funkcionalnost i performanse pri korištenju drugih MEMS senzora se ne analiziraju i mogu se značajno razlikovati od onoga što je opisano u dokumentu.
A sampimplementacija je dostupna na X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 i X-NUCLEO-IKS02A1 ploči za proširenje, montiranoj na NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ili NUCLEOZ-OL073 razvojnoj ploči.
2.2 MotionEC biblioteka
Tehničke informacije koje u potpunosti opisuju funkcije i parametre MotionEC API-ja mogu se naći u MotionEC_Package.chm kompajliranom HTML-u file koji se nalazi u folderu Dokumentacija.

2.2.1 Opis biblioteke MotionEC
MotionEC E-Compass biblioteka upravlja podacima dobijenim od akcelerometra i magnetometra; ima:

  • orijentacija uređaja (kvaternioni, Eulerovi uglovi), rotacija uređaja (funkcionalnost virtuelnog žiroskopa), vektor gravitacije i izlaz linearnog ubrzanja
  • funkcionalnost zasnovana samo na podacima akcelerometra i magnetometra
  • potrebni podaci akcelerometra i magnetometra sampfrekvencija do 100 Hz
  • zahtjevi za resursima:
    – Cortex-M0+: 3.7 kB koda i 0.1 kB memorije podataka
    – Cortex-M3: 3.8 kB koda i 0.1 kB memorije podataka
    – Cortex-M33: 2.8 kB koda i 0.1 kB memorije podataka
    – Cortex-M4: 2.9 kB koda i 0.1 kB memorije podataka
    – Cortex-M7: 2.8 kB koda i 0.1 kB memorije podataka
  • dostupno za ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 i Cortex M7 arhitekture

2.2.2 MotionEC API-ji
MotionEC API-ji su:

  • uint8_t MotionEC_GetLibVersion(char *verzija)
    – preuzima verziju biblioteke
    – *verzija je pokazivač na niz od 35 znakova
    – vraća broj znakova u nizu verzije
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – vrši inicijalizaciju MotionEC biblioteke i podešavanje internog mehanizma.
    – mcu_type je tip MCU-a:
    ◦ MFX_CM0P_MCU_STM32 je standardni STM32 MCU
    ◦ MFX_CM0P_MCU_BLUE_NRG1 je BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 je BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP je BlueNRG -LP
    – frekvencija je senzor sampfrekvencija zraka [Hz]

Napomena: Ova funkcija se mora pozvati prije korištenja biblioteke E-Compass i CRC modul u STM32 mikrokontroleru (u registru za omogućavanje perifernog sata RCC) mora biti omogućen prije korištenja biblioteke

  • void MotionEC_SetFrequency(float freq)
    – postavlja sampfrekvencija linga (izmjena parametara filtriranja)
    – frekvencija je senzor sampfrekvencija linga [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – pokreće algoritam E-Compass (fuzija podataka akcelerometra i magnetometra)
    – *data_in je pokazivač na strukturu sa ulaznim podacima
    – parametri za tip strukture MEC_input_t su:
    ◦ acc[3] je niz podataka akcelerometra u ENU konvenciji, mjereno u g
    ◦ mag[3] je niz magnetometarskih kalibriranih podataka u ENU konvenciji, mjereno u μT/50
    ◦ deltatime s je delta vrijeme (tj. vremensko kašnjenje između starog i novog skupa podataka) mjereno u s
    – *data_out je pokazivač na strukturu s izlaznim podacima
    – parametri za tip strukture MEC_output_t su:
    ◦ kvaternion[4] je niz koji sadrži kvaternion u ENU konvenciji, koji predstavlja 3Dangularnu orijentaciju uređaja u prostoru; poredak elemenata je: X, Y, Z, W, sa uvijek pozitivnim elementom W
    ◦ euler[3] je niz Eulerovih uglova u ENU konvenciji, koji predstavlja 3D-ugaonu orijentaciju uređaja u prostoru; redoslijed elemenata je: skretanje, nagib, kotrljanje, mjereno u st
    ◦ i_gyro[3] je niz ugaonih brzina u ENU konvenciji, koji predstavlja virtuelni žiroskopski senzor, mjereno u dps
    ◦ gravitacija[3] je niz ubrzanja u ENU konvenciji, koji predstavlja vektor gravitacije, mjeren u g
    ◦ linear[3] je niz ubrzanja u ENU konvenciji, koji predstavlja linearno ubrzanje uređaja, mjereno u g
    ST X CUBE MEMS1 MotionEC je biblioteka Middleware-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – dobiva stanje uključivanja/isključivanja izračuna Ojlerovog ugla
    – *stanje je pokazivač na trenutno omogućeno/onemogućeno stanje
  • void MotionEC_SetOrientationEnable(MEC_state_t stanje)
    – postavlja uključeno/onemogućeno stanje izračuna Eulerovog ugla
    – stanje je novo omogućeno/onemogućeno stanje koje treba postaviti
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – dobija uključeno/onemogućeno stanje proračuna virtuelnog žiroskopa
    – *stanje je pokazivač na trenutno omogućeno/onemogućeno stanje
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    – postavlja uključeno/onemogućeno stanje proračuna virtuelnog žiroskopa
    – stanje je novo omogućeno/onemogućeno stanje koje treba postaviti
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – dobija stanje uključivanja/isključivanja izračunavanja vektora gravitacije
    – *stanje je pokazivač na trenutno omogućeno/onemogućeno stanje
  • void MotionEC_SetGravityEnable(MEC_state_t stanje)
    – postavlja uključeno/onemogućeno stanje izračunavanja vektora gravitacije
    – stanje je novo omogućeno/onemogućeno stanje koje treba postaviti
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – dobiva uključeno/onemogućeno stanje izračuna linearnog ubrzanja
    – *stanje je pokazivač na trenutno omogućeno/onemogućeno stanje
  • void MotionEC_SetLinearAccEnable(MEC_state_t stanje)
    – postavlja uključeno/onemogućeno stanje izračuna linearnog ubrzanja
    – stanje je novo omogućeno/onemogućeno stanje koje treba postaviti

2.2.3 API dijagram toka

ST X CUBE MEMS1 MotionEC je Middleware Library-sekvenca

2.2.4 Demo kod
Sljedeći demonstracioni kod čita podatke sa senzora akcelerometra i magnetometra i dobija podatke ECompass-a (tj. kvaternion, Eulerovi uglovi, itd.).

ST X CUBE MEMS1 MotionEC je Middleware Library- Demo kodST X CUBE MEMS1 MotionEC je biblioteka Middleware- Demo code1

2.2.5 Performanse algoritma
Algoritam E-Compass koristi podatke samo sa akcelerometra i magnetometra. Radi na niskoj frekvenciji (do 100 Hz) kako bi se smanjila potrošnja energije.

ST X CUBE MEMS1 MotionEC je biblioteka Middleware-Data Injection1

Sample application

MotionEC srednjim softverom može se lako manipulisati za pravljenje korisničkih aplikacija; asample aplikacija se nalazi u folderu Application.
Dizajniran je za rad na razvojnoj ploči NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ili NUCLEO-L073RZ povezanoj na X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ili X-NUCLEO-expansion02A1 ploču.

ST X CUBE MEMS1 MotionEC je adapter biblioteke Middleware

Aplikacija prepoznaje orijentaciju i rotaciju uređaja u realnom vremenu. Podaci se mogu prikazati kroz GUI.
Algoritam pruža sljedeće izlaze: orijentaciju uređaja (kvaternioni, Eulerovi uglovi), rotaciju uređaja (funkcionalnost virtuelnog žiroskopa), gravitacijski vektor i linearno ubrzanje.
3.1 Aplikacija MEMS-Studio
The sample aplikacija koristi MEMS-Studio aplikaciju sa koje se može preuzeti www.st.com.
Korak 1. Uverite se da su instalirani potrebni drajveri i da je STM32 Nucleo ploča sa odgovarajućom pločom za proširenje povezana na računar.
Korak 2. Pokrenite aplikaciju MEMS-Studio da otvorite glavni prozor aplikacije.
Ako je STM32 Nucleo ploča sa podržanim firmverom povezana na računar, automatski se detektuje odgovarajući COM port. Pritisnite dugme [Connect] da uspostavite vezu sa pločom za procenu.

ST X CUBE MEMS1 MotionEC je Middleware Library-Connect

Korak 3. Kada se poveže na STM32 Nucleo ploču sa podržanim firmverom, otvara se kartica [Library Evaluation].
Da biste pokrenuli i zaustavili prijenos podataka, uključite odgovarajući [Start] ST X CUBE MEMS1 MotionEC je Middleware Library-ikona ili [Stop] ST X CUBE MEMS1 MotionEC je biblioteka Middleware-icon1 dugme na spoljnoj okomitoj traci sa alatkama.
Podaci koji dolaze od povezanog senzora mogu biti viewed odabirom kartice [Tabela podataka] na unutrašnjoj vertikalnoj traci sa alatkama.

ST X CUBE MEMS1 MotionEC je Middleware Library-Tabela podataka

Korak 4. Kliknite na [E-Compass] da otvorite namjensku stranicu za ovu biblioteku.

ST X CUBE MEMS1 MotionEC je Middleware biblioteka-kompas

Slika iznad prikazuje STM32 Nucleo grafički model. Orijentacija i rotacija modela su zasnovani na podacima E-Compassa (kvaternionima) izračunatim algoritmom.
Da biste poravnali stvarno kretanje uređaja sa grafičkim modelom, usmjerite uređaj prema ekranu i pritisnite [Reset model].
Vrijednost naslova predstavlja pravi smjer uređaja.
Usmjeravanje uređaja pravo gore ili dolje (duž ose Gore referentnog okvira ENU, sa tolerancijom ±5 stepeni) daje vrijednost N/A za smjer: nije moguće razlikovati na koju kardinalnu tačku uređaj pokazuje.
Vrijednost dobrote daje 0 do 3 vrijednosti i povezana je sa kalibracijom magnetometra: što je vrijednost veća, to su bolji rezultati algoritma podataka E-Compass.
Korak 5. Kliknite na [Sačuvaj u File] da otvorite prozor za konfiguraciju evidencije podataka. Odaberite senzor i podatke E-Compass-a koji će se pohraniti u file. Možete započeti ili zaustaviti spremanje klikom na odgovarajuće dugme.

ST X CUBE MEMS1 MotionEC je biblioteka Middleware-sačuvaj u File

Korak 6. Način ubacivanja podataka može se koristiti za slanje prethodno prikupljenih podataka u biblioteku i primanje rezultata. Odaberite karticu [Data Injection] na okomitoj traci s alatima da otvorite namjenski view za ovu funkcionalnost.

ST X CUBE MEMS1 MotionEC je biblioteka Middleware-Data Injection

Korak 7. Kliknite na dugme [Browse] da odaberete file sa prethodno snimljenim podacima u CSV formatu.
Podaci će biti učitani u tabelu u toku view.
Ostala dugmad će postati aktivna. Možete kliknuti na:
– Dugme [Offline Mode] za uključivanje/isključivanje offline režima firmvera (režim koji koristi prethodno snimljene podatke).
– Dugmad [Start]/[Stop]/[Step]/[Repeat] za kontrolu prijenosa podataka iz MEMS-Studio u biblioteku.

Reference

Svi sljedeći resursi su besplatno dostupni na www.st.com.

  1. UM1859: Početak rada s X-CUBE-MEMS1 motion MEMS i proširenjem softvera senzora okoliša za STM32Cube
  2.  UM1724: STM32 Nucleo-64 ploče (MB1136)
  3. UM3233: Početak rada s MEMS-Studio

Istorija revizija

Tabela 4. Istorija revizije dokumenta

Datum Verzija Promjene
18-maj-17 1 Prvo izdanje.
25-jan-18 2 Dodate reference na razvojnu ploču NUCLEO-L152RE i tabelu 2.
Algoritam proteklog vremena (μs).
21-Mar-18 3 Ažurirani uvod i odjeljak 2.1 MotionEC je završenview.
26-18-XNUMX 4 Dodata tabela 3. Cortex -M0+: algoritam proteklog vremena (µs). Dodate reference na ARM®
Cortex® – M0+ i NUCLEO-L073RZ razvojna ploča.
19-feb-19 5 Ažurirana slika 1. ENU referentni okvir, tabela 2. Cortex -M4 i Cortex-M3: algoritam proteklog vremena (µs), tabela 3.
Cortex -M0+: algoritam proteklog vremena (µs), Slika 3. Adapter ploče za proširenje senzora spojen na STM32
Nucleo, Slika 4. Glavni prozor Uniclea, Slika 5. Kartica Korisničke poruke, Slika 6. Prozor E-Compass i Slika 7. Prozor Datalog. Dodane informacije o kompatibilnosti X-NUCLEO-IKS01A3 ploče za proširenje.
25-Mar-20 6 Ažurirani uvod, odeljak 2.2.1: Opis biblioteke MotionEC i odeljak 2.2.5: Performanse algoritma.
Dodane informacije o kompatibilnosti ARM Cortex-M7 arhitekture.
17-Sep-24 7 Ažurirani odjeljak Uvod,
Odjeljak 2.1: MotionEC je završenview,
Odjeljak 2.2.1: MotionEC biblioteka
opis, Odjeljak 2.2.2: MotionEC
API-ji, Odjeljak 2.2.5: Algoritam
performans, Odjeljak 3: Sample
aplikacija, Odjeljak 3.1: Aplikacija MEMS-Studio

VAŽNA NAPOMENA – PAŽLJIVO PROČITAJTE
STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi ​​u trenutku potvrde narudžbe.
Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca.
ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine.
Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod.
ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.

© 2024 STMicroelectronics – Sva prava zadržana

Dokumenti / Resursi

ST X-CUBE-MEMS1 MotionEC je biblioteka Middleware [pdf] Uputstvo za upotrebu
X-CUBE-MEMS1 MotionEC je Middleware biblioteka, X-CUBE-MEMS1, MotionEC je Middleware biblioteka, Middleware biblioteka, biblioteka

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *