康标达工业镜头开发笔记(一):康标达(Computar)工业镜头介绍、搭建SDK基础环境

若该文为原创文章,转载请注明原文出处

本文章博客地址:https://blog.csdn.net/qq21497936/article/details/163438166

长沙红胖子Qt·西安(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...

Qt开发专栏:三方库开发技术

上一篇:没有了...

下一篇:敬请期待...

前言

  康标达(Computar)工业镜头SDK二次开发笔记,本篇介绍基基本信息和搭建基础sdk二次开发环境模板。

题外话

  相较于传统手动调焦工业镜头,这款自带步进电机、支持上位机软件实时控制对焦、光圈、变焦,非常适合自动化在线视觉检测、多工况切换成像、精密视觉标定场景。

  大多文章只讲工业相机调用、OpenCV 图像处理,极少有完整的康标达镜头SDK二次开发实操内容,因此打算整理系列开发笔记,从硬件认知、环境搭建、指令调用、代码封装一步步记录,方便后续复用,也给做机器视觉电控镜头开发的同行参考。

康标达(Computar)

概述

  康标达(Computar)隶属于日本 CBC 集团,是专注机器视觉赛道的专业工业镜头品牌,核心面向自动化工业检测场景,不生产民用消费级摄影镜头,是国内智能制造、视觉检测项目主流选用的日系工业镜头品牌。

  Computar 电控变焦镜头(电动镜头),内置步进马达驱动 Focus(对焦)、Zoom(变焦)、Iris(光圈)三组执行机构,高端型号扩展 Filter 滤镜切换模组;通讯接口主流为SMBus/I2C、RS485 两种方案,采购选型时务必确认接口类型,二者 SDK 与硬件接线互不兼容。

  

核心功能

  • Zoom:变焦控制,调整镜头焦距,改变视场大小
  • Focus:对焦控制,调节成像清晰度
  • Iris:光圈控制,调整通光量、景深
  • Filter:滤镜模组切换(选配型号支持)
  • 位置读取:实时读取当前焦段、对焦位置、光圈绝对坐标
  • 参数记忆:支持上位机保存多组位置预设值,一键切换工况

特性

上电硬件初始化行为

  镜头上电后,部分型号会执行自动初始化回零动作:马达自动移动至机械原点。

  多镜头并行控制场景:系统运行中新增镜头连接、反复重连设备时,不希望每次通讯建立就执行初始化回零。镜头移位会导致现场标定失效、成像视野跳变。但是可以通过软件跳过初始化,仅握手通讯。

各路模组独立状态标志

  镜头不存在全局统一初始化标志位。Zoom 缩放、Focus 对焦、Iris 光圈、Filter 滤镜,四路执行机构相互独立,各自拥有独立【初始化完成标志位】。

  各路电机初始化状态、运动状态互不耦合,可以单独判断单路模组工作状态。

多镜头组网限制

  I2C 版本:依靠设备地址区分多镜头,可修改镜头从机地址实现多路挂载;

  RS485 版本:总线式组网,依靠设备 ID 区分;

  需要做好地址管理,避免多镜头总线冲突。

SDK编程环境

  获取sdk后,基本信息如下:

  • 操作系统:Windows 10 / Windows 11(优先)
  • 开发框架:C++ / Qt(推荐,便于搭建可视化调试上位机)
  • 编译器:MSVC2019 / MSVC2022
  • 辅助工具:官方 Demo 调试软件、串口 / I2C 总线抓包工具
  • 图像处理配套:OpenCV(可选,用于实时成像观测镜头调节效果)

  sdk demo给一个简单的无界面demo的工程,经过笔者二次阅读理解之后,分理出可用的最小接口sdk部分,并进行模块化处理之后:

  由于本人追求精益求精,构架设计,有部分是.c代码,发现提供的sdk中,代码同类相似功能有几种编码和设计小思路区别,导致的差异,进行了少量的代码分层处理和思路修正,尽可能的统一。存在的几个问题:

  • extern变量飞,main函数中的定义全局变量飞到底层api控制中,导致api接口无法与main分割;
  • 同类功能类似变量获取上下限值,一种是机械上下限,一种是功能是软件上下限
  • 部分变量在控制底层封装中就赋值,部分是业务中赋值。

  花了不少时间研究其定义和设计思路,并尽可能不动sdk的前提下,进行了少量新增修正,总体代码还是可以的,而且有代码参考运行看结果远比没有好,还是感谢的,不然需要去看文档寄存器了熟悉研究了其工作量比预估翻倍,参考单片机寄存器通讯的I2C通讯一样。

基础SDK二次开发环境搭建步骤

步骤一:获取sdk

  这里直接是用进行二次整理的sdk,起步。

  

步骤二:新建工程和相机模块

  建立工程:

  

  然后新建相机模块:

  

  工程展示如下:

  

步骤三:引入sdk

  

  在pri中:

  

cpp 复制代码
# 镜头sdk
LENS_SDK_DIR = $$PWD/lensSdkX64
INCLUDEPATH += $$LENS_SDK_DIR/include

LIBS += -L$$LENS_SDK_DIR/lib
LIBS += -lSLABHIDtoSMBus

HEADERS += \
    $$PWD/lensSdkX64/include/SLABCP2112.h \
    $$PWD/lensSdkX64/include/Types.h \
    $$PWD/lensSdkX64/include/configVal.h \
    $$PWD/lensSdkX64/include/devAddr.h \
    $$PWD/lensSdkX64/include/silabs_defs.h \
    $$PWD/lensSdkX64/include/silabs_sal.h

SOURCES += \
    $$PWD/lensSdkX64/src/LensCtrl.c \
    $$PWD/lensSdkX64/src/UsbCtrl.c

  因为有部分控制.c代码接口,需要一起编译,添加.了c文件以及所有头文件。

步骤四:demo代码测试基础

  添加头文件:

cpp 复制代码
#ifdef __cplusplus
extern "C" {
#endif

#include "configVal.h"
#include "SLABCP2112.h"
#include "devAddr.h"
#include "LensCtrl.h"
#ifdef __cplusplus
}
#endif

  

步骤五:运行结果

  测试可以搜索到:

  

模块化

  

Demo关键源码

  头文件包含:

cpp 复制代码
#ifdef __cplusplus
extern "C" {
#endif

#include "configVal.h"
#include "SLABCP2112.h"
#include "devAddr.h"
#include "LensCtrl.h"
#ifdef __cplusplus
}
#endif

  源码:

cpp 复制代码
void LensManager::testEnv()
{
    /*
    typedef unsigned long       DWORD;
    */

    // 步骤一: 搜索usb镜头
    DWORD numDevis;
    int ret = HidSmbus_GetNumDevices(&numDevis, VID, PID);
    LOG << "搜索到镜头数量:" << ret;
}

工程模板v1.0.0

  

上一篇:没有了...

下一篇:敬请期待...

本文章博客地址:https://blog.csdn.net/qq21497936/article/details/163438166

相关推荐
光视界1 天前
GigE vs USB3:工业相机接口选型指南与场景推荐
经验分享·机器视觉·工业相机
双翌视觉2 天前
.机器视觉国产化方案梳理:对位算法、AI 检测平台与精密测量仪器技术架构
人工智能·计算机视觉·视觉检测·机器视觉·工业自动化·视觉对位系统·ai 视觉检测
yuhouxiyang3 天前
光源波长怎么选?红光、蓝光、红外、紫外的成像差异
机器视觉·光源波长·滤光片·打光·红外紫外
weixin_468466854 天前
让机器像视网膜一样“看”:事件相机与脉冲神经网络如何重构视觉感知
人工智能·神经网络·ai·机器视觉·1024程序员节
朗锐智科_机器视觉5 天前
纺织布匹表面疵点视觉检测实战:从验布机到成品检验的完整方案设计
视觉检测·机器视觉·工业相机·硬件选型·朗锐智科·纺织检测
LittroInno8 天前
运动平台上的巡检相机:曝光时间与快门该怎样选?
数码相机·机器视觉·曝光时间·运动模糊·滚动快门·巡检相机
yuhouxiyang8 天前
镜头接口与后截距:C 口、CS 口、M42、F 口及接圈原理
机器视觉·c口·镜头选型·镜头接口·接圈
LittroInno11 天前
云台相机变焦以后,哪些标定需要重新检查?
相机标定·机器视觉·设备维护·变焦镜头·云台控制
yuhouxiyang12 天前
景深计算公式推导:容许弥散圆、光圈与放大倍率的关系
机器视觉·光圈·景深·景深计算·镜头选型
朗锐智科_机器视觉12 天前
食品包装视觉检测实战:从产线触发到缺陷剔除的完整方案设计
机器视觉·工业相机·硬件选型·图像采集卡·朗锐智科·食品包装