回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕动手做】AI 视觉传感器 HUSKYLENS 2 之识别物体来控制执行器模块 简单

头像 驴友花雕 2025.10.21 14 1

14-.jpg

1、测试实验硬件连接
将HukyLens 2 连接到Arduino主板对应的I2C引脚,使用电源线连接Arduino Uno与电脑。额外供电提示:Arduino Uno的I2C引脚输出的电压不足以支持HUSKYLENS 2正常工作,当HUSKYLENS 2接在Arduino Uno上时须有额外数据线连接HUSKYLENS 2的Type-C接口与电源,为HUSKYLENS 2进行额外供电。接线图可参考下图。

000- (2).jpg

2、设置测试实验平台
打开 Mind+ 编程软件,选择主控板 Arduino,加载HUSKYLENS 2 库

000- (1).jpg

3、物体识别(Object Recognition)是计算机视觉领域中的核心技术之一,其主要目标是:让计算机或智能设备能够“看懂”图像中的物体,并准确判断其类别、位置和属性。物体识别是让机器“看懂世界”的关键一步。它是人工智能“视觉理解”的基础,广泛应用于自动驾驶、安防监控、智能机器人、图像搜索、增强现实等场景。

(1)物体识别的基本定义
物体识别是指:
通过图像处理与深度学习算法,自动识别图像或视频中存在的物体,并标注其类别(如人、车、猫)与位置(如边框、坐标)。
它不仅判断“这是什么”,还能指出“它在哪里”。

(2)物体识别的关键流程
图像采集:通过摄像头或图像文件获取视觉数据。
特征提取:分析图像中的颜色、纹理、形状、边缘等特征。
分类判断:使用训练好的模型判断物体属于哪个类别。
位置定位:标出物体在图像中的具体位置(如边框或关键点)。
结果输出:返回识别结果供系统使用或用户查看。

(3)与相关技术的区别

40.jpg


(4)应用场景举例
自动驾驶识别行人、车辆、交通标志
安防系统识别可疑人物或物品
手机相册自动分类人物、动物、风景
教育实验识别颜色球、标签、手势等
智能零售识别商品并自动结算
机器人识别目标物体并进行抓取或互动

(5)常见识别模型与算法

41.jpg

(6)相关场景

27.gif
27-.gif
28.gif
28-.gif

4、执行器(Actuator)是一种将控制信号转换为物理动作的装置,是自动化系统和机器人中的关键部件。它的作用是根据控制系统的指令,驱动机械结构完成特定动作,如移动、旋转、推动、夹取等。

(1) 执行器的核心定义
执行器是将电信号、液压信号或气动信号转化为机械运动的装置,是“感知—决策—执行”链条中的最后一环。

(2)常见执行器类型

 

01.jpg


(3)执行器在系统中的作用
动作执行:如机械臂的关节旋转、轮式小车的驱动、夹爪的开合。
反馈闭环:配合传感器形成闭环控制系统,实现精准定位与动态调整。
能量转换:将控制系统的能量信号(电、气、液)转化为机械能。
接口桥梁:连接控制系统与物理世界,是“虚拟指令”落地的关键。

(4)应用场景举例
工业自动化:机器人焊接、搬运、装配
智能家居:窗帘开合、电动门锁、自动调光
航空航天:飞行器舵面控制、姿态调整
医疗设备:手术机器人、康复辅助机械
仿生机器人:模仿肌肉运动的柔性执行器

(5)使用执行器需注意事项
负载匹配:选择合适的执行器类型与规格,避免过载或性能不足
控制精度:需配合编码器、传感器实现闭环控制,提升定位与响应能力
响应速度:不同驱动方式响应时间不同,需根据任务需求选型
能耗与散热:电动执行器需考虑功率与热管理
安全机制:设置限位、急停、过载保护,防止误动作或损坏

(6)为简化测试实验,这里使用简单的执行器LED模块

 

02.jpg

 

5、实际测试的几个范本

 

00-1.jpg
00-2.jpg
00-3.jpg
00-4.jpg
00-5.jpg
00-6.jpg
00-7.jpg
00-8.jpg
00-9.jpg
00-10.jpg
0-14.jpg
0-15.jpg
0-16.jpg

6、测试实验代码

代码
/*【花雕动手做】AI 视觉传感器 HUSKYLENS 2 之识别物体来控制执行器模块
 * 使用平台:MindPlus
 * 主控板:Arduino Uno
 * 功能说明:
 * 本程序使用 HUSKYLENS 2 AI 视觉传感器识别画面中的物体,
 * 当识别到的物体数量达到或超过指定阈值(5个)时,点亮 LED 灯;
 * 否则保持熄灭状态。适用于智能提示、物体计数、自动响应等场景。
 */

#include "DFRobot_HuskylensV2.h"  // 引入 HUSKYLENS 2 驱动库

// 创建 HUSKYLENS 设备对象
HuskylensV2 huskylens;

// 初始化函数
void setup() {
  Serial.begin(9600);       // 初始化串口通信,波特率为 9600
  Wire.begin();             // 初始化 I2C 通信,用于与 HUSKYLENS 连接

  // 持续尝试连接 HUSKYLENS,直到连接成功
  while (!huskylens.begin(Wire)) {
    delay(100);             // 每次尝试之间延迟 100 毫秒
  }

  // 输出初始化成功提示信息
  Serial.println("HUSKYLENS 2 启动成功");
  Serial.println("识别物体来控制执行器模块");

  // 设置数字引脚 13 为输出模式,用于控制 LED 灯
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);    // 初始状态关闭 LED 灯
}

// 主循环函数
void loop() {
  // 请求 HUSKYLENS 执行物体识别算法,处理当前画面
  huskylens.getResult(ALGORITHM_OBJECT_RECOGNITION);

  // 判断是否有识别结果可用
  if (huskylens.available(ALGORITHM_OBJECT_RECOGNITION)) {
    // 获取当前识别到的物体数量
    int objectCount = huskylens.getCachedResultNum(ALGORITHM_OBJECT_RECOGNITION);
    Serial.println("检测到物体,数量=" + String(objectCount));

    // 判断物体数量是否小于阈值(5个)
    if (objectCount < 5) {
      Serial.println("LED灯不亮,检测物体数量才" + String(objectCount));
      digitalWrite(13, LOW);  // 关闭 LED 灯
    }

    // 判断物体数量是否达到或超过阈值
    if (objectCount >= 5) {
      Serial.println("检测到" + String(objectCount) + "个物体,LED灯亮");
      digitalWrite(13, HIGH); // 点亮 LED 灯
      delay(1000);            // 保持亮灯 1 秒
    }
  }

  // 每次识别后延迟 3 秒,控制识别频率
  delay(3000);
}

7、实际测试的代码解读

该程序使用 HUSKYLENS 2 AI 视觉传感器识别画面中的物体数量,并根据识别结果控制一个 LED 灯的亮灭状态。它是一个典型的“视觉识别 + 执行器控制”应用示例,适用于智能提示、物体计数、自动响应等场景。

模块与硬件说明
HUSKYLENS 2:AI 视觉传感器,支持物体识别、标签识别、人脸识别等功能。
Arduino Uno:主控板,用于处理识别结果并控制执行器。
LED 灯(引脚 13):作为执行器,根据识别结果亮灭。

(1)初始化部分 setup()
cpp
Serial.begin(9600);
Wire.begin();
while (!huskylens.begin(Wire)) {
 delay(100);
}
Serial.println("HUSKYLENS 2 启动成功");
Serial.println("识别物体来控制执行器模块");
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
初始化串口与 I2C 通信。
持续尝试连接 HUSKYLENS,直到成功。
设置 LED 控制引脚为输出,并初始关闭。

(2)主循环部分 loop()
cpp
huskylens.getResult(ALGORITHM_OBJECT_RECOGNITION);
请求 HUSKYLENS 执行物体识别算法。

cpp
if (huskylens.available(ALGORITHM_OBJECT_RECOGNITION)) {
判断是否有识别结果可用。

cpp
int objectCount = huskylens.getCachedResultNum(ALGORITHM_OBJECT_RECOGNITION);
Serial.println("检测到物体,数量=" + String(objectCount));
获取识别到的物体数量并输出到串口。

(3)控制逻辑
cpp
if (objectCount < 5) {
 Serial.println("LED灯不亮,检测物体数量才" + String(objectCount));
 digitalWrite(13, LOW);
}
如果识别到的物体少于 5 个,关闭 LED 灯。

cpp
if (objectCount >= 5) {
 Serial.println("检测到" + String(objectCount) + "个物体,LED灯亮");
 digitalWrite(13, HIGH);
 delay(1000);
}
如果识别到的物体达到或超过 5 个,点亮 LED 灯并保持 1 秒。

(4)节奏控制
cpp
delay(3000);
每次识别后延迟 3 秒,避免频繁刷新,适合稳定演示。

8、测试实验MInd+图形编程

 

01.jpg

 

9、实验串口返回情况

 

02.jpg

 

 

 

10、实验场景图  动态图

 

03 (1).jpg
03 (2).jpg
03 (3).jpg
03 (4).jpg
00230---0.gif

评论

user-avatar
  • lottoo

    lottoo2025.10.22

    我喜欢人工智呢,可以多多学习,太好了

    0
    icon 他的勋章
      展开更多