0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快速设计您自己的低成本 3D 手势控制器

丫丫119 来源:未知 作者:Jacob Beningo 2019-08-28 17:25 次阅读

旋钮、按钮、手柄和触摸屏是人类与机器和嵌入式设备的常用交互方式。不过,传感器技术的最新进展开辟了一条全新的道路,使开发人员可为产品添加三维 (3D) 手势控制。

由于所采用的技术各不相同,购买和集成手势控制器可能成本高昂。然而,市面上手势传感器技术种类繁多,从使用红外 LED光电二极管检测动作的经济型传感器,到昂贵的手势识别相机。红外手势传感器经济实惠,可以通过数字接口与低成本微控制器连接,只需辅以简单的软件,精度足以应对许多应用。

本文探讨了使用Broadcom的APDS-9960进行手势控制的方法。几乎所有嵌入式系统都可轻松集成这款红外 (IR) 手势控制传感器。

基于 IR 的手势传感器

基于 IR 的手势传感器原理十分简单。用于检测手势时,开发人员可能需要检测以下几种不同手势:

向上/向下

向左/向右

向前/向后

在上述每种情况下,传感器都需要检测运动方向,而这主要通过传感器的两大组件来实现:一个发光二极管 (LED) 和多个定向光电二极管。定向光电二极管由至少四个光电二极管组成,分别置于距 IR LED 预定义距离处。例如,Broadcom 的 APDS-9960 环境光、接近度和手势传感器将四个光电二极管布置为菱形,每个二极管用于指示一个方向,分别为上、下、左和右(图 1)。

图 1:Broadcom 的 APDS-9960 具有一个集成 IR LED 和四个定向光电二极管,可检测反射的 IR 能量以分析手势。(图片来源:Broadcom)

当 LED 发射红外能量时,除非遇到手等物体发生反射,否则能量就会发射至空气中。光电二极管将检测到不同强度的反射能量,具体取决于物体的位置。例如,相比位于手势后边缘的光电二极管,前边缘光电二极管最初接收的反射能量较少,从而导致一个光电二极管的计数值比另一个高。在手势动作过程中,连续测量将导致不同位置的光电二极管检测的反射能量强度不同,而分析该方向信息流即可确定手势。

例如,若用户用手从传感器的顶部轻扫至底部,则在手势动作之初,下方光电二极管检测的入射光比上方光电二极管更强;在手势动作期间,手逐渐移动到两个二极管接收能量相等的点;而在手势动作完成时,下方光电二极管接收的反射光较弱,而上方光电二极管接收的更强,此时两光电二极管的曲线和相位完全反转(图 2)。

图 2:Broadcom 的 APDS-9960 检测到向下手势将生成以上光电二极管曲线,其中主导曲线指示手势方向。(图片来源:Broadcom)

了解手势数据的生成原理后,下一步就来看看如何连接到 APDS-9960。

连接 Broadcom 的 APDS-9960 手势控制器

APDS-9960 采用 8 引脚表面贴装 (SMD-8) 封装,占用印刷电路板空间极小(图 3)。传感器尺寸仅为 3.94 × 2.36 × 1.35 mm。该封装包含正常电源和接地引脚、用于连接微控制器的 I2C 数字接口,以及用于定制 LED 驱动电路的引脚。此外,该封装还包含中断引脚,可用于通知微控制器处理可用的手势数据。

图 3:APDS-9960 采用紧凑型表面贴装 SMD-8 封装,可最大限度减少电路板空间。(图片来源:Broadcom)

构建原型并连接 APDS-9960 有几种不同选项可供选择。例如,SparkFun的APDS-9960 评估板提供了包括 LED 驱动电路在内的小型分线板,以便实现开箱即用(图 4)。开发人员只需焊接针座以通过旁路绕过电源和接地,并将 I2C 总线和可选的中断引脚连接至微控制器,即可着手开发嵌入式软件了。此外,SparkFun 评估板还包含安装孔,若现有电路板有助于实现应用,则可直接运用到设计中。

图 4:SparkFun 的 APDS-9960 评估板包含着手开发手势控制所需的所有板载电路。(图片来源:Digi-Key Electronics)

或者,开发人员也可使用Adafruit的APDS-9960 分线板,这也是一款一体化解决方案(图 5)。Adafruit 分线板很有意思,尽管外形小巧,却还包含 3 V 板载稳压器,可用于为电源 LED 甚至低功耗微控制器等附加电路供电。最重要的是,Adafruit 为开发人员提供了完善的 Adafruit APDS9960 分线板用户指南,以及若干软件库可用于连接 Arduino 板或运行 Python 的开发板。因此,使用 APDS-9960 可轻松实现开箱即用,从而大幅缩短开发人员着手使用手势传感器所花费的时间。

图 5:Adafruit 的 APDS-9960 分线板包括 APDS-9960、3 V 板载稳压器和 I2C 电压转换电路以支持 3 V 或 5 V 总线。(图片来源:Digi-Key Electronics)

连接上述分线板的最简单方法是将Molex22-28-4255分离式针座焊接至电路板上。最好将针座朝下焊接,可实现多种优势:首先,可将电路板直接插入某个试验板,如Digilent的340-002-1无焊试验板套件(图 6)。其次,不要在该电路板上表面接线,以免手势动作时意外触及挂在针座上的电线。

图 6:Digilent 无焊试验板上焊接好的 Adafruit APDS-9960 分线板。(图片来源:Adafruit)

此时,需要连接电源和接地,并将 I2C 总线连接至所需的微控制器开发板。任何带微控制器的开发板都可使用。但最好选择STMicroelectronics用于物联网节点的B-L475E-IOT01A2STM32L475 开发套件(图 7)。该开发板具有 Arduino 针座,并且由 MicroPython 提供支持,可在该开发板上轻松编程。完成此操作后,即可使用 Python 脚本连接手势传感器,从而使手势控制不仅可行,而且轻而易举。

图 7:STM32L475 物联网节点开发套件包含 Arduino 针座,可轻松连接到 APDS-9960 分线板。(图片来源:STMicroelectronics)

使用 Python 检测手势

从 APDS-9960 获取手势数据虽不复杂,却要求开发人员仔细阅读规格书。APDS-9960 具有多种不同功能,其中包括:

手势感应

环境光感应

RGB 颜色感应

接近感应

上述功能均由状态机控制,而状态机的执行则基于应用的寄存器设置。例如,防止手势引擎一直执行的妙招是使用接近感应引擎来检测手的存在。一旦 IR 反射能量达到预设计数,则由接近引擎转换为手势引擎,手势引擎测量定向光电二极管并将测量值放入先进先出 (FIFO) 缓冲器。为了启用该功能,需要设置控制寄存器启用接近感应,并设置计数阈值。

开发人员可能需要编写算法以检测特定的手势,具体取决于应用所需的手势。然而,对于向上/向下和向左/向右等常见手势,开发人员可以使用 Adafruit 的 APDS-9960CircuitPython 库。将该库复制到 Python 设备后,即可使用清单 1 所示代码导入。该代码可导入 APDS-9960 库以及支持 I2C 总线的多个库。

副本 import board import busio import adafruit_apds9960.apds9960 i2c = busio.I2C(board.SCL, board.SDA) sensor = adafruit_apds9960.apds9960.APDS9960(i2c)

清单 1:用于连接 APDS-9960 手势控制器的 CircuitPython 导入和库初始化代码。(图片来源:Adafruit)

传感器对象是 APDS-9960 库中一个实例。稍后,我们将看到其易用性。为了启用手势,开发人员只需使用以下代码启用手势功能:

副本 sensor.enable_gesture = True The main program loop setup to read the gesture is itself just a few lines of code (Listing 2).gesture = sensor.gesture() while gesture == 0: gesture = sensor.gesture() print('Saw gesture: {0}'.format(gesture))

清单 2:只需简单重复调用单个库即可检测手势。(图片来源:Adafruit)

阅读该代码后,您定会发现若感测到手势,则将在屏幕上打印检测的手势(图 8)。

图 8:Adafruit 的 APDS-9960 CircuitPython 库手势输出结果示例。(图片来源:Adafruit)

手势可以数字形式输出,使用以下键值即可轻松转换:

0 = 未检测到手势

1 = 检测到向上手势

2 = 检测到向下手势

3 = 检测到向左手势

4 = 检测到向右手势

如图所示,借助预先导入的库,只需几行代码即可轻松实现基本手势识别。识别更为复杂的手势则需要修改库以分析原始手势数据。

构建手势控制器的技巧与诀窍

构建手势控制传感器并将其集成于产品着实具有一定挑战性。使用基于红外线的手势控制器时,开发人员需要考虑使用以下几个“技巧与诀窍”:

使用手势传感器的内部接近检测器来触发手势控制引擎,从而最大限度地减少无效手势启动。

从现有手势库开始,在现有功能的基础上构建其他手势。

将光电二极管增益调整为适合最终手势应用的最佳值。

将 LED 输出驱动强度调整为适合应用的最佳值,或许需要稍作调整才能获得可重复使用的数值。

无论开发何种手势应用,开发人员都应从高级软件开发入手,待充分熟悉该传感器后再转而使用较低级别的代码。

遵循上述技巧有助于确保开发人员花费最短的时间来启动和运行 IR 手势控制器。

总结

人们不断追求以更自然、更直观的方式进行人机交互,而其中一种重要方式就是使用手势控制技术。尽管市面上手势控制技术种类繁多,但论及成本最低、使用最便捷的技术还属基于红外线的手势传感器。如上所述,如果开发人员利用现有的硬件和软件技术,则将手势传感器与微控制器集成在一起,亦可省时省力,简单易用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2483

    文章

    44467

    浏览量

    725496
  • 3D
    3D
    +关注

    关注

    7

    文章

    2638

    浏览量

    105934
  • Broadcom
    +关注

    关注

    2

    文章

    728

    浏览量

    43339
收藏 人收藏

    评论

    相关推荐

    如何设计高质量低成本3D眼镜_Designing Cost-Effective 3D Technol...

    低成本3D眼镜_Designing Cost-Effective 3D Technology ByRobert Murphy, Cypress Semiconductor作者
    发表于 06-18 13:56

    一枚芯片,四片铜箔,简单实现3D手势控制

    介绍的是一款珠海普林芯驰科技有限公司推出的SPT10 A系列芯片,也就是3D手势控制芯片,核心技术是远距离电容感应技术,您可以理解为是一种推广,但这不正是我们探索世界奥秘的途径
    发表于 08-08 14:43

    针对显示屏的2D/3D触摸与手势开发工具包DV102014

    控制器MTCH6303及MGC3130 3D手势控制器。它包含一个8英寸的透明触摸传感,以便对多种常用显示屏进行快速原型开发。MTCH6303可以100 Hz的五指扫描率提供多点触摸坐标
    发表于 11-07 10:45

    自制低成本3d激光扫描测距仪激光雷达

    低成本3d激光扫描测距仪激光雷达
    发表于 05-27 16:23

    自制低成本3D激光扫描测距仪(3D激光雷达)

    低成本3D激光扫描测距仪(3D激光雷达)
    发表于 03-04 10:51

    触摸和3D手势控制

    3D控制技术屡获殊荣,能广泛应用于各种应用,包括触摸按键(1D)、触摸屏(2D)以及3D手势控制
    发表于 07-14 16:36 22次下载

    低成本3D打印机的源代码免费下载

    低成本3D打印机源代码免费下载
    发表于 10-23 17:24 31次下载

    SVPWM算法在低成本控制器中的快速实现

    低成本控制器中的快速实现
    发表于 10-28 11:59 2次下载
    SVPWM算法在<b>低成本</b>微<b>控制器</b>中的<b>快速</b>实现

    快速设计自己低成本 3D 手势控制器

    发表于 11-25 08:28 0次下载
    <b>快速</b>设计<b>您</b><b>自己</b>的<b>低成本</b> <b>3D</b> <b>手势</b><b>控制器</b>

    微软收购3D手势控制公司Canesta

    3D 手势和移动感应技术的半导体芯片制造公司。新科技可以被用于从 Windows 8 的移动控制到 Xbox 的移动感应的各个方面。
    发表于 12-12 08:56 673次阅读

    移动设备作图新武器:3D手势输入

    3D手势输入”专利。据国外媒体报道称,该技术允许用户通过特殊手势实现3D手势输入,达到以3D的方式操控3D数字图像的目的。
    发表于 08-23 13:38 1409次阅读
    移动设备作图新武器:<b>3D</b><b>手势</b>输入

    人机交互技术换代,如何搭上通往3D手势识别的直通车?

    3D手势识别和运动跟踪控制器芯片,片上集成的Colibri手势识别套件,Colibri套件结合了隐马尔可夫模型
    发表于 10-26 17:24 1034次阅读
    人机交互技术换代,如何搭上通往<b>3D</b><b>手势</b>识别的直通车?

    采用GestIC®技术的可配置3D手势控制器MGC3130

    3D跟踪和手势控制器核心特性的Sabrewing单区评估工具包。
    的头像 发表于 06-08 02:46 4563次阅读

    Microchip发布全新GestIC控制器,使嵌入式设备添加3D手势识别设计一步到位

    3D手势控制器备有专注于手势检测的简化用户界面选项,可令消费电子与嵌入式设备添加3D手势识别设计实现
    发表于 08-20 22:54 173次阅读

    3D Flash 激光雷达测绘和手势识别

    3D Flash 激光雷达测绘和手势识别
    的头像 发表于 01-05 09:43 729次阅读