UM2225
Kasutusjuhend
MotionECi reaalajas E-Compassi teegiga alustamine X-CUBE-MEMS1 laienduses STM32Cube'i jaoks
Sissejuhatus
MotionEC on X-CUBE-MEMS1 tarkvara vahevara teegi komponent ja töötab STM3z2-s. See annab seadme andmete põhjal reaalajas teavet seadme orientatsiooni ja liikumise oleku kohta.
See pakub järgmisi väljundeid: seadme orientatsioon (kvaternionid, Euleri nurgad), seadme pöörlemine (virtuaalne güroskoobi funktsionaalsus), gravitatsioonivektor ja lineaarne kiirendus.
See teek on mõeldud töötama ainult ST MEMS-iga.
Algoritm on saadaval staatilise teegi vormingus ja on mõeldud kasutamiseks STM32 mikrokontrolleritel, mis põhinevad ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 ja ARM® Cortex®-M7 arhitektuurid.
See on üles ehitatud STM32Cube'i tarkvaratehnoloogiale, et hõlbustada kaasaskantavust erinevate STM32 mikrokontrollerite vahel.
Tarkvaraga on kaasas sampjuurutus, mis töötab laiendusplaadil X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 või X-NUCLEO-IKS02A1 NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE või NUCLEO-L073REZ arendusplaadil.
Akronüümid ja lühendid
Tabel 1. Akronüümide loend
Akronüüm | Kirjeldus |
API | Rakenduse programmeerimisliides |
BSP | Juhatuse tugipakett |
GUI | Graafiline kasutajaliides |
HAL | Riistvara abstraktsioonikiht |
IDE | Integreeritud arenduskeskkond |
MotionEC vahevara teek X-CUBE-MEMS1 tarkvaralaienduses STM32Cube'i jaoks
2.1 MotionEC läbiview
MotionEC teek laiendab X-CUBE-MEMS1 tarkvara funktsionaalsust.
Raamatukogu hangib andmeid kiirendusmõõturilt ja magnetomeetrilt ning annab seadmelt saadud andmete põhjal teavet seadme orientatsiooni ja liikumise oleku kohta.
Teek on mõeldud ainult ST MEMS-i jaoks. Funktsionaalsust ja jõudlust teiste MEMS-andurite kasutamisel ei analüüsita ning need võivad dokumendis kirjeldatust oluliselt erineda.
A sample rakendamine on saadaval laiendusplaadile X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ja X-NUCLEO-IKS02A1, mis on paigaldatud NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE või NUCLEO-LE073 arendusplaadile.
2.2 MotionECi teek
MotionEC API-de funktsioone ja parameetreid täielikult kirjeldava tehnilise teabe leiate MotionEC_Package.chm koostatud HTML-ist file asub kaustas Dokumentatsioon.
2.2.1 MotionEC teegi kirjeldus
MotionEC E-Compassi teek haldab kiirendusmõõturilt ja magnetomeetrilt kogutud andmeid; sellel on:
- seadme orientatsioon (kvaternioonid, Euleri nurgad), seadme pöörlemine (virtuaalne güroskoobi funktsionaalsus), gravitatsioonivektor ja lineaarkiirenduse väljundid
- funktsionaalsus, mis põhineb ainult kiirendusmõõturi ja magnetomeetri andmetel
- nõutavad kiirendusmõõturi ja magnetomeetri andmed samplingi sagedus kuni 100 Hz
- nõuded ressurssidele:
– Cortex-M0+: 3.7 kB koodi ja 0.1 kB andmemälu
– Cortex-M3: 3.8 kB koodi ja 0.1 kB andmemälu
– Cortex-M33: 2.8 kB koodi ja 0.1 kB andmemälu
– Cortex-M4: 2.9 kB koodi ja 0.1 kB andmemälu
– Cortex-M7: 2.8 kB koodi ja 0.1 kB andmemälu - saadaval ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 ja Cortex M7 arhitektuuridele
2.2.2 MotionEC API-d
MotionEC API-d on:
- uint8_t MotionEC_GetLibVersion(char *version)
– hangib teegi versiooni
– *versioon on kursor 35 märgist koosnevale massiivile
– tagastab versioonistringis olevate märkide arvu
• void MotionEC_Initialize (MEC_mcu_type_t mcu_type, float freq)
– teostab MotionEC teegi lähtestamise ja sisemise mehhanismi seadistamise.
– mcu_type on MCU tüüp:
◦ MFX_CM0P_MCU_STM32 on standardne STM32 MCU
◦ MFX_CM0P_MCU_BLUE_NRG1 on BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 on BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP on BlueNRG -LP
– freq on anduri samphelisagedus [Hz]
Märkus. See funktsioon tuleb välja kutsuda enne E-Compassi teegi kasutamist ja CRC moodul STM32 mikrokontrolleris (RCC välisseadmete kella lubamise registris) peab olema lubatud enne teegi kasutamist
- void MotionEC_SetFrequency(float freq)
– määrab samplingi sagedus (filtreerimisparameetrite muutmine)
– freq on anduri samplingisagedus [Hz] • void MotionEC_Run (MEC_input_t *data_in, MEC_output_t *data_out)
- käivitab E-Compassi algoritmi (kiirendusmõõturi ja magnetomeetri andmete liitmine)
– *data_in on kursor sisendandmetega struktuurile
– struktuuritüübi MEC_input_t parameetrid on järgmised:
◦ acc[3] on kiirendusmõõturi andmete massiiv ENU kokkuleppe kohaselt, mõõdetuna grammides
◦ mag[3] on ENU tava kohaselt kalibreeritud magnetomeetri andmete massiiv, mõõdetuna μT/50
◦ deltaaeg s on deltaaeg (st viivitus vana ja uue andmekogumi vahel), mõõdetuna sekundites
– *data_out on kursor väljundandmetega struktuurile
– struktuuritüübi MEC_output_t parameetrid on järgmised:
◦ kvaternioon[4] on massiiv, mis sisaldab kvaterniooni ENU kokkuleppes, mis tähistab seadme 3nurkset orientatsiooni ruumis; Elementide järjekord on: X, Y, Z, W, alati positiivse elemendiga W
◦ euler[3] on Euleri nurkade massiiv ENU kokkuleppe kohaselt, mis esindab seadme 3D-nurga orientatsiooni ruumis; elementide järjekord on: lengerdus, samm, veeremine, mõõdetuna kraadides
◦ i_gyro[3] on ENU kokkuleppe kohaselt nurkkiiruste massiiv, mis esindab virtuaalset güroskoopandurit, mõõdetuna dps-des
◦ gravitatsioon[3] on kiirenduste massiiv ENU kokkuleppe kohaselt, mis esindab gravitatsioonivektorit, mõõdetuna grammides
◦ lineaarne[3] on kiirenduste massiiv ENU kokkuleppe kohaselt, mis esindab seadme lineaarset kiirendust, mõõdetuna grammides
- void MotionEC_GetOrientationEnable(MEC_state_t *state)
– saab Euleri nurga arvutamise lubamise/keelamise oleku
– *olek osutab praegusele lubamise/keelamise olekule - void MotionEC_SetOrientationEnable(MEC_state_t olek)
– määrab Euleri nurga arvutamise lubamise/keelamise oleku
– olek on uus lubamise/keelamise olek, mis tuleb määrata - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
– saab virtuaalse güroskoobi arvutuse lubamise/keelamise oleku
– *olek osutab praegusele lubamise/keelamise olekule - void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
– määrab virtuaalse güroskoobi arvutuse lubamise/keelamise oleku
– olek on uus lubamise/keelamise olek, mis tuleb määrata - void MotionEC_GetGravityEnable(MEC_state_t *state)
– saab gravitatsioonivektori arvutuse lubamise/keelamise oleku
– *olek osutab praegusele lubamise/keelamise olekule - void MotionEC_SetGravityEnable(MEC_state_t olek)
– määrab gravitatsioonivektori arvutamise lubamise/keelamise oleku
– olek on uus lubamise/keelamise olek, mis tuleb määrata - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
– saab lineaarse kiirenduse arvutuse lubamise/keelamise oleku
– *olek osutab praegusele lubamise/keelamise olekule - void MotionEC_SetLinearAccEnable(MEC_state_t olek)
– määrab lineaarse kiirenduse arvutamise lubamise/keelamise oleku
– olek on uus lubamise/keelamise olek, mis tuleb määrata
2.2.3 API vooskeem
2.2.4 Demokood
Järgmine demonstratsioonikood loeb andmeid kiirendusmõõturi ja magnetomeetri anduritelt ning hangib ECompassi andmed (st kvaternion, Euleri nurgad jne).
2.2.5 Algoritmi jõudlus
E-Compassi algoritm kasutab ainult kiirendusmõõturi ja magnetomeetri andmeid. See töötab madalal sagedusel (kuni 100 Hz), et vähendada energiatarbimist.
Sample rakendus
MotionEC vahevara saab kasutajarakenduste loomiseks hõlpsasti manipuleerida; naguampRakendus on kaustas Rakendus.
See on mõeldud töötama arendusplaadil NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE või NUCLEO-L073RZ, mis on ühendatud X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 või X-NUCLEO-IKSion 02A1expan plaadiga.
Rakendus tuvastab reaalajas seadme orientatsiooni ja pöörlemise. Andmeid saab kuvada GUI kaudu.
Algoritm annab järgmised väljundid: seadme orientatsioon (kvaternioonid, Euleri nurgad), seadme pöörlemine (virtuaalne güroskoobi funktsionaalsus), gravitatsioonivektor ja lineaarne kiirendus.
3.1 MEMS-Studio rakendus
Sample rakendus kasutab MEMS-Studio rakendust, mille saab alla laadida www.st.com.
1. samm. Veenduge, et vajalikud draiverid on installitud ja STM32 Nucleo plaat koos sobiva laiendusplaadiga on arvutiga ühendatud.
2. samm. Rakenduse peaakna avamiseks käivitage rakendus MEMS-Studio.
Kui arvutiga on ühendatud toetatud püsivaraga STM32 Nucleo plaat, tuvastatakse sobiv COM-port automaatselt. Hindamispaneeliga ühenduse loomiseks vajutage nuppu [Connect].
3. samm. Toetatud püsivaraga STM32 Nucleo plaadiga ühendamisel avaneb vahekaart [Library Evaluation].
Andmete voogesituse alustamiseks ja peatamiseks lülitage sisse sobiv [Start] või [Stopp]
nuppu välimisel vertikaalsel tööriistaribal.
Ühendatud andurilt tulevad andmed võivad olla viewed valides sisemisel vertikaalsel tööriistaribal vahekaardi [Andmete tabel].
4. samm. Selle teegi jaoks spetsiaalse lehe avamiseks klõpsake [E-Compass].
Ülaltoodud joonis näitab STM32 Nucleo graafilist mudelit. Mudeli orientatsioon ja pööramine põhinevad algoritmi abil arvutatud E-Compassi andmetel (quaternions).
Seadme tegeliku liikumise joondamiseks graafilise mudeliga suunake seade ekraani poole ja vajutage nuppu [Reset model].
Pealkirja väärtus tähistab seadme tegelikku pealkirja.
Seadme otse üles või alla suunamine (piki ENU võrdlusraami ülestelge, tolerantsiga ±5 kraadi) annab päisele N/A väärtuse: pole võimalik eristada, millisele põhipunktile seade osutab.
Headuse väärtus annab 0 kuni 3 väärtust ja on seotud magnetomeetri kalibreerimisega: mida suurem väärtus, seda paremad on E-Compassi andmealgoritmi tulemused.
5. samm. Klõpsake [Save to File], et avada andmelogimise konfiguratsiooniaken. Valige anduri ja E-kompassi andmed, mida soovite salvestada file. Salvestamist saate alustada või lõpetada, klõpsates vastavat nuppu.
6. samm. Data Injection režiimi saab kasutada eelnevalt kogutud andmete teeki saatmiseks ja tulemuse vastuvõtmiseks. Valige vertikaalsel tööriistaribal vahekaart [Andmete sisestamine], et avada spetsiaalne view selle funktsiooni jaoks.
7. samm. Valimiseks klõpsake nuppu [Sirvi] file varem jäädvustatud andmetega CSV-vormingus.
Andmed laaditakse tabelisse jooksvalt view.
Teised nupud muutuvad aktiivseks. Võite klõpsata:
– Nupp [Võrguühenduseta režiim] püsivara võrguühenduseta režiimi sisse/välja lülitamiseks (režiim, mis kasutab varem salvestatud andmeid).
– Nupud [Start]/[Stopp]/[Step]/[Repeat] MEMS-Studio andmeedastuse juhtimiseks teeki.
Viited
Kõik järgmised ressursid on saidil www.st.com vabalt saadaval.
- UM1859: X-CUBE-MEMS1 liikumis-MEMS-i ja keskkonnaanduri tarkvara laiendusega alustamine STM32Cube'i jaoks
- UM1724: STM32 Nucleo-64 plaadid (MB1136)
- UM3233: MEMS-Studioga alustamine
Läbivaatamise ajalugu
Tabel 4. Dokumendi läbivaatamise ajalugu
Kuupäev | Versioon | Muudatused |
18. mai-17. mai | 1 | Esialgne vabastamine. |
25. jaanuar 18 | 2 | Lisatud viited NUCLEO-L152RE arendusplaadile ja tabelile 2. Kulunud aja (μs) algoritm. |
21. märts 18 | 3 | Uuendatud sissejuhatus ja jaotis 2.1 MotionEC on läbiview. |
26. november 18 | 4 | Lisatud tabel 3. Cortex -M0+: kulunud aja (µs) algoritm. Lisatud viited ARM®-ile Cortex® – M0+ ja NUCLEO-L073RZ arendusplaat. |
19. veebruar 19 | 5 | Uuendatud joonis 1. ENU võrdlusraam, tabel 2. Cortex -M4 ja Cortex-M3: kulunud aja (µs) algoritm, tabel 3. Cortex -M0+: kulunud aja (µs) algoritm, joonis 3. STM32-ga ühendatud anduri laiendusplaadi adapter Nucleo, joonis 4. Unicleo peaaken, joonis 5. vahekaart Kasutajateated, joonis 6. E-Compassi aken ja joonis 7. andmelogi aken. Lisatud X-NUCLEO-IKS01A3 laiendusplaadi ühilduvuse teave. |
25. märts 20 | 6 | Värskendatud sissejuhatus, jaotis 2.2.1: MotionECi teegi kirjeldus ja jaotis 2.2.5: Algoritmi jõudlus. Lisatud on teave ARM Cortex-M7 arhitektuuri ühilduvuse kohta. |
17-24-XNUMX | 7 | Uuendatud jaotise sissejuhatus, Jaotis 2.1: MotionEC läbiview, Jaotis 2.2.1: MotionECi teek kirjeldus, punkt 2.2.2: MotionEC API-d, jaotis 2.2.5: Algoritm esitus, 3. jagu: Sample rakendus, jaotis 3.1: MEMS-Studio rakendus |
TÄHTIS MÄRKUS – LUGEGE HOOLIKAS
STMicroelectronics NV ja selle tütarettevõtted („ST”) jätavad endale õiguse teha ST-toodetes ja/või selles dokumendis igal ajal ilma ette teatamata muudatusi, parandusi, täiendusi, modifikatsioone ja täiendusi. Ostjad peaksid enne tellimuste esitamist hankima uusima asjakohase teabe ST-toodete kohta. ST tooteid müüakse vastavalt ST müügitingimustele, mis kehtisid tellimuse kinnitamise ajal.
Ostjad vastutavad ainuisikuliselt ST-toodete valiku, valiku ja kasutamise eest ning ST ei vastuta rakendusabi ega ostjate toodete disaini eest.
ST ei anna siinkohal mingit otsest ega kaudset litsentsi ühelegi intellektuaalomandi õigusele.
ST-toodete edasimüük, mille sätted erinevad siin esitatud teabest, tühistab ST-i antud tootele antud garantii.
ST ja ST logo on ST kaubamärgid. ST-kaubamärkide kohta lisateabe saamiseks vaadake www.st.com/trademarks. Kõik muud toote- või teenusenimed kuuluvad nende vastavatele omanikele.
Selles dokumendis sisalduv teave asendab ja asendab selle dokumendi varasemates versioonides esitatud teabe.
© 2024 STMicroelectronics – kõik õigused kaitstud
Dokumendid / Ressursid
![]() |
ST X-CUBE-MEMS1 MotionEC on vahevara teek [pdfKasutusjuhend X-CUBE-MEMS1 MotionEC on vahevara teek, X-CUBE-MEMS1, MotionEC on vahevara teek, vahevara teek, teek |