Biblioteca de recunoaștere a activității STMicroelectronics UM2193 MotionAR

Biblioteca de recunoaștere a activității STMicroelectronics UM2193 MotionAR

Introducere

Motion AR este o bibliotecă middleware parte a software-ului X-CUBE-MEMS1 și rulează pe STM32. Oferă informații în timp real despre tipul de activitate desfășurată de utilizator. Este capabil să distingă următoarele activități: staționar, mers pe jos, mers rapid, jogging, ciclism, conducere.

Această bibliotecă este destinată să funcționeze numai cu ST MEMS.

Algoritmul este furnizat în format de bibliotecă static și este conceput pentru a fi utilizat pe microcontrolere STM32 bazate pe arhitectura ARM® Cortex®-M3, ARM® Cortex®-M33, ARM® Cortex®-M4 sau ARM® Cortex®-M7.

Este construit pe baza tehnologiei software STM32Cube care ușurează portabilitatea între diferite microcontrolere STM32.

Software-ul vine cu sampImplementarea fișierului rulează pe o placă de expansiune X-NUCLEO-IKS01A3 sau X-NUCLEO-IKS4A1 pe o placă de dezvoltare NUCLEO-F401RE, NUCLEO-L152RE sau NUCLEO-U575ZI-Q.

Acronime si abrevieri

Tabelul 1. Lista de acronime

Acronim Descriere
API Interfață de programare a aplicației
BSP Pachet de suport pentru bord
GUI Interfață grafică cu utilizatorul
HAL Stratul de abstractizare hardware
IDE Mediu de dezvoltare integrat

Biblioteca middleware Motion AR în extinderea software-ului X-CUBE-MEMS1

Mișcare AR s-a încheiatview

Biblioteca Motion AR extinde funcționalitatea software-ului X-CUBE-MEMS1.
Biblioteca achiziționează date de la accelerometru și oferă informații despre tipul de activitate desfășurată de utilizator.

Biblioteca este concepută numai pentru ST MEMS. Funcționalitatea și performanța atunci când se utilizează alți senzori MEMS nu sunt analizate și pot fi semnificativ diferite de cele descrise în document.
SampImplementarea fișierului este disponibilă pe plăcile de extensie X-NUCLEO-IKS01A3 sau X-NUCLEO-IKS4A1, montate pe o placă de dezvoltare NUCLEO-F401RE, NUCLEO-L152RE sau NUCLEO-U575ZI-Q.

Biblioteca Motion AR

Informații tehnice care descriu complet funcțiile și parametrii API-urilor Motion AR pot fi găsite în HTML compilat MotionAR_Package.chm file aflat în folderul Documentation.

Descrierea bibliotecii Motion AR

  • Biblioteca de recunoaștere a activității Motion AR gestionează datele achiziționate de la accelerometru; este dotat:
  • posibilitatea de a distinge următoarele activități: staționar, mers pe jos, mers rapid, jogging, ciclism, conducere
  • recunoașterea bazată numai pe datele accelerometrului
  • date necesare accelerometru sampfrecvență ling: 16 Hz
  • cerințe de resurse:
    • Cortex-M3: 8.5 kB de cod și 1.4 kB de memorie de date
    • Cortex-M33: 7.8 kB de cod și 1.4 kB de memorie de date
    • Cortex-M4: 7.9 kB de cod și 1.4 kB de memorie de date
    • Cortex-M7: 8.1 kB de cod și 1.4 kB de memorie de date
  • disponibil pentru arhitecturile ARM Cortex-M3, Cortex-M33, Cortex-M4 și Cortex-M7

API-urile MotionAR

API-urile MotionAR sunt:

  • uint8_t MotionAR_GetLibVersion(char *versiune)
    • preia versiunea bibliotecii
    • *versiunea este un indicator către o matrice de 35 de caractere
    • returnează numărul de caractere din șirul de versiune
  • void MotionAR_Initialize(void)
    • efectuează inițializarea bibliotecii MotionAR și configurarea mecanismului intern
    • modulul CRC din microcontrolerul STM32 (în registrul de activare a ceasului periferic RCC) trebuie să fie
      activat înainte de a utiliza biblioteca
      Nota: Această funcție trebuie apelată înainte de a utiliza biblioteca de calibrare a accelerometrului.
  • void MotionAR_Reset(void)
    • resetează algoritmii de recunoaștere a activității
  • void MotionAR_Update(MAR_input_t *data_in, MAR_output_t *data_out, int64_t
    ori mai multamp)
    • execută algoritmul de recunoaștere a activității
    • *parametrul data_in este un pointer către o structură cu date de intrare
    • parametrii pentru tipul de structură MAR_input_t sunt:
      • acc_x este valoarea senzorului accelerometrului pe axa X în g
      • acc_y este valoarea senzorului accelerometrului pe axa Y în g
      • acc_z este valoarea senzorului accelerometrului pe axa Z în g
    • *parametrul data_out este un pointer către enumerarea cu următoarele elemente:
      • MAR_NOACTIVITY = 0
      • MAR_STATIONARY = 1
      • MAR_WALKING = 2
      • MAR_FASTWALKING = 3
      • MAR_JOGGING = 4
      • MAR_BIKING = 5
      • MAR_DRIVING = 6
    • ori mai multamp este un timp relativ pentru s realample în ms
  • void MotionAR_ Set Orientation_ Acc(const char *acc_ orientation)
    • setează orientarea datelor accelerometrului
    • configurarea este de obicei efectuată imediat după apelul funcției Motion AR_ Initialize
    • Parametrul de orientare *acc_ este un pointer către un șir de trei caractere care indică direcția fiecăreia dintre orientările pozitive ale cadrului de referință utilizat pentru ieșirea datelor accelerometrului, în secvența x, y, z. Valorile valide sunt: ​​n (nord) sau s (sud), w (vest) sau e (est), u (sus) sau d (jos)
    • După cum se arată în figura de mai jos, senzorul accelerometrului X-NUCLEO-IKS4A1 are un SEU (x-South, y-East, z-Up), deci șirul este: „seu”.

Figura 1. Orientarea senzorului example

Biblioteca middleware MotionAR în extinderea software-ului X-CUBE-MEMS1

API flow char

Figura 2. Secvența logică Motion AR API

Biblioteca middleware MotionAR în extinderea software-ului X-CUBE-MEMS1

Cod demo

Următorul cod demonstrativ citește datele de la senzorul accelerometrului și primește codul de activitate

[…] #define VERSION_STR_LENG 35 […] /*** Inițializare ***/ char lib_version[VERSION_STR_LENG]; char acc_orientation[] = "seu"; /* Funcția de inițializare API de recunoaștere a activității */ MotionAR_Initialize(); /* Opțional: Obține versiunea */ MotionAR_GetLibVersion(lib_version); /* Setează orientarea accelerometrului */ MotionAR_SetOrientation_Acc(acc_orientation); […] /*** Folosind algoritmul de recunoaștere a activității ***/ Timer_ SAU_ Data Rate_ Interrupt_ Handler() {
MAR_input_t data_ in; MAR_ output_ t activitate; /* Obține accelerația X/Y/Z în g */ MEMS_Read_AccValue(&data_in.acc_x, &data_in.acc_y, &data_in.acc_z); /* Obține ora curentă în ms */ TIMER_Get_TimeValue(×tamp_Domnișoară); /* Actualizare algoritm de recunoaștere a activității */ MotionAR_Update(data_in, data_out, timestamp_Domnișoară); }

Performanța algoritmului

Algoritmul de recunoaștere a activității folosește doar date de la accelerometru și rulează la o frecvență joasă (16 Hz) pentru a reduce consumul de energie.

Tabelul 2. Performanța algoritmului

Activitate Probabilitate de detectare (tipic)(1) Cea mai bună performanță Susceptibil Poziții de transport
Staţionar 92.27% Ținerea în mână și mesajele grele Toate: buzunar pentru pantaloni, buzunar cămăși, buzunar la spate, lângă cap etc.
Mersul pe jos 99.44% Viteza pasului ≥ 1.4 pas/s Viteza pasului ≤ 1.2 pas/s toate
Mers rapid pe jos 95.94% Viteza pasului ≥ 2.0 pas/s Toate
Jogging 98.49% Viteza pasului ≥ 2.2 pas/s Durata < 1 minut; viteza < 8 Km/h Buzunar pentru pantaloni, leagăn de braț, în mână
Ciclism 91.93% Viteză în aer liber ≥11 Km/h Scaun pasager, torpedo Rucsac, buzunar cămașă, buzunar pantalon
Conducerea 78.65% Viteza ≥ 48 Km/h Scaun pasager, torpedo Suport pentru pahare, bord, buzunar pentru cămașă, buzunar pentru pantaloni
  1. Specificațiile tipice nu sunt garantate

Tabelul 3. Cortex-M4 și Cortex-M3: algoritmul timpului scurs (µs) 

Cortex-M4 STM32F401RE la 84 MHz Cortex-M3 STM32L152RE la 32 MHz
Min Mediu Max Min Mediu Max
2 6 153 8 130 4883

Tabelul 4. Cortex-M33 și Cortex-M7: algoritmul timpului scurs (μs) 

Cortex-M33 STM32U575ZI-Q la 160 MHz Cortex-M7 STM32F767ZI la 96 MHz
Min Mediu Max Min Mediu Max
< 1 2 74 5 9 145

Sample aplicație

Middleware-ul MotionAR poate fi ușor manipulat pentru a construi aplicații utilizator; la fel deampaplicația este furnizată în folderul Aplicație.
Este proiectat să ruleze pe o placă de dezvoltare NUCLEO-F401RE, NUCLEO-L152RE sau NUCLEO-U575ZI-Q conectată la o placă de expansiune X-NUCLEO-IKS01A3 sau X-NUCLEO-IKS4A1.

Aplicația recunoaște activitățile efectuate în timp real. Datele pot fi afișate printr-o interfață grafică. Algoritmul recunoaște activitățile staționare, de mers pe jos, de mers rapid, de jogging, de mers cu bicicleta și de conducere. Este necesară o conexiune prin cablu USB pentru a monitoriza datele în timp real. Placa este alimentată de computer prin conexiune USB. Acest lucru permite utilizatorului să afișeze activitatea detectată, datele accelerometrului, ora stamp și eventual alte date ale senzorului, în timp real, folosind aplicația MEMS-Studio GUI.

Aplicația MEMS-Studio

SampAplicația folosește aplicația MEMS-Studio GUI, care poate fi descărcată de pe www.st.com.

Pasul 1. Asigurați-vă că driverele necesare sunt instalate și că placa STM32 Nucleo cu placa de expansiune corespunzătoare este conectată la computer.
Pasul 2. Lansați aplicația MEMS-Studio pentru a deschide fereastra principală a aplicației.

Dacă o placă STM32 Nucleo cu firmware acceptat este conectată la computer, este detectat automat portul COM corespunzător. Apăsați butonul Conectare pentru a deschide acest port.

Figura 3. MEMS-Studio – Conectare 

Aplicația MEMS-Studio

Pasul 3. Când este conectat la placa STM32 Nucleo cu firmware acceptat, se deschide fila Evaluare bibliotecă.

Pentru a porni și opri fluxul de date comutați opțiunea corespunzătoare Pictogramă start / Pictogramă butonul de oprire de pe bara de instrumente verticală exterioară.
Datele care provin de la senzorul conectat pot fi viewed selectând fila Tabel de date din bara de instrumente verticală interioară.

Figura 4. MEMS-Studio – Evaluare bibliotecă – Tabel de date 

Figura 5. MEMS-Studio – Evaluare bibliotecă – Recunoaștere activități

Aplicația MEMS-Studio

Pasul 5. Selectați Salvare în File din bara de instrumente verticală interioară pentru a deschide fereastra de configurare a înregistrării datelor. Selectați ce senzor și datele de activitate să salvați în jurnal file. Puteți începe sau opri salvarea făcând clic pe butonul Start / Stop corespunzător.

Figura 6. MEMS-Studio – Evaluare bibliotecă – Salvare în File

Aplicația MEMS-Studio

Referințe

Toate resursele următoare sunt disponibile gratuit pe www.st.com.

  1. UM1859: Noțiuni introductive cu MEMS de mișcare X-CUBE-MEMS1 și extinderea software-ului pentru senzori de mediu pentru STM32Cube
  2. UM1724: plăci STM32 Nucleo-64 (MB1136)
  3. UM3233: Noțiuni introductive cu MEMS-Studio

Istoricul reviziilor

Tabelul 5. Istoricul revizuirilor documentului

Data Versiune Schimbări
10-apr-2017 1 Lansare inițială.
26-ian-2018 2 Secțiunea 3 S actualizatăample aplicație.
S-au adăugat referințe la placa de dezvoltare NUCLEO-L152RE și Tabelul 3. Algoritmul timpului scurs (μs).
19-mar-2018 3 Introducere actualizată, secțiunea 2.1 Motion AR overview și Secțiunea 2.2.5 Performanța algoritmului.
14-feb-2019 4 Actualizată Figura 1. Orientarea senzorului example, Tabelul 3. Algoritmul timpului scurs (µs) și Figura 3. STM32 Nucleo: LED-uri, buton, jumper.
S-au adăugat informații despre compatibilitatea plăcii de extensie X-NUCLEO-IKS01A3.
20-mar-2019 5 Secțiunea actualizată 2.2.2 API-uri Motion AR, Figura 3. MEMS-Studio – Conectare, Figura 4. MEMS-Studio – Evaluarea bibliotecii – Tabel de date, Figura 5. MEMS-Studio – Evaluarea bibliotecii – Recunoașterea activității și Figura 6. MEMS-Studio – Evaluare bibliotecă – Salvare în File.
04-apr-2024 6 Actualizare Secțiunea Introducere, Secțiunea 2.1: MotionAR terminatview, Secțiunea 2.2.1: Biblioteca MotionAR descriere, API-uri MotionAR, Secțiunea 2.2.4: Cod demonstrativ, Secțiunea 2.2.5: Performanța algoritmului, Secțiunea 3: Sample aplicație şi Secțiunea 4: Aplicația MEMS-Studio.

NOTIFICARE IMPORTANT – CITIȚI CU ATENTIE

STMicroelectronics NV și filialele sale („ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii.

Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST, iar ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor.

Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta.

Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs.

ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați www.st.com/trademarks. Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi.

Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.

© 2024 STMicroelectronics – Toate drepturile rezervate

Logo

Documente/Resurse

Biblioteca de recunoaștere a activității STMicroelectronics UM2193 MotionAR [pdfManual de utilizare
Biblioteca de recunoaștere a activității UM2193 MotionAR, UM2193, Biblioteca de recunoaștere a activității MotionAR, Biblioteca de recunoaștere a activității, Biblioteca de recunoaștere, Bibliotecă

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *