ST X - hōʻailonaUM2225
Palapala hoʻohana

E hoʻomaka me MotionEC hale waihona E-Compass manawa maoli ma X-CUBE-MEMS1 hoʻonui no STM32Cube

Hoʻolauna

ʻO ka MotionEC kahi waihona waihona middleware o ka polokalamu X-CUBE-MEMS1 a holo ma STM3z2. Hāʻawi ia i ka ʻike manawa maoli e pili ana i ke ʻano o ka hāmeʻa a me ke kūlana neʻe e pili ana i ka ʻikepili mai kahi hāmeʻa.
Hāʻawi ia i nā mea hoʻopuka aʻe: ka hoʻonohonoho ʻana o ka mīkini (quaternions, nā kihi Euler), ka hoʻololi ʻana o ka mea hana (virtual gyroscope functionality), gravity vector a me ka wikiwiki laina.
Hana ʻia kēia waihona me ST MEMS wale nō.
Hāʻawi ʻia ka algorithm ma ke ʻano waihona waihona static a ua hoʻolālā ʻia e hoʻohana ʻia ma nā microcontrollers STM32 e pili ana i ka ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 a me ARM® ʻO nā hale kiʻi Cortex®-M7.
Kūkulu ʻia ia ma luna o ka ʻenehana polokalamu STM32Cube e hōʻoluʻolu i ka lawe ʻana ma waena o nā microcontrollers STM32 like ʻole.
Hele mai ka polokalamu me sample hoʻokō e holo ana ma X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 a i ʻole X-NUCLEO-IKS02A1 papa hoʻonui ma kahi NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE a i ʻole NUCLEO-L073RZ papa hoʻomohala.

Nā acronyms a me nā pōkole

Papa 1. Papa inoa o na acronyms

Acronym wehewehe
API Pākuʻi polokalamu polokalamu
BSP Pāke kākoʻo papa
GUI Mea hoʻohana kiʻi kiʻi
HAL ʻĀpana hoʻoheheʻe ʻia nā lako
IDE Kaiapuni hoʻomohala hoʻohui

MotionEC middleware waihona ma X-CUBE-MEMS1 hoonui lako polokalamu no STM32Cube

2.1 Ua pau ka MotionECview
Hoʻonui ka waihona MotionEC i ka hana o ka polokalamu X-CUBE-MEMS1.
Loaʻa ka waihona i ka ʻikepili mai ka accelerometer a me ka magnetometer a hāʻawi i ka ʻike e pili ana i ke ʻano o ka hāmeʻa a me ke kūlana neʻe e pili ana i ka ʻikepili mai kahi hāmeʻa.
Hoʻolālā ʻia ka waihona no ST MEMS wale nō. ʻAʻole nānā ʻia ka hana a me ka hana i ka wā e hoʻohana ai i nā mea ʻike MEMS ʻē aʻe a hiki ke ʻokoʻa loa mai ka mea i wehewehe ʻia ma ka palapala.
A sampLoaʻa ka hoʻokō ma X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 a me X-NUCLEO-IKS02A1 papa hoʻonui, i kau ʻia ma kahi NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE a i ʻole NUCLEO-L073 papa kūkulu.
2.2 waihona MotionEC
Hiki ke loaʻa ka ʻike loea e wehewehe piha ana i nā hana a me nā ʻāpana o nā MotionEC API ma ka MotionEC_Package.chm i hōʻuluʻulu ʻia HTML file aia ma ka waihona palapala.

2.2.1 wehewehe waihona MotionEC
Mālama ka waihona MotionEC E-Compass i ka ʻikepili i loaʻa mai ka accelerometer a me ka magnetometer; he mau hiʻohiʻona:

  • ka hoʻonohonoho ʻana o ka mea hana (quaternions, nā kihi Euler), ka hoʻololi ʻana o ka hāmeʻa (virtual gyroscope functionality), gravity vector a me nā huahana wikiwiki laina.
  • hana ma muli o ka ʻikepili accelerometer a me ka magnetometer wale nō
  • koi 'ikepili accelerometer a magnetometer sampʻO ke alapine kani a hiki i 100 Hz
  • pono waiwai:
    - Cortex-M0+: 3.7 kB o ke code a me 0.1 kB o ka hoʻomanaʻo ʻikepili
    - Cortex-M3: 3.8 kB o ke code a me 0.1 kB o ka hoʻomanaʻo ʻikepili
    - Cortex-M33: 2.8 kB o ke code a me 0.1 kB o ka hoʻomanaʻo ʻikepili
    - Cortex-M4: 2.9 kB o ke code a me 0.1 kB o ka hoʻomanaʻo ʻikepili
    - Cortex-M7: 2.8 kB o ke code a me 0.1 kB o ka hoʻomanaʻo ʻikepili
  • loaʻa iā ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 a me Cortex M7 mau hale kiʻi.

2.2.2 Nā API MotionEC
ʻO nā API MotionEC:

  • uint8_t MotionEC_GetLibVersion(char *version)
    - hoʻihoʻi i ka mana o ka waihona
    - *He kuhikuhi ka mana i kahi hui o 35 mau huapalapala
    - hoʻihoʻi i ka helu o nā huaʻōlelo i ke kaula mana
    • hoʻopau i ka MotionEC_Initialize(MEC_mcu_type_t mcu_type, lana pinepine)
    - hana i ka hoʻomaka ʻana o ka waihona MotionEC a me ka hoʻonohonoho ʻana i ka mīkini kūloko.
    - ʻo mcu_type ke ʻano o ka MCU:
    ◦ MFX_CM0P_MCU_STM32 he STM32 MCU maʻamau
    ◦ MFX_CM0P_MCU_BLUE_NRG1 ʻo BlueNRG-1
    ◦ MFX_CM0P_MCU_BLUE_NRG2 ʻo BlueNRG-2
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP ʻo BlueNRG -LP
    – ʻo freq ka mea ʻike sampalapine ling [Hz]

Nānā: Pono e kāhea ʻia kēia hana ma mua o ka hoʻohana ʻana i ka waihona E-Compass a me ka module CRC ma STM32 microcontroller (ma RCC peripheral clock enable register) pono e hoʻohana ʻia ma mua o ka hoʻohana ʻana i ka waihona.

  • hoʻopau i ka MotionEC_SetFrequency(float freq)
    - hoʻonohonoho i ka sampling frequency (hoʻololi i nā ʻāpana kānana)
    – ʻo freq ka mea ʻike sampalapine ling [Hz] • hoʻopau i ka MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    - holo i ka E-Compass algorithm (accelerometer a me magnetometer data fusion)
    – *data_in kahi kuhikuhi i kahi hale me ka ʻikepili hoʻokomo
    - nā ʻāpana no ke ʻano hana MEC_input_t:
    ◦ acc[3] he laha o ka ikepili accelerometer ma ka hui ENU, ana i ka g
    ʻO ◦ mag[3] he ʻano ʻikepili i hoʻopaʻa ʻia ka magnetometer ma ka ʻaha ENU, ana ʻia ma μT/50
    ◦ deltatime s ka manawa delta (ʻo ia hoʻi, ka lōʻihi o ka manawa ma waena o ka pūʻulu ʻikepili kahiko a me ka mea hou) i ana ʻia ma s
    – * ʻo data_out kahi kuhikuhi i kahi hale me ka ʻikepili puka
    - nā ʻāpana no ke ʻano hana MEC_output_t:
    ◦ ʻO ka quaternion[4] he laha i loaʻa ka quaternion ma ka hui ENU, e hōʻike ana i ka 3Dangular orientation o ka hāmeʻa ma ke ākea; ʻO ka hoʻonohonoho o nā mea: X, Y, Z, W, me ka mea maikaʻi mau W
    ◦ ʻo euler[3] kahi ʻāpana o nā kihi Euler i ka ʻaha ENU, e hōʻike ana i ka 3D-angular orientation o ka hāmeʻa ma ka lewa; ʻo ke ʻano o nā mea: yaw, pitch, roll, ana ʻia ma deg
    ◦ i_gyro[3] he laha o na huina angular ma ka ENU convention, e hoike ana i ka mea ike gyroscope virtual, ana i na dps
    ◦ ʻumekaumaha[3] he pūʻulu o ka wikiwiki i ka hui ENU, e hōʻike ana i ka gravity vector, ana ʻia ma g
    ◦ linear[3] he pūʻulu o nā wikiwiki i ka hui ENU, e hōʻike ana i ka wikiwiki laina laina, ana ʻia i ka g
    ʻO ST X CUBE MEMS1 MotionEC kahi waihona waihona Middleware-
  • hoʻopau i ka MotionEC_GetOrientationEnable(MEC_state_t * mokuʻāina)
    - loaʻa ka ʻae a hoʻopau i ka helu ʻana o ka huina Euler
    - * ʻO ka mokuʻāina kahi kuhikuhi i ke kūlana hiki / hoʻopau i kēia manawa
  • hoʻopau i ka MotionEC_SetOrientationEnable(MEC_state_t state)
    - hoʻonohonoho i ke kūlana hiki / hoʻopau i ka helu ʻana o Euler
    - ʻO ka moku'āina ka moku'āina hiki / hoʻopau hou e hoʻonohonoho ʻia
  •  hoʻopau i ka MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    - loaʻa i ke kūlana hiki / hoʻopau i ka helu gyroscope virtual
    - * ʻO ka mokuʻāina kahi kuhikuhi i ke kūlana hiki / hoʻopau i kēia manawa
  • hoʻopau i ka MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    - hoʻonohonoho i ke kūlana hiki / hoʻopau i ka helu gyroscope virtual
    - ʻO ka moku'āina ka moku'āina hiki / hoʻopau hou e hoʻonohonoho ʻia
  • hoʻopau i ka MotionEC_GetGravityEnable(MEC_state_t * mokuʻāina)
    - loaʻa i ke kūlana hiki / hoʻopau i ka helu gravity vector
    - * ʻO ka mokuʻāina kahi kuhikuhi i ke kūlana hiki / hoʻopau i kēia manawa
  • hoʻopau i ka MotionEC_SetGravityEnable(MEC_state_t state)
    - hoʻonohonoho i ke kūlana hiki / hoʻopau i ka helu gravity vector
    - ʻO ka moku'āina ka moku'āina hiki / hoʻopau hou e hoʻonohonoho ʻia
  • hoʻopau i ka MotionEC_GetLinearAccEnable(MEC_state_t * mokuʻāina)
    - loaʻa ke kūlana hiki / hoʻopau i ka helu ʻana i ka wikiwiki laina
    - * ʻO ka mokuʻāina kahi kuhikuhi i ke kūlana hiki / hoʻopau i kēia manawa
  • hoʻopau i ka MotionEC_SetLinearAccEnable(MEC_state_t state)
    - hoʻonohonoho i ke kūlana hiki / hoʻopau i ka helu ʻana i ka wikiwiki linear
    - ʻO ka moku'āina ka moku'āina hiki / hoʻopau hou e hoʻonohonoho ʻia

2.2.3 API holo palapala

ʻO ST X CUBE MEMS1 ʻO MotionEC kahi papa waihona Middleware

2.2.4 Code demo
Heluhelu ke code hōʻike ma lalo nei i ka ʻikepili mai ka accelerometer a me ka magnetometer sensor a loaʻa ka ʻikepili ECompass (ʻo ia hoʻi, quaternion, Euler angles, etc.).

ʻO ST X CUBE MEMS1 MotionEC he Middleware Library- Demo codeʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- Demo code1

2.2.5 Hana Algorithm
Hoʻohana ka E-Compass algorithm i ka ʻikepili mai ka accelerometer a me ka magnetometer wale nō. Holo ia ma kahi alapine haʻahaʻa (a hiki i 100 Hz) e hōʻemi i ka hoʻohana mana.

ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- ʻIkepili Injection1

Sample palapala noi

Hiki ke hoʻohana maʻalahi ka MotionEC middleware e kūkulu i nā noi mea hoʻohana; e like meampHāʻawi ʻia ka noi ma ka waihona Application.
Hoʻolālā ʻia e holo ma luna o kahi papa hoʻomohala NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE a i ʻole NUCLEO-L073RZ i hoʻopili ʻia me kahi papa hoʻomohala X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 a i ʻole X-NUCLEO02expansion1A.

ʻO ST X CUBE MEMS1 MotionEC kahi mea hoʻopili Middleware Library

Hoʻomaopopo ka palapala noi i ka orientation a me ka rotation i ka manawa maoli. Hiki ke hōʻike ʻia ka ʻikepili ma o kahi GUI.
Hāʻawi ka algorithm i kēia mau hopena: ka hoʻonohonoho ʻana o ka mea hana (quaternions, nā kihi Euler), ka hoʻololi ʻana o ka mea hana (virtual gyroscope functionality), gravity vector a me ka wikiwiki laina.
3.1 polokalamu MEMS-Studio
ʻO ka sampHoʻohana ka palapala noi i ka palapala MEMS-Studio, hiki ke hoʻoiho ʻia mai www.st.com.
KaʻAnuʻu 1. E hōʻoia i ka hoʻokomo ʻia ʻana o nā mea hoʻokele pono a hoʻopili ʻia ka papa STM32 Nucleo me ka papa hoʻonui kūpono i ka PC.
KaʻAnuʻu 2. E hoʻomaka i ka polokalamu MEMS-Studio e wehe i ka puka makani noi nui.
Inā hoʻopili ʻia kahi papa STM32 Nucleo me ka firmware kākoʻo i ka PC, ʻike ʻia ke awa COM kūpono. E kaomi i ke pihi [Connect] e hoʻokumu i ka pilina i ka papa loiloi.

ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- Hoʻohui

KaʻAnuʻu 3. Ke hoʻopili ʻia i kahi papa STM32 Nucleo me ka firmware kākoʻo [Library Evaluation] tab i wehe ʻia.
No ka hoʻomaka ʻana a hoʻōki i ka kahe ʻana o ka ʻikepili, e hoʻololi i ka [Start] kūpono. ʻO ST X CUBE MEMS1 MotionEC kahi ikona Middleware Library a i ʻole [Stop] ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- ikona1 pihi ma ka ʻaoʻao ʻaoʻao o waho.
Hiki ke loaʻa nā ʻikepili mai ka sensor pili viewed ke koho ʻana i ka ʻaoʻao [Data Table] ma ka ʻaoʻao ʻaoʻao o loko.

ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- Papa ʻIke

KaʻAnuʻu 4. Kaomi ma ka [E-Compass] e wehe i ka ʻaoʻao i hoʻolaʻa ʻia no kēia waihona.

ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware

Hōʻike ka kiʻi ma luna nei i ke kumu hoʻohālike STM32 Nucleo. Hoʻokumu ʻia ke kumu hoʻohālike a me ka hoʻololi ʻana i ka ʻikepili E-Compass (quaternions) i helu ʻia e ka algorithm.
No ka hoʻolikelike ʻana i ka neʻe ʻana o ka hāmeʻa maoli me ke kumu hoʻohālike kiʻi, kuhikuhi i ka hāmeʻa i ka pale a kaomi i ke [Reset model].
ʻO ka waiwai poʻomanaʻo e hōʻike ana i ke poʻomanaʻo ponoʻī.
ʻO ke kuhikuhi pololei ʻana i ka hāmeʻa i luna a i lalo paha (ma ke koʻi i luna o ka pahu kuhikuhi ENU, me ka ± 5 degere ka hoʻomanawanui) hāʻawi i ka waiwai N/A no ke poʻo: ʻaʻole hiki ke hoʻomaopopo i ka lae cardinal e kuhikuhi ana ka mea.
Hāʻawi ka waiwai maikaʻi i ka 0 a 3 mau waiwai a pili i ka calibration magnetometer: ʻoi aku ka kiʻekiʻe o ka waiwai, ʻoi aku ka maikaʻi o nā hopena o ka algorithm data E-Compass.
KaʻAnuʻu 5. Kaomi ma [Save to File] e wehe i ka puka makani hoʻonohonoho dataloging. E koho i ka ʻikepili a me ka ʻikepili E-Compass e mālama ʻia ma ka file. Hiki iā ʻoe ke hoʻomaka a hoʻōki i ka mālama ʻana ma ke kaomi ʻana i ke pihi pili.

ʻO ST X CUBE MEMS1 MotionEC he Hale Waihona Puke Middleware- Mālama iā File

KaʻAnuʻu 6. Hiki ke hoʻohana ʻia ke ʻano Data Injection e hoʻouna i ka ʻikepili i loaʻa mua i ka waihona a loaʻa ka hopena. E koho i ka ʻaoʻao [Data Injection] ma ka ʻaoʻao hāmeʻa kūpaʻa e wehe i ka hoʻolaʻa view no keia hana.

ʻO ST X CUBE MEMS1 MotionEC kahi Hale Waihona Puke Middleware- Injection Data

KaʻAnuʻu 7. Kaomi ma ke pihi [Browse] e koho i ka file me ka ʻikepili i hopu mua ʻia ma ke ʻano CSV.
E hoʻoili ʻia ka ʻikepili i ka papa i kēia manawa view.
E hoʻoikaika ʻia nā pihi ʻē aʻe. Hiki iā ʻoe ke kaomi ma:
- ʻO ke pihi [Offline Mode] e hoʻololi i ke ʻano hoʻopaʻa inoa paʻa i waho a i ʻole (ke ʻano e hoʻohana ana i ka ʻikepili i hopu mua ʻia).
- Nā pihi [Start]/[Stop]/[Step]/[Repeat] e hoʻomalu i ka hānai ʻikepili mai MEMS-Studio a i ka waihona.

Nā kuhikuhi

Loaʻa wale ʻia nā kumuwaiwai a pau ma www.st.com.

  1. UM1859: E hoʻomaka me ka X-CUBE-MEMS1 motion MEMS a me ka hoʻonui ʻia ʻana o ka polokalamu sensor sensor no STM32Cube
  2.  UM1724: Nā papa STM32 Nucleo-64 (MB1136)
  3. UM3233: E hoʻomaka me MEMS-Studio

Moʻolelo hoʻoponopono

Papa 4. Moolelo hooponopono palapala

Manao Nā hoʻololi
18-Mei-17 1 Hoʻokuʻu mua.
25-Ian-18 2 Hoʻohui ʻia nā manaʻo i ka papa hoʻomohala NUCLEO-L152RE a me ka Papa 2.
Algorithm manawa i hala (μs).
21-Mar-18 3 Hoʻopuka hou ʻia a me ka pauku 2.1 MotionEC ua pauview.
26-Nov-18 4 Pākuʻi 3. Cortex -M0+: manawa i hala (µs) algorithm. Hoʻohui i nā kuhikuhi i ka ARM®
Cortex® - M0 + a me NUCLEO-L073RZ papa hoʻomohala.
19-Feb-19 5 Hōʻano houʻia ka Kiʻi 1. ENU reference frame, Papa 2. Cortex -M4 a me Cortex-M3: manawa i hala (µs) algorithm, Papa 3.
Cortex -M0+: algorithm elapsed time (µs), Kiʻi 3. Hoʻopili ʻia ka papa hoʻonui sensor i ka STM32
Nucleo, Kiʻi 4. Unicleo puka aniani, Kiʻi 5. Mea hoʻohana Messages tab, Kiʻi 6. E-Compass pukaaniani a me Figure 7. Datalog window. Hoʻohui ʻia ka ʻike pili o ka papa hoʻonui X-NUCLEO-IKS01A3.
25-Mar-20 6 Hoʻopuka Hou, Māhele 2.2.1: MotionEC wehewehe waihona a me ka Māhele 2.2.5: Algorithm hana.
Hoʻohui ʻia ka ʻike hoʻohālikelike hoʻolālā ARM Cortex-M7.
17-Sepatemaba-24 7 Hōʻike ʻia i ka ʻāpana i hoʻopuka ʻia,
Mahele 2.1: Ua pau ka MotionECview,
Mahele 2.2.1: MotionEC waihona
wehewehe, Pauku 2.2.2: MotionEC
Nā API, Māhele 2.2.5: Algorithm
hana, Pauku 3: Sample
palapala noi, Māhele 3.1: MEMS-Studio palapala noi

HOOLAHA NUI – HELUHELU ALOHA
Ua mālama ʻo STMicroelectronics NV a me kāna mau lālā ("ST") i ke kuleana e hoʻololi, hoʻoponopono, hoʻonui, hoʻololi, a me nā hoʻomaikaʻi ʻana i nā huahana ST a/a i kēia palapala i kēlā me kēia manawa me ka ʻole o ka ʻike. Pono nā mea kūʻai e loaʻa ka ʻike pili hou loa i nā huahana ST ma mua o ke kau ʻana i nā kauoha. Kūʻai ʻia nā huahana ST e like me nā ʻōlelo a me nā kūlana kūʻai o ST ma kahi i ka manawa o ka ʻae ʻana i ke kauoha.
Na nā mea kūʻai aku ke kuleana no ke koho ʻana, koho ʻana, a me ka hoʻohana ʻana i nā huahana ST a ʻaʻohe kuleana o ST no ke kōkua noi a i ʻole ka hoʻolālā ʻana i nā huahana a nā mea kūʻai aku.
ʻAʻole hāʻawi ʻia ka laikini, hōʻike a i ʻole ka manaʻo, i kekahi kuleana waiwai naʻauao e ST ma ʻaneʻi.
ʻO ke kūʻai hou ʻana i nā huahana ST me nā mea ʻokoʻa mai ka ʻike i hōʻike ʻia ma ʻaneʻi e hoʻopau i kekahi palapala hōʻoia i hāʻawi ʻia e ST no ia huahana.
ʻO ST a me ka hōʻailona ST he mau hōʻailona o ST. No ka ʻike hou aku e pili ana i nā hōʻailona ST, e nānā i www.st.com/trademarks. ʻO nā inoa huahana ʻē aʻe a i ʻole nā ​​​​inoa lawelawe ʻo ia ka waiwai o ko lākou mau mea nona.
Hoʻololi a hoʻololi ka ʻike i loko o kēia palapala i ka ʻike i hāʻawi mua ʻia ma nā mana mua o kēia palapala.

© 2024 STMicroelectronics – Ua mālama ʻia nā kuleana āpau

Palapala / Punawai

ʻO ST X-CUBE-MEMS1 MotionEC kahi waihona waihona Middleware [pdf] Palapala a ka mea nona
ʻO X-CUBE-MEMS1 MotionEC he Hale Waihona Puke Middleware, X-CUBE-MEMS1, MotionEC he Hale Waihona Puke Middleware, Hale Waihona Puke Middleware, Hale Waihona Puke.

Nā kuhikuhi

Waiho i kahi manaʻo

ʻAʻole e paʻi ʻia kāu leka uila. Hōʻailona ʻia nā kahua i makemake ʻia *