ZX距离与手势传感器连接指南

电子说

1.4w人已加入

描述

ZX距离与手势传感器连接指南

一、引言

ZX距离与手势传感器是与XYZ Interactive合作的产品。XYZ Interactive的技术人员创造了一种独特的技术,能利用简单的红外光束在二维空间中检测物体的位置。该传感器是无接触式的,不仅能在空中识别简单手势(如左右滑动),还能识别物体距离传感器的距离(“Z”轴,最远约10英寸即25厘米),以及物体在传感器上方左右的位置(“X”轴,跨度约6英寸即15厘米)。

文件下载:SEN-12780.pdf

二、教程涵盖内容

本教程将展示如何将传感器连接到Arduino和计算机,具体分为以下几个部分:

  1. 板载概述:介绍ZX传感器的各种引脚和跳线设置。
  2. 硬件连接:讲解如何将传感器连接到Arduino。
  3. Arduino库安装:若计划将其与Arduino配合使用,需安装ZX传感器库。
  4. Arduino:ZX示例:演示如何在Arduino上读取传感器的Z轴和X轴数据。
  5. Arduino:手势示例:展示如何使用Arduino读取手势。
  6. PC:ZX示例:说明如何在Windows计算机上读取Z轴和X轴数据。
  7. 资源与拓展:提供更多使用ZX传感器的额外资源。

三、所需材料

除传感器本身外,若要进行Arduino示例,还需以下额外组件:

  1. ZX手势和距离传感器(SEN - 12780):无接触式传感器,具备相应检测功能。
  2. SparkFun USB Mini - B电缆(CAB - 11301):USB 2.0 A型到Mini - B 5针电缆。
  3. SparkFun RedBoard(DEV - 12757):预编程Arduino的开发板。
  4. 面包板(PRT - 12043):白色迷你面包板,用于小型项目原型搭建。
  5. 6英寸公对公跳线(PRT - 08431):SparkFun独家产品,155mm长。
  6. 直排引脚(PRT - 00116):40针引脚,可按需切割。

若要在基于Windows的PC上尝试ZX传感器,还需要一个FTDI转接板(SparkFun FTDI Basic Breakout - 5V,DEV - 09716)。

在开始使用ZX传感器之前,建议熟悉以下概念:

  1. Arduino基础:部分示例使用Arduino控制传感器。
  2. I²C协议:ZX传感器使用的通信协议之一。
  3. 串口通信:用于编程Arduino、查看调试信息和传输传感器数据。
  4. 面包板使用:面包板用于连接Arduino和ZX传感器。
  5. FTDI驱动安装:编程Arduino或使用传感器演示应用程序时可能需要。

四、板载概述

4.1 工作原理

ZX传感器通过两侧的两个LED发射红外(IR)光束,光束从传感器上方的物体反射回来,反射光被传感器中心的接收器接收,传感器背面的微控制器对数据进行解读。我们可以通过I²C或UART连接读取结果。

4.2 引脚描述

ZX传感器提供了2个连接端口:I²C和UART。需要注意的是,只能使用I²C或UART中的一种与传感器通信。各引脚功能如下: 引脚标签 描述
GRN 未使用
TXO 传感器的UART发送输出
RXI UART接收,当前未使用
VCC 3.3 - 5V电源
GND 接地
BLK 未使用,但连接到GND
DR 数据就绪,通过I²C有数据可读时为高电平
CL I²C时钟
DA I²C数据

4.3 跳线设置

传感器板背面有几个跳线,可以用烙铁打开或关闭。

  • I²C上拉电阻:默认情况下,SDA和SCL I²C线上有4.7kΩ上拉电阻。移除该跳线的焊锡可断开上拉电阻。
  • I²C地址:默认情况下,此跳线是打开的。关闭它可以更改传感器的I²C地址。 跳线状态 I²C地址
    打开 0x10
    关闭 0x11

4.4 红外屏蔽罩

传感器LED上的小铜管用于阻挡LED发出的直接照射到接收器的红外光,确保光线先从物体反射回来。这些屏蔽罩用强力胶水固定,若要移除可能需要一些丙酮。如果要将ZX传感器安装在自己的外壳中,需确保红外光不会从LED侧面直接到达接收器,即需要制作自己的红外屏蔽罩。

五、硬件连接

5.1 添加引脚

将一排可断开的公引脚焊接到板上的9个引脚孔中。

5.2 连接转接板

对于Arduino示例,我们将使用I²C。将转接板连接到RedBoard的以下引脚: ZX传感器 RedBoard
VCC 5V
GND GND
DR 2
CL A5
DA A4

需要注意的是,我们连接了DR引脚,但仅在Arduino手势示例中使用。DR表示“数据就绪”,当传感器有数据可读时为高电平。我们可以将其连接到Arduino中断,这样就无需持续轮询传感器。

六、Arduino库安装

ZX传感器的大部分工作由传感器本身的微控制器完成,我们只需读取结果。为了更方便地使用,我们创建了一个Arduino库。点击按钮下载最新版本的ZX传感器Arduino库,下载后解压文件,按照Arduino库安装指南将文件安装为Arduino库。

七、Arduino示例

7.1 ZX示例

  • 加载ZX演示:打开Arduino程序,选择“文件” -> “示例” -> “SparkFun_ZX_Distance_and_Gesture_Sensor” -> “I2C_ZX_Demo”。
  • 连接USB:用USB迷你电缆将计算机连接到RedBoard。若之前未安装,需安装FTDI驱动。
  • 运行程序:确保在“工具” -> “串口”中选择正确的串口,在“工具” -> “开发板”中选择“Arduino Uno”。点击上传按钮,等待程序上传到Arduino。选择“工具” -> “串口监视器”打开串口终端,串口监视器设置为默认设置(9600,8,n,1)。此时应看到“ZX Sensor初始化完成”的消息。
  • 测试:将手悬停在传感器上方4到10英寸(10到25厘米)处,移动手,应在串口终端中看到Z(传感器上方高度)和X(左右位置)数据。Z和X数据为0到240之间的无符号整数。

7.2 手势示例

  • 加载手势中断演示:选择“文件” -> “示例” -> “SparkFun_ZX_Distance_and_Gesture_Sensor” -> “I2C_Gesture_Interrupt”。
  • 运行程序:上传草图并打开串口监视器,应看到初始化完成的消息。
  • 测试手势:将手放在传感器一侧(带有黄铜罩的红外LED一侧),距离传感器4到10英寸(10到25厘米),水平划过传感器,若手势正确,应在串口监视器中看到消息。需要注意的是,手势的“速度”衡量手势发生的快慢,数字越小,手势速度越快(如3表示非常快,25表示非常慢)。
  • 支持的手势:目前支持的手势包括右滑(从板左侧向右滑出传感器范围)、左滑(从板右侧向左滑出传感器范围)、上滑(物体靠近传感器,悬停至少1秒,然后向上移出传感器范围)和无手势(传感器无法正确识别手势)。

八、PC示例

ZX传感器除了响应I²C命令外,还会通过其UART端口持续传输ZX数据。我们可以将FTDI转接板直接连接到ZX传感器并读取输出,可使用串口应用程序或屏幕命令(Linux或Mac)查看输出。可以使用3.3V或5V的FTDI转接板,5V转接板能让传感器获得更好的检测范围。

8.1 设置

  • 将FTDI转接板连接到ZX传感器,确保引脚对齐(如GRN连接到GRN,BLK连接到BLK)。
  • 用USB电缆将FTDI转接板连接到计算机。
  • 下载ZX演示应用程序并解压。

8.2 运行

  • 双击运行ZX演示应用程序。
  • 在右侧的“输入:”下拉列表中选择与FTDI转接板对应的COM端口(若需要查找COM端口的帮助,可查看终端基础教程的相关部分),无需选择“输出:”端口。
  • 点击“打开”连接到FTDI转接板。
  • 移动手在传感器上方,应看到红色球移动。还可以尝试应用程序中的其他选项卡,如“Z - 控制”选项卡可尝试让手靠近和远离传感器,“手势”选项卡可根据Z和X数据计算不同的手势。

九、资源与拓展

9.1 其他示例

尝试完基本的ZX和手势演示后,可以尝试Arduino库中的其他示例:

  • I2C_Gesture_Demo:通过I²C轮询传感器,查看是否有手势发生。
  • I2C_Gesture_Interrupt:检测到手势时,DR引脚从低电平变为高电平,此示例通过I²C读取手势并通知传感器清除DR。
  • I2C_ZX_Demo:通过I²C定期轮询传感器获取Z和X轴数据。
  • I2C_ZX_Interrupt:当有效ZX数据准备好时,ZX传感器将DR引脚置为高电平。
  • UART_Gesture_Demo:目前不支持通过UART进行手势识别,此演示暂时作为占位符。
  • UART_ZX_Demo:从软件串口读取Z和X轴数据并在串口监视器上显示。

9.2 资源

以下是一些有助于使用ZX传感器的额外资源:

  • ZX传感器数据手册
  • 使用Arduino与ZX传感器
  • ZX传感器原理图
  • ZX传感器GitHub仓库

9.3 其他教程

如果你需要一些灵感,可以查看以下相关教程:

  • 连接Arduino到Processing
  • 串行图形LCD连接指南
  • RGB面板连接指南
  • APDS - 9960 RGB和手势传感器连接指南

你是否已经准备好使用ZX传感器开发自己的项目了呢?不妨尝试一下这些示例,看看能创造出什么有趣的应用!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • Arduino

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分