跳到主要内容

APDS-9960感应手势

一、本例程实现功能

通过APDS-9960传感器模块感应在传感器表面正上方的“上”,“下”,“左”,“右”手势动作。

二、 传感器应用限制说明

为了准确捕捉到手势动作,手势动作需尽量和传感器模块自身的水平面保持平行,并且二者距离大概在10厘米时效果最佳。

三、接线图

layout

四、材料清单

名称推荐购买链接(或者您可以自己制作)模块/芯片硬件资料下载
APDS-9960传感器模块APDS-9960传感器模块购买链接下载地址
声明:这里推荐的购买链接仅供参考,您完全可以去其他商家或渠道购买,只要功能相似即可,如果需要更低的成本建议自己开发硬件模块或定制。

product

五、完整代码

gest_str = {"up", "down", "left","right"}
--配置USB以虚拟串口模式工作,波特率115200,这样print()就可以在PC串口调试终端上输出了
LIB_UsbConfig("CDC")
--配置APDS9960手势感应传感器开始工作,占用core的IIC0引脚
LIB_ApdsConfig("IIC0", "Gesture")
--开始大循环
while(GC(1) == true)
do
--每0.1秒查询一次传感器是否感应到手势
LIB_DelayMs(100)
flag, gest = LIB_ApdsGetGesture()
if flag == 1 then
--将传感器输出的手势动作代号值(1-4)转换成字符串形式打印输出,1:up 2:down 3:left 4:right
print(string.format("Gesture:%s\r\n", gest_str[gest]))
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

六、代码运行结果

电脑串口调试终端上显示靠手势动作内容如下图:

result