UM2225
Колдонуучунун колдонмосу
STM1Cube үчүн X-CUBE-MEMS32 кеңейүүсүндө MotionEC реалдуу убакыттагы E-Compass китепканасын колдонууну баштоо
Introduction
MotionEC X-CUBE-MEMS1 программасынын ортолук китепкана компоненти болуп саналат жана STM3z2де иштейт. Ал аппараттан алынган маалыматтардын негизинде аппараттын багыты жана кыймыл абалы жөнүндө реалдуу убакытта маалымат берет.
Ал төмөнкү жыйынтыктарды берет: аппараттын багыты (квартерниондор, Эйлер бурчтары), аппараттын айлануусу (виртуалдык гироскоптун функционалдуулугу), тартылуу вектору жана сызыктуу ылдамдануу.
Бул китепкана ST MEMS менен гана иштөөгө арналган.
Алгоритм статикалык китепкана форматында берилген жана ARM® Cortex®-M32+, ARM® Cortex®-M0, ARM® Cortex®-M3, ARM® Cortex®-M33 жана ARM® негизиндеги STM4 микроконтроллерлеринде колдонууга арналган. Cortex®-M7 архитектуралары.
Ал STM32Cube программалык технологиясынын үстүнө курулган, ар кандай STM32 микроконтроллерлери аркылуу көчүрүүнү жеңилдетет.
Программа s менен келетampX-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1or X-NUCLEO-IKS02A1 кеңейтүү тактасында NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE же NUCLEO-L073 тактасында иштеп жаткан ишке ашыруу.
Акронимдер жана аббревиатуралар
Таблица 1. Акронимдердин тизмеси
Акроним | Description |
API | Колдонмо программалоо интерфейси |
BSP | Башкармалык колдоо пакети |
GUI | Графикалык колдонуучу интерфейси |
ХАЛ | Аппараттык абстракция катмары |
IDE | Интегралдык өнүктүрүү чөйрөсү |
STM1Cube үчүн X-CUBE-MEMS32 программалык кеңейтүүсүндө MotionEC ортолук китепканасы
2.1 MotionEC аяктадыview
MotionEC китепканасы X-CUBE-MEMS1 программасынын функцияларын кеңейтет.
Китепкана акселерометрден жана магнитометрден маалыматтарды алат жана аппараттан алынган маалыматтардын негизинде аппараттын багыты жана кыймылынын абалы жөнүндө маалымат берет.
Китепкана ST MEMS үчүн гана иштелип чыккан. Башка MEMS сенсорлорун колдонууда функционалдуулук жана өндүрүмдүүлүк талданбайт жана документте сүрөттөлгөндөн олуттуу айырмаланышы мүмкүн.
А сampле ишке ашыруу NUCLEO-F01RE, NUCLEO-U3ZI-Q, NUCLEO-L4RE же NUCLEO-board боюнча орнотулган X-NUCLEO-IKS1A02, X-NUCLEO-IKS1A401 жана X-NUCLEO-IKS575A152 кеңейтүү тактасында жеткиликтүү.
2.2 MotionEC китепканасы
MotionEC API функцияларын жана параметрлерин толук сүрөттөгөн техникалык маалыматты MotionEC_Package.chm түзүлгөн HTMLден тапса болот. file Документация папкасында жайгашкан.
2.2.1 MotionEC китепканасынын сүрөттөлүшү
MotionEC E-Compass китепканасы акселерометрден жана магнитометрден алынган маалыматтарды башкарат; анын өзгөчөлүктөрү:
- аппараттын багыты (квартерниондор, Эйлер бурчтары), аппараттын айлануусу (виртуалдык гироскоптун функционалы), гравитация вектору жана сызыктуу ылдамдануу натыйжалары
- акселерометр жана магнитометр маалыматтарына гана негизделген функция
- зарыл акселерометр жана магнитометр маалыматтар sampжыштыгы 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 MotionEC API'лери
MotionEC API'лери:
- uint8_t MotionEC_GetLibVersion(char *версия)
– китепкананын версиясын чыгарат
– *версия 35 символдон турган массивдин көрсөткүчү
– версия сабындагы символдордун санын кайтарат
• void 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 китепканасын колдонуудан мурун чакырылышы керек жана STM32 микроконтроллериндеги CRC модулу (RCC перифериялык саатты иштетүү регистринде) китепкананы колдонуудан мурун иштетилиши керек
- void MotionEC_SetFrequency(сүзүү жыштыгы)
– s белгилейтampлинг жыштыгы (фильтрлөө параметрлерин өзгөртүү)
– жыштык – сенсор sampлинг жыштыгы [Гц] • 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] – μT/50 менен өлчөнгөн ENU конвенциясындагы магнитометрдин калибрленген маалыматтарынын массиви
◦ deltatime s - с менен ченелген дельта убакыты (б.а., эски жана жаңы маалымат топтомунун ортосундагы убакыт кечигүү).
– *data_out – бул чыгаруу маалыматтары бар структурага көрсөткүч
– MEC_output_t түзүмүнүн түрү үчүн параметрлер:
◦ quaternion[4] — ENU конвенциясындагы кватернионду камтыган массив, аппараттын мейкиндиктеги 3Dangular багытын билдирген; элементтердин тартиби: X, Y, Z, W, ар дайым оң элемент W менен
◦ euler[3] - ENU конвенциясындагы Эйлер бурчтарынын массиви, аппараттын мейкиндиктеги 3D-бурчтук багытын билдирет; элементтердин тартиби: град
◦ i_gyro[3] – ENU конвенциясындагы бурчтук ылдамдыктардын массивдери, dps менен өлчөнгөн виртуалдык гироскоптун сенсорун билдирет
◦ гравитация[3] — ENU конвенциясында г менен өлчөнгөн тартылуу векторун чагылдырган ылдамдатуу массивдери
◦ сызыктуу[3] - ENU конвенциясындагы ылдамдануу массивдери, г менен өлчөнгөн аппараттын сызыктуу ылдамдануусун билдирет
- void MotionEC_GetOrientationEnable(MEC_state_t *state)
– Эйлер бурчунун эсебин иштетүү/өчүрүү абалын алат
– *state – бул учурдагы иштетүү/өчүрүү абалынын көрсөткүчү - void MotionEC_SetOrientationEnable(MEC_state_t абалы)
– Эйлер бурчунун эсебин иштетүү/өчүрүү абалын орнотот
– абал – орнотула турган жаңы иштетүү/өчүрүү абалы - void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
– виртуалдык гироскоптун эсебин иштетүү/өчүрүү абалын алат
– *state – бул учурдагы иштетүү/өчүрүү абалынын көрсөткүчү - void MotionEC_SetVirtualGyroEnable(MEC_state_t абалы)
– виртуалдык гироскоптун эсебин иштетүү/өчүрүү абалын орнотот
– абал – орнотула турган жаңы иштетүү/өчүрүү абалы - void MotionEC_GetGravityEnable(MEC_state_t *state)
– гравитация векторунун эсебин иштетүү/өчүрүү абалын алат
– *state – бул учурдагы иштетүү/өчүрүү абалынын көрсөткүчү - void MotionEC_SetGravityEnable(MEC_state_t абалы)
– гравитация векторунун эсебин иштетүү/өчүрүү абалын орнотот
– абал – орнотула турган жаңы иштетүү/өчүрүү абалы - void MotionEC_GetLinearAccEnable(MEC_state_t *state)
– сызыктуу ылдамдануу эсебин иштетүү/өчүрүү абалын алат
– *state – бул учурдагы иштетүү/өчүрүү абалынын көрсөткүчү - void MotionEC_SetLinearAccEnable(MEC_state_t абалы)
– сызыктуу ылдамдануу эсебин иштетүү/өчүрүү абалын орнотот
– абал – орнотула турган жаңы иштетүү/өчүрүү абалы
2.2.3 API агым диаграммасы
2.2.4 Демо код
Төмөнкү демонстрация коду акселерометрден жана магнитометрден алынган маалыматтарды окуйт жана ECompass маалыматтарын алат (б.а., кватернион, Эйлер бурчтары ж.б.).
2.2.5 Алгоритмдин аткарылышы
E-Compass алгоритми акселерометрден жана магнитометрден алынган маалыматтарды гана колдонот. Ал электр энергиясын керектөөнү азайтуу үчүн төмөнкү жыштыкта (100 Гц чейин) иштейт.
Sample application
MotionEC орто программасын колдонуучу тиркемелерин түзүү үчүн оңой эле башкарса болот; катарыample колдонмо Колдонмо папкасында берилет.
Ал NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE же NUCLEO-L073RZ иштеп чыгуу тактасында X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1or X-NUCLEO02expansionboard менен иштөө үчүн иштелип чыккан.
Колдонмо реалдуу убакытта түзмөктүн багытын жана айлануусун тааныйт. Маалыматтар GUI аркылуу көрсөтүлүшү мүмкүн.
Алгоритм төмөнкү жыйынтыктарды берет: аппараттын багыты (квартерниондор, Эйлер бурчтары), аппараттын айлануусу (виртуалдык гироскоптун функционалдуулугу), тартылуу вектору жана сызыктуу ылдамдануу.
3.1 MEMS-Studio тиркемеси
Сample колдонмо MEMS-Studio тиркемесин колдонот, аны жүктөп алууга болот www.st.com.
1-кадам. Керектүү драйверлер орнотулганын жана тиешелүү кеңейтүү тактасы бар STM32 Nucleo тактасы компьютерге туташтырылганын текшериңиз.
2-кадам. Негизги колдонмо терезесин ачуу үчүн MEMS-Studio тиркемесин ишке киргизиңиз.
Эгер колдоого алынган микропрограммасы бар STM32 Nucleo тактасы компьютерге туташтырылса, тиешелүү COM порту автоматтык түрдө аныкталат. Баалоо тактасына байланыш түзүү үчүн [Connect] баскычын басыңыз.
3-кадам. Колдоого алынган микропрограммасы бар STM32 Nucleo тактасына туташтырылганда [Library Evaluation] өтмөгү ачылат.
Маалымат агымын баштоо жана токтотуу үчүн, тиешелүү [Старт] баскычын которуштуруу же [Токтотуу]
тышкы вертикалдуу куралдар тилкесиндеги баскыч.
туташкан сенсор келген маалыматтар болушу мүмкүн viewички вертикалдуу куралдар тилкесинде [Data Table] өтмөгүн тандоо.
4-кадам. Бул китепкана үчүн арналган бетти ачуу үчүн [Э-Компасты] басыңыз.
Жогорудагы сүрөттө STM32 Nucleo графикалык модели көрсөтүлгөн. Моделдин багыты жана айлануусу алгоритм менен эсептелген E-Compass маалыматтарына (кватерниондор) негизделген.
Түзмөктүн чыныгы кыймылын графикалык модель менен тегиздөө үчүн, аппаратты экранды көздөй каратып, [Модельди кайра орнотуу] баскычын басыңыз.
Аталышынын мааниси түзмөктүн чыныгы аталышын билдирет.
Түзмөктү түз өйдө же ылдый көрсөтүү (ENU маалымдама алкагынын өйдө огу боюнча, ±5 градуска толеранттуулук менен) рубрика үчүн N/A маанисин берет: аппарат кайсы негизги чекитти көрсөтүп жатканын айырмалоо мүмкүн эмес.
Жакшылыктын мааниси 0дөн 3кө чейинки маанилерди берет жана магнитометрдин калибрлөөсүнө байланыштуу: маани канчалык жогору болсо, E-Compass маалымат алгоритминин натыйжалары ошончолук жакшы болот.
5-кадам. [Сактоо үчүн File] маалымат журналын конфигурациялоо терезесин ачуу үчүн. сактала турган сенсор жана E-Compass маалыматтарын тандаңыз file. Тиешелүү баскычты чыкылдатуу менен сактоону баштасаңыз же токтотсоңуз болот.
6-кадам. Маалыматтарды киргизүү режими мурда алынган маалыматтарды китепканага жөнөтүү жана натыйжаны алуу үчүн колдонулушу мүмкүн. арналган ачуу үчүн тик куралдар тилкесинде [Data Injection] өтмөктү танда view бул функция үчүн.
7-кадам. тандоо үчүн [Browse] баскычын басыңыз file CSV форматында мурда алынган маалыматтар менен.
Маалыматтар учурдагы таблицага жүктөлөт view.
Башка баскычтар активдүү болот. Сиз бассаңыз болот:
– Микропрограмманын оффлайн режимин күйгүзүү/өчүрүү үчүн [Оффлайн режими] баскычы (мурда тартылган маалыматтарды колдонуу режими).
– [Start]/[Stop]/[Step]/[Repeat] баскычтары MEMS-Studio'дон китепканага берилиштер түрмөгүн башкаруу үчүн.
Шилтемелер
Төмөнкү ресурстардын бардыгы www.st.com сайтында эркин жеткиликтүү.
- UM1859: STM1Cube үчүн X-CUBE-MEMS32 кыймыл MEMS жана экологиялык сенсордук программалык камсыздоону кеңейтүү менен баштоо
- UM1724: STM32 Nucleo-64 такталары (MB1136)
- UM3233: MEMS-Studio менен баштоо
Ревизия тарыхы
Таблица 4. Документти кайра карап чыгуу тарыхы
Дата | Версия | Өзгөрүүлөр |
18-17-май | 1 | Алгачкы чыгаруу. |
25-январь-18 | 2 | NUCLEO-L152RE өнүктүрүү тактасына жана 2-таблицага шилтемелер кошулду. Өткөн убакыт (μs) алгоритми. |
21-март-18 | 3 | Жаңыртылган киришүү жана 2.1 MotionEC бөлүмү бүттүview. |
26-ноябрь-18 | 4 | Кошулган таблица 3. Cortex -M0+: өткөн убакыт (μs) алгоритми. ARM® шилтемелери кошулду Cortex® – M0+ жана NUCLEO-L073RZ өнүктүрүү тактасы. |
19-февраль, 19-ж | 5 | Жаңыланган 1-сүрөт. ENU маалымдама алкагы, таблица 2. Cortex -M4 жана Cortex-M3: өткөн убакыт (µs) алгоритми, 3-таблица. Cortex -M0+: өткөн убакыт (µs) алгоритми, 3-сүрөт. STM32ге туташтырылган сенсордук кеңейтүү тактасынын адаптери Nucleo, 4-сүрөт. Unicleo негизги терезеси, 5-сүрөт. Колдонуучунун билдирүүлөрү кошумча барагы, сүрөт 6. E-Compass терезеси жана сүрөт 7. Datalog терезеси. 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 соода белгилери жөнүндө кошумча маалымат алуу үчүн, караңыз www.st.com/trademarks. Бардык башка өнүм же кызмат аттары тиешелүү ээлеринин менчиги болуп саналат.
Бул документтеги маалымат бул документтин бардык мурунку версияларында мурда берилген маалыматтын ордун басат жана алмаштырат.
© 2024 STMicroelectronics – Бардык укуктар корголгон
Документтер / Ресурстар
![]() |
ST X-CUBE-MEMS1 MotionEC бул орто программалык китепкана [pdf] Колдонуучунун колдонмосу X-CUBE-MEMS1 MotionEC бул орто программа китепканасы, X-CUBE-MEMS1, MotionEC бул орто программа китепканасы, орто программа китепканасы, китепкана |