9浏览
查看: 9|回复: 6

[试用测评] 【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

[复制链接]
HUSKYLENS 2 (二哈识图 2) 是一款简单易用、玩法多样的AI视觉传感器,采用6TOPS算力专用AI芯片,预置人脸识别、目标检测、物体分类、姿态识别、实例分割等20余种开机即用的AI模型,同时,用户还可部署自行训练的模型,教会二哈识图识别任意目标物体。板载的UART / I2C端口,可以与主流控制器Arduinomicro:bit、ESP32、Raspberry Pi等开源硬件无缝连接,被广泛应用于创客、AI教育、STEAM教育和交互艺术领域。

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图3

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

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图2

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

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1

驴友花雕  中级技神
 楼主|

发表于 4 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

3、车牌识别(License Plate Recognition,简称 LPR)是一种基于计算机视觉和图像处理的智能识别技术,主要用于自动检测、识别并解析车辆车牌上的文字和数字信息。车牌识别是智慧城市和智能交通的关键技术之一,也是智能交通系统(ITS)中的核心功能之一,广泛应用于停车管理、道路监控、电子收费、安防等领域。

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1

(1)车牌识别的基本定义
车牌识别是指:通过摄像头采集车辆图像,并利用图像处理与字符识别算法,自动提取车牌区域,识别车牌号码、颜色、类型等信息。
它让系统具备“看懂车牌”的能力,从而实现自动化管理与数据记录。

(2)车牌识别的关键流程
图像采集:通过固定或移动摄像头拍摄车辆图像。
车牌定位:在图像中识别车牌区域,排除背景干扰。
图像预处理:去除噪声、增强对比度、校正倾斜等。
字符分割:将车牌上的字符逐个提取出来。
字符识别:使用 OCR(光学字符识别)技术识别文字和数字。
结果输出:返回车牌号码、颜色、归属地等信息。

(3)应用场景举例
智能停车场自动识别进出车辆
交通执法系统识别违章车辆
高速公路电子收费(ETC)
企业或小区门禁车辆管理
边境或海关车辆身份核验

(4)常见参数设置(在识别系统中)

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图6

(5)相关场景

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图2

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图3

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图5

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图4

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

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

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

(2)常见执行器类型

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图2

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

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

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

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

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1

5、实际测试的几个范本

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图3

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图4

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图5

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图6

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

6、测试实验代码

  1. /*【花雕动手做】AI 视觉传感器 HUSKYLENS 2 之识别车牌来控制执行器模块
  2. * 使用平台:MindPlus
  3. * 主控板:Arduino Uno
  4. * 功能说明:本程序使用 HUSKYLENS 2 AI 视觉传感器识别画面中的车牌,
  5. * 根据不同车牌的 ID 控制执行器(此处为 LED 灯)实现提示灯亮、快闪或慢闪效果。
  6. */
  7. #include "DFRobot_HuskylensV2.h"  // 引入 HUSKYLENS 2 的驱动库,用于控制 AI 视觉模块
  8. HuskylensV2 huskylens;  // 创建 HUSKYLENS 设备对象,供后续调用识别与数据获取功能
  9. // 初始化函数
  10. void setup() {
  11.   Serial.begin(9600);       // 初始化串口通信,波特率设置为 9600,用于数据输出到串口监视器
  12.   Wire.begin();             // 初始化 I2C 通信,用于与 HUSKYLENS 模块连接
  13.   while (!huskylens.begin(Wire)) {  // 持续尝试连接 HUSKYLENS,直到连接成功
  14.     delay(100);             // 每次尝试之间延迟 100 毫秒
  15.   }
  16.   Serial.println("HUSKYLENS 2 启动成功");        // 输出初始化成功提示信息
  17.   Serial.println("识别车牌来控制执行器模块");    // 输出功能说明
  18.   pinMode(13, OUTPUT);      // 设置数字引脚 13 为输出模式,用于控制 LED 灯
  19. }
  20. // 主循环函数
  21. void loop() {
  22.   huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION);  // 请求 HUSKYLENS 执行车牌识别算法,处理当前画面
  23.   if (huskylens.available(ALGORITHM_LICENSE_RECOGNITION)) {  // 判断是否有识别结果可用
  24.     Serial.println("LED灯亮提示检测到车牌,数量=" +
  25.       String(huskylens.getCachedResultNum(ALGORITHM_LICENSE_RECOGNITION)));  // 输出当前识别到的车牌数量
  26.     digitalWrite(13, HIGH);  // 点亮 LED 灯,表示检测到车牌
  27.     // 如果识别到 ID 为 1 的车牌,执行 LED 快闪
  28.     if (huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1) != NULL) {
  29.       Serial.println(RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1), Result, content) + "检测提示LED快闪");
  30.       digitalWrite(13, LOW);   // 熄灭 LED
  31.       delay(200);              // 延迟 200 毫秒
  32.       digitalWrite(13, HIGH);  // 点亮 LED
  33.       delay(100);              // 延迟 100 毫秒
  34.     }
  35.     delay(1000);  // 等待 1 秒,避免快闪与慢闪冲突
  36.     // 如果识别到 ID 为 2 的车牌,执行 LED 慢闪
  37.     if (huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 2) != NULL) {
  38.       Serial.println(RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 2), Result, content) + "检测提示LED慢闪");
  39.       digitalWrite(13, HIGH);  // 点亮 LED
  40.       delay(800);              // 延迟 800 毫秒
  41.       digitalWrite(13, LOW);   // 熄灭 LED
  42.       delay(800);              // 延迟 800 毫秒
  43.     }
  44.     delay(1000);  // 等待 1 秒,控制识别频率
  45.   }
  46. }
复制代码

7、实际测试的代码解读

该程序使用 HUSKYLENS 的车牌识别算法,检测画面中是否存在车牌,并根据识别到的车牌 ID 控制 LED 灯的状态,包括常亮、快闪和慢闪。适用于智能提示、车牌识别门禁等场景。

(1)引入库与创建对象
cpp
  1. #include "DFRobot_HuskylensV2.h"
  2. HuskylensV2 huskylens;
复制代码

引入 HUSKYLENS 官方库,提供与设备通信的函数接口。
创建 huskylens 对象,用于调用识别算法和获取识别结果。

(2)初始化函数 setup()
cpp
  1. void setup() {
  2.   Serial.begin(9600);
  3.   Wire.begin();
  4.   while (!huskylens.begin(Wire)) {
  5.     delay(100);
  6.   }
  7.   Serial.println("HUSKYLENS 2 启动成功");
  8.   Serial.println("识别车牌来控制执行器模块");
  9.   pinMode(13, OUTPUT);
  10. }
复制代码

初始化串口通信(用于数据输出)和 I2C 通信(用于与 HUSKYLENS 连接)。
持续尝试连接 HUSKYLENS,直到连接成功。
设置数字引脚 13 为输出模式,用于控制 LED 灯。

(3)主循环函数 loop()
cpp
  1. huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION);
复制代码

请求 HUSKYLENS 执行车牌识别算法,处理当前画面。

cpp
  1. if (huskylens.available(ALGORITHM_LICENSE_RECOGNITION)) {
复制代码

判断是否有识别结果可用,避免空数据处理。

(4)输出识别结果与常亮提示
cpp
  1. Serial.println("LED灯亮提示检测到车牌,数量=" + String(huskylens.getCachedResultNum(ALGORITHM_LICENSE_RECOGNITION)));
  2. digitalWrite(13, HIGH);
复制代码

输出当前识别到的车牌数量。
点亮 LED 灯,表示检测到车牌。

(5)根据车牌 ID 控制 LED 闪烁方式
ID = 1:LED 快闪
cpp
  1. if (huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1) != NULL) {
  2.   Serial.println(... + "检测提示LED快闪");
  3.   digitalWrite(13, LOW);
  4.   delay(200);
  5.   digitalWrite(13, HIGH);
  6.   delay(100);
  7. }
复制代码

快速闪烁 LED 灯,表示识别到特定车牌(ID = 1)。

ID = 2:LED 慢闪
cpp
  1. if (huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 2) != NULL) {
  2.   Serial.println(... + "检测提示LED慢闪");
  3.   digitalWrite(13, HIGH);
  4.   delay(800);
  5.   digitalWrite(13, LOW);
  6.   delay(800);
  7. }
复制代码

慢速闪烁 LED 灯,表示识别到另一特定车牌(ID = 2)。

(6)控制识别节奏
cpp
  1. delay(1000);
复制代码

每次识别后延迟 1 秒,避免闪烁冲突与系统过载。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

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

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1

9、实验串口返回情况

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图2




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

10、实验场景图  动态图

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图3

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图2

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图4

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图5

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图6
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器

【花雕动手做】AI视觉二哈识图2之识别车牌控制执行器图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail