第十八篇、基于Arduino uno,获取手势识别传感器的信号——结果导向

这篇具有很好参考价值的文章主要介绍了第十八篇、基于Arduino uno,获取手势识别传感器的信号——结果导向。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0、结果

说明:该传感器模块集手势识别和触摸检测功能于一体,提供0~30cm以内的可调检测范围。它可以检测 5 向触摸信号和 7 种手势:向左移动、向右移动、向前移动、向后移动、向上拉、向下拉、拉和移除。

1、外观

说明:虽然手势识别传感器形态各异,但是原理和代码都是适用的。

2、连线

 说明:只需要连接四根线。

  • uno————手势识别传感器
  •     5V--------------VCC
  • GND--------------GND
  •       5--------------TX
  •       6--------------RX

3、源程序

说明:当识别到对应手势的时候,会在串口打印出来,并将对应功能进行函数化,方便移植。

/****************************************hcsr501 part****************************************/
/*
  wiring:
  VCC------VCC
  GND------GND
    5------TX
    6------RX
*/

#include "DFRobot_Gesture_Touch.h"                                                  //include library
#include "SoftwareSerial.h"                                                         //include library

SoftwareSerial    mySerial1(5, 6);                                                  // example for uno, use software serial

DFRobot_Gesture_Touch   DFGT(&mySerial1);                                           //Instantiate object
/****************************************set up and loop part*********************************/
void setup() {
  Serial.begin(9600);                                                               //Example Set the baud rate of the serial port to 9600
  mySerial1.begin(9600);                                                            //Initialize the soft serial port
  delay(1000);
  while (mySerial1.available()) {                                                   // flush serial buffer
    mySerial1.read();
  }
  DFGT.setGestureDistance(20);                                                      // suggest default value
  // DFGT.enableFunction(DFGT_FUN_ALL);                                             // enable all functions
  // DFGT.disableFunction(DFGT_FUN_RIGHT | DFGT_FUN_LEFT);                          // disable function test
  // DFGT.disableFunction(DFGT_FUN_TOUCH1 | DFGT_FUN_TOUCH2);                       // disable function test
  // DFGT.enableFunction(DFGT_FUN_RIGHT | DFGT_FUN_LEFT);                           // enable function test
  // DFGT.setSleep(4);                                                              // set auto sleep time out, in sleep mode, put something
  Serial.println("设备上线!");
}
void loop() {
  getGesture();                                                                     //Get gesture information
}
/*Get gesture information*/
void getGesture() {
  int rslt = DFGT.getAnEvent();                                                    // get an event that data saved in serial buffer
  if (rslt != DF_ERR) {
    switch (rslt) {
      case DFGT_EVT_BACK: {                                                        // The serial port displays the corresponding value
          Serial.println("get event back");
        } break;
      case DFGT_EVT_FORWARD: {                                                     // The serial port displays the corresponding value
          Serial.println("get event forward");
        } break;
      case DFGT_EVT_RIGHT: {                                                       // The serial port displays the corresponding value
          Serial.println("get event right");
        } break;
      case DFGT_EVT_LEFT: {                                                        // The serial port displays the corresponding value
          Serial.println("get event left");
        } break;
      case DFGT_EVT_PULLUP: {                                                      // The serial port displays the corresponding value
          Serial.println("get event pull up");
        } break;
      case DFGT_EVT_PULLDOWN: {                                                    // The serial port displays the corresponding value
          Serial.println("get event pull down");
        } break;
      case DFGT_EVT_PULLREMOVE: {                                                  // The serial port displays the corresponding value
          Serial.println("get event pull and remove");
        } break;
      case DFGT_EVT_TOUCH1: {                                                      // The serial port displays the corresponding value
          Serial.println("get event touch1");
        } break;
      case DFGT_EVT_TOUCH2: {                                                      // The serial port displays the corresponding value
          Serial.println("get event touch2");
        } break;
      case DFGT_EVT_TOUCH3: {                                                      // The serial port displays the corresponding value
          Serial.println("get event touch3");
        } break;
      case DFGT_EVT_TOUCH4: {                                                      // The serial port displays the corresponding value
          Serial.println("get event touch4");
        } break;
      case DFGT_EVT_TOUCH5: {                                                      // The serial port displays the corresponding value
          Serial.println("get event touch5");
        } break;
    }
  }
}

4、注意事项 

说明:需要下载对应的库文件才不会编译报错。程序里面设置的检测距离为20cm,所以实际的距离情况是要小于等于20cm,这样效果会比较好。做手势动作的时候最好慢一些,这样识别到的信号会更加准确和稳定。

5、基本原理

        红外手势识别传感器是一种基于红外光反射原理的手势识别传感器,能够通过检测手部动作来控制电路或设备的开关、方向等。在Arduino中使用红外手势识别传感器需要了解其工作原理。
        红外手势识别传感器内置有红外发射管和红外接收管,通过发射红外光线并接收反射回来的信号,检测用户的手部动作并输出对应的控制信号。
        当用户进行手势动作时,可以通过让手部区域遮挡或反射红外光线来控制传感器的输出。具体来说,传感器通过内置的红外发射管发射红外光,并接收反射回来的光信号,通过对信号的处理和分析来识别不同的手势动作。例如,当用户抬起手臂时,会使红外光线被遮挡一段时间,传感器可以检测到这种遮挡行为并输出对应的控制信号。同时,也可以通过手指和手掌的不同姿势来实现不同的控制功能,例如手势的上下左右、点击等。
        在Arduino中使用红外手势识别传感器,我们需要先将其正确连接到Arduino板上,并编写相应的程序进行控制。通常,可以通过数字输入输出端口发送控制信号,使传感器工作,并通过数字输入输出端口读取传感器返回的手势控制信号。具体地,在程序中需要使用Arduino提供的相应函数来对数字输入输出端口进行操作,从而实现红外手势识别传感器的控制。文章来源地址https://www.toymoban.com/news/detail-468666.html

到了这里,关于第十八篇、基于Arduino uno,获取手势识别传感器的信号——结果导向的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Arduino Uno开发板制作音乐播放器

    1.Arduino开发板 Arduino Uno 是一款基于 Microchip ATmega328P 微控制器的开源微控制器板,由 Arduino.cc 开发,最初于 2010 年发布。该板配备了一组数字和模拟输入/输出 (I/O) 引脚,可以连接到各种扩展板(屏蔽)和其他电路。 该板具有 14 个数字 I/O 引脚(6 个能够进行 PWM 输出)、6 个

    2024年02月16日
    浏览(47)
  • 基于Arduino UNO的智能自主避障小车和蓝牙遥控小车

           Hello,大家好!今天我要给大家分享我近期制作的一个arduino小项目----智能避障小车。之前在某站上无意间刷到某位博主制作的一款智能避障小车,觉得很有意思,便打算自己也做一个来玩玩,于是便制作了一款我自己理解的避障小车。在此基础上,我还增加了蓝牙遥控

    2024年02月01日
    浏览(54)
  • 第二十一篇、基于Arduino uno,控制有源蜂鸣器和无源蜂鸣器发出声音——结果导向

    说明:有源蜂鸣器按照一定的频率报警,无源蜂鸣器则是一直报警,都采用非阻塞方式编写,如果是你想要的,可以接着往下看。 说明:有源蜂鸣器和无源蜂鸣器看上去一样,但是背面不一样,第一张图是有源蜂鸣器,第二张图是无源蜂鸣器。也有三个引脚的,其实都是一样

    2024年02月07日
    浏览(48)
  • 第二十九篇、基于Arduino uno,控制MP3Player mini模块播放音乐——结果导向

    说明:通电后播放对应的歌曲,可以选择循环播放还是播放一次,也可以通过串口指定播放对应的音乐,如果是你想要的,可以接着往下看。 说明:虽然MP3Player mini模块有很多型号,但是原理和代码都是适用的。 说明:只需要连接六根线。 引脚图: uno————MP3Player mini模

    2024年02月03日
    浏览(56)
  • 基于Mediapipe的Python手势识别项目(手势识别游戏)附项目源码

    基于Mediapipe的手势识别,完成的手势识别游戏。运行效果图如下: 首先是初始的界面效果图: 游戏规则:屏幕上会出现蚊子和蜜蜂,当手蜷曲握起时,表示抓的动作。如果抓到右边移动的蚊子,则会增加分数,如果抓到右边的蜜蜂,则会出现被蛰到的声音 :) 调用Mediapip

    2024年02月11日
    浏览(109)
  • Arduino UNO原理图学习记录

    arduino作为单片机的一种语言,对应有arduino系列电路板,其中最常用的为arduino uno。 将UNO其中部分电路进行了删改  Atmega328P芯片部分(加了两个0R电阻,芯片可用Atmega328P与Atmega328PB) atmega328p中的1,2,9,10,11,12,13,14,15,16,17,20,23,24,25,26,27,28,30,31,32可以作为输出输入端子; 3,5,21则接地

    2024年02月06日
    浏览(43)
  • 基于FPGA的手势识别

    使用正点原子开拓者开发板,预定义三种手势:石头(0)、剪刀(2)、布(5)。通过 OV5640 摄像头套件对手势图像进行采集,LCD 显示屏(显示屏用的正点原子的 7 寸 RGB_LCD,分辨率为 1024×600)对系统处理后的手势进行实时显示,根据预定义手势的面积周长比判断手势,最终

    2024年02月11日
    浏览(41)
  • 基于opencv的手势识别

    大家好,我是一名本科生,我的主要学习方向是计算机视觉以及人工智能。按照目前的学习进度来说,我就是一小白,在这里写下自己编写的程序,与大家分享,记录一下自己的成长。 思路分析 获取图片,在图片中找到手,然后进行一系列的闭运算,降噪平滑处理,轮廓查

    2024年02月03日
    浏览(58)
  • 基于mediapipe的手势数字识别

    基于mediapipe识别手势所对应的数字(一、二、三、四、五)。 mediapipe的官网 总体思路 :mediapipe可以识别手掌的关键点,我的思路是识别单根手指是否弯曲,然后根据五根手指的弯曲程度判断手势所对应的数字。 那怎么判断单根手指是否弯曲呢? 我是根据手指的四个关键点的相

    2024年02月11日
    浏览(55)
  • Arduino UNO HC-05蓝牙配对教程

    1. 准备材料         Arduino1(主)、Arduino2(从)、蓝牙1(主)、蓝牙2(从)、杜邦线若干 2. 接线方式(主从一致) 1.主机配对 1. 新建一个空白工程,直接上传到Arduino。   2. 设置蓝牙进入AT指令模式,具体操作方法:按住蓝牙模块按钮,然后上电,直到蓝牙模块LED进入慢闪烁模式,

    2023年04月27日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包