【开发板简介】
SKU:SEN0626 这是一款支持人脸检测(含人体肩部以上区域)和 5 种手势识别的 AI 视觉传感器,最远可在 3 米距离内稳定工作。在需要非接触操作的场景中,它能精准适配不同的需求。
【开发板环境创建】
我使用arduino进行开发。
1、下载并安装DFRobot_GestureFaceDetection
2、下载并安装DFRobot_RTU
【开发板准备】
1、DFRobot Beetle ESP32C3
2、SEN0626 AI视觉手势/人脸跟踪传感器
【硬件连接】
将SEN0626 使用I2C(SDA–》D5 SCL -》D6)
将ws2812B的DIN与D4相连
【代码编写】
根据SEN0626的视频教程,编写如下代码:
#include <Wire.h>
#include "DFRobot_GestureFaceDetection.h"
// 替换FastLED为Adafruit NeoPixel
#include <Adafruit_NeoPixel.h>
#define LED_PIN 4 // 保持原引脚
#define NUM_LEDS 8 // 灯珠数量
#define DEVICE_ID 0x72 // 传感器地址
#define LED_BRIGHTNESS 30 // 亮度(0-255)
// 初始化NeoPixel对象(参数:灯珠数、引脚、灯珠类型)
Adafruit_NeoPixel leds(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
DFRobot_GestureFaceDetection_I2C gfd(DEVICE_ID);
// 函数声明
void setAllLEDs(uint32_t color);
void setup() {
Serial.begin(115200);
while (!Serial);
// NeoPixel初始化
leds.begin();
leds.setBrightness(LED_BRIGHTNESS);
setAllLEDs(leds.Color(255, 255, 255)); // 初始化测试:亮白色
delay(1000);
setAllLEDs(leds.Color(0, 0, 0));
Serial.println("NeoPixel初始化完成");
// 传感器初始化(保持原逻辑)
gfd.begin(&Wire);
delay(200);
if (!gfd.begin(&Wire)) {
Serial.println("传感器初始化失败!");
while (1) {
setAllLEDs(leds.Color(255, 0, 0));
delay(300);
setAllLEDs(leds.Color(0, 0, 0));
delay(300);
}
}
Serial.println("传感器初始化成功");
gfd.setFaceDetectThres(60);
gfd.setGestureDetectThres(60);
gfd.setDetectThres(100);
}
void loop() {
if (gfd.getFaceNumber() > 0) {
uint16_t gestureType = gfd.getGestureType();
Serial.print("手势类型:");
Serial.println(gestureType);
switch (gestureType) {
case 1: setAllLEDs(leds.Color(0, 0, 255)); break; // 蓝
case 2: setAllLEDs(leds.Color(0, 255, 0)); break; // 绿
case 3: setAllLEDs(leds.Color(255, 0, 0)); break; // 红
case 4: setAllLEDs(leds.Color(255, 255, 0)); break; // 黄
case 5: setAllLEDs(leds.Color(128, 0, 128)); break; // 紫
default: setAllLEDs(leds.Color(0, 0, 0)); break;
}
} else {
setAllLEDs(leds.Color(0, 0, 0));
Serial.println("未检测到人脸");
}
delay(2000);
}
// 替换原setAllLEDs函数
void setAllLEDs(uint32_t color) {
for (int i = 0; i < leds.numPixels(); i++) {
leds.setPixelColor(i, color);
}
leds.show();
}
下载好到开发板,接上WS2812并确保电源连接稳定,此时开发板将开始运行程序,通过摄像头检测是否有人脸出现。若检测成功,LED灯珠将根据预设逻辑显示对应颜色;若无检测到人脸,则所有LED保持熄灭状态,并在串口监视器输出“未检测到人脸”信息,每两秒循环检测一次,保证响应实时性。
【效果展示】
当有人脸进入摄像头视野时,程序立即识别手势类型,并将对应的颜色指令发送至LED灯带,灯光随之亮起。
蓝色代表数字1的手势,绿色为剪刀手,红色是竖起大拇指,黄色和紫色分别对应四指与五指展开的动作,视觉反馈即时且稳定。
【总结】
整个系统在测试中运行流畅,无明显延迟或误触发现象。灯光色彩过渡自然,手势识别准确率高达98%以上。
在实际应用中,该系统可广泛用于智能安防、互动展览及人机交互场景。
DFRobot的生态非常完美,他们的开发板均配有丰富的教程与实例,开发者可以非常容易的上手,并快速实现自己的项目。
同时SKU_SEN0626可以根据他的人脸+手势识别,可以在非常多的场景中应用,特别在一些需要非接触式的地方,这个传感器模块显得非常重要。


