ST X - logosuUM2225
Kullanıcı kılavuzu

STM1Cube için X-CUBE-MEMS32 genişlemesinde MotionEC gerçek zamanlı E-Compass kütüphanesine başlarken

giriiş

MotionEC, X-CUBE-MEMS1 yazılımının bir ara yazılım kütüphanesi bileşenidir ve STM3z2 üzerinde çalışır. Bir cihazdan gelen verilere dayanarak cihaz yönü ve hareket durumu hakkında gerçek zamanlı bilgi sağlar.
Aşağıdaki çıktıları sağlar: cihaz yönelimi (kuaterniyonlar, Euler açıları), cihaz dönüşü (sanal jiroskop işlevi), yerçekimi vektörü ve doğrusal ivme.
Bu kütüphane yalnızca ST MEMS ile çalışacak şekilde tasarlanmıştır.
Algoritma statik kütüphane formatında sunulmakta olup, ARM® Cortex®-M32+, ARM® Cortex®-M0, ARM® Cortex®-M3, ARM® Cortex®-M33 ve ARM® Cortex®-M4 mimarilerine dayalı STM7 mikrodenetleyicilerde kullanılmak üzere tasarlanmıştır.
Farklı STM32 mikrodenetleyiciler arasında taşınabilirliği kolaylaştırmak için STM32Cube yazılım teknolojisi üzerine inşa edilmiştir.
Yazılım s ile birlikte gelirampX-NUCLEO-IKS01A3, X-NUCLEO-IKS4A1 veya X-NUCLEO-IKS02A1 genişletme kartında NUCLEO-F401RE, NUCLEO-U575ZI-Q, NUCLEO-L152RE veya NUCLEO-L073RZ geliştirme kartında çalışan uygulama.

Kısaltmalar ve kısaltmalar

Tablo 1. Kısaltma listesi

Kısaltma Tanım
API Uygulama programlama arayüzü
BSP Yönetim kurulu destek paketi
Grafiksel kullanıcı arayüzü Grafiksel kullanıcı arayüzü
HÂL Donanım soyutlama katmanı
İDE Entegre geliştirme ortamı

STM1Cube için X-CUBE-MEMS32 yazılım genişlemesindeki MotionEC ara yazılım kütüphanesi

2.1 HareketEC bittiview
MotionEC kütüphanesi X-CUBE-MEMS1 yazılımının işlevselliğini genişletir.
Kütüphane, ivmeölçer ve manyetometreden veri alır ve cihazdan gelen verilere dayanarak cihazın yönü ve hareket durumu hakkında bilgi sağlar.
Kütüphane yalnızca ST MEMS için tasarlanmıştır. Diğer MEMS sensörlerini kullanırken işlevsellik ve performans analiz edilmez ve belgede açıklananlardan önemli ölçüde farklı olabilir.
GibiampUygulama, NUCLEO-F01RE, NUCLEO-U3ZI-Q, NUCLEO-L4RE veya NUCLEO-L1RZ geliştirme kartına monte edilmiş X-NUCLEO-IKS02A1, X-NUCLEO-IKS401A575 ve X-NUCLEO-IKS152A073 genişletme kartlarında mevcuttur.
2.2 MotionEC kütüphanesi
MotionEC API'lerinin işlevlerini ve parametrelerini tam olarak açıklayan teknik bilgiler MotionEC_Package.chm derlenmiş HTML'de bulunabilir file Belgeler klasöründe bulunur.

2.2.1 MotionEC kütüphanesi açıklaması
MotionEC E-Compass kütüphanesi ivmeölçer ve manyetometreden alınan verileri yönetir; özellikleri şunlardır:

  • cihaz yönelimi (kuaterniyonlar, Euler açıları), cihaz dönüşü (sanal jiroskop işlevi), yerçekimi vektörü ve doğrusal ivme çıktıları
  • yalnızca ivmeölçer ve manyetometre verilerine dayalı işlevsellik
  • gerekli ivmeölçer ve manyetometre verileriamp100 Hz'e kadar ling frekansı
  • kaynak gereksinimleri:
    – Cortex-M0+: 3.7 kB kod ve 0.1 kB veri belleği
    – Cortex-M3: 3.8 kB kod ve 0.1 kB veri belleği
    – Cortex-M33: 2.8 kB kod ve 0.1 kB veri belleği
    – Cortex-M4: 2.9 kB kod ve 0.1 kB veri belleği
    – Cortex-M7: 2.8 kB kod ve 0.1 kB veri belleği
  • ARM Cortex M0+, Cortex-M3, Cortex-M33, Cortex-M4 ve Cortex M7 mimarileri için kullanılabilir

2.2.2 MotionEC API'leri
MotionEC API'leri şunlardır:

  • uint8_t MotionEC_GetLibVersion(char *sürüm)
    – kütüphanenin sürümünü alır
    – *version, 35 karakterlik bir diziye işaretçidir
    – sürüm dizesindeki karakter sayısını döndürür
    • void MotionEC_Initialize(MEC_mcu_type_t mcu_type, float frekansı)
    – MotionEC kütüphanesinin başlatılmasını ve iç mekanizmanın kurulumunu gerçekleştirir.
    – mcu_type MCU’nun türüdür:
    ◦ MFX_CM0P_MCU_STM32 standart bir STM32 MCU'dur
    ◦ MFX_CM0P_MCU_BLUE_NRG1, BlueNRG-1'dir
    ◦ MFX_CM0P_MCU_BLUE_NRG2, BlueNRG-2'dir
    ◦ MFX_CM0P_MCU_BLUE_NRG_LP, BlueNRG -LP'dir
    – frekans, sensörün frekansıdırampling frekansı [Hz]

Not: Bu fonksiyon E-Compass kütüphanesini kullanmadan önce çağrılmalı ve STM32 mikrodenetleyicisindeki CRC modülü (RCC çevresel saat etkinleştirme kaydında) kütüphaneyi kullanmadan önce etkinleştirilmelidir.

  • void MotionEC_SetFrequency(float frekansı)
    – s'yi ayarlarampling frekansı (filtreleme parametrelerini değiştirerek)
    – frekans, sensörün frekansıdırampling frekansı [Hz] • void MotionEC_Run(MEC_input_t *data_in, MEC_output_t *data_out)
    – E-Pusula algoritmasını çalıştırır (ivmeölçer ve manyetometre veri füzyonu)
    – *data_in, giriş verilerine sahip bir yapıya işaretçidir
    – MEC_input_t yapı türü için parametreler şunlardır:
    ◦ acc[3], g cinsinden ölçülen ENU kuralına göre bir ivmeölçer verisi dizisidir
    ◦ mag[3], ENU konvansiyonunda kalibre edilmiş manyetometre verilerinden oluşan bir dizidir ve μT/50 olarak ölçülür
    ◦ deltatime s, s cinsinden ölçülen delta süresidir (yani eski ve yeni veri kümesi arasındaki zaman gecikmesi)
    – *data_out, çıktı verilerine sahip bir yapıya işaretçidir
    – MEC_output_t yapı türü için parametreler şunlardır:
    ◦ quaternion[4], ENU kuralına göre quaternion içeren bir dizidir ve uzayda cihazın 3D açısal yönelimini temsil eder; elemanların sırası: X, Y, Z, W'dir ve her zaman pozitif eleman W'dir
    ◦ euler[3], ENU kuralına göre bir Euler açıları dizisidir ve cihazın uzaydaki 3 boyutlu açısal yönelimini temsil eder; elemanların sırası şöyledir: sapma, eğim, yuvarlanma, derece cinsinden ölçülür
    ◦ i_gyro[3], dps cinsinden ölçülen sanal bir jiroskop sensörünü temsil eden ENU kuralındaki açısal oranların bir dizisidir
    ◦ yerçekimi[3], ENU kuralında yerçekimi vektörünü temsil eden ve g cinsinden ölçülen bir ivme dizisidir
    ◦ doğrusal[3], ENU kuralında bir ivme dizisidir ve g cinsinden ölçülen cihaz doğrusal ivmesini temsil eder
    ST X CUBE MEMS1 MotionEC bir Ara Yazılım Kütüphanesidir-
  • void MotionEC_GetOrientationEnable(MEC_state_t *durum)
    – Euler açısı hesaplamasının etkin/devre dışı durumunu alır
    – *durum, geçerli etkinleştirme/devre dışı bırakma durumuna bir işaretçidir
  • void MotionEC_SetOrientationEnable(MEC_state_t durumu)
    – Euler açısı hesaplamasının etkin/devre dışı durumunu ayarlar
    – durum, ayarlanacak yeni etkinleştirme/devre dışı bırakma durumudur
  •  void MotionEC_GetVirtualGyroEnable(MEC_state_t *durum)
    – sanal jiroskop hesaplamasının etkin/devre dışı durumunu alır
    – *durum, geçerli etkinleştirme/devre dışı bırakma durumuna bir işaretçidir
  • void MotionEC_SetVirtualGyroEnable(MEC_state_t durumu)
    – sanal jiroskop hesaplamasının etkin/devre dışı durumunu ayarlar
    – durum, ayarlanacak yeni etkinleştirme/devre dışı bırakma durumudur
  • void MotionEC_GetGravityEnable(MEC_state_t *durum)
    – yerçekimi vektörü hesaplamasının etkin/devre dışı durumunu alır
    – *durum, geçerli etkinleştirme/devre dışı bırakma durumuna bir işaretçidir
  • void MotionEC_SetGravityEnable(MEC_state_t durumu)
    – yerçekimi vektörü hesaplamasının etkin/devre dışı durumunu ayarlar
    – durum, ayarlanacak yeni etkinleştirme/devre dışı bırakma durumudur
  • void MotionEC_GetLinearAccEnable(MEC_state_t *durum)
    – doğrusal ivme hesaplamasının etkin/devre dışı durumunu alır
    – *durum, geçerli etkinleştirme/devre dışı bırakma durumuna bir işaretçidir
  • void MotionEC_SetLinearAccEnable(MEC_state_t durumu)
    – doğrusal ivme hesaplamasının etkin/devre dışı durumunu ayarlar
    – durum, ayarlanacak yeni etkinleştirme/devre dışı bırakma durumudur

2.2.3 API akış şeması

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphane dizisidir

2.2.4 Demo kodu
Aşağıdaki gösteri kodu ivmeölçer ve manyetometre sensörlerinden veri okur ve ECompass verilerini (yani kuaterniyon, Euler açıları, vb.) alır.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Demo koduST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Demo kodu1

2.2.5 Algoritma performansı
E-Compass algoritması yalnızca ivmeölçer ve manyetometreden gelen verileri kullanır. Güç tüketimini azaltmak için düşük bir frekansta (100 Hz'e kadar) çalışır.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Veri Enjeksiyonu1

Sampbaşvuru

MotionEC ara yazılımı, kullanıcı uygulamaları oluşturmak için kolayca kullanılabilir;ampDosya uygulaması Uygulama klasöründe sağlanır.
X-NUCLEO-IKS401A575, X-NUCLEO-IKS152A073 veya X-NUCLEO-IKS01A3 genişletme kartına bağlı NUCLEO-F4RE, NUCLEO-U1ZI-Q, NUCLEO-L02RE veya NUCLEO-L1RZ geliştirme kartında çalışacak şekilde tasarlanmıştır.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesi adaptörüdür

Uygulama, cihazın yönünü ve dönüşünü gerçek zamanlı olarak tanır. Veriler bir GUI aracılığıyla görüntülenebilir.
Algoritma şu çıktıları sağlar: cihaz yönelimi (kuaterniyonlar, Euler açıları), cihaz dönüşü (sanal jiroskop işlevi), yerçekimi vektörü ve doğrusal ivme.
3.1 MEMS-Studio uygulaması
sampUygulama, şu adresten indirilebilen MEMS-Studio uygulamasını kullanır: www.st.com.
Adım 1Gerekli sürücülerin yüklendiğinden ve STM32 Nucleo kartının uygun genişleme kartıyla bilgisayara bağlandığından emin olun.
Adım 2. Ana uygulama penceresini açmak için MEMS-Studio uygulamasını başlatın.
Desteklenen aygıt yazılımına sahip bir STM32 Nucleo kartı PC'ye bağlanırsa, uygun COM portu otomatik olarak algılanır. Değerlendirme kartına bağlantı kurmak için [Bağlan] düğmesine basın.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Connect

Adım 3Desteklenen yazılıma sahip bir STM32 Nucleo kartına bağlandığında [Kütüphane Değerlendirmesi] sekmesi açılır.
Veri akışını başlatmak ve durdurmak için uygun [Başlat] öğesini değiştirin ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir- simgesi veya [Dur] ST X CUBE MEMS1 MotionEC bir Ara Yazılım Kütüphanesidir- icon1 Dış dikey araç çubuğundaki düğme.
Bağlı sensörden gelen veriler viewİç dikey araç çubuğunda [Veri Tablosu] sekmesini seçerek.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Veri Tablosu

Adım 4Bu kütüphaneye ait özel sayfayı açmak için [E-Pusula]'ya tıklayın.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Compass

Yukarıdaki şekil bir STM32 Nucleo grafik modelini göstermektedir. Modelin yönelimi ve dönüşü algoritma tarafından hesaplanan E-Compass verilerine (kuaterniyonlar) dayanmaktadır.
Gerçek cihaz hareketini grafik modelle hizalamak için cihazı ekrana doğrultun ve [Modeli sıfırla] tuşuna basın.
Başlık değeri gerçek cihaz başlığını temsil eder.
Cihazın yukarı veya aşağı doğru (ENU referans çerçevesinin Yukarı ekseni boyunca, ±5 derecelik toleransla) doğrultulması başlık için N/A değeri verir: cihazın hangi ana noktaya doğrultulduğunu ayırt etmek mümkün değildir.
İyilik değeri 0 ile 3 arasında değerler verir ve manyetometre kalibrasyonu ile ilgilidir: değer ne kadar yüksekse E-Pusula veri algoritmasının sonuçları o kadar iyi olur.
Adım 5. [Kaydet] öğesine tıklayın File] veri günlüğü yapılandırma penceresini açmak için. Kaydedilecek sensör ve E-Pusula verilerini seçin fileİlgili butona tıklayarak kaydetmeye başlayabilir veya durdurabilirsiniz.

ST X CUBE MEMS1 MotionEC bir Ara Yazılım Kütüphanesidir - Kaydet File

Adım 6. Veri Enjeksiyonu modu, daha önce edinilen verileri kütüphaneye göndermek ve sonucu almak için kullanılabilir. Özel aracı açmak için dikey araç çubuğundaki [Veri Enjeksiyonu] sekmesini seçin view Bu işlevsellik için.

ST X CUBE MEMS1 MotionEC bir Middleware Kütüphanesidir - Veri Enjeksiyonu

Adım 7. Seçmek için [Gözat] düğmesine tıklayın file Daha önce yakalanan veriler CSV formatında.
Veriler geçerli tabloya yüklenecek view.
Diğer butonlar aktif hale gelecektir. Şunlara tıklayabilirsiniz:
– [Çevrimdışı Mod] düğmesi, aygıt yazılımının çevrimdışı modunu açma/kapatma (önceden yakalanan verileri kullanan mod) için kullanılır.
– MEMS-Studio'dan kütüphaneye veri beslemesini kontrol etmek için [Başlat]/[Durdur]/[Adım]/[Tekrarla] düğmeleri.

Referanslar

Aşağıdaki kaynakların tamamına www.st.com adresinden ücretsiz olarak ulaşabilirsiniz.

  1. UM1859: X-CUBE-MEMS1 hareket MEMS'i ve STM32Cube için çevresel sensör yazılımı genişletmesini kullanmaya başlama
  2.  UM1724: STM32 Nucleo-64 kartları (MB1136)
  3. UM3233: MEMS-Studio'yu kullanmaya başlama

Revizyon geçmişi

Tablo 4. Belge revizyon geçmişi

Tarih Sürüm Değişiklikler
18-Mayıs-17 1 İlk sürüm.
25-Ocak-18 2 NUCLEO-L152RE geliştirme kartına ve Tablo 2'ye referanslar eklendi.
Geçen zaman (μs) algoritması.
21-Mar-18 3 Güncellenmiş Giriş ve Bölüm 2.1 HareketECview.
26-Kas-18 4 Tablo 3 eklendi. Cortex -M0+: geçen zaman (µs) algoritması. ARM®'ye referanslar eklendi
Cortex® – M0+ ve NUCLEO-L073RZ geliştirme kartı.
19-Şub-19 5 Güncellenen Şekil 1. ENU referans çerçevesi, Tablo 2. Cortex-M4 ve Cortex-M3: geçen zaman (µs) algoritması, Tablo 3.
Cortex -M0+: geçen zaman (µs) algoritması, Şekil 3. STM32'ye bağlı sensör genişletme kartı adaptörü
Nucleo, Şekil 4. Unicleo ana penceresi, Şekil 5. Kullanıcı Mesajları sekmesi, Şekil 6. E-Compass penceresi ve Şekil 7. Datalog penceresi. X-NUCLEO-IKS01A3 genişletme kartı uyumluluk bilgisi eklendi.
25-Mar-20 6 Güncellenen Giriş, Bölüm 2.2.1: MotionEC kütüphane açıklaması ve Bölüm 2.2.5: Algoritma performansı.
ARM Cortex-M7 mimarisi uyumluluk bilgisi eklendi.
17-Eylül-24 7 Güncellenmiş Bölüm Girişi,
Bölüm 2.1: HareketEC bittiview,
Bölüm 2.2.1: MotionEC kütüphanesi
açıklama, Bölüm 2.2.2: MotionEC
API'ler, Bölüm 2.2.5: Algoritma
performans, Bölüm 3: Sample
uygulama, Bölüm 3.1: MEMS-Studio uygulaması

ÖNEMLİ UYARI – DİKKATLİCE OKUYUN
STMicroelectronics NV ve bağlı şirketleri ("ST"), ST ürünlerine ve/veya bu belgeye herhangi bir zamanda bildirimde bulunmaksızın değişiklik, düzeltme, geliştirme, modifikasyon ve iyileştirme yapma hakkını saklı tutar. Alıcılar, sipariş vermeden önce ST ürünleriyle ilgili en son ilgili bilgileri edinmelidir. ST ürünleri, sipariş onayı sırasında yürürlükte olan ST'nin satış şartları ve koşullarına uygun olarak satılır.
Alıcılar, ST ürünlerinin seçimi, seçimi ve kullanımı konusunda münhasıran sorumludur ve ST, uygulama yardımı veya alıcıların ürünlerinin tasarımı konusunda hiçbir sorumluluk kabul etmez.
ST tarafından burada herhangi bir fikri mülkiyet hakkına ilişkin açık veya örtük hiçbir lisans verilmemektedir.
ST ürünlerinin burada belirtilen bilgilerden farklı hükümlerle yeniden satışı, ST tarafından söz konusu ürün için verilen her türlü garantiyi geçersiz kılar.
ST ve ST logosu, ST'nin ticari markalarıdır. ST ticari markaları hakkında ek bilgi için bkz. www.st.com/ticari markalarDiğer tüm ürün veya hizmet adları ilgili sahiplerinin mülkiyetindedir.
Bu belgedeki bilgiler, bu belgenin önceki sürümlerinde sağlanan bilgilerin yerini alır ve bu bilgilerin yerine geçer.

© 2024 STMicroelectronics – Tüm hakları saklıdır

Belgeler / Kaynaklar

ST X-CUBE-MEMS1 MotionEC bir Middleware Kütüphanesidir [pdf] Kullanım Kılavuzu
X-CUBE-MEMS1 MotionEC bir Ara Yazılım Kütüphanesidir, X-CUBE-MEMS1, MotionEC bir Ara Yazılım Kütüphanesidir, Ara Yazılım Kütüphanesi, Kütüphane

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *