UM2225
Mwongozo wa mtumiaji
Kuanza na maktaba ya E-Compass ya wakati halisi ya MotionEC katika upanuzi wa X-CUBE-MEMS1 kwa STM32Cube
Utangulizi
MotionEC ni sehemu ya maktaba ya vifaa vya kati vya programu ya X-CUBE-MEMS1 na inaendeshwa kwa STM3z2. Inatoa maelezo ya wakati halisi kuhusu mwelekeo wa kifaa na hali ya harakati kulingana na data kutoka kwa kifaa.
Inatoa matokeo yafuatayo: mwelekeo wa kifaa (quaternions, pembe za Euler), mzunguko wa kifaa (utendaji wa gyroscope halisi), vekta ya mvuto na kuongeza kasi ya mstari.
Maktaba hii imekusudiwa kufanya kazi na ST MEMS pekee.
Algoriti imetolewa katika umbizo la maktaba tuli na imeundwa kutumiwa kwenye vidhibiti vidogo vya STM32 kulingana na ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 na ARM® Usanifu wa Cortex®-M7.
Imejengwa juu ya teknolojia ya programu ya STM32Cube ili kurahisisha uwezo wa kubebeka kwenye vidhibiti vidogo vya STM32 tofauti.
Programu inakuja na sample utekelezaji unaoendeshwa kwenye bodi ya upanuzi ya X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 au X-NUCLEO-IKS02A1 kwenye bodi ya ukuzaji ya NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE au 073RZ-L.
Vifupisho na vifupisho
Jedwali 1. Orodha ya vifupisho
Kifupi | Maelezo |
API | Kiolesura cha programu ya programu |
BSP | Kifurushi cha usaidizi wa bodi |
GUI | Kiolesura cha mchoro cha mtumiaji |
HAL | Safu ya uondoaji wa vifaa |
IDE | Mazingira jumuishi ya maendeleo |
Maktaba ya vifaa vya kati vya MotionEC katika upanuzi wa programu ya X-CUBE-MEMS1 kwa STM32Cube
2.1 MotionEC imekamilikaview
Maktaba ya MotionEC huongeza utendakazi wa programu ya X-CUBE-MEMS1.
Maktaba hupata data kutoka kwa kipima kasi na magnetometer na hutoa taarifa kuhusu mwelekeo wa kifaa na hali ya harakati kulingana na data kutoka kwa kifaa.
Maktaba imeundwa kwa ajili ya ST MEMS pekee. Utendakazi na utendakazi unapotumia vihisi vingine vya MEMS havichanganuwi na vinaweza kuwa tofauti sana na ilivyoelezwa kwenye hati.
A samputekelezaji wa le unapatikana kwenye bodi ya upanuzi ya X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 na X-NUCLEO-IKS02A1, iliyowekwa kwenye bodi ya ukuzaji ya NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152OL au NUCLEO-L073OL.
2.2 maktaba ya MotionEC
Maelezo ya kiufundi yanayoelezea kikamilifu kazi na vigezo vya API za MotionEC yanaweza kupatikana katika HTML iliyokusanywa ya MotionEC_Package.chm. file iko kwenye folda ya Nyaraka.
2.2.1 Maelezo ya maktaba ya MotionEC
Maktaba ya MotionEC E-Compass inasimamia data iliyopatikana kutoka kwa kipima kasi na magnetometer; ina sifa:
- mwelekeo wa kifaa (quaternion, pembe za Euler), mzunguko wa kifaa (utendaji wa gyroscope halisi), vekta ya mvuto na matokeo ya kuongeza kasi ya mstari
- utendakazi kulingana na kipima kasi na data ya magnetometer pekee
- data inayohitajika ya kiongeza kasi cha kasi na kipima sumaku sampmzunguko wa muda wa hadi 100 Hz
- mahitaji ya rasilimali:
- Cortex-M0+: 3.7 kB ya msimbo na 0.1 kB ya kumbukumbu ya data
- Cortex-M3: 3.8 kB ya msimbo na 0.1 kB ya kumbukumbu ya data
- Cortex-M33: 2.8 kB ya msimbo na 0.1 kB ya kumbukumbu ya data
- Cortex-M4: 2.9 kB ya msimbo na 0.1 kB ya kumbukumbu ya data
- Cortex-M7: 2.8 kB ya msimbo na 0.1 kB ya kumbukumbu ya data - inapatikana kwa usanifu wa ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 na Cortex M7
2.2.2 API za MotionEC
API za MotionEC ni:
- uint8_t MotionEC_GetLibVersion(char *toleo)
- inarejesha toleo la maktaba
- *toleo ni kiashirio kwa safu ya herufi 35
- hurejesha idadi ya wahusika katika mfuatano wa toleo
• void MotionEC_Initialize(MEC_mcu_type_t mcu_type, freq ya kuelea)
- hufanya uanzishaji wa maktaba ya MotionEC na usanidi wa utaratibu wa ndani.
- mcu_type ni aina ya MCU:
◦ MFX_CM0P_MCU_STM32 ni STM32 MCU ya kawaida
◦ MFX_CM0P_MCU_BLUE_NRG1 ni BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 ni BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP ni BlueNRG -LP
- frequency ni sensor sampmzunguko wa ling [Hz]
Kumbuka: Kitendaji hiki lazima kiitwe kabla ya kutumia maktaba ya E-Compass na moduli ya CRC katika kidhibiti kidogo cha STM32 (katika rejista ya kuwezesha saa ya pembeni ya RCC) lazima iwashwe kabla ya kutumia maktaba.
- utupu MotionEC_SetFrequency(freq ya kuelea)
- huweka sampmzunguko wa ling (kurekebisha vigezo vya kuchuja)
- frequency ni sensor sampmzunguko wa ling [Hz] • MotionEC_Run batili(MEC_input_t *data_in, MEC_output_t *data_out)
- inaendesha algorithm ya E-Compass (mchanganyiko wa data wa kipima kasi na magnetometer)
- *data_in ni kiashirio kwa muundo na data ya ingizo
- vigezo vya aina ya muundo MEC_input_t ni:
◦ acc[3] ni safu ya data ya kipima kasi katika mkusanyiko wa ENU, inayopimwa kwa g
◦ mag[3] ni safu ya data iliyosawazishwa ya magnetometer katika mkusanyiko wa ENU, inayopimwa kwa μT/50
◦ deltatime s ni wakati wa delta (yaani, kuchelewa kwa muda kati ya seti ya data ya zamani na mpya) inayopimwa katika s.
- *data_out ni kiashirio kwa muundo wenye data ya pato
- vigezo vya aina ya muundo MEC_output_t ni:
◦ quaternion[4] ni safu iliyo na quaternion katika kawaida ya ENU, inayowakilisha mwelekeo wa 3Dangular wa kifaa katika nafasi; mpangilio wa vipengele ni: X, Y, Z, W, yenye kipengele chanya kila wakati W
◦ euler[3] ni safu ya pembe za Euler katika mkusanyiko wa ENU, inayowakilisha mwelekeo wa 3D-angular wa kifaa katika nafasi; utaratibu wa vipengele ni: yaw, lami, roll, kipimo katika deg
◦ i_gyro[3] ni safu ya viwango vya angular katika mkusanyiko wa ENU, inayowakilisha kihisi cha gyroscope, kinachopimwa kwa dps
◦ nguvu ya uvutano[3] ni safu ya uongezaji kasi katika mkusanyiko wa ENU, inayowakilisha vekta ya mvuto, inayopimwa kwa g
◦ linear[3] ni safu ya uongezaji kasi katika kawaida ya ENU, inayowakilisha uongezaji kasi wa mstari wa kifaa, unaopimwa kwa g
- void MotionEC_GetOrientationEnable(MEC_state_t *state)
- hupata kuwezesha/zima hali ya hesabu ya pembe ya Euler
- *hali ni kielekezi kwa hali ya sasa ya kuwezesha/zima - void MotionEC_SetOrientationEnable(MEC_state_t state)
- huweka kuwezesha/zima hali ya hesabu ya pembe ya Euler
- hali ni kuwezesha/zima hali mpya itakayowekwa - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
- hupata kuwezesha/kuzima hali ya hesabu ya mtandao wa gyroscope
- *hali ni kielekezi kwa hali ya sasa ya kuwezesha/zima - MotionEC_SetVirtualGyroEnable batili(MEC_state_t state)
- huweka kuwezesha/kuzima hali ya hesabu ya mtandao wa gyroscope
- hali ni kuwezesha/zima hali mpya itakayowekwa - MotionEC_GetGravityEnable batili(MEC_state_t *state)
- hupata kuwezesha / kuzima hali ya hesabu ya vekta ya mvuto
- *hali ni kielekezi kwa hali ya sasa ya kuwezesha/zima - MotionEC_SetGravityEnable batili(MEC_state_t state)
- huweka kuwezesha/zima hali ya hesabu ya vekta ya mvuto
- hali ni kuwezesha/zima hali mpya itakayowekwa - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
- hupata kuwezesha / kuzima hali ya hesabu ya kuongeza kasi ya mstari
- *hali ni kielekezi kwa hali ya sasa ya kuwezesha/zima - void MotionEC_SetLinearAccEnable(MEC_state_t state)
- huweka kuwezesha/zima hali ya hesabu ya kuongeza kasi ya mstari
- hali ni kuwezesha/zima hali mpya itakayowekwa
2.2.3 Chati ya mtiririko wa API
2.2.4 Msimbo wa onyesho
Nambari ifuatayo ya msimbo wa onyesho husoma data kutoka kwa kipima mchapuko na vitambuzi vya magnetometer na kupata data ya ECompass (yaani, quaternion, pembe za Euler, n.k.).
2.2.5 Utendaji wa algorithm
Algorithm ya E-Compass hutumia data kutoka kwa kipima kasi na magnetometer pekee. Inaendesha kwa mzunguko wa chini (hadi 100 Hz) ili kupunguza matumizi ya nguvu.
Sampmaombi
Programu ya kati ya MotionEC inaweza kubadilishwa kwa urahisi ili kuunda programu za watumiaji; kamaample application imetolewa kwenye folda ya Maombi.
Imeundwa kuendeshwa kwenye bodi ya ukuzaji ya NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE au NUCLEO-L073RZ iliyounganishwa kwenye ubao wa X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1au X-IKpansion-02A.
Programu inatambua mwelekeo na mzunguko wa kifaa katika muda halisi. Data inaweza kuonyeshwa kupitia GUI.
Algorithm hutoa matokeo yafuatayo: mwelekeo wa kifaa (quaternions, pembe za Euler), mzunguko wa kifaa (utendaji wa gyroscope halisi), vekta ya mvuto na kuongeza kasi ya mstari.
3.1 Programu ya MEMS-Studio
Sample application hutumia programu ya MEMS-Studio, ambayo inaweza kupakuliwa kutoka www.st.com.
Hatua ya 1. Hakikisha kuwa viendeshi vinavyohitajika vimewekwa na bodi ya STM32 Nucleo iliyo na bodi ya upanuzi inayofaa imeunganishwa kwenye PC.
Hatua ya 2. Fungua programu ya MEMS-Studio ili kufungua dirisha kuu la programu.
Ikiwa bodi ya Nucleo ya STM32 iliyo na programu dhibiti inayotumika imeunganishwa kwenye Kompyuta, mlango unaofaa wa COM hugunduliwa kiotomatiki. Bonyeza kitufe cha [Unganisha] ili kuanzisha muunganisho kwenye ubao wa tathmini.
Hatua ya 3. Inapounganishwa kwenye ubao wa STM32 Nucleo na kichupo cha programu dhibiti kinachotumika [Tathmini ya Maktaba] hufunguliwa.
Ili kuanza na kusimamisha utiririshaji wa data, geuza [Anza] inayofaa au [Acha]
kitufe kwenye upau wa zana wima wa nje.
Data inayotoka kwenye kihisia kilichounganishwa inaweza kuwa viewed kuchagua kichupo cha [Jedwali la Data] kwenye upau wa ndani wa zana wima.
Hatua ya 4. Bofya kwenye [E-Compass] ili kufungua ukurasa maalum wa maktaba hii.
Kielelezo hapo juu kinaonyesha kielelezo cha picha cha STM32 Nucleo. Mwelekeo wa kielelezo na mzunguko unatokana na data ya E-Compass (quaternions) inayokokotolewa na algoriti.
Ili kuoanisha mwendo halisi wa kifaa na muundo wa picha, elekeza kifaa kwenye skrini na ubonyeze [Weka upya muundo].
Thamani ya kichwa inawakilisha kichwa halisi cha kifaa.
Kuelekeza kifaa moja kwa moja juu au chini (pamoja na mhimili wa Juu wa fremu ya marejeleo ya ENU, yenye uvumilivu wa digrii ±5) hupatia N/A thamani ya kichwa: haiwezekani kutofautisha ni sehemu gani kuu ambayo kifaa kinaelekeza.
Thamani ya wema inatoa maadili 0 hadi 3 na inahusiana na hesabu ya magnetometer: thamani ya juu, matokeo bora ya algorithm ya data ya E-Compass.
Hatua ya 5. Bofya kwenye [Hifadhi kwa File] ili kufungua dirisha la usanidi wa uhifadhi data. Chagua kitambuzi na data ya Dira ya E ili kuhifadhiwa kwenye faili ya file. Unaweza kuanza au kuacha kuhifadhi kwa kubofya kitufe kinacholingana.
Hatua ya 6. Hali ya Uingizaji Data inaweza kutumika kutuma data iliyopatikana hapo awali kwenye maktaba na kupokea matokeo. Teua kichupo cha [Data Injection] kwenye upau wa zana wima ili kufungua iliyowekwa maalum view kwa utendakazi huu.
Hatua ya 7. Bofya kitufe cha [Vinjari] ili kuchagua file na data iliyonaswa hapo awali katika umbizo la CSV.
Data itapakiwa kwenye jedwali la sasa view.
Vifungo vingine vitatumika. Unaweza kubofya:
- Kitufe cha [Hali ya Nje ya Mtandao] ili kuwasha/kuzima hali ya programu ya nje ya mtandao (hali kwa kutumia data iliyonaswa hapo awali).
– [Anza]/[Acha]/[Hatua]/[Rudia] vitufe ili kudhibiti mipasho ya data kutoka MEMS-Studio hadi maktaba.
Marejeleo
Nyenzo zote zifuatazo zinapatikana bila malipo kwenye www.st.com.
- UM1859: Kuanza na X-CUBE-MEMS1 mwendo MEMS na upanuzi wa programu ya kihisi cha mazingira kwa STM32Cube
- UM1724: mbao za STM32 Nucleo-64 (MB1136)
- UM3233: Kuanza na MEMS-Studio
Historia ya marekebisho
Jedwali 4. Historia ya marekebisho ya hati
Tarehe | Toleo | Mabadiliko |
18-Mei-17 | 1 | Kutolewa kwa awali. |
25-Jan-18 | 2 | Imeongeza utetezi kwa bodi ya ukuzaji ya NUCLEO-L152RE na Jedwali 2. Muda uliopita (μs) algoriti. |
21-Mar-18 | 3 | Utangulizi Uliosasishwa na Sehemu ya 2.1 MotionEC imekamilikaview. |
26-Nov-18 | 4 | Jedwali la 3 Lililoongezwa. Cortex -M0+: algoriti ya muda (µs) iliyopita. Marejeleo yaliyoongezwa kwa ARM® Bodi ya maendeleo ya Cortex® - M0+ na NUCLEO-L073RZ. |
19-Feb-19 | 5 | Kielelezo 1 kilichosasishwa. Fremu ya marejeleo ya ENU, Jedwali la 2. Cortex -M4 na Cortex-M3: algoriti ya muda (µs), Jedwali la 3. Cortex -M0+: muda uliopita (µs) algoriti, Mchoro 3. Adapta ya ubao wa upanuzi wa kihisi iliyounganishwa kwenye STM32 Nucleo, Kielelezo 4. Dirisha kuu la Unicleo, Kielelezo 5. Kichupo cha Ujumbe wa Mtumiaji, Kielelezo 6. Dirisha la E-Compass na Kielelezo 7. Dirisha la Datalog. Imeongeza maelezo ya uoanifu ya bodi ya upanuzi ya X-NUCLEO-IKS01A3. |
25-Mar-20 | 6 | Utangulizi Uliosasishwa, Sehemu ya 2.2.1: Maelezo ya maktaba ya MotionEC na Sehemu ya 2.2.5: Utendaji wa algoriti. Imeongeza maelezo ya utangamano wa usanifu wa ARM Cortex-M7. |
17-Sep-24 | 7 | Utangulizi wa Sehemu Uliosasishwa, Sehemu ya 2.1: MotionEC imekamilikaview, Sehemu ya 2.2.1: Maktaba ya MotionEC maelezo, Sehemu ya 2.2.2: MotionEC API, Sehemu ya 2.2.5: Algorithm utendaji, Sehemu ya 3: Sample maombi, Sehemu ya 3.1: Programu ya MEMS-Studio |
TANGAZO MUHIMU – SOMA KWA UMAKINI
STMicroelectronics NV na kampuni zake tanzu (“ST”) inahifadhi haki ya kufanya mabadiliko, masahihisho, uboreshaji, marekebisho na uboreshaji wa bidhaa za ST na/au kwa hati hii wakati wowote bila taarifa. Wanunuzi wanapaswa kupata taarifa muhimu kuhusu bidhaa za ST kabla ya kuagiza. Bidhaa za ST zinauzwa kwa mujibu wa sheria na masharti ya ST ya mauzo yaliyopo wakati wa uthibitishaji wa agizo.
Wanunuzi wanawajibika kikamilifu kwa uchaguzi, uteuzi na matumizi ya bidhaa za ST na ST haichukui dhima ya usaidizi wa maombi au muundo wa bidhaa za wanunuzi.
Hakuna leseni, iliyoelezwa au iliyodokezwa, kwa haki yoyote ya uvumbuzi inayotolewa na ST humu.
Uuzaji wa bidhaa za ST zenye masharti tofauti na maelezo yaliyoelezwa hapa yatabatilisha udhamini wowote uliotolewa na ST kwa bidhaa hiyo.
ST na nembo ya ST ni alama za biashara za ST. Kwa maelezo ya ziada kuhusu chapa za biashara za ST, rejelea www.st.com/trademarks. Majina mengine yote ya bidhaa au huduma ni mali ya wamiliki husika.
Maelezo katika waraka huu yanachukua nafasi na kuchukua nafasi ya maelezo yaliyotolewa awali katika matoleo yoyote ya awali ya hati hii.
© 2024 STMicroelectronics - Haki zote zimehifadhiwa
Nyaraka / Rasilimali
![]() |
ST X-CUBE-MEMS1 MotionEC ni Maktaba ya Middleware [pdf] Mwongozo wa Mmiliki X-CUBE-MEMS1 MotionEC ni Maktaba ya Middleware, X-CUBE-MEMS1, MotionEC ni Maktaba ya Middleware, Maktaba ya Middleware, Maktaba |