STMicroelectronics UM2193 MotionAR 활동 인식 라이브러리

소개
Motion AR은 X-CUBE-MEMS1 소프트웨어의 미들웨어 라이브러리 부분이며 STM32에서 실행됩니다. 사용자가 수행하는 활동 유형에 대한 실시간 정보를 제공합니다. 정지 상태, 걷기, 빠르게 걷기, 조깅, 자전거 타기, 운전 등의 활동을 구별할 수 있습니다.
이 라이브러리는 ST MEMS에서만 작동하도록 고안되었습니다.
이 알고리즘은 정적 라이브러리 형식으로 제공되며 ARM® Cortex®-M32, ARM® Cortex®-M3, ARM® Cortex®-M33 또는 ARM® Cortex®-M4 아키텍처를 기반으로 하는 STM7 마이크로컨트롤러에서 사용하도록 설계되었습니다.
이는 다양한 STM32 마이크로컨트롤러 간의 이식성을 용이하게 하는 STM32Cube 소프트웨어 기술을 기반으로 구축되었습니다.
소프트웨어는 s와 함께 제공됩니다.ampNUCLEO-F01RE, NUCLEO-L3RE 또는 NUCLEO-U4ZI-Q 개발 보드의 X-NUCLEO-IKS1A401 또는 X-NUCLEO-IKS152A575 확장 보드에서 실행되는 파일 구현입니다.
두문자어 및 약어
표 1. 약어 목록
| 두문자어 | 설명 |
| API | 애플리케이션 프로그래밍 인터페이스 |
| 비에스피(BSP) | 보드 지원 패키지 |
| 그래픽 사용자 인터페이스(GUI) | 그래픽 사용자 인터페이스 |
| 할 | 하드웨어 추상화 계층 |
| IDE | 통합 개발 환경 |
X-CUBE-MEMS1 소프트웨어 확장의 모션 AR 미들웨어 라이브러리
모션 AR 종료view
Motion AR 라이브러리는 X-CUBE-MEMS1 소프트웨어의 기능을 확장합니다.
라이브러리는 가속도계로부터 데이터를 수집하고 사용자가 수행하는 활동 유형에 대한 정보를 제공합니다.
라이브러리는 ST MEMS 전용으로 설계되었습니다. 다른 MEMS 센서를 사용할 때의 기능과 성능은 분석되지 않으며 문서에 설명된 내용과 크게 다를 수 있습니다.
Samp파일 구현은 NUCLEO-F01RE, NUCLEO-L3RE 또는 NUCLEO-U4ZI-Q 개발 보드에 장착된 X-NUCLEO-IKS1A401 또는 X-NUCLEO-IKS152A575 확장 보드에서 사용할 수 있습니다.
모션 AR 라이브러리
Motion AR API의 기능과 매개변수를 완벽하게 설명하는 기술 정보는 MotionAR_Package.chm 컴파일된 HTML에서 찾을 수 있습니다. file Documentation 폴더에 있습니다.
모션 AR 라이브러리 설명
- Motion AR 활동 인식 라이브러리는 가속도계에서 획득한 데이터를 관리합니다. 특징:
- 다음 활동을 구별할 수 있음: 정지 상태, 걷기, 빠르게 걷기, 조깅, 자전거 타기, 운전
- 가속도계 데이터만을 기반으로 한 인식
- 필요한 가속도계 데이터amp링 주파수: 16Hz
- 리소스 요구사항:
- Cortex-M3: 8.5kB 코드 및 1.4kB 데이터 메모리
- Cortex-M33: 7.8kB 코드 및 1.4kB 데이터 메모리
- Cortex-M4: 7.9kB 코드 및 1.4kB 데이터 메모리
- Cortex-M7: 8.1kB 코드 및 1.4kB 데이터 메모리
- ARM Cortex-M3, Cortex-M33, Cortex-M4 및 Cortex-M7 아키텍처에 사용 가능
모션AR API
MotionAR API는 다음과 같습니다.
- uint8_t MotionAR_GetLibVersion(char *version)
- 라이브러리 버전을 검색합니다.
- *version은 35자 배열에 대한 포인터입니다.
- 버전 문자열의 문자 수를 반환합니다.
- 무효 MotionAR_Initialize(void)
- MotionAR 라이브러리 초기화 및 내부 메커니즘 설정을 수행합니다.
- STM32 마이크로컨트롤러의 CRC 모듈(RCC 주변 장치 클럭 활성화 레지스터)은 다음과 같아야 합니다.
라이브러리를 사용하기 전에 활성화됨
메모: 가속도계 교정 라이브러리를 사용하기 전에 이 함수를 호출해야 합니다.
- 무효 MotionAR_Reset(void)
- 활동 인식 알고리즘을 재설정합니다.
- 무효 MotionAR_Update(MAR_input_t *data_in, MAR_output_t *data_out, int64_t
가장 빠른amp)- 활동 인식 알고리즘을 실행합니다.
- *data_in 매개변수는 입력 데이터가 있는 구조에 대한 포인터입니다.
- MAR_input_t 구조 유형의 매개변수는 다음과 같습니다.
- acc_x는 X축의 가속도계 센서 값(g)입니다.
- acc_y는 Y축의 가속도계 센서 값(g)입니다.
- acc_z는 Z축의 가속도계 센서 값(g)입니다.
- *data_out 매개변수는 다음 항목이 포함된 열거형에 대한 포인터입니다.
- MAR_NOACTIVITY = 0
- MAR_STATIONARY = 1
- MAR_WALKING = 2
- MAR_FASTWALKING = 3
- MAR_JOGGING = 4
- MAR_BIKING = 5
- MAR_DRIVING = 6
- 가장 빠른amp 실제 s에 대한 상대적 시간입니다.amp르(밀리초)
- void MotionAR_ Set Orientation_ Acc(const char *acc_ 방향)
- 가속도계 데이터 방향을 설정합니다.
- 구성은 일반적으로 Motion AR_ 초기화 함수 호출 직후에 수행됩니다.
- *acc_ 방향 매개변수는 가속도계 데이터 출력에 사용되는 참조 프레임의 각 양의 방향(x, y, z 순서)의 방향을 나타내는 세 문자의 문자열에 대한 포인터입니다. 유효한 값은 다음과 같습니다: n(북쪽) 또는 s(남쪽), w(서쪽) 또는 e(동쪽), u(위) 또는 d(아래)
- 아래 그림에 표시된 것처럼 X-NUCLEO-IKS4A1 가속도계 센서에는 SEU(x-South, y-East, z-Up)가 있으므로 문자열은 "seu"입니다.
그림 1. 센서 방향 예ample

API 흐름 문자
그림 2. 모션 AR API 로직 시퀀스

데모 코드
다음 데모 코드는 가속도계 센서에서 데이터를 읽고 활동 코드를 가져옵니다.
[...] #define VERSION_STR_LENG 35 [...] /*** 초기화 ***/ char lib_version[VERSION_STR_LENG]; char acc_orientation[] = "seu"; /* 활동 인식 API 초기화 함수 */ MotionAR_Initialize(); /* 선택 사항: 버전 가져오기 */ MotionAR_GetLibVersion(lib_version); /* 가속도계 방향 설정 */ MotionAR_SetOrientation_Acc(acc_orientation); [...] /*** 활동 인식 알고리즘 사용 ***/ Timer_ OR_ Data Rate_ Interrupt_ Handler() {
MAR_input_t data_ in; MAR_ 출력_ t 활동; /* 가속도 X/Y/Z를 g 단위로 가져옵니다. */ MEMS_Read_AccValue(&data_in.acc_x, &data_in.acc_y, &data_in.acc_z); /* 현재 시간을 ms 단위로 가져옵니다 */ TIMER_Get_TimeValue(×tamp_ms); /* 활동 인식 알고리즘 업데이트 */ MotionAR_Update(data_in, data_out, timestamp_ms); }
알고리즘 성능
활동 인식 알고리즘은 가속도계의 데이터만 사용하며 낮은 주파수(16Hz)에서 실행되어 전력 소비를 줄입니다.
표 2. 알고리즘 성능
| 활동 | 탐지 확률(일반)(1) | 최고의 성능 | 느끼기 쉬운 | 캐리 포지션 |
| 변화 없는 | 92.27% | 손을 잡고 무거운 문자 메시지를 보냅니다. | 전체: 바지 주머니, 셔츠 주머니, 뒷주머니, 머리 근처 등 | |
| 걷는 | 99.44% | 단계 속도 ≥ 1.4단계/초 | 단계 속도 ≤ 1.2 단계/초 | 모두 |
| 빠른 걷기 | 95.94% | 단계 속도 ≥ 2.0단계/초 | 모두 | |
| 조깅 | 98.49% | 단계 속도 ≥ 2.2단계/초 | 지속 시간 < 1분; 속도 < 8km/h | 바지 주머니, 팔 스윙, 손에 |
| 자전거 타기 | 91.93% | 실외 속도 ≥11 Km/h | 조수석, 글러브 컴파트먼트 | 백팩, 셔츠 포켓, 바지 포켓 |
| 운전 | 78.65% | 속도 ≥ 48Km/h | 조수석, 글러브 컴파트먼트 | 컵홀더, 대시보드, 셔츠 포켓, 바지 포켓 |
- 일반적인 사양은 보장되지 않습니다.
표 3. Cortex-M4 및 Cortex-M3: 경과 시간(μs) 알고리즘
| Cortex-M4 STM32F401RE(84MHz) | Cortex-M3 STM32L152RE(32MHz) | ||||
| 최소 | 평균 | 맥스 | 최소 | 평균 | 맥스 |
| 2 | 6 | 153 | 8 | 130 | 4883 |
표 4. Cortex-M33 및 Cortex-M7: 경과 시간(μs) 알고리즘
| Cortex-M33 STM32U575ZI-Q(160MHz) | Cortex-M7 STM32F767ZI(96MHz) | ||||
| 최소 | 평균 | 맥스 | 최소 | 평균 | 맥스 |
| < 1 | 2 | 74 | 5 | 9 | 145 |
Samp르 신청
MotionAR 미들웨어는 쉽게 조작하여 사용자 애플리케이션을 구축할 수 있습니다. ~처럼amp파일 애플리케이션은 Application 폴더에 제공됩니다.
이는 X-NUCLEO-IKS401A152 또는 X-NUCLEO-IKS575A01 확장 보드에 연결된 NUCLEO-F3RE, NUCLEO-L4RE 또는 NUCLEO-U1ZI-Q 개발 보드에서 실행되도록 설계되었습니다.
애플리케이션은 수행된 활동을 실시간으로 인식합니다. 데이터는 GUI를 통해 표시될 수 있습니다. 알고리즘은 정지 상태, 걷기, 빠른 걷기, 조깅, 자전거 타기 및 운전 활동을 인식합니다. 실시간 데이터를 모니터링하려면 USB 케이블 연결이 필요합니다. 보드는 USB 연결을 통해 PC에 의해 전원이 공급됩니다. 이를 통해 사용자는 감지된 활동, 가속도계 데이터, 시간을 표시할 수 있습니다.amp MEMS-Studio GUI 애플리케이션을 사용하여 실시간으로 다른 센서 데이터를 얻을 수 있습니다.
MEMS-Studio 애플리케이션
Samp파일 애플리케이션은 MEMS-Studio GUI 애플리케이션을 사용하며, 이는 다음에서 다운로드할 수 있습니다. www.st.com.
1단계. 필요한 드라이버가 설치되어 있고 STM32 Nucleo 보드와 적절한 확장 보드가 PC에 연결되어 있는지 확인하세요.
2단계. MEMS-Studio 애플리케이션을 실행하여 메인 애플리케이션 창을 엽니다.
지원되는 펌웨어가 포함된 STM32 Nucleo 보드가 PC에 연결되면 적절한 COM 포트가 자동으로 감지됩니다. 이 포트를 열려면 연결 버튼을 누르세요.
그림 3. MEMS-Studio – 연결

3단계. 지원되는 펌웨어가 있는 STM32 Nucleo 보드에 연결하면 라이브러리 평가 탭이 열립니다.
데이터 스트리밍을 시작하고 중지하려면 해당 버튼을 전환하세요.
시작 /
외부 수직 도구 모음에 있는 중지 버튼을 클릭하세요.
연결된 센서에서 나오는 데이터는 다음과 같습니다. view내부 수직 도구 모음에서 데이터 테이블 탭을 선택했습니다.
그림 4. MEMS-Studio – 라이브러리 평가 – 데이터 테이블
그림 5. MEMS-Studio – 라이브러리 평가 – 활동 인식

5단계. 다음으로 저장을 선택하세요. File 내부 수직 도구 모음의 탭을 눌러 데이터 로깅 구성 창을 엽니다. 로그에 저장할 센서 및 활동 데이터를 선택하세요. file. 해당 시작/중지 버튼을 클릭하여 저장을 시작하거나 중지할 수 있습니다.
그림 6. MEMS-Studio – 라이브러리 평가 – 저장 위치 File

참고문헌
다음 리소스는 모두 무료로 사용할 수 있습니다. www.st.com.
- UM1859: X-CUBE-MEMS1 모션 MEMS 및 STM32Cube용 환경 센서 소프트웨어 확장 시작하기
- UM1724: STM32 Nucleo-64 보드(MB1136)
- UM3233: MEMS-Studio 시작하기
개정 내역
표 5. 문서 개정 내역
| 날짜 | 버전 | 변화 |
| 10-2017-XNUMX | 1 | 최초 출시. |
| 26년 2018월 XNUMX일 | 2 | 섹션 3 S 업데이트됨amp르 응용 프로그램. NUCLEO-L152RE 개발 보드 및 표 3. 경과 시간(μs) 알고리즘에 대한 참조가 추가되었습니다. |
| 19년 2018월 XNUMX일 | 3 | 업데이트된 소개, 섹션 2.1 모션 AR 이상view 및 섹션 2.2.5 알고리즘 성능. |
| 14-2019-XNUMX | 4 | 업데이트된 그림 1. 센서 방향 example, 표 3. 경과 시간(μs) 알고리즘 및 그림 3. STM32 Nucleo: LED, 버튼, 점퍼. X-NUCLEO-IKS01A3 확장 보드 호환성 정보를 추가했습니다. |
| 20년 2019월 XNUMX일 | 5 | 업데이트된 섹션 2.2.2 Motion AR API, 그림 3. MEMS-Studio – 연결, 그림 4. MEMS-Studio – 라이브러리 평가 – 데이터 테이블, 그림 5. MEMS-Studio – 라이브러리 평가 – 활동 인식 및 그림 6. MEMS-Studio – 라이브러리 평가 – 다음에 저장 File. |
| 04-2024-XNUMX | 6 | 업데이트 섹션 소개, 섹션 2.1: MotionAR 종료view, 섹션 2.2.1: MotionAR 라이브러리 설명, MotionAR API, 섹션 2.2.4: 데모 코드, 섹션 2.2.5: 알고리즘 성능, 섹션 3: Samp르 신청 그리고 섹션 4: MEMS-Studio 애플리케이션. |
중요 공지 – 주의 깊게 읽어보세요
STMicroelectronics NV 및 그 자회사("ST")는 언제든지 통지 없이 ST 제품 및/또는 이 문서를 변경, 수정, 개선, 수정 및 개선할 권리를 보유합니다. 구매자는 주문하기 전에 ST 제품에 대한 최신 관련 정보를 얻어야 합니다. ST 제품은 주문 확인 시점에 적용되는 ST의 판매 약관에 따라 판매됩니다.
구매자는 ST 제품의 선택, 선정 및 사용에 대한 전적인 책임을 지며, ST는 구매자의 제품 설계나 애플리케이션 지원에 대한 책임을 지지 않습니다.
ST는 본 계약에 따라 어떠한 지적 재산권에 대한 명시적 또는 묵시적 라이센스도 부여하지 않습니다.
여기에 명시된 정보와 다른 조항이 적용된 ST 제품을 재판매할 경우, ST가 해당 제품에 대하여 부여한 모든 보증은 무효화됩니다.
ST 및 ST 로고는 ST의 상표입니다. ST 상표에 대한 추가 정보는 다음을 참조하십시오. www.st.com/trademarks. 다른 모든 제품 또는 서비스 이름은 해당 소유자의 자산입니다.
이 문서의 정보는 이 문서의 이전 버전에서 제공된 정보를 대체하고 교체합니다.
© 2024 STMicroelectronics – 모든 권리 보유

문서 / 리소스
![]() |
STMicroelectronics UM2193 MotionAR 활동 인식 라이브러리 [PDF 파일] 사용자 매뉴얼 UM2193 MotionAR 활동 인식 라이브러리, UM2193, MotionAR 활동 인식 라이브러리, 활동 인식 라이브러리, 인식 라이브러리, 라이브러리 |



