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-L073 დაფაზე.
აბრევიატურა და აბრევიატურა
ცხრილი 1. აკრონიმების სია
აკრონიმი | აღწერა |
API | აპლიკაციის პროგრამირების ინტერფეისი |
BSP | საბჭოს მხარდაჭერის პაკეტი |
GUI | გრაფიკული მომხმარებლის ინტერფეისი |
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-L152OLEZE ან NUCLEO-L073.
2.2 MotionEC ბიბლიოთეკა
ტექნიკური ინფორმაცია, რომელიც სრულად აღწერს MotionEC API-ების ფუნქციებსა და პარამეტრებს, შეგიძლიათ იხილოთ MotionEC_Package.chm-ში შედგენილ HTML-ში. 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
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 (float სიხშირე)
– ადგენს სampლინგის სიხშირე (ფილტრაციის პარამეტრების შეცვლა)
- სიხშირე არის სენსორი sampლინგის სიხშირე [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-ში
◦ deltatime s არის დელტა დრო (ანუ დროის დაყოვნება ძველ და ახალ მონაცემთა ნაკრებებს შორის), რომელიც იზომება s-ში
– *data_out არის სტრუქტურის მაჩვენებელი გამომავალი მონაცემებით
– სტრუქტურის ტიპის MEC_output_t პარამეტრებია:
◦ კვატერნიონი[4] არის მასივი, რომელიც შეიცავს კვატერნიონს ENU-ის კონვენციაში, რომელიც წარმოადგენს მოწყობილობის 3 დანგრეულ ორიენტაციას სივრცეში; ელემენტების რიგია: X, Y, Z, W, ყოველთვის დადებითი ელემენტით W
◦ ეილერი[3] არის ეილერის კუთხეების მასივი ENU კონვენციით, რომელიც წარმოადგენს მოწყობილობის 3D-კუთხური ორიენტაციას სივრცეში; ელემენტების თანმიმდევრობაა: yaw, pitch, roll, იზომება გრადუსებში
◦ 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_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აპლიკაცია მოწოდებულია განაცხადის საქაღალდეში.
იგი შექმნილია NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE ან NUCLEO-L073RZ დეველოპერულ დაფაზე, რომელიც დაკავშირებულია X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1A02 ან X-Panex.
აპლიკაცია ცნობს მოწყობილობის ორიენტაციას და როტაციას რეალურ დროში. მონაცემების ჩვენება შესაძლებელია GUI-ის საშუალებით.
ალგორითმი იძლევა შემდეგ შედეგებს: მოწყობილობის ორიენტაცია (კვატერნიონები, ეილერის კუთხეები), მოწყობილობის ბრუნვა (ვირტუალური გიროსკოპის ფუნქციონირება), გრავიტაციის ვექტორი და ხაზოვანი აჩქარება.
3.1 MEMS-Studio აპლიკაცია
სample აპლიკაცია იყენებს MEMS-Studio აპლიკაციას, რომლის ჩამოტვირთვა შესაძლებელია www.st.com.
ნაბიჯი 1. დარწმუნდით, რომ დაყენებულია საჭირო დრაივერები და STM32 Nucleo დაფა შესაბამისი გაფართოების დაფით არის დაკავშირებული კომპიუტერთან.
ნაბიჯი 2. გაუშვით MEMS-Studio აპლიკაცია აპლიკაციის ძირითადი ფანჯრის გასახსნელად.
თუ STM32 Nucleo დაფა მხარდაჭერილი პროგრამული უზრუნველყოფით არის დაკავშირებული კომპიუტერთან, შესაბამისი COM პორტი ავტომატურად გამოვლინდება. დააჭირეთ ღილაკს [დაკავშირება] შეფასების დაფასთან კავშირის დასამყარებლად.
ნაბიჯი 3. მხარდაჭერილი პროგრამული უზრუნველყოფის მქონე STM32 Nucleo დაფასთან დაკავშირებისას იხსნება ჩანართი [Library Evaluation].
მონაცემთა ნაკადის დასაწყებად და შესაჩერებლად, გადართეთ შესაბამისი [დაწყება] ან [გაჩერება]
ღილაკი ხელსაწყოს გარე ვერტიკალურ ზოლზე.
დაკავშირებული სენსორიდან მიღებული მონაცემები შეიძლება იყოს viewაირჩიეთ [მონაცემთა ცხრილი] ჩანართი შიდა ვერტიკალური ხელსაწყოების ზოლზე.
ნაბიჯი 4. დააწკაპუნეთ [E-Compass]-ზე ამ ბიბლიოთეკისთვის გამოყოფილი გვერდის გასახსნელად.
ზემოთ მოყვანილი სურათი გვიჩვენებს STM32 Nucleo გრაფიკულ მოდელს. მოდელის ორიენტაცია და როტაცია ეფუძნება E-Compass მონაცემებს (კვატერნიონებს), რომლებიც გამოითვლება ალგორითმით.
მოწყობილობის რეალური მოძრაობის გრაფიკულ მოდელთან გასასწორებლად, მიმართეთ მოწყობილობა ეკრანისკენ და დააჭირეთ [Reset model].
სათაურის მნიშვნელობა წარმოადგენს მოწყობილობის რეალურ სათაურს.
მოწყობილობის პირდაპირ ზემოთ ან ქვევით მიმართვა (ENU საცნობარო ჩარჩოს ზემოთ ღერძის გასწვრივ, ± 5 გრადუსიანი ტოლერანტობით) იძლევა N/A მნიშვნელობას სათაურისთვის: შეუძლებელია იმის გარჩევა, თუ რომელ კარდინალურ წერტილზეა მიმართული მოწყობილობა.
სიკეთის მნიშვნელობა იძლევა 0-დან 3 მნიშვნელობას და დაკავშირებულია მაგნიტომეტრის კალიბრაციასთან: რაც უფრო მაღალია მნიშვნელობა, მით უკეთესი იქნება E-Compass მონაცემთა ალგორითმის შედეგები.
ნაბიჯი 5. დააწკაპუნეთ [Save to File] მონაცემთა აღრიცხვის კონფიგურაციის ფანჯრის გასახსნელად. აირჩიეთ სენსორი და E-Compass მონაცემები, რომლებიც შეინახება მასში file. შეგიძლიათ დაიწყოთ ან შეწყვიტოთ შენახვა შესაბამის ღილაკზე დაწკაპუნებით.
ნაბიჯი 6. მონაცემთა ინექციის რეჟიმი შეიძლება გამოყენებულ იქნას ბიბლიოთეკაში ადრე შეძენილი მონაცემების გასაგზავნად და შედეგის მისაღებად. აირჩიეთ [მონაცემთა ინექცია] ჩანართი ხელსაწყოების ვერტიკალურ ზოლზე, რათა გახსნათ გამოყოფილი view ამ ფუნქციონირებისთვის.
ნაბიჯი 7. დააჭირეთ ღილაკს [Browse] ასარჩევად file ადრე აღებული მონაცემებით CSV ფორმატში.
მონაცემები ჩაიტვირთება ცხრილში მიმდინარე view.
სხვა ღილაკები გააქტიურდება. შეგიძლიათ დააჭიროთ:
– [Offline Mode] ღილაკი ჩართვის/გამორთვის პროგრამული უზრუნველყოფის ოფლაინ რეჟიმის ჩართვისთვის (რეჟიმი, რომელიც იყენებს ადრე გადაღებულ მონაცემებს).
– [დაწყება]/[შეჩერება]/[ნაბიჯი]/[გამეორება] ღილაკები MEMS-Studio-დან ბიბლიოთეკაში მონაცემთა მიწოდების გასაკონტროლებლად.
ცნობები
ყველა შემდეგი რესურსი თავისუფლად არის ხელმისაწვდომი www.st.com-ზე.
- UM1859: დაწყება X-CUBE-MEMS1 მოძრაობის MEMS-ით და გარემოს სენსორის პროგრამული გაფართოებით 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: ს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 ბიბლიოთეკა, X-CUBE-MEMS1, MotionEC არის Middleware ბიბლიოთეკა, Middleware Library, Library |