|
在本篇文章中,我们将介绍如何使用Arduino开发板连接APDS-9960红外手势传感器模块,实现识别RGB颜色和手势。
所需的组件 ● Arduino Uno R3开发板 ● APDS-9960红外手势传感器模块 ● AMS1117直流电源模块 ● 跳线 ● I2C字符型LCD显示模块2004(绿色背光)
APDS-9960红外手势传感器模块 APDS-9960红外手势传感器模块是一种先进的设备,可通过手势与电子设备进行直观交互。该传感器模块使用红外技术准确检测手部运动,为各种应用提供免提控制选项。APDS-9960能够识别滑动、点击和滚动等手势,非常适合非接触式控制界面、游戏机和智能家电。其紧凑的设计和易于集成的特点使其既适合业余爱好者也适合专业人士,为电子项目添加手势识别功能提供了无缝解决方案。使用APDS-9960红外手势传感器模块体验基于手势的交互的便利,增强设备的可用性和可访问性。
APDS-9960红外手势传感器模块引脚排列 APDS-9960红外手势传感器模块有6个引脚,包含I2C通讯和中断引脚。下图是该模块详细的引脚排列:
● VCC/VL:APDS-9960模块的电源输入(3.3V)。 ● GND:接地,确保稳定的电气连接。 ● SCL:用于与微控制器通信的串行时钟线。 ● SDA:用于配置模块设置的串行数据线。 ● INT:微控制器的中断请求引脚。
APDS-9960红外手势传感器模块与Arduino的硬件连接 以下图片显示了如何将APDS-9960红外手势传感器模块连接到Arduino开发板。请参考下图进行连接。
将APDS-9960模块的I2C引脚分别连接至Arduino开发板的A4(SDA)和A5(SCL)引脚,INT引脚悬空,VCC引脚连接至+5V。
代码1:使用APDS-9960模块进行颜色识别 首先在Arduino IDE中安装Arduino_APDS9960库,可以在Arduino IDE中搜索安装该库,或者在Github下载使用。下载链接:Arduino_APDS9960。 然后复制以下代码,进行编译上传。 - /*
- Create on February 07, 2024
- */
- #include <Arduino.h>
- #include <Arduino_APDS9960.h>
- #include <myLCD.h>
- void setup()
- {
- Serial.begin(9600);
- beginLCD("APDS9960");
- while (!Serial)
- ;
- if (!APDS.begin())
- {
- Serial.println("Error initializing APDS-9960 sensor.");
- fail();
- }
- success();
- printLCD("APDS9960 Color Sensor", 0, true);
- printLCD("Red: ", 1);
- printLCD("Green: ", 2);
- printLCD("Blue: ", 3);
- Serial.println("Color Sensor ...");
- }
- void loop()
- {
- // check if a color reading is available
- while (!APDS.colorAvailable())
- {
- delay(5);
- }
- int r, g, b;
- // read the color
- APDS.readColor(r, g, b);
- // print the values
- Serial.print("r = ");
- Serial.println(r);
- Serial.print("g = ");
- Serial.println(g);
- Serial.print("b = ");
- Serial.println(b);
- Serial.println();
- printLCD(String(r), 1, false, 8);
- printLCD(String(g), 2, false, 8);
- printLCD(String(b), 3, false, 8);
- // wait a bit before reading again
- delay(1000);
- }
复制代码
上传代码后,您可以在显示屏中看到识别颜色的RGB值,如下图所示:
代码2:使用APDS-9960模块进行手势识别 APDS-9960模块可以识别上下左右及覆盖等手势。将以下代码上传到Arudino开发板中,进行编译运行。 - /*
- Create on February 07, 2024
- */
- #include <Arduino.h>
- #include <Arduino_APDS9960.h>
- #include <myLCD.h>
- void setup()
- {
- Serial.begin(115200);
- beginLCD("APDS9960");
- while (!Serial)
- ;
- if (!APDS.begin())
- {
- Serial.println("Error initializing APDS-9960 sensor!");
- fail();
- }
- APDS.activeAll();
- // for setGestureSensitivity(..) a value between 1 and 100 is required.
- // Higher values make the gesture recognition more sensitive but less accurate
- // (a wrong gesture may be detected). Lower values makes the gesture recognition
- // more accurate but less sensitive (some gestures may be missed).
- // Default is 80
- // APDS.setGestureSensitivity(80);
- success();
- printLCD("APDS9960 Gestures", 0, true);
- Serial.println("Detecting gestures ...");
- }
- void loop()
- {
- if (APDS.gestureAvailable())
- {
- // a gesture was detected, read and print to Serial Monitor
- int gesture = APDS.readGesture();
- switch (gesture)
- {
- case GESTURE_UP:
- Serial.println("Detected UP gesture");
- printLCD("Detected UP", 2, true);
- break;
- case GESTURE_DOWN:
- Serial.println("Detected DOWN gesture");
- printLCD("Detected DOWN", 2, true);
- break;
- case GESTURE_LEFT:
- Serial.println("Detected LEFT gesture");
- printLCD("Detected LEFT", 2, true);
- break;
- case GESTURE_RIGHT:
- Serial.println("Detected RIGHT gesture");
- printLCD("Detected RIGHT", 2, true);
- break;
- default:
- // ignore
- break;
- }
- }
- }
复制代码上传代码后,在模块前方挥动您的右手,查看检测到的动作是否一致:
以上就是本篇文章的全部内容,如果有任何问题,欢迎在本帖下面进行回复。
|