跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

HUSKYLENS 2 AI 相机视觉传感器识别条形码输出数据

HUSKYLENS 2 AI 相机视觉传感器支持多种 AI 模型及自定义训练,通过 UART/I2C 接口连接 Arduino 等控制器。讲解如何配置 Mind+ 编程环境,使用 DFRobot_HuskylensV2 库实现条形码识别功能。教程包含硬件接线说明、软件设置步骤及 C++ 代码示例,展示如何获取条形码 ID、内容、位置坐标及尺寸数据。该方案适用于零售收银、物流追踪、工业自动化及 STEAM 教育场景,通过串口打印识别结果完成数据采集与处理。

SecGuard发布于 2025/10/31更新于 2026/10/25100 浏览
HUSKYLENS 2 AI 相机视觉传感器识别条形码输出数据

HUSKYLENS 2 AI 相机视觉传感器识别条形码输出数据

HUSKYLENS 2 (二哈识图 2) 是一款简单易用、玩法多样的 AI 视觉传感器,采用 6TOPS 算力专用 AI 芯片,预置人脸识别、目标检测、物体分类、姿态识别、实例分割等 20 余种开机即用的 AI 模型,同时用户还可部署自行训练的模型。板载的 UART / I2C 端口,可以与主流控制器 Arduino、micro:bit、ESP32、Raspberry Pi 等开源硬件无缝连接。

1. 测试实验硬件连接

将 HUSKYLENS 2 连接到 Arduino 主板对应的 I2C 引脚,使用电源线连接 Arduino Uno 与电脑。

额外供电提示: Arduino Uno 的 I2C 引脚输出的电压不足以支持 HUSKYLENS 2 正常工作,当 HUSKYLENS 2 接在 Arduino Uno 上时须有额外数据线连接 HUSKYLENS 2 的 Type-C 接口与电源,为 HUSKYLENS 2 进行额外供电。接线图可参考下图。

硬件连接示意图

2. 设置测试实验平台

打开 Mind+ 编程软件,选择主控板 Arduino,加载 HUSKYLENS 2 库。

Mind+ 软件设置

3. 条形码识别概念

条形码识别指的是通过光学扫描设备或图像识别算法,对条形码图案进行解析,从而提取其中编码的信息。条形码是一种将数据编码为黑白条纹或方块图案的视觉符号系统,广泛用于商品管理、物流追踪、身份识别等领域。

3.1 核心概念

  1. 条形码是什么?

    • 机器可读的编码图案,通常由一组黑白条纹或方块组成。
    • 每种条形码标准(如 EAN-13、UPC、QR 码)都有特定的编码规则和结构。
    • 可表示数字、字母、甚至二进制数据。
  2. 识别过程

    • 图像采集:使用摄像头或扫描器获取条形码图像。
    • 图像预处理:去除噪声、增强对比度、校正角度。
    • 定位条码区域:识别图像中可能包含条码的区域。
    • 解码分析:根据条码类型解析条纹宽度、间距或模块排列。
    • 输出信息:将解码结果转换为可读数据。
  3. 技术实现方式

    • 硬件识别:使用激光扫描器或 CCD 图像传感器。
    • 软件识别:通过计算机视觉算法(如 OpenCV、Zxing)。
    • AI 增强识别:利用深度学习模型提升识别准确率。

3.2 应用场景

  • 零售收银:快速识别商品价格与信息。
  • 物流追踪:扫描包裹条码实现自动分拣与定位。
  • 医疗管理:识别药品、病人腕带等信息。
  • 工业自动化:生产线上的产品识别与质量追踪。
  • 移动识别:手机摄像头识别二维码或条形码。

条形码动态演示

4. 识别条形码输出相关数据

在条形码识别功能下,HUSKYLENS 2 能识别出现在画面中的条形码,可以通过编程获取画面中离十字光标最近的标签的相关数据并在串口打印出来。可以读取标签数据包括:条形码 ID、条形码内容、条形码宽度、条形码高度以及条形码中心点的 X 坐标位置和 Y 坐标位置。

4.1 测试实验代码

/* HUSKYLENS 2 Barcode Recognition Demo * 使用平台:MindPlus * 主控板:Arduino Uno */
#include "DFRobot_HuskylensV2.h"

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

// 初始化设置函数
void setup() {
  Serial.begin(9600); // 初始化串口通信,波特率为 9600
  Wire.begin();       // 初始化 I2C 通信
  
  // 循环尝试连接 HUSKYLENS 设备,直到连接成功
  while(!huskylens.begin(Wire)){
    delay(100); // 每次尝试之间延迟 100 毫秒
  }
  
  Serial.println("HUSKYLENS 2");
  Serial.println("识别条形码输出相关数据");
}

// 主循环函数
void loop() {
  // 请求 HUSKYLENS 执行条形码识别算法
  huskylens.getResult(ALGORITHM_BARCODE_RECOGNITION);
  
  // 如果识别结果可用
  if(huskylens.available(ALGORITHM_BARCODE_RECOGNITION)){
    // 输出条形码的 ID 编号
    Serial.println("条形码 ID 为" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, ID)));
    
    // 输出条形码的内容(例如编码信息)
    Serial.println("条形码内容为" + String(RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, content)));
    
    // 输出条形码在图像中的中心坐标(x, y)
    Serial.println("条形码中心点坐标为" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, xCenter)) + "." + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, yCenter)));
    
    // 输出条形码的宽度
    Serial.println("条形码宽度为" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, width)));
    
    // 输出条形码的高度
    Serial.println("条形码高度为" + String(RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_BARCODE_RECOGNITION), Result, height)));
  }
  
  // 每次识别间隔 10 秒,避免过于频繁
  delay(10000);
}

4.2 代码解读

该程序使用 HUSKYLENS 2 AI 相机进行条形码识别,并通过串口输出相关数据。

  1. 引入库与创建对象

    #include "DFRobot_HuskylensV2.h"
    HuskylensV2 huskylens;
    

    引入驱动库并创建通信对象。

  2. 初始化设置 (setup) 初始化串口和 I2C 通信,连接 HUSKYLENS 设备,连接成功后输出提示信息。

  3. 主循环 (loop) 请求执行条形码识别算法,若结果可用则读取并输出以下信息:

    • 条形码的唯一 ID
    • 条形码的内容
    • 条形码在图像中的中心坐标 (x, y)
    • 条形码的宽度与高度
  4. 延迟控制 delay(10000) 每次识别后延迟 10 秒,避免过于频繁地读取数据。

4.3 图形化编程

Mind+ 积木编程

4.4 实验结果

串口返回情况

4.5 实验场景

实验场景图

目录

  1. HUSKYLENS 2 AI 相机视觉传感器识别条形码输出数据
  2. 1. 测试实验硬件连接
  3. 2. 设置测试实验平台
  4. 3. 条形码识别概念
  5. 3.1 核心概念
  6. 3.2 应用场景
  7. 4. 识别条形码输出相关数据
  8. 4.1 测试实验代码
  9. 4.2 代码解读
  10. 4.3 图形化编程
  11. 4.4 实验结果
  12. 4.5 实验场景

更多推荐文章

查看全部
  • 汇川机器人软件 RobotLab 基础操作指南
  • 2025 具身智能端侧芯片与云边协同:主流方案深度解析
  • LLaMA Factory 核心原理讲解
  • 从零搭建哪吒服务器探针 - 查看多端服务器状态
  • 本地部署 AI 绘画:基于 Flux 模型的快速实践指南
  • AIGC 浪潮下图文内容社区数据指标体系构建
  • 云开发 Copilot:AI 赋能的低代码开发实践
  • C++ STL list 容器详解:使用与模拟实现
  • AI 产品经理技术教程:能力模型、发展史与学习路径
  • AI+ 游戏开发:基于 DeepSeek 打造贪吃蛇游戏
  • VS Code 远程环境 GitHub Copilot 报错排查指南
  • 二分查找实战:旋转排序数组最小值与点名问题
  • ESP32 ESPectre 结合 Grafana 实现专业级 CSI 运动监控
  • Web SSTI 模板注入漏洞利用与绕过技巧详解
  • GitHub Copilot Pro 学生免费认证与 VS Code 集成指南
  • Java 驱动的无人共享宠物洗澡物联网系统架构
  • Unity VR 高分辨率全景视频播放性能优化
  • stl-thumb:一款高效的 STL 文件预览工具
  • 移动应用版本控制与发布流程指南
  • 基于遗传算法的无人机烟幕遮蔽时间优化方案

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online