UM2225
Lietotāja rokasgrāmata
Darba sākšana ar MotionEC reāllaika E-Compass bibliotēku X-CUBE-MEMS1 paplašinājumā STM32Cube
Ievads
MotionEC ir X-CUBE-MEMS1 programmatūras starpprogrammatūras bibliotēkas komponents un darbojas STM3z2. Tas nodrošina reāllaika informāciju par ierīces orientāciju un kustības statusu, pamatojoties uz datiem no ierīces.
Tas nodrošina šādus izvadus: ierīces orientāciju (ceturtdaļas, Eilera leņķi), ierīces rotāciju (virtuālā žiroskopa funkcionalitāti), gravitācijas vektoru un lineāro paātrinājumu.
Šī bibliotēka ir paredzēta darbam tikai ar ST MEMS.
Algoritms tiek nodrošināts statiskās bibliotēkas formātā un ir paredzēts lietošanai STM32 mikrokontrolleros, kuru pamatā ir ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 un ARM® Cortex®-M7 arhitektūras.
Tas ir veidots, izmantojot STM32Cube programmatūras tehnoloģiju, lai atvieglotu pārnesamību starp dažādiem STM32 mikrokontrolleriem.
Programmatūra tiek piegādāta kopā ar sampieviešanu, kas darbojas uz X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 vai X-NUCLEO-IKS02A1 paplašināšanas plates uz NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE vai NUCLEO-L073REZ izstrādes plates.
Akronīmi un saīsinājumi
1. tabula. Akronīmu saraksts
Akronīms | Apraksts |
API | Lietojumprogrammu programmēšanas saskarne |
BSP | Valdes atbalsta pakete |
GUI | Grafiskais lietotāja interfeiss |
HAL | Aparatūras abstrakcijas slānis |
IDE | Integrēta attīstības vide |
MotionEC starpprogrammatūras bibliotēka X-CUBE-MEMS1 programmatūras paplašināšanā STM32Cube
2.1 MotionEC beigusiesview
MotionEC bibliotēka paplašina X-CUBE-MEMS1 programmatūras funkcionalitāti.
Bibliotēka iegūst datus no akselerometra un magnetometra un sniedz informāciju par ierīces orientāciju un kustības statusu, pamatojoties uz datiem no ierīces.
Bibliotēka ir paredzēta tikai ST MEMS. Funkcionalitāte un veiktspēja, izmantojot citus MEMS sensorus, netiek analizēta un var būtiski atšķirties no dokumentā aprakstītā.
A sample ieviešana ir pieejama X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 un X-NUCLEO-IKS02A1 paplašināšanas platei, kas uzstādīta uz NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE vai NUCLEO-LE073 izstrādes plates.
2.2 MotionEC bibliotēka
Tehniskā informācija, kas pilnībā apraksta MotionEC API funkcijas un parametrus, ir atrodama MotionEC_Package.chm apkopotajā HTML. file atrodas mapē Dokumentācija.
2.2.1 MotionEC bibliotēkas apraksts
MotionEC E-Compass bibliotēka pārvalda datus, kas iegūti no akselerometra un magnetometra; tajā ir:
- ierīces orientācija (kvarterioni, Eilera leņķi), ierīces rotācija (virtuālā žiroskopa funkcionalitāte), gravitācijas vektors un lineārā paātrinājuma izejas
- funkcionalitāte, pamatojoties tikai uz akselerometra un magnetometra datiem
- nepieciešamie akselerometra un magnetometra dati samplinga frekvence līdz 100 Hz
- resursu prasības:
– Cortex-M0+: 3.7 kB koda un 0.1 kB datu atmiņa
– Cortex-M3: 3.8 kB koda un 0.1 kB datu atmiņa
– Cortex-M33: 2.8 kB koda un 0.1 kB datu atmiņa
– Cortex-M4: 2.9 kB koda un 0.1 kB datu atmiņa
– Cortex-M7: 2.8 kB koda un 0.1 kB datu atmiņa - pieejams ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 un Cortex M7 arhitektūrām
2.2.2. MotionEC API
MotionEC API ir:
- uint8_t MotionEC_GetLibVersion(char *version)
– izgūst bibliotēkas versiju
– *versija ir rādītājs uz 35 rakstzīmju masīvu
– atgriež rakstzīmju skaitu versijas virknē
• Void MotionEC_Initialize (MEC_mcu_type_t mcu_type, float freq)
– veic MotionEC bibliotēkas inicializāciju un iekšējā mehānisma iestatīšanu.
- mcu_type ir MCU veids:
◦ MFX_CM0P_MCU_STM32 ir standarta STM32 MCU
◦ MFX_CM0P_MCU_BLUE_NRG1 ir BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 ir BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP ir BlueNRG -LP
– frekvence ir sensora sampmelodijas frekvence [Hz]
Piezīme: Šī funkcija ir jāizsauc pirms E-Compass bibliotēkas izmantošanas, un pirms bibliotēkas izmantošanas ir jāiespējo CRC modulis STM32 mikrokontrollerī (RCC perifērijas pulksteņa iespējošanas reģistrā).
- Void MotionEC_SetFrequency (peldošā frekvence)
– nosaka samplingēšanas frekvence (filtrēšanas parametru modificēšana)
– frekvence ir sensora sampling frekvence [Hz] • Void MotionEC_Run (MEC_input_t *data_in, MEC_output_t *data_out)
- palaiž E-Compass algoritmu (akselerometra un magnetometra datu saplūšana)
– *data_in ir rādītājs uz struktūru ar ievades datiem
– parametri struktūras tipam MEC_input_t ir:
◦ acc[3] ir akselerometra datu masīvs ENU konvencijā, ko mēra g
◦ mag[3] ir magnetometra kalibrētu datu masīvs ENU konvencijā, mērot μT/50
◦ deltalaiks s ir delta laiks (ti, laika aizkave starp veco un jauno datu kopu), ko mēra sekundēs
– *data_out ir rādītājs uz struktūru ar izvaddatiem
– parametri struktūras tipam MEC_output_t ir:
◦ ceturtdaļa[4] ir masīvs, kas satur kvaterniju ENU konvencijā, kas attēlo ierīces 3leņķisko orientāciju telpā; Elementu secība ir: X, Y, Z, W, ar vienmēr pozitīvu elementu W
◦ euler[3] ir Eilera leņķu masīvs ENU konvencijā, kas attēlo ierīces 3D leņķisko orientāciju telpā; elementu secība ir: slīpums, slīpums, gājiens, mērot grādos
◦ i_gyro[3] ir leņķisko ātrumu masīvs ENU konvencijā, kas attēlo virtuālo žiroskopa sensoru, mērot dps
◦ gravitācija[3] ir paātrinājumu masīvs saskaņā ar ENU konvenciju, kas attēlo gravitācijas vektoru, ko mēra g
◦ lineārs[3] ir paātrinājumu masīvs saskaņā ar ENU konvenciju, kas atspoguļo ierīces lineāro paātrinājumu, ko mēra g
- Void MotionEC_GetOrientationEnable(MEC_state_t *state)
– iegūst Eilera leņķa aprēķina iespējošanas/atspējošanas stāvokli
– *stāvoklis ir rādītājs uz pašreizējo iespējošanas/atspējošanas stāvokli - Void MotionEC_SetOrientationEnable(MEC_state_t status)
– iestata Eilera leņķa aprēķina iespējošanas/atspējošanas stāvokli
– stāvoklis ir jaunais iespējošanas/atspējošanas stāvoklis, kas jāiestata - Void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
– iegūst virtuālā žiroskopa aprēķina iespējošanas/atspējošanas stāvokli
– *stāvoklis ir rādītājs uz pašreizējo iespējošanas/atspējošanas stāvokli - Void MotionEC_SetVirtualGyroEnable(MEC_state_t status)
– iestata virtuālā žiroskopa aprēķina iespējošanas/atspējošanas stāvokli
– stāvoklis ir jaunais iespējošanas/atspējošanas stāvoklis, kas jāiestata - void MotionEC_GetGravityEnable(MEC_state_t *state)
– iegūst gravitācijas vektora aprēķina iespējo/atspējošanas stāvokli
– *stāvoklis ir rādītājs uz pašreizējo iespējošanas/atspējošanas stāvokli - Void MotionEC_SetGravityEnable(MEC_state_t status)
– iestata gravitācijas vektora aprēķina iespējo/atspējošanas stāvokli
– stāvoklis ir jaunais iespējošanas/atspējošanas stāvoklis, kas jāiestata - Void MotionEC_GetLinearAccEnable(MEC_state_t *state)
– iegūst lineārā paātrinājuma aprēķina iespējošanas/atspējošanas stāvokli
– *stāvoklis ir rādītājs uz pašreizējo iespējošanas/atspējošanas stāvokli - Void MotionEC_SetLinearAccEnable(MEC_state_t status)
– iestata lineārā paātrinājuma aprēķina iespējošanas/atspējošanas stāvokli
– stāvoklis ir jaunais iespējošanas/atspējošanas stāvoklis, kas jāiestata
2.2.3. API plūsmas diagramma
2.2.4 Demonstrācijas kods
Tālāk norādītais demonstrācijas kods nolasa datus no akselerometra un magnetometra sensoriem un iegūst ECompass datus (ti, kvaterniju, Eilera leņķus utt.).
2.2.5. Algoritma veiktspēja
E-Compass algoritms izmanto tikai datus no akselerometra un magnetometra. Tas darbojas ar zemu frekvenci (līdz 100 Hz), lai samazinātu enerģijas patēriņu.
Sample pieteikumu
Ar MotionEC starpprogrammatūru var viegli manipulēt, lai izveidotu lietotāja lietojumprogrammas; kāampPieteikums ir pieejams mapē Lietojumprogramma.
Tas ir paredzēts darbam ar NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE vai NUCLEO-L073RZ izstrādes plati, kas savienota ar X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 vai X-NUCLEO-IKSions02A1expan paneli.
Lietojumprogramma reāllaikā atpazīst ierīces orientāciju un rotāciju. Datus var parādīt, izmantojot GUI.
Algoritms nodrošina šādus izvadus: ierīces orientācija (kvarterioni, Eilera leņķi), ierīces rotācija (virtuālā žiroskopa funkcionalitāte), gravitācijas vektors un lineārais paātrinājums.
3.1 MEMS-Studio lietojumprogramma
Sample aplikācijā tiek izmantota lietojumprogramma MEMS-Studio, kuru var lejupielādēt no www.st.com.
1. darbība. Pārliecinieties, vai ir instalēti nepieciešamie draiveri un datoram ir pievienota STM32 Nucleo plate ar atbilstošu paplašināšanas plati.
2. darbība. Palaidiet lietojumprogrammu MEMS-Studio, lai atvērtu lietojumprogrammas galveno logu.
Ja datoram ir pievienota STM32 Nucleo plate ar atbalstītu programmaparatūru, atbilstošais COM ports tiek noteikts automātiski. Nospiediet pogu [Connect], lai izveidotu savienojumu ar novērtēšanas paneli.
3. darbība. Savienojot ar STM32 Nucleo plati ar atbalstītu programmaparatūru, tiek atvērta cilne [Library Evaluation].
Lai sāktu un apturētu datu straumēšanu, pārslēdziet atbilstošo [Sākt]. vai [Apturēt]
pogu ārējā vertikālajā rīkjoslā.
Dati, kas nāk no pievienotā sensora, var būt viewed atlasot cilni [Datu tabula] iekšējā vertikālajā rīkjoslā.
4. darbība. Noklikšķiniet uz [E-Compass], lai atvērtu šai bibliotēkai paredzēto lapu.
Augšējā attēlā parādīts STM32 Nucleo grafiskais modelis. Modeļa orientācija un rotācija ir balstīta uz E-Compass datiem (ceturkšņiem), kas aprēķināti pēc algoritma.
Lai saskaņotu reālo ierīces kustību ar grafisko modeli, pavērsiet ierīci pret ekrānu un nospiediet [Reset model].
Virsraksta vērtība atspoguļo reālo ierīces virsrakstu.
Ierīces virzīšana taisni uz augšu vai uz leju (gar ENU atskaites rāmja augšējo asi, ar ±5 grādu pielaidi), virsrakstam tiek iegūta N/A vērtība: nav iespējams atšķirt, uz kuru galveno punktu ierīce norāda.
Labuma vērtība dod 0 līdz 3 vērtības un ir saistīta ar magnetometra kalibrēšanu: jo lielāka vērtība, jo labāki E-Compass datu algoritma rezultāti.
5. darbība. Noklikšķiniet uz [Saglabāt uz File], lai atvērtu datu reģistrēšanas konfigurācijas logu. Izvēlieties sensoru un E-kompasa datus, kas jāsaglabā file. Saglabāšanu var sākt vai pārtraukt, noklikšķinot uz atbilstošās pogas.
6. darbība. Datu ievadīšanas režīmā var nosūtīt iepriekš iegūtos datus uz bibliotēku un saņemt rezultātu. Vertikālajā rīkjoslā atlasiet cilni [Datu ievadīšana], lai atvērtu speciālo view šai funkcionalitātei.
7. darbība. Noklikšķiniet uz pogas [Pārlūkot], lai atlasītu file ar iepriekš uzņemtajiem datiem CSV formātā.
Dati tiks ielādēti tabulā pašreizējā view.
Citas pogas kļūs aktīvas. Jūs varat noklikšķināt uz:
– Poga [Bezsaistes režīms], lai ieslēgtu/izslēgtu programmaparatūras bezsaistes režīmu (režīms, kurā tiek izmantoti iepriekš uzņemtie dati).
– pogas [Sākt]/[Apturēt]/[Solis]/[Atkārtot], lai kontrolētu datu padevi no MEMS-Studio uz bibliotēku.
Atsauces
Visi tālāk minētie resursi ir brīvi pieejami vietnē www.st.com.
- UM1859: darba sākšana ar X-CUBE-MEMS1 kustības MEMS un vides sensora programmatūras paplašināšanu STM32Cube
- UM1724: STM32 Nucleo-64 plates (MB1136)
- UM3233: darba sākšana ar MEMS-Studio
Pārskatīšanas vēsture
4. tabula. Dokumentu pārskatīšanas vēsture
Datums | Versija | Izmaiņas |
18. gada 17. maijs | 1 | Sākotnējā izlaišana. |
25. janvāris — 18. janvāris | 2 | Pievienotas atsauces uz NUCLEO-L152RE izstrādes paneli un 2. tabulu. Pagājušā laika (μs) algoritms. |
21. gada 18. marts | 3 | Atjaunināts ievads un MotionEC sadaļa 2.1view. |
26. gada 18. novembris | 4 | Pievienota 3. tabula. Cortex -M0+: pagājušā laika (µs) algoritms. Pievienotas atsauces uz ARM® Cortex® – M0+ un NUCLEO-L073RZ izstrādes plate. |
19. gada 19. februāris | 5 | Atjaunināts 1. attēls. ENU atsauces rāmis, 2. tabula. Cortex -M4 un Cortex-M3: pagājušā laika (µs) algoritms, 3. tabula. Cortex -M0+: pagājušā laika (µs) algoritms, 3. attēls. Sensora paplašināšanas plates adapteris, kas savienots ar STM32 Nucleo, 4. attēls. Unicleo galvenais logs, 5. attēls. Lietotāja ziņojumu cilne, 6. attēls. E-Compass logs un 7. attēls. Datalog logs. Pievienota X-NUCLEO-IKS01A3 paplašināšanas plates saderības informācija. |
25. gada 20. marts | 6 | Atjaunināts ievads, 2.2.1. sadaļa: MotionEC bibliotēkas apraksts un 2.2.5. sadaļa: Algoritma veiktspēja. Pievienota ARM Cortex-M7 arhitektūras saderības informācija. |
17-septembris-24 | 7 | Atjaunināts sadaļas ievads, 2.1. sadaļa: MotionEC beigusiesview, 2.2.1. sadaļa: MotionEC bibliotēka apraksts, 2.2.2. sadaļa: MotionEC API, 2.2.5. sadaļa: Algoritms sniegums, 3. sadaļa: Sample lietojumprogramma, 3.1. sadaļa: MEMS-Studio lietojumprogramma |
SVARĪGS PAZIŅOJUMS – UZMANĪGI IZLASIET
STMicroelectronics NV un tā meitasuzņēmumi (“ST”) patur tiesības jebkurā laikā bez brīdinājuma veikt izmaiņas, labojumus, uzlabojumus, modifikācijas un uzlabojumus ST izstrādājumos un/vai šajā dokumentā. Pirms pasūtījuma veikšanas pircējiem jāiegūst jaunākā atbilstošā informācija par ST produktiem. ST produkti tiek pārdoti saskaņā ar ST pārdošanas noteikumiem un nosacījumiem, kas ir spēkā pasūtījuma apstiprināšanas brīdī.
Pircēji ir pilnībā atbildīgi par ST produktu izvēli, izvēli un lietošanu, un ST neuzņemas nekādu atbildību par palīdzību pielietošanā vai pircēja produktu dizainu.
ST šeit nepiešķir nekādas tiešas vai netiešas licences jebkādām intelektuālā īpašuma tiesībām.
ST produktu tālākpārdošana ar noteikumiem, kas atšķiras no šeit norādītās informācijas, anulē jebkādu ST piešķirto garantiju šādam produktam.
ST un ST logotips ir ST preču zīmes. Papildinformāciju par ST preču zīmēm skatiet www.st.com/trademarks. Visi pārējie produktu vai pakalpojumu nosaukumi ir to attiecīgo īpašnieku īpašums.
Informācija šajā dokumentā aizstāj un aizstāj informāciju, kas iepriekš sniegta jebkurās iepriekšējās šī dokumenta versijās.
© 2024 STMicroelectronics – visas tiesības paturētas
Dokumenti / Resursi
![]() |
ST X-CUBE-MEMS1 MotionEC ir starpprogrammatūras bibliotēka [pdfLietotāja rokasgrāmata X-CUBE-MEMS1 MotionEC ir starpprogrammatūras bibliotēka, X-CUBE-MEMS1, MotionEC ir starpprogrammatūras bibliotēka, starpprogrammatūras bibliotēka, bibliotēka |