UM2225
Buku la ogwiritsa ntchito
Kuyamba ndi laibulale ya MotionEC yeniyeni ya E-Compass mu X-CUBE-MEMS1 kukulitsa kwa STM32Cube
Mawu Oyamba
MotionEC ndi gawo la library lapakati pa pulogalamu ya X-CUBE-MEMS1 ndipo imayenda pa STM3z2. Zimapereka chidziwitso chanthawi yeniyeni chokhudza momwe chipangizocho chikuyendetsedwera komanso momwe zimayendera potengera zomwe zidachokera pachida.
Imapereka zotsatira zotsatirazi: mawonekedwe a chipangizo (quaternions, Euler angles), kasinthasintha kachipangizo (mawonekedwe a gyroscope), vekitala yokoka ndi kuthamanga kwa mzere.
Laibulaleyi idapangidwa kuti izigwira ntchito ndi ST MEMS yokha.
Algorithm imaperekedwa mumtundu wa library static ndipo idapangidwa kuti igwiritsidwe ntchito pa STM32 microcontrollers kutengera ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 ndi ARM® Zomangamanga za Cortex®-M7.
Imamangidwa pamwamba paukadaulo wamapulogalamu a STM32Cube kuti muchepetse kusuntha kwa ma microcontrollers osiyanasiyana a STM32.
Pulogalamuyi imabwera ndi sampndi kukhazikitsa pa X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1or X-NUCLEO-IKS02A1 bolodi yowonjezera pa NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE kapena NUCLEO-L board board.
Acronyms ndi achidule
Table 1. Mndandanda wa acronyms
Mwachidule | Kufotokozera |
API | Mawonekedwe opangira mapulogalamu |
Mtengo wa BSP | Phukusi lothandizira la board |
GUI | Mawonekedwe a ogwiritsa ntchito |
HAL | Hardware abstraction wosanjikiza |
IDE | Integrated chitukuko chilengedwe |
Laibulale ya MotionEC middleware mu X-CUBE-MEMS1 kukulitsa mapulogalamu a STM32Cube
2.1 MotionEC yathaview
Laibulale ya MotionEC imakulitsa magwiridwe antchito a pulogalamu ya X-CUBE-MEMS1.
Laibulale imapeza zambiri kuchokera ku accelerometer ndi magnetometer ndipo imapereka chidziwitso chokhudza momwe chipangizocho chikuyendera komanso momwe zimayendera potengera zomwe zidachokera pa chipangizocho.
Laibulaleyi idapangidwira ST MEMS yokha. Kugwira ntchito ndi magwiridwe antchito mukamagwiritsa ntchito masensa ena a MEMS sikuwunikidwa ndipo kumatha kukhala kosiyana kwambiri ndi zomwe zafotokozedwa m'chikalatacho.
A sample kukhazikitsa kulipo pa X-NUCLEO-IKS01A3 , X-NUCLEO-IKS4A1 ndi X-NUCLEO-IKS02A1 bolodi yowonjezera, yokwezedwa pa bolodi la NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152LER kapena NUCLEO-L073OL kapena bolodi lachitukuko.
2.2 laibulale ya MotionEC
Zambiri zaukadaulo zofotokozera bwino ntchito ndi magawo a MotionEC APIs zitha kupezeka mu MotionEC_Package.chm yopangidwa ndi HTML file ili mufoda ya Documentation.
2.2.1 Kufotokozera kwa library ya MotionEC
Laibulale ya MotionEC E-Compass imayendetsa deta yopezedwa kuchokera ku accelerometer ndi magnetometer; ili ndi:
- mawonekedwe a chipangizo (ma quaternion, ma Euler angles), kuzungulira kwa chipangizo (mawonekedwe a gyroscope), vekitala yokoka ndi zotulutsa za mzere
- magwiridwe antchito potengera accelerometer ndi data ya magnetometer yokha
- zofunika accelerometer ndi magnetometer deta samppafupipafupi mpaka 100 Hz
- zofunikira zothandizira:
- Cortex-M0+: 3.7 kB ya code ndi 0.1 kB ya kukumbukira kwa data
- Cortex-M3: 3.8 kB ya code ndi 0.1 kB ya kukumbukira kwa data
- Cortex-M33: 2.8 kB ya code ndi 0.1 kB ya kukumbukira kwa data
- Cortex-M4: 2.9 kB ya code ndi 0.1 kB ya kukumbukira kwa data
- Cortex-M7: 2.8 kB ya code ndi 0.1 kB ya kukumbukira kwa data - kupezeka kwa ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 ndi Cortex M7 zomangamanga
2.2.2 MotionEC APIs
Ma MotionEC API ndi awa:
- uint8_t MotionEC_GetLibVersion(char *version)
- ipezanso mtundu wa library
- * Mtundu ndi cholozera pamndandanda wa zilembo 35
- imabweretsanso kuchuluka kwa zilembo mumtundu wamtunduwu
• void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
- imapanga kuyambika kwa library ya MotionEC ndikukhazikitsa makina amkati.
- mcu_type ndi mtundu wa MCU:
◦ MFX_CM0P_MCU_STM32 ndi STM32 MCU yokhazikika
◦ MFX_CM0P_MCU_BLUE_NRG1 ndi BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 ndi BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP ndi BlueNRG -LP
- Freq ndiye sensor samppafupipafupi [Hz]
Zindikirani: Ntchitoyi iyenera kuyimbidwa musanagwiritse ntchito laibulale ya E-Compass ndipo gawo la CRC mu STM32 microcontroller (mu RCC peripheral clock enable register) iyenera kuyatsidwa musanagwiritse ntchito laibulale.
- void MotionEC_SetFrequency(kuyandama pafupipafupi)
- amakhazikitsa sampLing frequency (kusintha magawo osefa)
- Freq ndiye sensor samppafupipafupi [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
- imayendetsa algorithm ya E-Compass (accelerometer ndi magnetometer data fusion)
- *data_in ndi cholozera pamapangidwe omwe ali ndi data yolowera
- magawo amtundu wa MEC_input_t ndi:
◦ acc[3] ndi mndandanda wa data ya accelerometer mu msonkhano wa ENU, woyesedwa mu g
◦ mag[3] ndi mndandanda wa data ya magnetometer calibrated mu msonkhano wa ENU, woyesedwa mu μT/50
◦ deltatime s ndi nthawi ya delta (ie, kuchedwa kwa nthawi pakati pa deta yakale ndi yatsopano) yoyesedwa mu s
- *data_out ndi cholozera pamapangidwe omwe ali ndi deta yotulutsa
- magawo amtundu wa MEC_output_t ndi:
◦ quaternion[4] ndi gulu lokhala ndi quaternion mu msonkhano wa ENU, kuyimira 3Dangular kuyang'ana kwa chipangizo mu danga; dongosolo la maelementi ndi: X, Y, Z, W, okhala ndi chinthu chabwino W
◦ euler[3] ndi mndandanda wa ma angles a Euler mu msonkhano wa ENU, woimira 3D-angular orientation ya chipangizo mumlengalenga; dongosolo la zinthu ndi: yaw, phula, roll, kuyezedwa mu deg
◦ i_gyro[3] ndi mndandanda wamitengo yamakona mu msonkhano wa ENU, woyimira sensa ya gyroscope, yoyesedwa mu dps.
◦ mphamvu yokoka [3] ndi kuchuluka kwa mathamangitsidwe mu msonkhano wa ENU, woimira vekitala yokoka, yoyezedwa mu g.
◦ linear[3] ndi kuchuluka kwa mathamangitsidwe mu msonkhano wa ENU, kuyimira mathamangitsidwe amtundu wa chipangizo, kuyeza mu g.
- void MotionEC_GetOrientationEnable(MEC_state_t *state)
- imapeza mwayi wothandizira / kuletsa mawerengedwe a Euler angle
- *boma ndi cholozera ku zomwe zili zotheka / kulepheretsa - void MotionEC_SetOrientationEnable(MEC_state_t state)
- imakhazikitsa / kuletsa kuwerengera kwa Euler angle
- state ndi gawo latsopano lothandizira / kuletsa kuti likhazikitsidwe - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
- imapeza kuthandizira / kulepheretsa kuwerengera kwa gyroscope
- *boma ndi cholozera ku zomwe zili zotheka / kulepheretsa - void MotionEC_SetVirtualGyroEnable(MEC_state_t state)
- imakhazikitsa / kuletsa kuwerengera kwa gyroscope
- state ndi gawo latsopano lothandizira / kuletsa kuti likhazikitsidwe - void MotionEC_GetGravityEnable(MEC_state_t *state)
- imapeza kuthandizira / kulepheretsa kuwerengera mphamvu yokoka
- *boma ndi cholozera ku zomwe zili zotheka / kulepheretsa - void MotionEC_SetGravityEnable(MEC_state_t state)
- imakhazikitsa / kulepheretsa kuwerengera kwa vector yokoka
- state ndi gawo latsopano lothandizira / kuletsa kuti likhazikitsidwe - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
- imapeza kuthandizira / kulepheretsa kuwerengera kwa mzere wothamanga
- *boma ndi cholozera ku zomwe zili zotheka / kulepheretsa - void MotionEC_SetLinearAccEnable(MEC_state_t state)
- imakhazikitsa / kuletsa kuwerengera kwa mzere wothamanga
- state ndi gawo latsopano lothandizira / kuletsa kuti likhazikitsidwe
2.2.3 API flow chart
2.2.4 Demo kodi
Khodi yowonetsera yotsatirayi imawerengera deta kuchokera ku accelerometer ndi magnetometer sensors ndikupeza deta ya ECompass (ie, quaternion, Euler angles, etc.).
2.2.5 Algorithm yogwira ntchito
E-Compass algorithm imagwiritsa ntchito deta kuchokera ku accelerometer ndi magnetometer kokha. Imathamanga pafupipafupi (mpaka 100 Hz) kuti muchepetse kugwiritsa ntchito mphamvu.
Sampndi application
MotionEC middleware imatha kusinthidwa mosavuta kuti ipange mapulogalamu ogwiritsa ntchito; mongaample application imaperekedwa mufoda ya Application.
Zapangidwa kuti ziziyenda pa bolodi yachitukuko ya NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE kapena NUCLEO-L073RZ yolumikizidwa ndi bolodi la X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1or X-INKpansion02A.
Pulogalamuyi imazindikira momwe chipangizocho chimayendera komanso kuzungulira munthawi yeniyeni. Deta ikhoza kuwonetsedwa kudzera mu GUI.
Algorithm imapereka zotsatirazi: mawonekedwe a chipangizo (quaternions, Euler angles), kasinthasintha kachipangizo (machitidwe a gyroscope), vekitala yokoka ndi kuthamanga kwa mzere.
3.1 MEMS-Studio ntchito
Aample application imagwiritsa ntchito pulogalamu ya MEMS-Studio, yomwe imatha kutsitsidwa kuchokera www.st.com.
Gawo 1. Onetsetsani kuti madalaivala ofunikira aikidwa ndipo board ya STM32 Nucleo yokhala ndi bolodi yoyenera yolumikizidwa ndi PC.
Gawo 2. Yambitsani pulogalamu ya MEMS-Studio kuti mutsegule zenera lalikulu la pulogalamu.
Ngati STM32 Nucleo board yokhala ndi firmware yothandizidwa ilumikizidwa ndi PC, doko loyenera la COM limadziwikiratu. Dinani [Lumikizani] batani kuti mukhazikitse kulumikizana ndi gulu lowunika.
Gawo 3. Mukalumikizidwa ndi board ya STM32 Nucleo yokhala ndi firmware yothandizidwa [Library Evaluation] tabu imatsegulidwa.
Kuti muyambe ndi kuyimitsa kusanja kwa data, sinthani zoyenera [Yambani] kapena [Imani]
batani pazida zakunja zowongoka.
Deta yochokera ku sensa yolumikizidwa ikhoza kukhala viewed posankha tabu ya [Data Table] pazida zamkati zowongoka.
Gawo 4. Dinani pa [E-Compass] kuti mutsegule tsamba loperekedwa la laibulale iyi.
Chithunzi pamwambapa chikuwonetsa chithunzi cha STM32 Nucleo. Kuzungulira kwachitsanzo ndi kasinthasintha zimachokera ku data ya E-Compass (quaternions) yowerengedwa ndi algorithm.
Kuti muyanitse mayendedwe a chipangizo chenicheni ndi chojambula chazithunzi, lozani chipangizocho ku sikirini ndikukankhira [Bwezerani chojambula].
Mtengo wamutu umayimira mutu weniweni wa chipangizo.
Kulozera chipangizocho molunjika mmwamba kapena pansi (motsatira Up axis of ENU reference frame, with ± 5 degree tolerance) kumapereka mtengo wa N/A pamutuwu: sizingatheke kusiyanitsa komwe chipangizocho chikulozera.
Ubwino wamtengo wapatali umapereka 0 kwa 3 makhalidwe ndipo umagwirizana ndi magnetometer calibration: mtengo wapamwamba, zotsatira za E-Compass data algorithm.
Gawo 5. Dinani pa [Sungani ku File] kuti mutsegule zenera lakusintha kwa dataloging. Sankhani sensa ndi data ya E-Compass kuti musungidwe mu file. Mutha kuyamba kapena kusiya kusunga podina batani lolingana.
Gawo 6. Deta Injection mode angagwiritsidwe ntchito kutumiza deta anapeza kale ku laibulale ndi kulandira zotsatira. Sankhani tabu [Data Injection] pa vertical tool bar kuti mutsegule odzipereka view za magwiridwe antchito awa.
Gawo 7. Dinani pa [Sakatulani] batani kuti musankhe file ndi data yomwe idajambulidwa kale mumtundu wa CSV.
Deta idzakwezedwa patebulo pakali pano view.
Mabatani ena ayamba kugwira ntchito. Mutha kudina pa:
- batani la [Offline Mode] kuti mutsegule / kuzimitsa mawonekedwe a firmware osagwiritsa ntchito intaneti (kugwiritsa ntchito zomwe zidajambulidwa kale).
- [Yambani]/[Imani]/[Step]/[Bwerezani] mabatani kuti muwongolere chakudya cha data kuchokera ku MEMS-Studio kupita ku laibulale.
Maumboni
Zonse zotsatirazi zikupezeka kwaulere pa www.st.com.
- UM1859: Kuyamba ndi X-CUBE-MEMS1 yoyenda MEMS ndi kukulitsa pulogalamu ya sensa ya chilengedwe kwa STM32Cube
- UM1724: STM32 Nucleo-64 matabwa (MB1136)
- UM3233: Kuyamba ndi MEMS-Studio
Mbiri yobwereza
Table 4. Mbiri yokonzanso zolemba
Tsiku | Baibulo | Zosintha |
18-May-17 | 1 | Kutulutsidwa koyamba. |
25 Jan-18 | 2 | Zowonjezera ku NUCLEO-L152RE board board ndi Table 2. Nthawi yodutsa (μs) algorithm. |
21-Mar-18 | 3 | Mawu Oyamba Osinthidwa ndi Gawo 2.1 MotionEC lathaview. |
26 Nov-18 | 4 | Wowonjezera Table 3. Cortex -M0+: nthawi yodutsa (µs) algorithm. Mauthenga owonjezera ku ARM® Cortex® - M0+ ndi NUCLEO-L073RZ board board. |
19-Feb-19 | 5 | Chithunzi Chosinthidwa 1. ENU reference frame, Table 2. Cortex -M4 ndi Cortex-M3: yapita nthawi (µs) algorithm, Table 3. Cortex -M0+: nthawi yodutsa (µs) aligorivimu, Chithunzi 3. Sensor yowonjezera board adapter yolumikizidwa ndi STM32 Nucleo, Chithunzi 4. Unicleowindo lalikulu, Chithunzi 5. Tsamba la Mauthenga Ogwiritsa Ntchito, Chithunzi 6. E-Compass window ndi Chithunzi 7. Datalog window. Zowonjezera zokhudzana ndi X-NUCLEO-IKS01A3 |
25-Mar-20 | 6 | Mawu Oyamba Osinthidwa, Gawo 2.2.1: Kufotokozera kwa library ya MotionEC ndi Gawo 2.2.5: Algorithm performance. Zowonjezera zokhudzana ndi kamangidwe ka ARM Cortex-M7. |
17 Sep-24 | 7 | Chiyambi Chachigawo Chosinthidwa, Gawo 2.1: MotionEC yathaview, Gawo 2.2.1: laibulale ya MotionEC kufotokoza, Gawo 2.2.2: MotionEC APIs, Gawo 2.2.5: Algorithm ntchito, Gawo 3: Sample ntchito, Gawo 3.1: MEMS-Studio ntchito |
CHIZINDIKIRO CHOFUNIKA - WERENGANI MOMWE MUNGACHITE
STMicroelectronics NV ndi mabungwe ake ("ST") ali ndi ufulu wosintha, kukonza, kukonza, kusintha, ndi kukonza zinthu za ST ndi/kapena ku chikalatachi nthawi iliyonse popanda chidziwitso. Ogula akuyenera kupeza zidziwitso zaposachedwa kwambiri pazogulitsa za ST asanapange maoda. Zogulitsa za ST zimagulitsidwa motsatira mfundo za ST ndi zogulitsa zomwe zilipo panthawi yovomerezeka.
Ogula ali ndi udindo wosankha, kusankha, ndi kugwiritsa ntchito zinthu za ST ndipo ST sichikhala ndi mlandu wothandizidwa ndi pulogalamu kapena kupanga zinthu za ogula.
Palibe chilolezo, chofotokozera kapena kutanthauza, ku ufulu uliwonse waukadaulo womwe umaperekedwa ndi ST apa.
Kugulitsanso zinthu za ST zomwe zili ndi zosiyana ndi zomwe zafotokozedwa pano sizidzathetsa chitsimikizo chilichonse choperekedwa ndi ST pazogulitsa zotere.
ST ndi ST logo ndi zizindikilo za ST. Kuti mumve zambiri za zilembo za ST, onani www.st.com/trademarks. Mayina ena onse azinthu kapena ntchito ndi eni ake.
Zomwe zili m'chikalatachi zimaloŵa m'malo ndi kulowa m'malo zomwe zidaperekedwa kale m'matembenuzidwe am'mbuyomu a chikalatachi.
© 2024 STMicroelectronics – Ufulu wonse ndi wotetezedwa
Zolemba / Zothandizira
![]() |
ST X-CUBE-MEMS1 MotionEC ndi Library ya Middleware [pdf] Buku la Mwini X-CUBE-MEMS1 MotionEC ndi Middleware Library, X-CUBE-MEMS1, MotionEC ndi Middleware Library, Middleware Library, Library |