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 را آسان کند.
نرم افزار همراه با sampاجرای بر روی برد توسعه X-NUCLEO-IKS01A3، X-NUCLEO-IKS4A1 یا X-NUCLEO-IKS02A1 بر روی برد توسعه NUCLEO-F401RE، NUCLEO-U575ZI-Q، NUCLEO-L152RE-L073RE یا NUXNUMXC.
مخفف ها و اختصارات
جدول 1. فهرست کلمات اختصاری
مخفف | توضیحات |
API | رابط برنامه نویسی برنامه |
BSP | بسته پشتیبانی هیئت مدیره |
رابط کاربری گرافیکی | رابط کاربری گرافیکی |
HAL | لایه انتزاع سخت افزار |
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-L152RLE، نصب شده است.
2.2 کتابخانه MotionEC
اطلاعات فنی که به طور کامل عملکردها و پارامترهای APIهای MotionEC را توصیف می کند را می توان در HTML کامپایل شده MotionEC_Package.chm یافت. file در پوشه Documentation قرار دارد.
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 MotionEC API
API های MotionEC عبارتند از:
- 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 یک MCU استاندارد STM32 است
◦ MFX_CM0P_MCU_BLUE_NRG1 BlueNRG-1 است
◦ MFX_CM0P_MCU_BLUE_NRG2 BlueNRG-2 است
◦ MFX_CM0P_MCU_BLUE_NRG_LP BlueNRG -LP است
- فرکانس سنسور s استampفرکانس لینگ [Hz]
توجه: این تابع باید قبل از استفاده از کتابخانه E-Compass فراخوانی شود و ماژول CRC در میکروکنترلر STM32 (در ثبت نام ساعت محیطی RCC) قبل از استفاده از کتابخانه باید فعال شود.
- void MotionEC_SetFrequency (فرکانس شناور)
– s را تنظیم می کندampفرکانس لینگ (تغییر پارامترهای فیلترینگ)
- فرکانس سنسور s استampفرکانس لینگ [Hz] • 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 است که در μT/50 اندازه گیری می شود.
◦ زمان دلتا s زمان دلتا (یعنی تاخیر زمانی بین مجموعه داده های قدیمی و جدید) است که بر حسب ثانیه اندازه گیری می شود.
– *data_out یک اشاره گر به یک ساختار با داده های خروجی است
– پارامترهای نوع ساختار MEC_output_t عبارتند از:
◦ کواترنیون[4] آرایه ای است که شامل کواترنیون در کنوانسیون ENU است که جهت گیری 3Dangular دستگاه را در فضا نشان می دهد. ترتیب عناصر عبارتند از: X، Y، Z، W، با عنصر همیشه مثبت W
◦ اویلر[3] آرایه ای از زوایای اویلر در کنوانسیون ENU است که جهت گیری زاویه ای سه بعدی دستگاه را در فضا نشان می دهد. ترتیب عناصر عبارتند از: انحراف، زمین، رول، اندازه گیری در درجه
◦ i_gyro[3] آرایهای از نرخهای زاویهای در کنوانسیون ENU است که نشاندهنده یک سنسور ژیروسکوپ مجازی است که در dps اندازهگیری میشود.
◦ گرانش[3] آرایه ای از شتاب ها در کنوانسیون ENU است که نشان دهنده بردار گرانش است که در g اندازه گیری می شود.
◦ خطی[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_GetGetGravityEnable(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 هرتز) کار می کند.
Sampبرنامه کاربردی
میان افزار MotionEC را می توان به راحتی برای ساخت برنامه های کاربردی دستکاری کرد. به عنوانampبرنامه le در پوشه Application ارائه شده است.
این برای اجرا بر روی یک برد توسعه NUCLEO-F401RE، NUCLEO-U575ZI-Q، NUCLEO-L152RE یا NUCLEO-L073RZ طراحی شده است که به یک برد X-NUCLEO-IKS01A3، X-NUCLEO-IKS4A1 یا X-panexsion.
این برنامه جهت گیری و چرخش دستگاه را در زمان واقعی تشخیص می دهد. داده ها را می توان از طریق رابط کاربری گرافیکی نمایش داد.
این الگوریتم خروجی های زیر را ارائه می دهد: جهت گیری دستگاه (کواترنیون ها، زوایای اویلر)، چرخش دستگاه (عملکرد ژیروسکوپ مجازی)، بردار گرانش و شتاب خطی.
3.1 برنامه MEMS-Studio
sampبرنامه le از برنامه MEMS-Studio استفاده می کند که می توان آن را دانلود کرد www.st.com.
مرحله 1. مطمئن شوید که درایورهای لازم نصب شده اند و برد STM32 Nucleo با برد توسعه مناسب به رایانه شخصی متصل است.
مرحله 2. برنامه MEMS-Studio را اجرا کنید تا پنجره اصلی برنامه باز شود.
اگر یک برد STM32 Nucleo با سیستم عامل پشتیبانی شده به رایانه شخصی متصل شود، پورت COM مناسب به طور خودکار شناسایی می شود. دکمه [اتصال] را فشار دهید تا اتصال به هیئت ارزیابی برقرار شود.
مرحله 3. هنگام اتصال به برد STM32 Nucleo با سیستم عامل پشتیبانی شده، برگه [ارزیابی کتابخانه] باز می شود.
برای شروع و توقف جریان داده، [شروع] مناسب را تغییر دهید یا [توقف]
دکمه روی نوار ابزار عمودی بیرونی.
داده های حاصل از سنسور متصل می تواند باشد viewبرگه [Data Table] را در نوار ابزار عمودی داخلی انتخاب کنید.
مرحله 4. روی [E-Compass] کلیک کنید تا صفحه اختصاصی این کتابخانه باز شود.
شکل بالا یک مدل گرافیکی STM32 Nucleo را نشان می دهد. جهت گیری و چرخش مدل بر اساس داده های قطب نمای الکترونیکی (کواترنیون ها) محاسبه شده توسط الگوریتم است.
برای تراز کردن حرکت واقعی دستگاه با مدل گرافیکی، دستگاه را به سمت صفحه نمایش بگیرید و [Reset model] را فشار دهید.
مقدار عنوان نشان دهنده عنوان واقعی دستگاه است.
نشان دادن دستگاه مستقیماً به سمت بالا یا پایین (در امتداد محور بالا قاب مرجع ENU، با تحمل ± 5 درجه) مقدار N/A را برای عنوان نشان می دهد: نمی توان تشخیص داد که دستگاه به کدام نقطه اصلی اشاره می کند.
مقدار خوب 0 تا 3 مقدار می دهد و مربوط به کالیبراسیون مغناطیس سنج است: هر چه مقدار بالاتر باشد، نتایج الگوریتم داده E-Compass بهتر است.
مرحله 5. روی [ذخیره در File] برای باز کردن پنجره پیکربندی dataloging. داده های سنسور و E-Compass را برای ذخیره در آن انتخاب کنید file. با کلیک بر روی دکمه مربوطه می توانید ذخیره را شروع یا متوقف کنید.
مرحله 6. از حالت تزریق داده می توان برای ارسال داده های به دست آمده قبلی به کتابخانه و دریافت نتیجه استفاده کرد. برگه [تزریق داده] را در نوار ابزار عمودی انتخاب کنید تا قسمت اختصاصی باز شود view برای این قابلیت
مرحله 7. برای انتخاب روی دکمه [Browse] کلیک کنید file با داده های قبلی گرفته شده در قالب CSV.
داده ها در جدول در جریان بارگذاری می شوند view.
دکمه های دیگر فعال خواهند شد. می توانید روی:
– دکمه [حالت آفلاین] برای روشن/خاموش کردن حالت آفلاین سیستم عامل (حالتی که از داده های قبلی گرفته شده استفاده می کند).
– دکمه های [Start]/[Stop]/[Step]/[Repeat] برای کنترل فید داده از 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 اضافه شد. الگوریتم زمان سپری شده (μ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: Sample برنامه، بخش 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 یک کتابخانه میان افزار است، X-CUBE-MEMS1، MotionEC یک کتابخانه میان افزار است، کتابخانه میان افزار، کتابخانه |