(SKU:SEN0285) Gesture&Touch Sensor V1.0手势识别及触摸传感器

来自DFRobot Product Wiki
跳转至: 导航搜索

[[文件:|thumb|300px|right|单导联心电检测传感器]]

目录

简介

这款传感器是一种集成了手势识别功能和触摸识别功能的传感器模块。它的最大检测距离为30CM。其中,能够识别向右、向左、向后、向前、下压、上拉及上拉下压后手松开共7种手势,以及5路的触摸信号,具有自动睡眠和唤醒的功能,模块的工作电流为56.3mA,睡眠电流为40uA,具有体积小,低功耗,检测灵敏可靠的特点。模块内部已烧录手势识别算法和数据处理程序,输出数据简洁可靠,可通过串口直接与arduino及树莓派等控制器或上位机通讯,数据包格式为8位数据帧。




Warning yellow.png

注意:

  • 1.由于模块的工作原理的缘故,在强光直射下使用时可能会有异常情况发生;
  • 2.模块断电后会自动初始化,之前的设置无效。
  • 3.连续发送字节时,前个字节的结束信号与下个字节的起始信号要有 200us 以上的时间间隔;模组在工作模式下才能串口接收,接收完数据后需要模组空闲状态才能处理数据,所以说假如接收数据时模组上方一直有物体,要把物体移开才能完成相应设置。



参数规格

  • 供电电压:3.3V - 6V (推荐:5V)
  • 输出电压:0 - 3.3V
  • 工作电流:约56.3mA
  • 睡眠电流:约40uA
  • 接口类型:TTL串口输出
  • 转接板尺寸:35mm * 22mm
  • 接口类型:Gravity
  • 串口协议帧格式:串口波特率 9600;8 个数据位;无校验位;1 个停止位


引脚说明

手势识别原理
标号 名称 功能描述 接线颜色(参考)
1 RXD 接收数据 Green
2 TXD 发送数据 Blue
3 GND Black
4 VCC 电源 Red
5 RXD 接收数据 Green
6 TXD 发送数据 Blue
7 GND Black
8 VCC 电源 red
9 Touch Port 触摸信号*5


通讯协议说明

传感器串口发送:

  • 格式:0xAA,数据码,检验码,0x55;
  • 帧头:0xAA;
  • 帧尾:0x55;
  • 数据码:
    • 右:0x01;左:0x02;后:0x03;前:0x04;下压:0x05;上拉:0x06;上拉下压后手松开:0x07;
    • 触摸 1:0x21;触摸 2:0x22;触摸 3:0x23;触摸 4:0x24;触摸 5:0x25;
  • 校验码:校验码为数据码的反码,比如做右动作时,数据码为 0x01,校验码为 0xFE。

传感器串口接收:

  • 格式:0xAA,设置代号,设定值,检验码,0x55;
  • 帧头:0xAA;
  • 帧尾:0x55;
  • 设置代号:
    • 0x51:设置两个连续有效手势动作有效间隔时间(上电默认 20ms)
    • 0x52:设置睡眠使能或者自动进睡眠时间(上电默认不使能睡眠)
    • 0x54:设置模组感应高度(上电默认 20cm,0xFE)
    • 0x55:设置感应手势使能(上电默认全部感应手势使能)
  • 设定值:
    • 当设置代号为 0x51 时,设定值设置连续有效手势动作有效间隔时间;连续有效手势动作有效间隔时间 = 设定值 * 10ms;
    • 当设置代号为 0x52 时,设定值设置睡眠使能或者自动进睡眠时间(进睡眠后都需要手动唤醒);
      • 0x00:立即进入睡眠;
      • 0x01:使能自动睡眠,默认无操作 10s 自动睡眠;
      • 0x02 - 0xFE:自动睡眠时间;自动睡眠时间 = 设定值 * 1s;
    • 当设置代号为 0x54 时,设定值设置感应高度;(推荐使用默认配置)
      • 0xFF:最高感应高度为 30cm,继续写 0x20 - 0xFE 可微调 30cm 以内高度;
      • 0x00:最高感应高度为 20cm,继续写 0x20 - 0xFE 可微调 20cm 以内高度;
    • 当设置代号为 0x55 时,设定值设置手势使能;
      • 0x01:禁止使能右方向
      • 0x02:禁止使能左方向
      • 0x03:禁止使能后方向
      • 0x04:禁止使能前方向
      • 0x05:禁止使能上拉
      • 0x06:禁止使能下压
      • 0x09:禁止使能触摸通道 1
      • 0x0A:禁止使能触摸通道 2
      • 0x0B:禁止使能触摸通道 3
      • 0x0C:禁止使能触摸通道 4
      • 0x0D:禁止使能触摸通道 5
      • 0x11:使能右方向
      • 0x12:使能左方向
      • 0x13:使能后方向
      • 0x14:使能前方向
      • 0x15:使能上拉
      • 0x16:使能下压
      • 0x19:使能触摸通道 1
      • 0x1A:使能触摸通道 2
      • 0x1B:使能触摸通道 3
      • 0x1C:使能触摸通道 4
      • 0x1D:使能触摸通道 5
  • 校验码:设置代号 ^ 设定值;

注意:

连续发送字节时,前个字节的结束信号与下个字节的起始信号要有 200us 以上的时间间隔;模组在工作模式下才能串口接收,接收完数据后需要模组空闲状态才能处理数据,所以说假如接收数据时模组上方一直有物体,要把物体移开才能完成相应设置。



使用教程

例1:设置手势传感器休眠

    步骤1、命令格式:0xAA,设置代号,设定值,检验码,0x55;
    步骤2、根据通讯协议查:休眠的设置代号为0x52;休眠时间(立即休眠)的设定值为0x00;
    步骤3、校验码:0x00;(计算校验码=0x52 ^ 0x00)
    得到了设置代号,设定值,校验码后,在串口助手字符串输入框,输入:AA 52 00 52 55

例2:设置手势传感器检测距离为30cm

    步骤1、命令格式:0xAA,设置代号,设定值,检验码,0x55;
    步骤2、根据通讯协议查:感应高度的设置代号为0x54;30cm检测高度的设定值为0xFF;
    步骤3、校验码:0x00;(计算校验码=0x54 ^ 0xFF)
    得到了设置代号,设定值,校验码后,在串口助手字符串输入框,输入:AA 54 FF AB 55


Warning yellow.png

注意:

  • 1.模块上电默认功能:无休眠,带5路触摸,上拉下压功能检测高度15cm,方向识别功能检测高度15cm;
  • 2.模块默认检测高度为15cm,如需更高高度,需要设定;


准备

  • 硬件
    • Arduino UNO R3 x1
    • IO 传感器扩展板 V7.1 x1
    • Gesture&Touch Sensor x1
    • PC电脑 x1
    • 杜邦线 若干
  • 软件
    • Arduino IDE 版本1.6.6及以上


接线图

  • 触摸端口(T1~T5)可以直接用导线引出,当端口被触碰后,串口会有对应输出;
触摸识别接线



  • 手势识别的使用方式(可设定的最大识别高度为30CM);
手势识别原理
手势识别示意



样例代码 1

  • 结合规格书编写调试例程
  • 适用于Leonardo等带有硬串口功能的主控制器
/*!
* @file  Gesture&Touch Sensor.ino
* @brief HeartRateMonitor.ino  Sampling and ECG output 
*
*  Real-time sampling and UART output
* 
* @version  V1.0
* @date  2018-7-12
*/

int val;
void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("Gesture & Touch Sensor");
  Serial1.begin(9600);
}

void loop() { 
//Read sensor data
 if ( Serial1.available()) {
 Serial.print( Serial1.read(),HEX);
 }
//Set function through serial port assistant
if (Serial.available()) {
  val =Serial.read();
  Serial.println(val,HEX);
   Serial1.write(val);
  delay(1);
 }
}
                 


样例代码2

  • 添加软串口功能
/*!
 * @file heart_test.ino
 * @copyright	[DFRobot](http://www.dfrobot.com), 2016
 * @copyright	GNU Lesser General Public License
 *
 * @version  V1.0
 * @date  20160-07-8
 */

/*!
 * @brief Library for DFRobot's IR Position RAW_DATA
 * @author [jianghao](hao.jiang@dfrobot.com)
 */
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
int val;
void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("Gesture & Touch Sensor");
  mySerial.begin(9600);
}

void loop() { 
  //Read sensor data
 if (mySerial.available()) {
 Serial.print(mySerial.read(),HEX);
 }
//Set function through serial port assistant
if (Serial.available()) {
  val =Serial.read();
  Serial.println(val,HEX);
  mySerial.write(val);
  delay(1);
}
}
                 






常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!



更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱