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.
Софтверот доаѓа со сampимплементацијата работи на X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1или X-NUCLEO-IKS02A1 плочка за проширување на NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE-L073C.

Акроними и кратенки

Табела 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-L152RLEO-или табла за развој.
2.2 MotionEC библиотека
Техничките информации кои целосно ги опишуваат функциите и параметрите на MotionEC API може да се најдат во составениот HTML на MotionEC_Package.chm file се наоѓа во папката Documentation.

2.2.1 Опис на библиотеката MotionEC
Библиотеката MotionEC E-Compass управува со податоците добиени од акцелерометарот и магнетометарот; се одликува со:

  • ориентација на уредот (кватерниони, Ојлерови агли), ротација на уредот (функционалност на виртуелен жироскоп), вектор на гравитација и излези за линеарно забрзување
  • функционалност базирана само на податоците за акцелерометарот и магнетометарот
  • потребни податоци за акцелерометар и магнетометар sampЛинг фреквенција до 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 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фреквенција на линг [Hz]

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

  • void MotionEC_SetFrequency (пловечка фреквенција)
    – поставува сampфреквенција на линг (модифицирање на параметрите за филтрирање)
    – фреквенцијата е сензорот sampфреквенција на линг [Hz] • Void MotionEC_Run (MEC_влез_t *податоци_влез, MEC_излез_t *податоци_излез)
    - го извршува алгоритмот E-Compass (фузија на податоци за акцелерометар и магнетометар)
    – *data_in е покажувач на структура со влезни податоци
    – параметрите за типот на структурата MEC_input_t се:
    ◦ acc[3] е низа од акцелерометарски податоци во конвенцијата ENU, мерени во g
    ◦ mag[3] е низа од калибрирани податоци со магнетометар во ENU конвенцијата, измерена во μT/50
    ◦ делтавреме s е делта време (т.е. временско доцнење помеѓу старото и новото множество податоци) мерено во s
    – *data_out е покажувач на структура со излезни податоци
    – параметрите за типот на структурата MEC_output_t се:
    ◦ кватернион[4] е низа што содржи кватернион во ENU конвенцијата, што ја претставува 3Даголната ориентација на уредот во просторот; Редоследот на елементите е: X, Y, Z, W, со секогаш позитивен елемент W
    ◦ Ојлер[3] е низа од Ојлерови агли во ENU конвенцијата, што ја претставува 3D-аголната ориентација на уредот во вселената; редоследот на елементите е: скржав, чекор, ролна, мерено во степени
    ◦ i_gyro[3] е низа од аголни стапки во ENU конвенцијата, што претставува виртуелен сензор за жироскоп, мерено во dps
    ◦ гравитацијата[3] е низа од забрзувања во конвенцијата ENU, што го претставува векторот на гравитацијата, измерена во g
    ◦ линеарно[3] е низа од забрзувања во конвенцијата ENU, што го претставува линеарното забрзување на уредот, мерено во g
    ST X CUBE MEMS1 MotionEC е Middleware Library-
  • void MotionEC_GetOrientationEnable(MEC_state_t *состојба)
    – ја добива состојбата за овозможување/оневозможување на пресметката на Ојлеровиот агол
    – *state е покажувач на моменталната состојба за вклучување/оневозможување
  • void MotionEC_SetOrientationEnable (состојба MEC_state_t)
    – ја поставува состојбата на овозможување/оневозможување на пресметката на Ојлеровиот агол
    – состојба е новата состојба за овозможување/оневозможување што треба да се постави
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *состојба)
    – ја добива состојбата за овозможување/оневозможување на пресметката на виртуелниот жироскоп
    – *state е покажувач на моменталната состојба за вклучување/оневозможување
  • void MotionEC_SetVirtualGyroEnable (состојба MEC_state_t)
    – ја поставува состојбата на овозможување/оневозможување на пресметката на виртуелниот жироскоп
    – состојба е новата состојба за овозможување/оневозможување што треба да се постави
  • void MotionEC_GetGetGvityEnable(MEC_state_t *состојба)
    – ја добива состојбата на овозможување/оневозможување на пресметката на векторот на гравитацијата
    – *state е покажувач на моменталната состојба за вклучување/оневозможување
  • void MotionEC_SetGravityEnable (состојба MEC_state_t)
    – ја поставува состојбата на овозможување/оневозможување на пресметката на векторот на гравитацијата
    – состојба е новата состојба за овозможување/оневозможување што треба да се постави
  • void MotionEC_GetLinearAccEnable(MEC_state_t *состојба)
    – ја добива состојбата на овозможување/оневозможување на пресметката на линеарното забрзување
    – *state е покажувач на моменталната состојба за вклучување/оневозможување
  • void MotionEC_SetLinearAccEnable(MEC_state_t состојба)
    – ја поставува состојбата на овозможување/оневозможување на пресметката на линеарното забрзување
    – состојба е новата состојба за овозможување/оневозможување што треба да се постави

2.2.3 Графикон на тек на API

ST X CUBE MEMS1 MotionEC е секвенца на Middleware Library

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

ST X CUBE MEMS1 MotionEC е Middleware Library- Демо-кодST X CUBE MEMS1 MotionEC е библиотека на Middleware- Демо код1

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

ST X CUBE MEMS1 MotionEC е Middleware Library- Data Injection1

Sampле апликација

Средниот софтвер MotionEC може лесно да се манипулира за да се изградат кориснички апликации; какоampАпликацијата е обезбедена во папката Апликација.
Дизајниран е да работи на развојна плоча NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE или NUCLEO-L073RZ поврзана со X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1A02 или X-panexsion.

ST X CUBE MEMS1 MotionEC е адаптер за Middleware Library

Апликацијата ја препознава ориентацијата и ротацијата на уредот во реално време. Податоците може да се прикажат преку GUI.
Алгоритмот ги обезбедува следните излези: ориентација на уредот (кватерниони, Ојлерови агли), ротација на уредот (функционалност на виртуелен жироскоп), вектор на гравитација и линеарно забрзување.
3.1 Апликација MEMS-Studio
С.ampLe апликацијата ја користи апликацијата MEMS-Studio, која може да се преземе од www.st.com.
Чекор 1. Проверете дали се инсталирани потребните драјвери и дека плочата STM32 Nucleo со соодветна плоча за проширување е поврзана со компјутерот.
Чекор 2. Стартувајте ја апликацијата MEMS-Studio за да го отворите главниот прозорец на апликацијата.
Ако на компјутерот е поврзана плочка STM32 Nucleo со поддржан фирмвер, соодветната COM порта автоматски се открива. Притиснете го копчето [Поврзи] за да воспоставите врска со таблата за оценување.

ST X CUBE MEMS1 MotionEC е Middleware Library- Connect

Чекор 3. Кога е поврзан на плочка STM32 Nucleo со поддржан фирмвер, се отвора табот [Evaluation на библиотеката].
За да започнете и прекинете преносот на податоци, вклучете го соодветното [Start] ST X CUBE MEMS1 MotionEC е икона на Middleware Library или [Стоп] ST X CUBE MEMS1 MotionEC е Middleware Library- икона1 копче на надворешната вертикална лента со алатки.
Податоците кои доаѓаат од поврзаниот сензор може да бидат viewсо избирање на јазичето [Data Table] на внатрешната вертикална лента со алатки.

ST X CUBE MEMS1 MotionEC е библиотека на Middleware- Табела со податоци

Чекор 4. Кликнете на [E-Compass] за да ја отворите посветената страница за оваа библиотека.

ST X CUBE MEMS1 MotionEC е Middleware Library- Compass

Сликата погоре покажува графички модел STM32 Nucleo. Ориентацијата и ротацијата на моделот се засноваат на податоците од E-Compass (кватерниони) пресметани со алгоритмот.
За да го усогласите вистинското движење на уредот со графичкиот модел, насочете го уредот кон екранот и притиснете го [Reset model].
Вредноста на насловот го претставува вистинскиот наслов на уредот.
Упатувањето на уредот директно нагоре или надолу (по оската нагоре на референтната рамка ENU, со толеранција ± 5 степени) дава N/A вредност за насловот: не е можно да се разликува кон која основна точка е насочен уредот.
Вредноста на добрината дава од 0 до 3 вредности и е поврзана со калибрацијата на магнетометарот: колку е поголема вредноста, толку подобри се резултатите од податочниот алгоритам E-Compass.
Чекор 5. Кликнете на [Зачувај во File] за да го отворите прозорецот за конфигурација на даталог. Изберете ги податоците од сензорот и E-Compass што ќе се зачуваат во file. Можете да започнете или прекинете со зачувувањето со кликнување на соодветното копче.

ST X CUBE MEMS1 MotionEC е библиотека на Middleware- Зачувај во File

Чекор 6. Режимот за вбризгување на податоци може да се користи за испраќање на претходно добиените податоци во библиотеката и примање на резултатот. Изберете го табот [Data Injection] на вертикалната лента со алатки за да ја отворите посветената view за оваа функционалност.

ST X CUBE MEMS1 MotionEC е библиотека на Middleware- Инјекција на податоци

Чекор 7. Кликнете на копчето [Browse] за да го изберете file со претходно снимените податоци во CSV формат.
Податоците ќе бидат вчитани во табелата во тековната view.
Другите копчиња ќе станат активни. Можете да кликнете на:
– Копче [Offline Mode] за вклучување/исклучување на офлајн режимот на фирмверот (режим што ги користи претходно снимените податоци).
– Копчињата [Start]/[Stop]/[Step]/[Repeat] за да го контролираат доводот на податоци од MEMS-Studio до библиотеката.

Референци

Сите следни ресурси се слободно достапни на www.st.com.

  1. UM1859: Започнуваме со X-CUBE-MEMS1 движење 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 MotionEC завршиview.
26-ноември-18 4 Додадена табела 3. Кортекс -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. Прозорец за е-компас и Слика 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 е библиотека на Middleware [pdf] Упатство за сопственикот
X-CUBE-MEMS1 MotionEC е Middleware Library, X-CUBE-MEMS1, MotionEC е Middleware Library, Middleware Library, Library

Референци

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

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *