ST X - лого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 сензори не се анализират и могат значително да се различават от описаното в документа.
A sampизпълнението е налично на платка за разширение 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 Hz
  • изисквания за ресурси:
    – Cortex-M0+: 3.7 kB код и 0.1 kB памет за данни
    – Cortex-M3: 3.8 kB код и 0.1 kB памет за данни
    – Cortex-M33: 2.8 kB код и 0.1 kB памет за данни
    – Cortex-M4: 2.9 kB код и 0.1 kB памет за данни
    – Cortex-M7: 2.8 kB код и 0.1 kB памет за данни
  • наличен за ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 и Cortex M7 архитектури

2.2.2 API на MotionEC
API на MotionEC са:

  • uint8_t MotionEC_GetLibVersion(char *версия)
    – извлича версията на библиотеката
    – *version е указател към масив от 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
    – freq е сензорът sampлинг честота [Hz]

Забележка: Тази функция трябва да бъде извикана, преди да се използва библиотеката на E-Compass, а CRC модулът в микроконтролера STM32 (в регистъра за активиране на периферен часовник на RCC) трябва да бъде активиран, преди да се използва библиотеката

  • void MotionEC_SetFrequency(плаваща честота)
    – задава sampлинг честота (промяна на параметрите на филтриране)
    – freq е сензорът sampling честота [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – изпълнява алгоритъма E-Compass (сливане на данни от акселерометър и магнитометър)
    – *data_in е указател към структура с входни данни
    – параметрите за структурния тип MEC_input_t са:
    ◦ acc[3] е масив от данни от акселерометър в конвенцията на ENU, измерен в g
    ◦ mag[3] е масив от калибрирани от магнитометър данни в конвенцията ENU, измерен в μT/50
    ◦ deltatime s е делта времето (т.е. забавяне във времето между стария и новия набор от данни), измерено в s
    – *data_out е указател към структура с изходни данни
    – параметрите за структурния тип MEC_output_t са:
    ◦ quaternion[4] е масив, съдържащ кватернион в ENU конвенцията, представляващ 3Dangular ориентация на устройството в пространството; редът на елементите е: X, Y, Z, W, с винаги положителен елемент W
    ◦ euler[3] е масив от ъгли на Ойлер в конвенцията на ENU, представляващи 3D-ъгловата ориентация на устройството в пространството; редът на елементите е: отклонение, наклон, накланяне, измерено в градуси
    ◦ i_gyro[3] е масив от ъглови скорости в конвенцията на ENU, представляващ сензор за виртуален жироскоп, измерен в dps
    ◦ gravity[3] е масив от ускорения в конвенцията на ENU, представляващ вектора на гравитацията, измерен в g
    ◦ linear[3] е масив от ускорения в конвенцията ENU, представляващ линейното ускорение на устройството, измерено в g
    ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер -
  • 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

ST X CUBE MEMS1 MotionEC е последователност от библиотека на мидълуер

2.2.4 Демо код
Следният демонстрационен код чете данни от сензорите на акселерометъра и магнитометъра и получава данните от ECompass (т.е. кватернион, ъгли на Ойлер и т.н.).

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Демо кодST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Демо код1

2.2.5 Изпълнение на алгоритъма
Алгоритъмът E-Compass използва данни само от акселерометъра и магнитометъра. Работи на ниска честота (до 100 Hz), за да намали консумацията на енергия.

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Инжектиране на данни1

Sampприложение

Мидълуерът MotionEC може лесно да се манипулира за изграждане на потребителски приложения; катоample приложение се предоставя в папката Application.
Той е проектиран да работи на платка за разработка NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE или NUCLEO-L073RZ, свързана с разширителна платка X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 или X-NUCLEO-IKS02A1.

ST X CUBE MEMS1 MotionEC е адаптер за библиотека за междинен софтуер

Приложението разпознава ориентацията и въртенето на устройството в реално време. Данните могат да се показват чрез GUI.
Алгоритъмът предоставя следните резултати: ориентация на устройството (кватерниони, ъгли на Ойлер), въртене на устройството (функционалност на виртуален жироскоп), гравитационен вектор и линейно ускорение.
3.1 Приложение MEMS-Studio
В sample използва приложението MEMS-Studio, което може да бъде изтеглено от www.st.com.
Стъпка 1. Уверете се, че необходимите драйвери са инсталирани и платката STM32 Nucleo с подходяща разширителна платка е свързана към компютъра.
Стъпка 2. Стартирайте приложението MEMS-Studio, за да отворите главния прозорец на приложението.
Ако STM32 Nucleo платка с поддържан фърмуер е свързана към компютъра, подходящият COM порт се открива автоматично. Натиснете бутона [Свързване], за да установите връзка с таблото за оценка.

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Connect

Стъпка 3. При свързване към платка STM32 Nucleo с поддържан фърмуер се отваря раздел [Оценка на библиотеката].
За да стартирате и спрете поточно предаване на данни, превключете съответния [Старт] ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - икона или [стоп] ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - икона1 бутон на външната вертикална лента с инструменти.
Данните, идващи от свързания сензор, могат да бъдат viewизберете раздела [Таблица с данни] във вътрешната вертикална лента с инструменти.

ST X CUBE MEMS1 MotionEC е библиотека с данни за мидълуер

Стъпка 4. Щракнете върху [E-Compass], за да отворите специалната страница за тази библиотека.

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Compass

Фигурата по-горе показва графичен модел STM32 Nucleo. Ориентацията и въртенето на модела се основават на данни от E-Compass (кватерниони), изчислени от алгоритъма.
За да изравните реалното движение на устройството с графичния модел, насочете устройството към екрана и натиснете [Reset model].
Стойността на заглавието представлява реалното заглавие на устройството.
Насочването на устройството право нагоре или надолу (по оста нагоре на референтната рамка на ENU, с ±5 градуса толеранс) дава стойност N/A за заглавието: не е възможно да се разграничи към коя кардинална точка сочи устройството.
Стойността на добротата дава от 0 до 3 стойности и е свързана с калибрирането на магнитометъра: колкото по-висока е стойността, толкова по-добри са резултатите от алгоритъма за данни на E-Compass.
Стъпка 5. Кликнете върху [Запазване в File], за да отворите прозореца за конфигуриране на регистрация на данни. Изберете данните от сензора и електронния компас, които да бъдат записани в file. Можете да започнете или спрете записването, като щракнете върху съответния бутон.

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Запазване в File

Стъпка 6. Режимът за въвеждане на данни може да се използва за изпращане на получените преди това данни в библиотеката и получаване на резултата. Изберете раздела [Инжектиране на данни] на вертикалната лента с инструменти, за да отворите предназначения view за тази функционалност.

ST X CUBE MEMS1 MotionEC е библиотека за междинен софтуер - Инжектиране на данни

Стъпка 7. Щракнете върху бутона [Преглед], за да изберете file с предварително заснетите данни в CSV формат.
Данните ще бъдат заредени в таблицата в текущия view.
Други бутони ще станат активни. Можете да кликнете върху:
– Бутон [Офлайн режим] за включване/изключване на офлайн режима на фърмуера (режим, използващ предварително заснетите данни).
– Бутони [Старт]/[Стоп]/[Стъпка]/[Повторение] за управление на подаването на данни от MEMS-Studio към библиотеката.

Референции

Всички изброени по-долу ресурси са свободно достъпни на www.st.com.

  1. UM1859: Първи стъпки с X-CUBE-MEMS1 motion MEMS и софтуерно разширение на сензора за околната среда за STM32Cube
  2.  UM1724: STM32 Nucleo-64 платки (MB1136)
  3. UM3233: Първи стъпки с MEMS-Studio

История на ревизиите

Таблица 4. История на ревизии на документа

Дата Версия Промени
18 май 17 г 1 Първоначално издание.
25-януари-18 2 Добавени са препратки към платката за разработка NUCLEO-L152RE и Таблица 2.
Алгоритъм за изминало време (μs).
21-Мар-18 3 Актуализирано въведение и раздел 2.1 MotionECview.
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: Sample
приложение, Раздел 3.1: Приложение MEMS-Studio

ВАЖНО СЪОБЩЕНИЕ – ПРОЧЕТЕТЕ ВНИМАТЕЛНО
STMicroelectronics NV и нейните дъщерни дружества („ST“) си запазват правото да правят промени, корекции, подобрения, модификации и подобрения на ST продуктите и/или на този документ по всяко време без предизвестие. Купувачите трябва да получат най-новата подходяща информация за продуктите на ST, преди да направят поръчки. Продуктите на ST се продават в съответствие с правилата и условията за продажба на ST в момента на потвърждаване на поръчката.
Купувачите са изцяло отговорни за избора, подбора и използването на продуктите на ST и ST не поема отговорност за помощ при прилагането или дизайна на продуктите на купувачите.
Никакъв лиценз, изричен или подразбиращ се, за права върху интелектуална собственост не се предоставя от ST тук.
Препродажбата на продукти на ST с условия, различни от информацията, посочена тук, анулира всяка гаранция, предоставена от ST за такъв продукт.
ST и логото на ST са търговски марки на ST. За допълнителна информация относно търговските марки ST вижте www.st.com/търговски марки. Всички други имена на продукти или услуги са собственост на съответните им собственици.
Информацията в този документ отменя и заменя информацията, предоставена преди това в предишни версии на този документ.

© 2024 STMicroelectronics – Всички права запазени

Документи / Ресурси

ST X-CUBE-MEMS1 MotionEC е библиотека за междинен софтуер [pdf] Ръководство за употреба
X-CUBE-MEMS1 MotionEC е библиотека за междинен софтуер, X-CUBE-MEMS1, MotionEC е библиотека за междинен софтуер, библиотека за междинен софтуер, библиотека

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *