UM2225
Panduan pengguna
Memulai dengan pustaka E-Compass real-time MotionEC dalam ekspansi X-CUBE-MEMS1 untuk STM32Cube
Perkenalan
MotionEC adalah komponen pustaka middleware dari perangkat lunak X-CUBE-MEMS1 dan berjalan pada STM3z2. Komponen ini menyediakan informasi real-time tentang orientasi perangkat dan status pergerakan berdasarkan data dari perangkat.
Memberikan keluaran berikut: orientasi perangkat (kuaternion, sudut Euler), rotasi perangkat (fungsionalitas giroskop virtual), vektor gravitasi dan percepatan linear.
Perpustakaan ini dimaksudkan untuk bekerja dengan ST MEMS saja.
Algoritma ini disediakan dalam format pustaka statis dan dirancang untuk digunakan pada mikrokontroler STM32 berdasarkan arsitektur ARM® Cortex®-M0+, ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 dan ARM® Cortex®-M7.
Ini dibangun di atas teknologi perangkat lunak STM32Cube untuk memudahkan portabilitas di berbagai mikrokontroler STM32.
Perangkat lunak ini dilengkapi dengan sampImplementasinya berjalan pada papan ekspansi X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1, atau X-NUCLEO-IKS02A1 pada papan pengembangan NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE, atau NUCLEO-L073RZ.
Akronim dan singkatan
Tabel 1. Daftar akronim
Akronim | Keterangan |
API | Antarmuka pemrograman aplikasi |
BSP | Paket dukungan papan |
Antarmuka Pengguna (GUI) | Antarmuka pengguna grafis |
HAL | Lapisan abstraksi perangkat keras |
ide | Lingkungan pengembangan terintegrasi |
Pustaka middleware MotionEC dalam perluasan perangkat lunak X-CUBE-MEMS1 untuk STM32Cube
2.1 MotionEC selesaiview
Pustaka MotionEC memperluas fungsionalitas perangkat lunak X-CUBE-MEMS1.
Pustaka memperoleh data dari akselerometer dan magnetometer dan menyediakan informasi tentang orientasi perangkat dan status pergerakan berdasarkan data dari perangkat.
Perpustakaan dirancang hanya untuk ST MEMS. Fungsionalitas dan kinerja saat menggunakan sensor MEMS lainnya tidak dianalisis dan mungkin berbeda secara signifikan dari yang dijelaskan dalam dokumen.
SebagaiampImplementasinya tersedia pada papan ekspansi X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 dan X-NUCLEO-IKS02A1, yang dipasang pada papan pengembangan NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE atau NUCLEO-L073RZ.
2.2 Pustaka MotionEC
Informasi teknis yang sepenuhnya menjelaskan fungsi dan parameter API MotionEC dapat ditemukan di HTML MotionEC_Package.chm yang dikompilasi file terletak di folder Dokumentasi.
2.2.1 Deskripsi pustaka MotionEC
Pustaka MotionEC E-Compass mengelola data yang diperoleh dari accelerometer dan magnetometer; pustaka ini memiliki fitur:
- orientasi perangkat (kuaternion, sudut Euler), rotasi perangkat (fungsi giroskop virtual), vektor gravitasi dan keluaran percepatan linier
- fungsionalitas berdasarkan data accelerometer dan magnetometer saja
- data accelerometer dan magnetometer yang dibutuhkanampfrekuensi ling hingga 100 Hz
- kebutuhan sumber daya:
– Cortex-M0+: 3.7 kB kode dan 0.1 kB memori data
– Cortex-M3: 3.8 kB kode dan 0.1 kB memori data
– Cortex-M33: 2.8 kB kode dan 0.1 kB memori data
– Cortex-M4: 2.9 kB kode dan 0.1 kB memori data
– Cortex-M7: 2.8 kB kode dan 0.1 kB memori data - tersedia untuk arsitektur ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 dan Cortex M7
2.2.2 API MotionEC
API MotionEC adalah:
- uint8_t MotionEC_GetLibVersion(char *versi)
– mengambil versi perpustakaan
– *version adalah penunjuk ke array 35 karakter
– mengembalikan jumlah karakter dalam string versi
• batalkan MotionEC_Initialize(MEC_mcu_type_t tipe_mcu, frekuensi float)
– melakukan inisialisasi pustaka MotionEC dan pengaturan mekanisme internal.
– mcu_type adalah jenis MCU:
◦ MFX_CM0P_MCU_STM32 adalah MCU STM32 standar
◦ MFX_CM0P_MCU_BLUE_NRG1 adalah BlueNRG-1
◦ MFX_CM0P_MCU_BLUE_NRG2 adalah BlueNRG-2
◦ MFX_CM0P_MCU_BLUE_NRG_LP adalah BlueNRG -LP
– freq adalah sensor sampfrekuensi ling [Hz]
Catatan: Fungsi ini harus dipanggil sebelum menggunakan pustaka E-Compass dan modul CRC di mikrokontroler STM32 (dalam register pengaktifan jam periferal RCC) harus diaktifkan sebelum menggunakan pustaka tersebut.
- void MotionEC_SetFrequency(frekuensi mengambang)
– mengatur sampfrekuensi ling (memodifikasi parameter penyaringan)
– freq adalah sensor sampfrekuensi ling [Hz] • void MotionEC_Run(MEC_input_t *data_masuk, MEC_output_t *data_keluar)
– menjalankan algoritma E-Compass (penggabungan data accelerometer dan magnetometer)
– *data_in adalah pointer ke suatu struktur dengan data input
– parameter untuk tipe struktur MEC_input_t adalah:
◦ acc[3] adalah array data accelerometer dalam konvensi ENU, diukur dalam g
◦ mag[3] adalah array data kalibrasi magnetometer dalam konvensi ENU, diukur dalam μT/50
◦ deltatime s adalah waktu delta (yaitu, waktu tunda antara kumpulan data lama dan baru) yang diukur dalam s
– *data_out adalah pointer ke suatu struktur dengan data keluaran
– parameter untuk tipe struktur MEC_output_t adalah:
◦ quaternion[4] adalah array yang berisi quaternion dalam konvensi ENU, yang mewakili orientasi 3Dangular perangkat di ruang; urutan elemennya adalah: X, Y, Z, W, dengan elemen W selalu positif
◦ euler[3] adalah array sudut Euler dalam konvensi ENU, yang mewakili orientasi sudut 3D perangkat di ruang angkasa; urutan elemennya adalah: yaw, pitch, roll, diukur dalam derajat
◦ i_gyro[3] adalah array dari kecepatan sudut dalam konvensi ENU, mewakili sensor giroskop virtual, diukur dalam dps
◦ gravitasi[3] adalah susunan percepatan dalam konvensi ENU, yang mewakili vektor gravitasi, diukur dalam g
◦ linear[3] adalah susunan percepatan dalam konvensi ENU, yang mewakili percepatan linier perangkat, diukur dalam g
- batalkan MotionEC_GetOrientationEnable(MEC_state_t *status)
– mendapatkan status aktif/nonaktif dari perhitungan sudut Euler
– *state adalah penunjuk ke status aktif/nonaktif saat ini - batalkan MotionEC_SetOrientationEnable(MEC_state_t status)
– mengatur status aktif/nonaktif perhitungan sudut Euler
– status adalah status aktif/nonaktif baru yang akan ditetapkan - batalkan MotionEC_GetVirtualGyroEnable(MEC_state_t *status)
– mendapatkan status aktif/nonaktif dari perhitungan giroskop virtual
– *state adalah penunjuk ke status aktif/nonaktif saat ini - batalkan MotionEC_SetVirtualGyroEnable(MEC_state_t status)
– mengatur status aktif/nonaktif perhitungan giroskop virtual
– status adalah status aktif/nonaktif baru yang akan ditetapkan - batalkan MotionEC_GetGravityEnable(MEC_state_t *status)
– mendapatkan status aktif/nonaktif dari perhitungan vektor gravitasi
– *state adalah penunjuk ke status aktif/nonaktif saat ini - batalkan MotionEC_SetGravityEnable(MEC_state_t status)
– mengatur status aktif/nonaktif perhitungan vektor gravitasi
– status adalah status aktif/nonaktif baru yang akan ditetapkan - batalkan MotionEC_GetLinearAccEnable(MEC_state_t *status)
– mendapatkan status aktif/nonaktif dari perhitungan percepatan linier
– *state adalah penunjuk ke status aktif/nonaktif saat ini - batalkan MotionEC_SetLinearAccEnable(MEC_state_t status)
– mengatur status aktif/nonaktif perhitungan percepatan linier
– status adalah status aktif/nonaktif baru yang akan ditetapkan
2.2.3 Diagram alir API
2.2.4 Kode demo
Kode demonstrasi berikut membaca data dari sensor akselerometer dan magnetometer dan mendapatkan data ECompass (yaitu, quaternion, sudut Euler, dll.).
2.2.5 Kinerja algoritma
Algoritma E-Compass hanya menggunakan data dari accelerometer dan magnetometer. Algoritma ini beroperasi pada frekuensi rendah (hingga 100 Hz) untuk mengurangi konsumsi daya.
Sampaplikasi
Middleware MotionEC dapat dengan mudah dimanipulasi untuk membangun aplikasi pengguna;ample aplikasi disediakan di folder Aplikasi.
Dirancang untuk berjalan pada papan pengembangan NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE atau NUCLEO-L073RZ yang terhubung ke papan ekspansi X-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 atau X-NUCLEO-IKS02A1.
Aplikasi ini mengenali orientasi dan rotasi perangkat secara real-time. Data dapat ditampilkan melalui GUI.
Algoritma ini memberikan keluaran berikut: orientasi perangkat (kuaternion, sudut Euler), rotasi perangkat (fungsionalitas giroskop virtual), vektor gravitasi dan percepatan linear.
3.1 Aplikasi MEMS-Studio
SampAplikasi ini menggunakan aplikasi MEMS-Studio yang dapat diunduh dari www.st.com.
Langkah 1Pastikan driver yang diperlukan telah terinstal dan papan STM32 Nucleo dengan papan ekspansi yang sesuai telah terhubung ke PC.
Langkah 2Luncurkan aplikasi MEMS-Studio untuk membuka jendela aplikasi utama.
Jika papan STM32 Nucleo dengan firmware yang didukung tersambung ke PC, port COM yang sesuai akan terdeteksi secara otomatis. Tekan tombol [Connect] untuk membuat sambungan ke papan evaluasi.
Langkah 3. Saat terhubung ke papan STM32 Nucleo dengan firmware yang didukung, tab [Evaluasi Perpustakaan] dibuka.
Untuk memulai dan menghentikan streaming data, alihkan tombol [Mulai] yang sesuai atau [Berhenti]
tombol pada bilah alat vertikal luar.
Data yang berasal dari sensor yang terhubung bisa berupa viewed memilih tab [Tabel Data] pada bilah alat vertikal bagian dalam.
Langkah 4Klik [E-Compass] untuk membuka halaman khusus untuk perpustakaan ini.
Gambar di atas menunjukkan model grafis STM32 Nucleo. Orientasi dan rotasi model didasarkan pada data E-Compass (quaternion) yang dihitung oleh algoritma.
Untuk menyelaraskan pergerakan perangkat sebenarnya dengan model grafis, arahkan perangkat ke layar dan tekan [Reset model].
Nilai judul mewakili judul perangkat sebenarnya.
Menunjuk perangkat lurus ke atas atau ke bawah (sepanjang sumbu Atas kerangka acuan ENU, dengan toleransi ±5 derajat) memberikan nilai N/A untuk arah: tidak mungkin membedakan titik mata angin mana yang ditunjuk perangkat.
Nilai kebaikan memberikan nilai 0 hingga 3 dan terkait dengan kalibrasi magnetometer: semakin tinggi nilainya, semakin baik hasil algoritma data E-Compass.
Langkah 5Klik [Simpan ke File] untuk membuka jendela konfigurasi pencatatan data. Pilih sensor dan data E-Compass yang akan disimpan di fileAnda dapat memulai atau menghentikan penyimpanan dengan mengklik tombol yang sesuai.
Langkah 6. Mode Injeksi Data dapat digunakan untuk mengirim data yang diperoleh sebelumnya ke perpustakaan dan menerima hasilnya. Pilih tab [Injeksi Data] pada bilah alat vertikal untuk membuka menu khusus view untuk fungsi ini.
Langkah 7. Klik tombol [Browse] untuk memilih file dengan data yang diambil sebelumnya dalam format CSV.
Data akan dimuat ke dalam tabel di saat ini view.
Tombol lainnya akan aktif. Anda dapat mengklik:
– Tombol [Mode Offline] untuk menghidupkan/mematikan mode offline firmware (mode yang memanfaatkan data yang diambil sebelumnya).
– Tombol [Mulai]/[Berhenti]/[Langkah]/[Ulangi] untuk mengontrol umpan data dari MEMS-Studio ke perpustakaan.
Referensi
Semua sumber daya berikut tersedia secara gratis di www.st.com.
- UM1859: Memulai dengan MEMS gerak X-CUBE-MEMS1 dan perluasan perangkat lunak sensor lingkungan untuk STM32Cube
- UM1724: Papan Nukleo-32 STM64 (MB1136)
- UM3233: Memulai MEMS-Studio
Riwayat revisi
Tabel 4. Riwayat revisi dokumen
Tanggal | Versi | Perubahan |
18 Mei 17 | 1 | Rilis awal. |
25 Januari 18 | 2 | Menambahkan referensi ke papan pengembangan NUCLEO-L152RE dan Tabel 2. Algoritma waktu berlalu (μs). |
21 Maret 18 | 3 | Pengenalan dan Bagian 2.1 MotionEC yang Diperbaruiview. |
26 November 18 | 4 | Menambahkan Tabel 3. Algoritma Cortex -M0+: waktu yang telah berlalu (µs). Menambahkan referensi ke ARM® Cortex® – M0+ dan papan pengembangan NUCLEO-L073RZ. |
19 Februari 19 | 5 | Gambar 1 yang diperbarui. Kerangka referensi ENU, Tabel 2. Cortex-M4 dan Cortex-M3: algoritma waktu berlalu (µs), Tabel 3. Cortex -M0+: algoritma waktu berlalu (µs), Gambar 3. Adaptor papan ekspansi sensor terhubung ke STM32 Nucleo, Gambar 4. Jendela utama Unicleo, Gambar 5. Tab Pesan Pengguna, Gambar 6. Jendela E-Compass dan Gambar 7. Jendela Datalog. Menambahkan informasi kompatibilitas papan ekspansi X-NUCLEO-IKS01A3. |
25 Maret 20 | 6 | Pendahuluan yang diperbarui, Bagian 2.2.1: Deskripsi pustaka MotionEC dan Bagian 2.2.5: Kinerja algoritma. Menambahkan informasi kompatibilitas arsitektur ARM Cortex-M7. |
17 September 24 | 7 | Bagian Pendahuluan yang Diperbarui, Bagian 2.1: MotionEC berakhirview, Bagian 2.2.1: Pustaka MotionEC deskripsi, Bagian 2.2.2: MotionEC API, Bagian 2.2.5: Algoritma kinerja, Bagian 3: Sample aplikasi, Bagian 3.1: Aplikasi MEMS-Studio |
PEMBERITAHUAN PENTING – BACA DENGAN SEKSAMA
STMicroelectronics NV dan anak perusahaannya (“ST”) berhak melakukan perubahan, koreksi, penyempurnaan, modifikasi, dan perbaikan pada produk ST dan/atau dokumen ini kapan saja tanpa pemberitahuan. Pembeli harus memperoleh informasi relevan terkini tentang produk ST sebelum melakukan pemesanan. Produk ST dijual sesuai dengan syarat dan ketentuan penjualan ST yang berlaku pada saat konfirmasi pemesanan.
Pembeli bertanggung jawab penuh atas pilihan, pemilihan, dan penggunaan produk ST dan ST tidak bertanggung jawab atas bantuan aplikasi atau desain produk pembeli.
Tidak ada lisensi, tersurat maupun tersirat, terhadap hak kekayaan intelektual apa pun yang diberikan oleh ST di sini.
Penjualan kembali produk ST dengan ketentuan yang berbeda dari informasi yang ditetapkan di sini akan membatalkan garansi apa pun yang diberikan oleh ST untuk produk tersebut.
ST dan logo ST adalah merek dagang ST. Untuk informasi tambahan tentang merek dagang ST, lihat www.st.com/merek dagangSemua nama produk atau layanan lainnya adalah milik pemiliknya masing-masing.
Informasi dalam dokumen ini menggantikan dan mengganti informasi yang sebelumnya diberikan dalam versi dokumen ini sebelumnya.
© 2024 STMicroelectronics – Semua hak dilindungi undang-undang
Dokumen / Sumber Daya
![]() |
ST X-CUBE-MEMS1 MotionEC adalah Perpustakaan Middleware [Bahasa Indonesia:] Panduan Pemilik X-CUBE-MEMS1 MotionEC adalah Perpustakaan Middleware, X-CUBE-MEMS1, MotionEC adalah Perpustakaan Middleware, Perpustakaan Middleware, Perpustakaan |