СТ Х - логотипUM2225
Руководство пользователя

Начало работы с библиотекой MotionEC Real-time 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.
Программное обеспечение поставляется сampРеализация le работает на плате расширения X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 или X-NUCLEO-IKS02A1 на плате разработки NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE или NUCLEO-L073RZ.

Акронимы и Аббревиатуры

Таблица 1. Список сокращений

Акроним Описание
API Интерфейс прикладного программирования
БСП Пакет поддержки платы
графический интерфейс Графический пользовательский интерфейс
ХЭЛ Уровень аппаратной абстракции
ИДЕ Интегрированная среда развития

Библиотека промежуточного программного обеспечения MotionEC в программном расширении X-CUBE-MEMS1 для STM32Cube

2.1 ДвижениеEC поview
Библиотека MotionEC расширяет функциональность программного обеспечения X-CUBE-MEMS1.
Библиотека получает данные с акселерометра и магнитометра и предоставляет информацию об ориентации устройства и состоянии движения на основе данных с устройства.
Библиотека предназначена только для ST MEMS. Функциональность и производительность при использовании других МЭМС-сенсоров не анализируются и могут существенно отличаться от описанных в документе.
КакampРеализация le доступна на плате расширения 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(char *version)
    – извлекает версию библиотеки
    – *версия – указатель на массив из 35 символов
    – возвращает количество символов в строке версии
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float freq)
    – выполняет инициализацию библиотеки MotionEC и настройку внутреннего механизма.
    – mcu_type – тип микроконтроллера:
    ◦ MFX_CM0P_MCU_STM32 — стандартный микроконтроллер STM32
    ◦ 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) необходимо включить перед использованием библиотеки.

  • void MotionEC_SetFrequency(плавающая частота)
    – устанавливает sampчастота линга (изменение параметров фильтрации)
    – частота датчика 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, измеряемый в g
    ◦ mag[3] — массив данных, откалиброванных магнитометром в соответствии с конвенцией ENU, измеряемый в мкТл/50
    ◦ deltatime s — это дельта-время (т.е. задержка между старым и новым набором данных), измеряемая в с
    – *data_out – указатель на структуру с выходными данными
    – параметры для типа структуры MEC_output_t:
    ◦ quaternion[4] — массив, содержащий кватернион в соответствии с соглашением ENU, представляющий 3D-угловую ориентацию устройства в пространстве; порядок элементов: X, Y, Z, W, причем элемент W всегда положительный
    ◦ euler[3] — массив углов Эйлера в системе обозначений ENU, представляющий трехмерную угловую ориентацию устройства в пространстве; порядок элементов: рыскание, тангаж, крен, измеряется в градусах
    ◦ i_gyro[3] — массив угловых скоростей в соответствии с конвенцией ENU, представляющий собой датчик виртуального гироскопа, измеряемый в dps
    ◦ гравитация[3] — это массив ускорений в системе ENU, представляющий вектор силы тяжести, измеряемый в g
    ◦ linear[3] — массив ускорений в соответствии с правилами ENU, представляющий линейное ускорение устройства, измеряемое в g
    ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения.
  • void MotionEC_GetOrientationEnable(MEC_state_t *state)
    – получает состояние включения/выключения вычисления угла Эйлера
    – *state – указатель на текущее состояние включения/выключения
  • void MotionEC_SetOrientationEnable(состояние MEC_state_t)
    – устанавливает состояние включения/выключения вычисления угла Эйлера
    – state – это новое состояние включения/выключения, которое необходимо установить
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *state)
    – получает состояние включения/выключения расчета виртуального гироскопа
    – *state – указатель на текущее состояние включения/выключения
  • void MotionEC_SetVirtualGyroEnable(состояние MEC_state_t)
    – устанавливает состояние включения/выключения расчета виртуального гироскопа
    – state – это новое состояние включения/выключения, которое необходимо установить
  • void MotionEC_GetGravityEnable(MEC_state_t *state)
    – получает состояние включения/выключения расчета вектора гравитации
    – *state – указатель на текущее состояние включения/выключения
  • void MotionEC_SetGravityEnable(состояние MEC_state_t)
    – устанавливает состояние включения/выключения расчета вектора гравитации
    – state – это новое состояние включения/выключения, которое необходимо установить
  • void MotionEC_GetLinearAccEnable(MEC_state_t *state)
    – получает состояние включения/выключения расчета линейного ускорения
    – *state – указатель на текущее состояние включения/выключения
  • void MotionEC_SetLinearAccEnable(состояние MEC_state_t)
    – устанавливает состояние включения/выключения расчета линейного ускорения
    – state – это новое состояние включения/выключения, которое необходимо установить

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 Гц) для снижения энергопотребления.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения — инъекция данных1

Sampле приложение

Промежуточное программное обеспечение MotionEC можно легко использовать для создания пользовательских приложений.ampФайл приложения находится в папке Application.
Он предназначен для работы на плате разработки NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE или NUCLEO-L073RZ, подключенной к плате расширения X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 или X-NUCLEO-IKS02A1.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения-адаптер

Приложение распознает ориентацию и поворот устройства в режиме реального времени. Данные могут быть отображены через графический интерфейс.
Алгоритм обеспечивает следующие выходные данные: ориентация устройства (кватернионы, углы Эйлера), вращение устройства (функциональность виртуального гироскопа), вектор силы тяжести и линейное ускорение.
3.1 Приложение MEMS-Studio
СampПриложение le использует приложение 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 — это библиотека промежуточного программного обеспечения — icon1 кнопка на внешней вертикальной панели инструментов.
Данные, поступающие от подключенного датчика, могут быть viewИзмените выбор вкладки [Таблица данных] на внутренней вертикальной панели инструментов.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения — таблица данных

Шаг 4. Нажмите на [E-Compass], чтобы открыть специальную страницу для этой библиотеки.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения — Compass

На рисунке выше показана модель STM32 Nucleo. Ориентация и вращение модели основаны на данных E-Compass (кватернионы), рассчитанных алгоритмом.
Чтобы совместить реальное движение устройства с графической моделью, направьте устройство на экран и нажмите кнопку [Сбросить модель].
Значение заголовка представляет собой реальный заголовок устройства.
Направление устройства прямо вверх или вниз (вдоль оси «вверх» системы отсчета ENU с допуском ±5 градусов) дает значение N/A для направления: невозможно определить, на какую сторону света указывает устройство.
Значение качества составляет от 0 до 3 значений и связано с калибровкой магнитометра: чем выше значение, тем лучше результаты алгоритма данных E-Compass.
Шаг 5. Нажмите [Сохранить в File] для открытия окна конфигурации регистрации данных. Выберите датчик и данные E-Compass, которые нужно сохранить в file. Вы можете начать или остановить сохранение, нажав на соответствующую кнопку.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения. Сохранить в File

Шаг 6. Режим Data Injection может использоваться для отправки ранее полученных данных в библиотеку и получения результата. Выберите вкладку [Data Injection] на вертикальной панели инструментов, чтобы открыть специальный view для этой функциональности.

ST X CUBE MEMS1 MotionEC — это библиотека промежуточного программного обеспечения — внедрение данных

Шаг 7. Нажмите кнопку [Обзор], чтобы выбрать file с ранее полученными данными в формате CSV.
Данные будут загружены в таблицу в текущем view.
Другие кнопки станут активными. Вы можете нажать на:
– Кнопка [Автономный режим] для включения/выключения автономного режима прошивки (режима, использующего ранее полученные данные).
– Кнопки [Старт]/[Стоп]/[Шаг]/[Повторить] для управления подачей данных из MEMS-Studio в библиотеку.

Ссылки

Все следующие ресурсы находятся в свободном доступе на сайте www.st.com.

  1. UM1859: Начало работы с МЭМС движения X-CUBE-MEMS1 и расширение программного обеспечения датчиков окружающей среды для STM32Cube
  2.  UM1724: платы STM32 Nucleo-64 (MB1136)
  3. UM3233: Начало работы с MEMS-Studio

История изменений

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

Дата Версия Изменения
18-мая-17 1 Первоначальный выпуск.
25-янв-18 2 Добавлены ссылки на плату разработки NUCLEO-L152RE и таблицу 2.
Алгоритм прошедшего времени (мкс).
21-мар-18 3 Обновлено введение и раздел 2.1 MotionECview.
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. Окно 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 — это библиотека промежуточного программного обеспечения, Библиотека промежуточного программного обеспечения, Библиотека

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *