引言 MotionGR 是 X-CUBE-MEMS1 软件的中间件库组件,在 STM32 上运行。它提供了用户使用手机等设备所采用手势的实时信息。 它可区分如下手势:拿起、查看、唤醒。 该库仅可用于 ST MEMS。 该算法以静态库格式提供,旨在用于基于 ARM® Cortex®-M3 或 ARM® Cortex®-M4 架构的 STM32 微控制器。 它以 STM32Cube 软件技术为基础而构建,便于在不同 STM32 微控制器之间移植。 该软件附带了 NUCLEO-F401RE、NUCLEO-L476RG 或 NUCLEO-L152RE 开发板上的 X-NUCLEO-IKS01A2 或 X-NUCLEOIKS01A3 扩展板上运行的实现示例。 1 缩写和缩略语 2STM32Cube X-CUBE-MEMS1 软件扩展中的 MotionGR 中间件库 2.1MotionGR 概述 MotionGR 库扩展了 X-CUBE-MEMS1 软件的功能。 该库从加速度计获取数据,提供用户使用设备所采用手势的信息。 该库专为 ST MEMS 而设计。在使用其他 MEMS 传感器时,不分析其功能和性能,并且可能与文档中的描述明显不同。 X-NUCLEO-IKS01A2 和 X-NUCLEO-IKS01A3 扩展板上提供了一个示例实现,安装在 NUCLEO-F401RE、NUCLEO-L476RG 或 NUCLEO-L152RE 开发板上。 2.2MotionGR 库 在“Documentation”文件夹的 HTML 文件(使用 MotionGR_Package.chm 编译)中,提供了完整描述 MotionGRAPI 的功能和参数的技术信息。 2.2.1MotionGR 库说明 MotionGR 手势识别库管理从加速度计获取的数据;它具有如下功能: •可区分如下活动:拿起、查看、唤醒 •仅基于加速度计数据识别 •需要加速度计数据采样频率为 50 Hz •资源需求: – Cortex-M3:9.8 kB 的代码和 4.4 kB 的数据存储器 – Cortex-M4:9.5 kB 的代码和 4.4 kB 的数据存储器 •可用于 Cortex-M3 和 Cortex-M4 架构 2.2.2MotionGR API MotionGR 库 API 为: •uint8_t MotionGR_GetLibVersion(char *version) –检索库版本 –*version 是一个指针,指向 35 个字符的数组 –返回版本字符串中的字符数 •void MotionGR_Initialize(void) –执行 MotionGR 库的初始化和内部机制设置 –使用该库之前,应启用 STM32 微控制器中的 CRC 模块(在 RCC 外设时钟使能寄存器中)。 提示 此函数必须在使用加速度计校准库之前调用 •void MotionGR_Update (MGR_input_t *data_in, MGR_output_t *data_out) –执行手势识别算法 –*data_in 参数是指向输入数据结构的指针 –结构体类型 MGR_input_t 的参数为: ◦AccX 为 X 轴的加速度计传感器值,单位为 g ◦AccY 为 Y 轴的加速度计传感器值,单位为 g ◦AccZ 为 Z 轴的加速度计传感器值,单位为 g –*Data_out 参数为指向枚举型的指针,含有如下项: ◦MGR_NOGESTURE = 0 ◦MGR_PICKUP = 1 ◦MGR_GLANCE = 2 ◦MGR_WAKEUP = 3 •void MotionGR_SetOrientation_Acc (const char *acc_orientation) –此函数用于设置加速度计数据方向 –配置通常在 MotionGR_Initialize 函数调用后立即执行 –*acc_orientation 参数是由三个字符组成的字符串的指针,指示加速度计数据输出使用的参考框架的每个正定向的方向,顺序为 x、y、z。有效值为:n(北)或 s(南),w(西)或 e(东),u(上)或 d(下)。 –如下图所示,X-NUCLEO-IKS01A2 加速度计传感器具有 NWU 方向(x-北,y-西,z-上),所以字符串是:“nwu”。 完整版请查看:附件 |