通过课程2我们了解了通过AJ7620U2模块可以实现9种手势的识别;解下来我们需要利用手势来实现PPT的翻页。这些指令需要通过USB发送给主机(即PC);而往主机首先需要知道是什么设备进行插入,会发送询问命令,从机则会返回,所以我们需要修改设备配置描述符与设备报告描述符,从而让主机知道待会儿会有个虚拟键盘设备。
这个时候我们需要先了解Human Interface Devices (HID) Specifications and Tools(人机接口规范与工具)了。这是有个文档的。
对应的链接也在这里:https://www.usb.org/hid
大家有时间可以仔细的看一下。
接下来,我们需要知道的是PPT的翻页,对应的键盘按键是:PageUp(上翻)、PageDown(下翻),F5(从头播放)、ESC(退出全屏)等;对应的Usage ID是:
对应的链接如下:https://www.usb.org/sites/default/files/hut1_5.pdf
通过链接可以找到我们任意想要的虚拟键盘任意键的ID。
所以,我们将AJ7620U2模块识别出的手势与之对应;代码如下:
Case PAJ_UP: hid_event.ux_device_class_hid_event_buffer[2] = 0x4B; break; //Keyboard PageUp
case PAJ_DOWN: hid_event.ux_device_class_hid_event_buffer[2] = 0x4E; break; //Keyboard PageDown
case PAJ_LEFT: hid_event.ux_device_class_hid_event_buffer[2] = 0x3E; break; //Keyboard Esc
case PAJ_RIGHT: hid_event.ux_device_class_hid_event_buffer[2] = 0x29; break; //Keyboard F5
case PAJ_FORWARD: hid_event.ux_device_class_hid_event_buffer[2] = 0x4A; break; //Keyboard Home
case PAJ_BACKWARD: hid_event.ux_device_class_hid_event_buffer[2] = 0x4D; break; //Keyboard End
case PAJ_CLOCKWISE: hid_event.ux_device_class_hid_event_buffer[2] = 0x50; break; //Keyboard LeftArrow
case PAJ_COUNT_CLOCKWISE: hid_event.ux_device_class_hid_event_buffer[2] = 0x4F; break; //Keyboard RightArrow
接下来是结果演示,如下视频:https://www.bilibili.com/video/BV1dJvvezEj3/?vd_source=935e83c155686718e188c55b2b17f772
基本功能是没问题的。回头有时间再琢磨琢磨做其他功能和组合键。因为这些手势代表的是虚拟键盘,跟PPT无关,其他界面也是同样可以发挥作用的。以后再看看吧。。。