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

API flow char
Figura 2. Secvența logică Motion AR API

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 |
- 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

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
start /
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

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

Referințe
Toate resursele următoare sunt disponibile gratuit pe www.st.com.
- UM1859: Noțiuni introductive cu MEMS de mișcare X-CUBE-MEMS1 și extinderea software-ului pentru senzori de mediu pentru STM32Cube
- UM1724: plăci STM32 Nucleo-64 (MB1136)
- 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

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ă |



