UM2225
Manuali i përdorimit
Fillimi me bibliotekën E-Compass në kohë reale MotionEC në zgjerimin X-CUBE-MEMS1 për STM32Cube
Hyrje
MotionEC është një komponent i bibliotekës së softuerit X-CUBE-MEMS1 dhe funksionon në STM3z2. Ai siguron informacion në kohë reale për orientimin e pajisjes dhe statusin e lëvizjes bazuar në të dhënat nga një pajisje.
Ai siguron rezultatet e mëposhtme: orientimin e pajisjes (katernionet, këndet e Euler), rrotullimin e pajisjes (funksionaliteti i xhiroskopit virtual), vektori i gravitetit dhe nxitimi linear.
Kjo bibliotekë ka për qëllim të punojë vetëm me ST MEMS.
Algoritmi ofrohet në formatin statik të bibliotekës dhe është projektuar për t'u përdorur në mikrokontrolluesit STM32 bazuar në ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 dhe ARM® Arkitekturat Cortex®-M7.
Është ndërtuar mbi teknologjinë e softuerit STM32Cube për të lehtësuar transportueshmërinë nëpër mikrokontrollues të ndryshëm STM32.
Softueri vjen me sampimplementimi që funksionon në X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 ose X-NUCLEO-IKS02A1 në një tabelë zgjerimi NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE-L073RE ose NUXNUMXC.
Shkurtesat dhe shkurtesat
Tabela 1. Lista e shkurtesave
Akronimi | Përshkrimi |
API | Ndërfaqja e programimit të aplikacionit |
BSP | Paketa mbështetëse e bordit |
GUI | Ndërfaqja grafike e përdoruesit |
HAL | Shtresa e abstraksionit të harduerit |
IDE | Mjedisi i integruar i zhvillimit |
Biblioteka e softuerit të ndërmjetëm MotionEC në zgjerimin e softuerit X-CUBE-MEMS1 për STM32Cube
2.1 MotionEC ka përfunduarview
Biblioteka MotionEC zgjeron funksionalitetin e softuerit X-CUBE-MEMS1.
Biblioteka merr të dhëna nga akselerometri dhe magnetometri dhe ofron informacion në lidhje me orientimin e pajisjes dhe statusin e lëvizjes bazuar në të dhënat nga një pajisje.
Biblioteka është krijuar vetëm për ST MEMS. Funksionaliteti dhe performanca kur përdoren sensorë të tjerë MEMS nuk analizohen dhe mund të jenë dukshëm të ndryshme nga ato që përshkruhen në dokument.
Një sampZbatimi është i disponueshëm në X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 dhe X-NUCLEO-IKS02A1, të montuar në një tabelë zhvillimi NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RLEO-L073.
2.2 Biblioteka MotionEC
Informacioni teknik që përshkruan plotësisht funksionet dhe parametrat e API-ve MotionEC mund të gjendet në HTML-në e përpiluar MotionEC_Package.chm file ndodhet në dosjen Documentation.
2.2.1 Përshkrimi i bibliotekës MotionEC
Biblioteka MotionEC E-Compass menaxhon të dhënat e marra nga akselerometri dhe magnetometri; ajo përmban:
- orientimi i pajisjes (katernionet, këndet e Euler-it), rrotullimi i pajisjes (funksionaliteti i xhiroskopit virtual), vektori i gravitetit dhe daljet e nxitimit linear
- funksionaliteti i bazuar vetëm në të dhënat e përshpejtuesit dhe magnetometrit
- Të dhënat e kërkuara të akselerometrit dhe magnetometrit sampfrekuencë ling deri në 100 Hz
- kërkesat për burime:
– Cortex-M0+: 3.7 kB kod dhe 0.1 kB memorie të dhënash
– Cortex-M3: 3.8 kB kod dhe 0.1 kB memorie të dhënash
– Cortex-M33: 2.8 kB kod dhe 0.1 kB memorie të dhënash
– Cortex-M4: 2.9 kB kod dhe 0.1 kB memorie të dhënash
– Cortex-M7: 2.8 kB kod dhe 0.1 kB memorie të dhënash - në dispozicion për arkitekturat ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 dhe Cortex M7
2.2.2 API-të MotionEC
API-të e MotionEC janë:
- uint8_t MotionEC_GetLibVersion (char *version)
– rimerr versionin e bibliotekës
– *versioni është një tregues për një grup prej 35 karakteresh
– kthen numrin e karaktereve në vargun e versionit
• Void MotionEC_Initialize (MEC_mcu_type_t mcu_type, float Freq)
– kryen inicializimin e bibliotekës MotionEC dhe konfigurimin e mekanizmit të brendshëm.
– mcu_type është lloji i MCU:
◦ MFX_CM0P_MCU_STM32 është një MCU standard STM32
◦ MFX_CM0P_MCU_BLUE_NRG1 është BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 është BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP është BlueNRG -LP
– frekuenca është sensori sampfrekuenca ling [Hz]
Shënim: Ky funksion duhet të thirret përpara se të përdorni bibliotekën E-Compass dhe moduli CRC në mikrokontrolluesin STM32 (në regjistrin e aktivizimit të orës periferike RCC) duhet të aktivizohet përpara se të përdorni bibliotekën
- void MotionEC_SetFrequency (frekuenca notuese)
– vendos sampfrekuenca ling (duke modifikuar parametrat e filtrimit)
– frekuenca është sensori sampfrekuenca e lidhjes [Hz] • MotionEC_Run void (MEC_hyrje_t *data_in, MEC_output_t *data_out)
- ekzekuton algoritmin E-Compass (bashkimi i të dhënave të akselerometrit dhe magnetometrit)
– *data_in është një tregues drejt një strukture me të dhëna hyrëse
– parametrat për llojin e strukturës MEC_input_t janë:
◦ acc[3] është një grup të dhënash përshpejtuesi në konventën ENU, i matur në g
◦ mag[3] është një grup të dhënash të kalibruar me magnetometër në konventën ENU, e matur në μT/50
◦ deltatime s është koha delta (d.m.th., vonesa kohore midis grupit të të dhënave të vjetra dhe të reja) e matur në s
– *data_out është një tregues për një strukturë me të dhëna dalëse
– parametrat për llojin e strukturës MEC_output_t janë:
◦ kuaternion[4] është grup që përmban kuaternion në konventën ENU, që përfaqëson orientimin 3Dangular të pajisjes në hapësirë; Rendi i elementeve është: X, Y, Z, W, me element gjithmonë pozitiv W
◦ Euler[3] është një grup këndesh të Euler-it në konventën ENU, që përfaqëson orientimin këndor 3D të pajisjes në hapësirë; rendi i elementeve është: jaw, pitch, roll, i matur në deg
◦ i_gyro[3] është një grup normash këndore në konventën ENU, që përfaqëson një sensor virtual të xhiroskopit, i matur në dps
◦ graviteti[3] është një grup përshpejtimesh në konventën ENU, që përfaqëson vektorin e gravitetit, i matur në g
◦ linear[3] është një grup përshpejtimesh në konventën ENU, që përfaqëson nxitimin linear të pajisjes, i matur në g
- void MotionEC_GetOrientationEnable(MEC_state_t *gjendje)
– merr gjendjen e aktivizimit/çaktivizimit të llogaritjes së këndit të Euler-it
– *state është një tregues për gjendjen aktuale të aktivizimit/çaktivizimit - void MotionEC_SetOrientationEnable (gjendja MEC_state_t)
– vendos gjendjen e aktivizimit/çaktivizimit të llogaritjes së këndit të Euler-it
– gjendje është gjendja e re e aktivizimit/çaktivizimit që do të vendoset - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
– merr gjendjen e aktivizimit/çaktivizimit të llogaritjes së xhiroskopit virtual
– *state është një tregues për gjendjen aktuale të aktivizimit/çaktivizimit - void MotionEC_SetVirtualGyroEnable (gjendja MEC_state_t)
– vendos gjendjen e aktivizimit/çaktivizimit të llogaritjes së xhiroskopit virtual
– gjendje është gjendja e re e aktivizimit/çaktivizimit që do të vendoset - void MotionEC_GetGravityEnable(MEC_state_t *gjendje)
– merr gjendjen e aktivizimit/çaktivizimit të llogaritjes së vektorit të gravitetit
– *state është një tregues për gjendjen aktuale të aktivizimit/çaktivizimit - void MotionEC_SetGravityEnable (gjendja MEC_state_t)
– vendos gjendjen e aktivizimit/çaktivizimit të llogaritjes së vektorit të gravitetit
– gjendje është gjendja e re e aktivizimit/çaktivizimit që do të vendoset - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
– merr gjendjen e aktivizimit/çaktivizimit të llogaritjes së nxitimit linear
– *state është një tregues për gjendjen aktuale të aktivizimit/çaktivizimit - void MotionEC_SetLinearAccEnable (gjendja MEC_state_t)
– vendos gjendjen e aktivizimit/çaktivizimit të llogaritjes së nxitimit linear
– gjendje është gjendja e re e aktivizimit/çaktivizimit që do të vendoset
2.2.3 Grafiku i rrjedhës së API
2.2.4 Kodi demo
Kodi i mëposhtëm demonstrues lexon të dhënat nga sensorët e përshpejtuesit dhe magnetometrit dhe merr të dhënat ECompass (dmth., kuaternion, kënde Euler, etj.).
2.2.5 Performanca e algoritmit
Algoritmi E-Compass përdor vetëm të dhëna nga akselerometri dhe magnetometri. Ai funksionon në një frekuencë të ulët (deri në 100 Hz) për të zvogëluar konsumin e energjisë.
Sampaplikimi
Softueri i mesëm MotionEC mund të manipulohet lehtësisht për të ndërtuar aplikacione të përdoruesve; siampaplikacioni ofrohet në dosjen Application.
Është projektuar të funksionojë në një tabelë zhvillimi NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ose NUCLEO-L073RZ të lidhur me një tabelë X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1A02 ose X-panexsion.
Aplikacioni njeh orientimin dhe rrotullimin e pajisjes në kohë reale. Të dhënat mund të shfaqen përmes një GUI.
Algoritmi siguron rezultatet e mëposhtme: orientimin e pajisjes (katernionet, këndet e Euler-it), rrotullimin e pajisjes (funksionaliteti i xhiroskopit virtual), vektori i gravitetit dhe nxitimi linear.
3.1 Aplikacioni MEMS-Studio
Sampaplikacioni le përdor aplikacionin MEMS-Studio, i cili mund të shkarkohet nga www.st.com.
Hapi 1. Sigurohuni që drejtuesit e nevojshëm të jenë instaluar dhe që tabela STM32 Nucleo me tabelën e duhur të zgjerimit të jetë e lidhur me kompjuterin.
Hapi 2. Hapni aplikacionin MEMS-Studio për të hapur dritaren kryesore të aplikacionit.
Nëse një bord STM32 Nucleo me firmware të mbështetur është i lidhur me PC-në, porta e duhur COM zbulohet automatikisht. Shtypni butonin [Connect] për të vendosur lidhjen me bordin e vlerësimit.
Hapi 3. Kur lidhet me një tabelë STM32 Nucleo me firmware të mbështetur, hapet skeda [Vlerësimi i Bibliotekës].
Për të nisur dhe ndaluar transmetimin e të dhënave, ndërroni [Fillimin] e duhur ose [Stop]
butonin në shiritin e jashtëm vertikal të veglave.
Të dhënat që vijnë nga sensori i lidhur mund të jenë viewed duke zgjedhur skedën [Data Table] në shiritin e brendshëm vertikal të veglave.
Hapi 4. Klikoni në [E-Compass] për të hapur faqen e dedikuar për këtë bibliotekë.
Figura e mësipërme tregon një model grafik STM32 Nucleo. Orientimi dhe rrotullimi i modelit bazohen në të dhënat e E-Compass (katernioneve) të llogaritura nga algoritmi.
Për të lidhur lëvizjen reale të pajisjes me modelin grafik, drejtojeni pajisjen drejt ekranit dhe shtypni [Reset model].
Vlera e titullit përfaqëson titullin real të pajisjes.
Drejtimi i pajisjes drejt lart ose poshtë (përgjatë boshtit Lart të kornizës së referencës ENU, me tolerancë ±5 gradë) jep vlerën N/A për titullin: nuk është e mundur të dallohet se në cilën pikë kardinale është drejtuar pajisja.
Vlera e mirësisë jep 0 deri në 3 vlera dhe lidhet me kalibrimin e magnetometrit: sa më e lartë të jetë vlera, aq më të mira janë rezultatet e algoritmit të të dhënave E-Compass.
Hapi 5. Klikoni në [Ruaj në File] për të hapur dritaren e konfigurimit të të dhënave. Zgjidhni sensorin dhe të dhënat e E-Compass që do të ruhen në file. Mund të filloni ose ndaloni ruajtjen duke klikuar në butonin përkatës.
Hapi 6. Modaliteti i injektimit të të dhënave mund të përdoret për të dërguar të dhënat e marra më parë në bibliotekë dhe për të marrë rezultatin. Zgjidhni skedën [Data Injection] në shiritin vertikal të veglave për të hapur dedikuar view për këtë funksionalitet.
Hapi 7. Klikoni në butonin [Shfleto] për të zgjedhur file me të dhënat e kapura më parë në formatin CSV.
Të dhënat do të ngarkohen në tabelë në rrymën view.
Butonat e tjerë do të bëhen aktivë. Mund të klikoni në:
– Butoni [Offline Mode] për të ndezur/fikur modalitetin offline të firmuerit (modaliteti që përdor të dhënat e kapura më parë).
– Butonat [Start]/[Stop]/[Step]/[Repeat] për të kontrolluar furnizimin e të dhënave nga MEMS-Studio në bibliotekë.
Referencat
Të gjitha burimet e mëposhtme janë të disponueshme falas në www.st.com.
- UM1859: Fillimi me zgjerimin MEMS të lëvizjes X-CUBE-MEMS1 dhe sensorin mjedisor për STM32Cube
- UM1724: Pllakat STM32 Nucleo-64 (MB1136)
- UM3233: Fillimi me MEMS-Studio
Historia e rishikimit
Tabela 4. Historia e rishikimit të dokumentit
Data | Versioni | Ndryshimet |
18-maj-17 | 1 | Lëshimi fillestar. |
25-Jan-18 | 2 | Referenca të shtuara në tabelën e zhvillimit NUCLEO-L152RE dhe në tabelën 2. Algoritmi i kohës së kaluar (μs). |
21-Mars-18 | 3 | Hyrja e përditësuar dhe seksioni 2.1 MotionEC ka përfunduarview. |
26-Nëntor-18 | 4 | Shtuar Tabela 3. Cortex -M0+: algoritmi i kohës së kaluar (µs). Referenca të shtuara për ARM® Bordi i zhvillimit Cortex® – M0+ dhe NUCLEO-L073RZ. |
19-shkurt-19 | 5 | Figura e përditësuar 1. Korniza e referencës ENU, Tabela 2. Cortex -M4 dhe Cortex-M3: algoritmi i kohës së kaluar (µs), Tabela 3. Cortex -M0+: algoritmi i kohës së kaluar (µs), Figura 3. Përshtatësi i panelit të zgjerimit të sensorit i lidhur me STM32 Nucleo, Figura 4. Dritarja kryesore e Unicleo, Figura 5. Skeda e Mesazheve të Përdoruesit, Figura 6. Dritarja E-Compass dhe Figura 7. Dritarja e Datalogut. U shtua informacion i përputhshmërisë së pllakës së zgjerimit X-NUCLEO-IKS01A3. |
25-Mars-20 | 6 | Hyrja e përditësuar, Seksioni 2.2.1: Përshkrimi i bibliotekës MotionEC dhe Seksioni 2.2.5: Performanca e algoritmit. U shtua informacion i përputhshmërisë së arkitekturës ARM Cortex-M7. |
17-shtator-24 | 7 | Hyrja e përditësuar e seksionit, Seksioni 2.1: MotionEC ka përfunduarview, Seksioni 2.2.1: Biblioteka e MotionEC përshkrim, Seksioni 2.2.2: MotionEC API-të, Seksioni 2.2.5: Algoritmi performanca, Seksioni 3: Sample aplikacioni, Seksioni 3.1: Aplikacioni MEMS-Studio |
NJOFTIM I RËNDËSISHËM – LEXO ME KUJDES
STMicroelectronics NV dhe filialet e saj ("ST") rezervojnë të drejtën për të bërë ndryshime, korrigjime, përmirësime, modifikime dhe përmirësime në produktet ST dhe/ose në këtë dokument në çdo kohë pa paralajmërim. Blerësit duhet të marrin informacionin më të fundit përkatës mbi produktet ST përpara se të bëjnë porosi. Produktet ST shiten në përputhje me termat dhe kushtet e shitjes të ST në fuqi në momentin e njohjes së porosisë.
Blerësit janë vetëm përgjegjës për zgjedhjen, përzgjedhjen dhe përdorimin e produkteve ST dhe ST nuk merr asnjë përgjegjësi për asistencën e aplikimit ose dizajnimin e produkteve të blerësve.
Asnjë licencë, e shprehur apo e nënkuptuar, për ndonjë të drejtë të pronësisë intelektuale nuk jepet nga ST këtu.
Rishitja e produkteve ST me dispozita të ndryshme nga informacioni i përcaktuar këtu do të anulojë çdo garanci të dhënë nga ST për këtë produkt.
ST dhe logoja ST janë marka tregtare të ST. Për informacion shtesë rreth markave tregtare ST, referojuni www.st.com/trademarks. Të gjithë emrat e tjerë të produkteve ose shërbimeve janë pronë e pronarëve të tyre përkatës.
Informacioni në këtë dokument zëvendëson dhe zëvendëson informacionin e dhënë më parë në çdo version të mëparshëm të këtij dokumenti.
© 2024 STMicroelectronics – Të gjitha të drejtat e rezervuara
Dokumentet / Burimet
![]() |
ST X-CUBE-MEMS1 MotionEC është një Bibliotekë Middleware [pdfManuali i Përdoruesit X-CUBE-MEMS1 MotionEC është një Bibliotekë Middleware, X-CUBE-MEMS1, MotionEC është një Bibliotekë Middleware, Bibliotekë Middleware, Bibliotekë |