一、项目概述
本文主要开发内容是使用PAJ7620U2手势识别模块实现电脑端PPT隔空翻页效果。需要用到STM32 H5核心板的USB外设,以实现USB HID设备模拟、通信。本次HID通信中的几个主要HID键盘报告描述符为KeyUp、KeyDown、KeyRight、KeyLeft,以及Home、End。关于手势识别模块和HID通信的介绍,我先前发布的帖子有相关内容介绍,这里就不再赘述。
系统框图如下
实现隔空PPT翻页的基本思路是:
(1)STM32 H5驱动并获取手势识别模块返回的手势数据;
(2)判断手势数据类型,根据不同手势向PC发送相应的HID报告描述符;
(3)这里添加有扩展任务内容,完成对步进电机的驱动。拟用靠近、远离手势来控制电机启动、停止。
二、CubeMX配置
因为项目中同时用到了手势识别模块、USB外设等资源,需要使用到RTOS以提高运行实时性,另一方面也能够便于多任务管理。可以在CubeMX中将Threadx RTOS移植到STM32 H5上。ThreadX是一款专为深度嵌入式应用设计的硬实时操作系统(RTOS)。它以其卓越的性能、丰富的功能和广泛的应用领域,成为嵌入式系统开发者的首选之一。以下是对ThreadX的详细介绍:
1.规模小、实时性强:ThreadX具有紧凑的代码设计,能够最大限度地减少嵌入式设备的资源占用。同时,它提供强大的实时性能,确保任务在预定的时间内得到响应。
2.可靠性高:ThreadX经过严格的测试和验证,具有极高的稳定性和可靠性。它支持多任务并发执行,能够在复杂的嵌入式系统中提供稳定可靠的服务。
3.无产品版权费:ThreadX采用免版税的业务模式,对于高容量器件来说极具吸引力。这使得开发者可以在不增加额外成本的前提下,享受ThreadX带来的诸多优势。
4.易于使用:ThreadX提供直观的API和丰富的文档支持,使开发者能够轻松上手并快速完成嵌入式系统的开发。
为工程添加ThreadX RTOS
勾选USBX驱动库
三、硬件连接示意图
PAJ7620手势识别模块IIC通信数据线连接PC8、PB10引脚,外部ULN2003驱动板四相控制线连接PB1、PB13、PB14、PB15引脚,最后步进电机四相控制线再接入ULN2003驱动板。
四、程序设计
(1)以下函数能够将指定keyboard_code报告描述符通过HID设备发送到计算机
(2)PAJ7620手势识别处理
(3)步进电机驱动
五、运行效果
(1)手势翻页效果
(2)步进电机控制效果
Bilibili视频演示
https://www.bilibili.com/video/BV1Nm421L7Fp