ST X - logoUM2225
User manual

Pagsisimula sa MotionEC real-time na E-Compass library sa X-CUBE-MEMS1 expansion para sa STM32Cube

Panimula

Ang MotionEC ay isang middleware library component ng X-CUBE-MEMS1 software at tumatakbo sa STM3z2. Nagbibigay ito ng real-time na impormasyon tungkol sa oryentasyon ng device at status ng paggalaw batay sa data mula sa isang device.
Nagbibigay ito ng mga sumusunod na output: oryentasyon ng device (quaternions, mga anggulo ng Euler), pag-ikot ng device (function na virtual na gyroscope), gravity vector at linear acceleration.
Ang library na ito ay nilayon na magtrabaho sa ST MEMS lamang.
Ang algorithm ay ibinigay sa static na format ng library at idinisenyo upang magamit sa mga STM32 microcontroller batay sa ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 at ARM® Mga arkitektura ng Cortex®-M7.
Ito ay binuo sa ibabaw ng teknolohiya ng software ng STM32Cube upang mapagaan ang portability sa iba't ibang STM32 microcontroller.
Ang software ay may kasamang sampang pagpapatupad na tumatakbo sa X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1o X-NUCLEO-IKS02A1 expansion board sa isang NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE o NUCLEO-L073RZ development board.

Mga acronym at pagdadaglat

Talahanayan 1. Listahan ng mga acronym

Acronym Paglalarawan
API Application programming interface
BSP Pakete ng suporta sa board
GUI Graphical na interface ng gumagamit
HAL Layer ng abstraction ng hardware
IDE Pinagsamang kapaligiran sa pag-unlad

MotionEC middleware library sa X-CUBE-MEMS1 software expansion para sa STM32Cube

2.1 Tapos na ang MotionECview
Pinapalawak ng MotionEC library ang functionality ng X-CUBE-MEMS1 software.
Ang library ay nakakakuha ng data mula sa accelerometer at magnetometer at nagbibigay ng impormasyon tungkol sa oryentasyon ng device at status ng paggalaw batay sa data mula sa isang device.
Ang aklatan ay idinisenyo para sa ST MEMS lamang. Ang pag-andar at pagganap kapag gumagamit ng iba pang mga sensor ng MEMS ay hindi sinusuri at maaaring malaki ang pagkakaiba sa inilarawan sa dokumento.
Isang sampAng pagpapatupad ay magagamit sa X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 at X-NUCLEO-IKS02A1 expansion board, na naka-mount sa isang NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE o NUCLEO-L073 development board.
2.2 MotionEC library
Ang teknikal na impormasyon na ganap na naglalarawan sa mga function at parameter ng MotionEC API ay matatagpuan sa MotionEC_Package.chm compiled HTML file matatagpuan sa folder ng Dokumentasyon.

2.2.1 Paglalarawan ng library ng MotionEC
Ang MotionEC E-Compass library ay namamahala sa data na nakuha mula sa accelerometer at magnetometer; nagtatampok ito ng:

  • oryentasyon ng device (quaternions, Euler angle), pag-ikot ng device (virtual gyroscope functionality), gravity vector at mga linear acceleration na output
  • functionality batay sa accelerometer at magnetometer data lamang
  • kinakailangang data ng accelerometer at magnetometer sampdalas ng ling na hanggang 100 Hz
  • mga kinakailangan sa mapagkukunan:
    – Cortex-M0+: 3.7 kB ng code at 0.1 kB ng data memory
    – Cortex-M3: 3.8 kB ng code at 0.1 kB ng data memory
    – Cortex-M33: 2.8 kB ng code at 0.1 kB ng data memory
    – Cortex-M4: 2.9 kB ng code at 0.1 kB ng data memory
    – Cortex-M7: 2.8 kB ng code at 0.1 kB ng data memory
  • magagamit para sa mga arkitekturang ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 at Cortex M7

2.2.2 Mga MotionEC API
Ang mga MotionEC API ay:

  • uint8_t MotionEC_GetLibVersion(char *version)
    – kinukuha ang bersyon ng library
    – *Ang bersyon ay isang pointer sa isang array ng 35 character
    – ibinabalik ang bilang ng mga character sa string ng bersyon
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – nagsasagawa ng pagsisimula ng MotionEC library at pag-setup ng panloob na mekanismo.
    – Ang mcu_type ay ang uri ng MCU:
    ◦ Ang MFX_CM0P_MCU_STM32 ay isang karaniwang STM32 MCU
    ◦ Ang MFX_CM0P_MCU_BLUE_NRG1 ay BlueNRG-1
    ◦ Ang MFX_CM0P_MCU_BLUE_NRG2 ay BlueNRG-2
    ◦ Ang MFX_CM0P_MCU_BLUE_NRG_LP ay BlueNRG -LP
    – ang freq ay ang sensor sampdalas ng ling [Hz]

Tandaan: Dapat tawagan ang function na ito bago gamitin ang E-Compass library at ang CRC module sa STM32 microcontroller (sa RCC peripheral clock enable register) ay kailangang paganahin bago gamitin ang library

  • void MotionEC_SetFrequency(float freq)
    – nagtatakda ng sampling frequency (pagbabago ng mga parameter ng pag-filter)
    – ang freq ay ang sensor sampling frequency [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – nagpapatakbo ng E-Compass algorithm (accelerometer at magnetometer data fusion)
    – *data_in ay isang pointer sa isang istraktura na may input data
    – ang mga parameter para sa uri ng istraktura MEC_input_t ay:
    Ang ◦ acc[3] ay isang hanay ng data ng accelerometer sa ENU convention, na sinusukat sa g
    Ang ◦ mag[3] ay isang array ng magnetometer calibrated data sa ENU convention, sinusukat sa μT/50
    ◦ deltatime s ay ang delta time (ibig sabihin, time delay sa pagitan ng luma at bagong set ng data) na sinusukat sa s
    – *data_out ay isang pointer sa isang istraktura na may output data
    – ang mga parameter para sa uri ng istraktura MEC_output_t ay:
    Ang ◦ quaternion[4] ay array na naglalaman ng quaternion sa ENU convention, na kumakatawan sa 3Dangular na oryentasyon ng device sa espasyo; Ang pagkakasunud-sunod ng mga elemento ay: X, Y, Z, W, na may palaging positibong elementong W
    Ang ◦ euler[3] ay isang hanay ng mga anggulo ng Euler sa ENU convention, na kumakatawan sa 3D-angular na oryentasyon ng device sa kalawakan; ang pagkakasunud-sunod ng mga elemento ay: yaw, pitch, roll, sinusukat sa deg
    ◦ i_gyro[3] ay isang hanay ng mga angular rate sa ENU convention, na kumakatawan sa isang virtual gyroscope sensor, na sinusukat sa dps
    ◦ gravity[3] ay isang hanay ng mga acceleration sa ENU convention, na kumakatawan sa gravity vector, na sinusukat sa g
    Ang ◦ linear[3] ay isang hanay ng mga acceleration sa ENU convention, na kumakatawan sa linear acceleration ng device, na sinusukat sa g
    Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – nakakakuha ng enable/disable state ng pagkalkula ng anggulo ng Euler
    – *state ay isang pointer sa kasalukuyang enable/disable state
  • void MotionEC_SetOrientationEnable(MEC_state_t state)
    – nagtatakda ng enable/disable na estado ng pagkalkula ng anggulo ng Euler
    – ang state ay ang bagong enable/disable state na itatakda
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – nakakakuha ng enable/disable na estado ng virtual gyroscope na pagkalkula
    – *state ay isang pointer sa kasalukuyang enable/disable state
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
    – nagtatakda ng paganahin/paganahin ang estado ng pagkalkula ng virtual gyroscope
    – ang state ay ang bagong enable/disable state na itatakda
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – nakakakuha ng paganahin/paganahin ang estado ng pagkalkula ng gravity vector
    – *state ay isang pointer sa kasalukuyang enable/disable state
  • void MotionEC_SetGravityEnable(MEC_state_t state)
    – nagtatakda ng paganahin/paganahin ang estado ng pagkalkula ng gravity vector
    – ang state ay ang bagong enable/disable state na itatakda
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – nakakakuha ng enable/disable na estado ng pagkalkula ng linear acceleration
    – *state ay isang pointer sa kasalukuyang enable/disable state
  • void MotionEC_SetLinearAccEnable(MEC_state_t state)
    – itinatakda ang paganahin/paganahin ang estado ng pagkalkula ng linear acceleration
    – ang state ay ang bagong enable/disable state na itatakda

2.2.3 Tsart ng daloy ng API

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- sequence

2.2.4 Demo code
Ang sumusunod na demonstration code ay nagbabasa ng data mula sa accelerometer at magnetometer sensor at nakukuha ang ECompass data (ibig sabihin, quaternion, Euler angle, atbp.).

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Demo codeAng ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Demo code1

2.2.5 Pagganap ng algorithm
Gumagamit ang E-Compass algorithm ng data mula sa accelerometer at magnetometer lamang. Ito ay tumatakbo sa mababang frequency (hanggang 100 Hz) upang mabawasan ang pagkonsumo ng kuryente.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Data Injection1

Sampang aplikasyon

Ang MotionEC middleware ay madaling manipulahin upang bumuo ng mga application ng user; bilangampAng application ay ibinigay sa folder ng Application.
Ito ay idinisenyo upang tumakbo sa isang NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE o NUCLEO-L073RZ development board na konektado sa isang X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1o X-NUCLEO02expansion1A.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- adapter

Kinikilala ng application ang oryentasyon at pag-ikot ng device sa real-time. Ang data ay maaaring ipakita sa pamamagitan ng isang GUI.
Ang algorithm ay nagbibigay ng mga sumusunod na output: oryentasyon ng device (quaternions, Euler angle), pag-ikot ng device (virtual gyroscope functionality), gravity vector at linear acceleration.
3.1 MEMS-Studio application
Ang sampAng application ay gumagamit ng MEMS-Studio application, na maaaring i-download mula sa www.st.com.
Hakbang 1. Tiyaking naka-install ang mga kinakailangang driver at nakakonekta sa PC ang STM32 Nucleo board na may naaangkop na expansion board.
Hakbang 2. Ilunsad ang MEMS-Studio application upang buksan ang pangunahing window ng application.
Kung ang isang STM32 Nucleo board na may suportadong firmware ay konektado sa PC, ang naaangkop na COM port ay awtomatikong makikita. Pindutin ang [Connect] na buton para magtatag ng koneksyon sa evaluation board.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Connect

Hakbang 3. Kapag nakakonekta sa isang STM32 Nucleo board na may suportadong firmware na tab na [Library Evaluation] ay bubukas.
Upang simulan at ihinto ang streaming ng data, i-toggle ang naaangkop na [Start] Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- icon o [Stop] Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- icon1 button sa panlabas na patayong tool bar.
Ang data na nagmumula sa konektadong sensor ay maaaring viewed pagpili sa tab na [Data Table] sa panloob na vertical tool bar.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Data Table

Hakbang 4. Mag-click sa [E-Compass] para buksan ang nakalaang pahina para sa library na ito.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Compass

Ang figure sa itaas ay nagpapakita ng isang STM32 Nucleo graphical na modelo. Ang oryentasyon at pag-ikot ng modelo ay batay sa data ng E-Compass (quaternions) na kinakalkula ng algorithm.
Upang ihanay ang totoong paggalaw ng device sa graphical na modelo, ituro ang device patungo sa screen at itulak ang [I-reset ang modelo].
Ang halaga ng heading ay kumakatawan sa tunay na heading ng device.
Ang pagturo sa device nang diretso pataas o pababa (kahabaan ng Up axis ng ENU reference frame, na may ±5 degree tolerance) ay nagbibigay ng N/A value para sa heading: hindi posibleng matukoy kung saang cardinal point itinuturo ang device.
Ang goodness value ay nagbibigay ng 0 hanggang 3 value at nauugnay sa magnetometer calibration: mas mataas ang value, mas maganda ang resulta ng E-Compass data algorithm.
Hakbang 5. Mag-click sa [I-save sa File] upang buksan ang window ng pagsasaayos ng dataloging. Piliin ang data ng sensor at E-Compass na ise-save sa file. Maaari kang magsimula o huminto sa pag-save sa pamamagitan ng pag-click sa kaukulang button.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- I-save sa File

Hakbang 6. Maaaring gamitin ang Data Injection mode para ipadala ang dating nakuhang data sa library at matanggap ang resulta. Piliin ang tab na [Data Injection] sa vertical tool bar para buksan ang nakalaan view para sa functionality na ito.

Ang ST X CUBE MEMS1 MotionEC ay isang Middleware Library- Data Injection

Hakbang 7. Mag-click sa [Browse] na buton upang piliin ang file gamit ang dating nakuhang data sa CSV format.
Ang data ay mai-load sa talahanayan sa kasalukuyang view.
Magiging aktibo ang iba pang mga button. Maaari kang mag-click sa:
– Button na [Offline Mode] upang i-on/off ang offline mode ng firmware (mode na gumagamit ng dating nakuhang data).
– Mga button na [Start]/[Stop]/[Step]/[Repeat] para kontrolin ang data feed mula sa MEMS-Studio hanggang sa library.

Mga sanggunian

Ang lahat ng sumusunod na mapagkukunan ay malayang makukuha sa www.st.com.

  1. UM1859: Pagsisimula sa X-CUBE-MEMS1 motion MEMS at environmental sensor software expansion para sa STM32Cube
  2.  UM1724: STM32 Nucleo-64 boards (MB1136)
  3. UM3233: Pagsisimula sa MEMS-Studio

Kasaysayan ng rebisyon

Talahanayan 4. Kasaysayan ng rebisyon ng dokumento

Petsa Bersyon Mga pagbabago
18-May-17 1 Paunang paglabas.
25-Ene-18 2 Nagdagdag ng mga sanggunian sa NUCLEO-L152RE development board at Talahanayan 2.
Algorithm ng lumipas na oras (μs).
21-Mar-18 3 Na-update na Panimula at Seksyon 2.1 MotionEC tapos naview.
26-Nob-18 4 Idinagdag ang Talahanayan 3. Cortex -M0+: algorithm ng lumipas na oras (µs). Nagdagdag ng mga sanggunian sa ARM®
Cortex® – M0+ at NUCLEO-L073RZ development board.
19-Peb-19 5 Na-update na Figure 1. ENU reference frame, Talahanayan 2. Cortex -M4 at Cortex-M3: algorithm ng lumipas na oras (µs), Talahanayan 3.
Cortex -M0+: algorithm ng lumipas na oras (µs), Figure 3. Adaptor ng expansion board ng sensor na konektado sa STM32
Nucleo, Figure 4. Unicleo main window, Figure 5. User Messages tab, Figure 6. E-Compass window at Figure 7. Datalog window. Nagdagdag ng impormasyon sa compatibility ng expansion board ng X-NUCLEO-IKS01A3.
25-Mar-20 6 Na-update na Panimula, Seksyon 2.2.1: Deskripsyon ng library ng MotionEC at Seksyon 2.2.5: Pagganap ng algorithm.
Nagdagdag ng impormasyon sa compatibility ng arkitektura ng ARM Cortex-M7.
17-Sep-24 7 Na-update na Panimula ng Seksyon,
Seksyon 2.1: Tapos na ang MotionECview,
Seksyon 2.2.1: MotionEC library
paglalarawan, Seksyon 2.2.2: MotionEC
Mga API, Seksyon 2.2.5: Algorithm
pagganap, Seksyon 3: Sample
application, Seksyon 3.1: MEMS-Studio application

MAHALAGANG PAUNAWA – MAGBASA NG MABUTI
Inilalaan ng STMicroelectronics NV at ng mga subsidiary nito (“ST”) ang karapatang gumawa ng mga pagbabago, pagwawasto, pagpapahusay, pagbabago, at pagpapahusay sa mga produkto ng ST at/o sa dokumentong ito anumang oras nang walang abiso. Dapat makuha ng mga mamimili ang pinakabagong may-katuturang impormasyon sa mga produkto ng ST bago maglagay ng mga order. Ang mga produkto ng ST ay ibinebenta alinsunod sa mga tuntunin at kundisyon ng pagbebenta ng ST sa oras ng pag-acknowledge ng order.
Ang mga mamimili ay tanging responsable para sa pagpili, pagpili, at paggamit ng mga produkto ng ST at walang pananagutan ang ST para sa tulong sa aplikasyon o disenyo ng mga produkto ng mga mamimili.
Walang lisensya, hayag o ipinahiwatig, sa anumang karapatan sa intelektwal na ari-arian ang ipinagkaloob ng ST dito.
Ang muling pagbebenta ng mga produktong ST na may mga probisyon na iba sa impormasyong nakasaad dito ay magpapawalang-bisa sa anumang warranty na ibinigay ng ST para sa naturang produkto.
Ang ST at ang ST logo ay mga trademark ng ST. Para sa karagdagang impormasyon tungkol sa mga trademark ng ST, sumangguni sa www.st.com/trademarks. Ang lahat ng iba pang pangalan ng produkto o serbisyo ay pag-aari ng kani-kanilang mga may-ari.
Ang impormasyon sa dokumentong ito ay pinapalitan at pinapalitan ang impormasyong dating ibinigay sa anumang mga naunang bersyon ng dokumentong ito.

© 2024 STMicroelectronics – Nakalaan ang lahat ng karapatan

Mga Dokumento / Mga Mapagkukunan

Ang ST X-CUBE-MEMS1 MotionEC ay isang Middleware Library [pdf] Manwal ng May-ari
X-CUBE-MEMS1 MotionEC ay isang Middleware Library, X-CUBE-MEMS1, MotionEC ay isang Middleware Library, Middleware Library, Library

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *