UM2225
Кіраўніцтва карыстальніка
Пачатак працы з бібліятэкай MotionEC у рэжыме рэальнага часу E-Compass у пашырэнні X-CUBE-MEMS1 для STM32Cube
Уводзіны
MotionEC з'яўляецца кампанентам бібліятэкі прамежкавага праграмнага забеспячэння X-CUBE-MEMS1 і працуе на STM3z2. Ён дае інфармацыю ў рэжыме рэальнага часу аб арыентацыі прылады і стане руху на аснове даных з прылады.
Ён забяспечвае наступныя выхады: арыентацыя прылады (кватэрніёны, вуглы Эйлера), кручэнне прылады (функцыянальнасць віртуальнага гіраскопа), вектар сілы цяжару і лінейнае паскарэнне.
Гэтая бібліятэка прызначана для працы толькі з ST MEMS.
Алгарытм прадстаўлены ў фармаце статычнай бібліятэкі і прызначаны для выкарыстання на мікракантролерах STM32 на базе ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 і ARM® Архітэктуры Cortex®-M7.
Ён пабудаваны на аснове праграмнай тэхналогіі STM32Cube для палягчэння пераноснасці паміж рознымі мікракантролерамі STM32.
Праграмнае забеспячэнне пастаўляецца з sample рэалізацыя працуе на плаце пашырэння X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 або X-NUCLEO-IKS02A1 на плаце распрацоўкі NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE або NUCLEO-L073RZ.
Абрэвіятуры і абрэвіятуры
Табліца 1. Спіс абрэвіятур
абрэвіятура | Апісанне |
API | Інтэрфейс прыкладнога праграмавання |
БСП | Пакет падтрымкі платы |
GUI | Графічны інтэрфейс карыстальніка |
ХАЛ | Узровень апаратнай абстракцыі |
IDE | Інтэграванае асяроддзе распрацоўкі |
Бібліятэка прамежкавага праграмнага забеспячэння MotionEC у праграмным пашырэнні X-CUBE-MEMS1 для STM32Cube
2.1 MotionEC скончанаview
Бібліятэка MotionEC пашырае функцыянальнасць праграмнага забеспячэння X-CUBE-MEMS1.
Бібліятэка атрымлівае даныя з акселерометра і магнітаметра і дае інфармацыю аб арыентацыі прылады і стане руху на аснове даных з прылады.
Бібліятэка прызначана толькі для ST MEMS. Функцыянальнасць і прадукцыйнасць пры выкарыстанні іншых датчыкаў MEMS не аналізуюцца і могуць значна адрознівацца ад апісаных у дакуменце.
А сampРэалізацыя даступная на платах пашырэння X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 і X-NUCLEO-IKS02A1, усталяваных на плаце распрацоўкі NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE або NUCLEO-L073RZ.
2.2 Бібліятэка MotionEC
Тэхнічную інфармацыю з поўным апісаннем функцый і параметраў API MotionEC можна знайсці ў скампіляваным HTML MotionEC_Package.chm file знаходзіцца ў тэчцы Дакументацыя.
2.2.1 Апісанне бібліятэкі MotionEC
Бібліятэка MotionEC E-Compass кіруе дадзенымі, атрыманымі з акселерометра і магнітометра; гэта асаблівасці:
- арыентацыя прылады (кватэрніёны, вуглы Эйлера), кручэнне прылады (функцыянальнасць віртуальнага гіраскопа), вектар гравітацыі і лінейнае паскарэнне
- функцыянальнасць заснавана толькі на дадзеных акселерометра і магнітометра
- неабходныя даныя акселерометра і магнітометраampчастата гуку да 100 Гц
- патрабаванні да рэсурсаў:
– Cortex-M0+: 3.7 кБ кода і 0.1 кБ памяці для даных
– Cortex-M3: 3.8 кБ кода і 0.1 кБ памяці для даных
– Cortex-M33: 2.8 кБ кода і 0.1 кБ памяці для даных
– Cortex-M4: 2.9 кБ кода і 0.1 кБ памяці для даных
– Cortex-M7: 2.8 кБ кода і 0.1 кБ памяці для даных - даступна для архітэктур ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 і Cortex M7
2.2.2 API MotionEC
API MotionEC:
- uint8_t MotionEC_GetLibVersion(знак *версія)
– здабывае версію бібліятэкі
– *версія - гэта паказальнік на масіў з 35 знакаў
– вяртае колькасць сімвалаў у радку версіі
• несапраўдны MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
– выконвае ініцыялізацыю бібліятэкі MotionEC і настройку ўнутранага механізму.
– mcu_type - гэта тып MCU:
◦ MFX_CM0P_MCU_STM32 з'яўляецца стандартным STM32 MCU
◦ MFX_CM0P_MCU_BLUE_NRG1 - гэта BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 - гэта BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP - гэта BlueNRG -LP
– частата датчыка sampчастата лін [Гц]
Заўвага: Гэтую функцыю неабходна выклікаць перад выкарыстаннем бібліятэкі E-Compass, а модуль CRC у мікракантролеры STM32 (у рэгістры ўключэння перыферыйных гадзіннікаў RCC) павінен быць уключаны перад выкарыстаннем бібліятэкі
- несапраўдны MotionEC_SetFrequency(плываючая частата)
– усталёўвае сampчастата ling (змена параметраў фільтрацыі)
– частата датчыка sampчастата ling [Гц] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
- запускае алгарытм E-Compass (зліццё дадзеных акселерометра і магнітометра)
– *data_in – паказальнік на структуру з уваходнымі дадзенымі
– параметры для тыпу структуры MEC_input_t:
◦ acc[3] - гэта масіў даных акселерометра ў канвенцыі ENU, вымераных у г
◦ mag[3] - гэта масіў адкалібраваных магнітаметрам даных у канвенцыі ENU, вымераных у мкТл/50
◦ deltatime s - гэта дэльта-час (г.зн. часовая затрымка паміж старым і новым наборам даных), вымераная ў с
– *data_out – паказальнік на структуру з выходнымі дадзенымі
– параметры для тыпу структуры MEC_output_t:
◦ кватэрніён[4] - масіў, які змяшчае кватэрніён у канвенцыі ENU, які прадстаўляе 3-канальную арыентацыю прылады ў прасторы; парадак элементаў: X, Y, Z, W, з заўсёды станоўчым элементам W
◦ эйлер [3] - гэта масіў вуглоў Эйлера ў канвенцыі ENU, які адлюстроўвае трохмерную вуглавую арыентацыю прылады ў прасторы; парадак элементаў: рысканне, тангаж, крэн, вымяраецца ў град
◦ i_gyro[3] - гэта масіў вуглавых хуткасцей у канвенцыі ENU, які прадстаўляе датчык віртуальнага гіраскопа, вымяраецца ў dps
◦ гравітацыя[3] - гэта шэраг паскарэнняў у канвенцыі ENU, які прадстаўляе вектар гравітацыі, вымераны ў г
◦ linear[3] - гэта масіў паскарэнняў у канвенцыі ENU, які прадстаўляе лінейнае паскарэнне прылады, вымеранае ў г
- void MotionEC_GetOrientationEnable(MEC_state_t *стан)
– атрымлівае стан уключэння/выключэння разліку вугла Эйлера
– *стан - гэта паказальнік на бягучы стан уключэння/выключэння - void MotionEC_SetOrientationEnable(стан MEC_state_t)
– усталёўвае стан уключэння/выключэння разліку вугла Эйлера
– стан - гэта новы стан уключэння/выключэння, які трэба ўсталяваць - void MotionEC_GetVirtualGyroEnable(MEC_state_t *стан)
– атрымлівае стан уключэння/выключэння разліку віртуальнага гіраскопа
– *стан - гэта паказальнік на бягучы стан уключэння/выключэння - void MotionEC_SetVirtualGyroEnable(стан MEC_state_t)
– усталёўвае стан уключэння/выключэння разліку віртуальнага гіраскопа
– стан - гэта новы стан уключэння/выключэння, які трэба ўсталяваць - void MotionEC_GetGravityEnable(MEC_state_t *стан)
– атрымлівае стан уключэння/выключэння разліку вектара гравітацыі
– *стан - гэта паказальнік на бягучы стан уключэння/выключэння - void MotionEC_SetGravityEnable(стан MEC_state_t)
– задае стан уключэння/выключэння разліку вектара гравітацыі
– стан - гэта новы стан уключэння/выключэння, які трэба ўсталяваць - void MotionEC_GetLinearAccEnable(MEC_state_t *стан)
– атрымлівае стан уключэння/выключэння разліку лінейнага паскарэння
– *стан - гэта паказальнік на бягучы стан уключэння/выключэння - void MotionEC_SetLinearAccEnable(стан MEC_state_t)
– задае стан уключэння/выключэння разліку лінейнага паскарэння
– стан - гэта новы стан уключэння/выключэння, які трэба ўсталяваць
2.2.3 Блок-схема API
2.2.4 Дэма-код
Наступны дэманстрацыйны код счытвае даныя з датчыкаў акселерометра і магнітаметра і атрымлівае даныя ECompass (напрыклад, кватэрніёны, вуглы Эйлера і г.д.).
2.2.5 Прадукцыйнасць алгарытму
Алгарытм E-Compass выкарыстоўвае толькі даныя акселерометра і магнітометра. Ён працуе на нізкай частаце (да 100 Гц), каб знізіць энергаспажыванне.
Sampпрыкладанне
Прамежкавым праграмным забеспячэннем MotionEC можна лёгка маніпуляваць для стварэння карыстальніцкіх прыкладанняў; якampПрыкладанне знаходзіцца ў тэчцы Application.
Ён прызначаны для працы на плаце распрацоўкі NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE або NUCLEO-L073RZ, падключанай да платы пашырэння X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 або X-NUCLEO-IKS02A1.
Прыкладанне распазнае арыентацыю і паварот прылады ў рэжыме рэальнага часу. Дадзеныя могуць быць адлюстраваны праз графічны інтэрфейс.
Алгарытм забяспечвае наступныя выхадныя дадзеныя: арыентацыю прылады (кватэрніёны, вуглы Эйлера), кручэнне прылады (функцыянальнасць віртуальнага гіраскопа), вектар гравітацыі і лінейнае паскарэнне.
3.1 Праграма MEMS-Studio
У ыampДадатак le выкарыстоўвае прыкладанне MEMS-Studio, якое можна загрузіць з www.st.com.
Крок 1. Пераканайцеся, што неабходныя драйверы ўсталяваны і плата STM32 Nucleo з адпаведнай платай пашырэння падключана да ПК.
Крок 2. Запусціце праграму MEMS-Studio, каб адкрыць галоўнае акно праграмы.
Калі плата STM32 Nucleo з падтрымліваемым прашыўкай падключана да ПК, адпаведны COM-порт вызначаецца аўтаматычна. Націсніце кнопку [Connect], каб усталяваць злучэнне з ацэначнай платай.
Крок 3. Пры падключэнні да платы STM32 Nucleo з падтрымліваемым прашыўкай адкрываецца ўкладка [Library Evaluation].
Каб пачаць і спыніць струменевую перадачу даных, пераключыце адпаведны [Пуск] або [Стоп]
кнопка на знешняй вертыкальнай панэлі інструментаў.
Дадзеныя, якія паступаюць з падлучанага датчыка, могуць быць viewвыбраўшы ўкладку [Табліца даных] на ўнутранай вертыкальнай панэлі інструментаў.
Крок 4. Націсніце на [E-Compass], каб адкрыць спецыяльную старонку для гэтай бібліятэкі.
На малюнку вышэй паказана графічная мадэль STM32 Nucleo. Арыентацыя і паварот мадэлі заснаваны на дадзеных E-Compass (кватэрніёнах), разлічаных алгарытмам.
Каб сумясціць рэальны рух прылады з графічнай мадэллю, накіруйце прыладу на экран і націсніце [Скінуць мадэль].
Значэнне загалоўка ўяўляе рэальны загаловак прылады.
Накіраванне прылады прама ўверх ці ўніз (уздоўж восі ўверх сістэмы адліку ENU, з допускам ±5 градусаў) дае значэнне N/A для загалоўка: немагчыма адрозніць, на якую кардынальную кропку паказвае прылада.
Значэнне добрасці дае значэнні ад 0 да 3 і звязана з каліброўкай магнітометра: чым вышэй значэнне, тым лепш вынікі алгарытму даных E-Compass.
Крок 5. Націсніце на [Захаваць у File], каб адкрыць акно канфігурацыі рэгістрацыі даных. Выберыце дадзеныя датчыка і электроннага компаса для захавання ў file. Вы можаце пачаць або спыніць захаванне, націснуўшы на адпаведную кнопку.
Крок 6. Рэжым ін'екцыі даных можна выкарыстоўваць для адпраўкі раней атрыманых даных у бібліятэку і атрымання выніку. Абярыце ўкладку [Увядзенне даных] на вертыкальнай панэлі інструментаў, каб адкрыць спецыяльную view для гэтай функцыі.
Крок 7. Націсніце на кнопку [Агляд], каб выбраць file з раней атрыманымі дадзенымі ў фармаце CSV.
Дадзеныя будуць загружаны ў табліцу ў бягучым view.
Іншыя кнопкі стануць актыўнымі. Вы можаце націснуць на:
– Кнопка [Аўтаномны рэжым] для ўключэння/выключэння аўтаномнага рэжыму ўбудаванага праграмнага забеспячэння (рэжым з выкарыстаннем раней атрыманых дадзеных).
– Кнопкі [Пуск]/[Стоп]/[Крок]/[Паўтарыць] для кіравання падачай даных з MEMS-Studio у бібліятэку.
Спасылкі
Усе наступныя рэсурсы знаходзяцца ў вольным доступе на www.st.com.
- UM1859: Пачатак працы з MEMS руху X-CUBE-MEMS1 і праграмным забеспячэннем датчыка навакольнага асяроддзя для STM32Cube
- UM1724: платы STM32 Nucleo-64 (MB1136)
- UM3233: Пачатак працы з MEMS-Studio
Гісторыя версій
Табліца 4. Гісторыя пераглядаў дакумента
Дата | Версія | Змены |
18-17 мая | 1 | Першапачатковы выпуск. |
25-18 студзеня | 2 | Дададзены спасылкі на плату распрацоўкі NUCLEO-L152RE і табліцу 2. Алгарытм праведзенага часу (мкс). |
21-сакавіка-18 | 3 | Абноўленыя ўводзіны і раздзел 2.1 MotionEC скончаныview. |
26-18 лістапада | 4 | Дададзена табліца 3. Cortex -M0+: алгарытм часу, які прайшоў (мкс). Дададзены спасылкі на ARM® Cortex® – M0+ і плата распрацоўкі NUCLEO-L073RZ. |
19-лютага-19 | 5 | Абноўлены малюнак 1. Апорная сістэма ENU, табліца 2. Cortex -M4 і Cortex-M3: алгарытм часу, які прайшоў (мкс), табліца 3. Cortex -M0+: алгарытм часу, які прайшоў (мкс), малюнак 3. Адаптар платы пашырэння датчыка, падлучаны да STM32 Nucleo, Малюнак 4. Галоўнае акно Unicleo, Малюнак 5. Укладка «Паведамленні карыстальніка», Малюнак 6. Акно E-Compass і Малюнак 7. Акно часопіса даных. Дададзена інфармацыя аб сумяшчальнасці платы пашырэння X-NUCLEO-IKS01A3. |
25-сакавіка-20 | 6 | Абноўленыя ўводзіны, раздзел 2.2.1: Апісанне бібліятэкі MotionEC і раздзел 2.2.5: Прадукцыйнасць алгарытму. Дададзена інфармацыя аб сумяшчальнасці архітэктуры ARM Cortex-M7. |
17-24 верасня | 7 | Абноўлены раздзел Уводзіны, Раздзел 2.1: MotionEC скончаныview, Раздзел 2.2.1: Бібліятэка MotionEC апісанне, Раздзел 2.2.2: MotionEC API, Раздзел 2.2.5: Алгарытм спектакль, Раздзел 3: Сample дадатак, Раздзел 3.1: Прыкладанне MEMS-Studio |
ВАЖНАЯ ЗАЎВАГА – УВАЖЛІВА ЧЫТАЙЦЕ
STMicroelectronics NV і яе даччыныя кампаніі («ST») пакідаюць за сабой права ўносіць змены, выпраўленні, удасканаленні, мадыфікацыі і паляпшэнні ў прадукты ST і/або ў гэты дакумент у любы час без папярэдняга паведамлення. Пакупнікі павінны атрымаць самую актуальную інфармацыю аб прадуктах ST, перш чым рабіць заказы. Прадукцыя ST прадаецца ў адпаведнасці з умовамі продажу ST, якія дзейнічаюць на момант пацвярджэння замовы.
Пакупнікі нясуць поўную адказнасць за выбар, выбар і выкарыстанне прадуктаў ST, і ST не нясе адказнасці за дапамогу ў прымяненні або дызайн прадуктаў пакупнікоў.
ST тут не прадастаўляе ніякіх ліцэнзій, відавочных або пэўных, на права інтэлектуальнай уласнасці.
Перапродаж прадуктаў ST з умовамі, адрознымі ад інфармацыі, выкладзенай у гэтым дакуменце, прыводзіць да анулявання любой гарантыі, прадастаўленай ST на такі прадукт.
ST і лагатып ST з'яўляюцца гандлёвымі маркамі ST. Для атрымання дадатковай інфармацыі аб гандлёвых марках ST звярніцеся да www.st.com/trademarks. Усе іншыя назвы прадуктаў і паслуг з'яўляюцца ўласнасцю іх адпаведных уладальнікаў.
Інфармацыя ў гэтым дакуменце замяняе інфармацыю, якая была прадстаўлена ў папярэдніх версіях гэтага дакумента.
© 2024 STMicroelectronics – Усе правы абаронены
Дакументы / Рэсурсы
![]() |
ST X-CUBE-MEMS1 MotionEC - гэта бібліятэка прамежкавага праграмнага забеспячэння [pdfКіраўніцтва карыстальніка X-CUBE-MEMS1 MotionEC - гэта бібліятэка прамежкавага праграмнага забеспячэння, X-CUBE-MEMS1, MotionEC - гэта бібліятэка прамежкавага праграмнага забеспячэння, бібліятэка прамежкавага праграмнага забеспячэння, бібліятэка |