一、背景
兴趣爱好来了,决定研发一个产品。涉及到电工和机械等知识,所以记录一下相关的基础知识。本期主题是初尝线扫相机,虽然又回到了编程,但是对于我来说,硬件集成的经验不足,缺乏相机、镜头的专业知识。但是与AI的经验配合,还是勉强啃下了这块骨头。
二、材料与接线
(一)材料清单
序号 | 名称 | 型号 | 备注 |
1 | 海康威视CL系列4K线扫线阵工业相机 | MV-CL042-91GM | |
2 | 海康威视配套镜头 | MVL-AF2045M-M42 | |
3 | 12 芯航插电源线 | 自带 | |
4 | 网线 | 不懂是啥标准,能用就行,先不学 | 自带 |
5 | 开关电源 | 输出24V,10A | 上次实验我用到的,继续使用 |
(二)接线说明
1.电源线
接之前,确认了电压是匹配的,这一点很关键。12芯一头接相机,另一头接开关电源。只是注意说明颜色,黑色、灰色都写的是写的是接GND,并线接,对应我的开关电源的COM接头。紫色、红色写的是DC power,并线接,对应我的开关电影的+V接头。紫色不好辨识啊,差点搞的我认为自己是弱智了。心中想象🍆的颜色,而且是深色🍆就行。
2.网线
很多年前,我们2个电脑网线直连时,我记得那种网线和一般上网用的网线不一样?反正能用就好了,暂时不去深究。不影响核心目标的学习,可以暂缓。
3.镜头
本次是初次实验,先做最小测试,根本不用上镜头。
三、测试过程
(一)官方软件MVS测试连接正确性
海康机器人-机器视觉-下载中心,AI第一次找下载,点击过去是404,第二次才找对界面,但是该界面也多次崩溃。不得不吐槽一下海康,我目前工作中一件事情,也整好跟海康打交道,在技术文档、二次开发服务方面,海康还有很大的改进空间。
安装软件后,运行起来,在首页的左侧菜单栏中,可以看到连接好的这台相机,双击这一行,中间就会显示画面。中间上面有几个小按钮,类似播放的按钮,点击就可以实时采集了。但是,线扫相机进光有限(一条缝嘛),所以屏幕看起来基本都是黑色的,我把手机电筒打开,对着线扫相机的那条缝隙!唉,对了,白了,有光的感觉!这就说明我们接线基本没有啥问题了。同步又要增加300多的经费了,买了补光灯,还等路上。
(二)官方软件MVS自带java代码测试
我刚开始跳过了这一步,直接AI上代码,遇到了运行环境配置问题,才回头走这一步。建议这样走,不然挫败感太强烈了。
官方的示例代码存在“MVS\Development\Samples\Java”。我先选择里面的“GetImage”,里面有“compile.bat”和“run.bat”。先编译,再运行的。在上一步连接正常的情况下,运行的时候,会提示发现相机列表,其中只有1个,要求选择编号,输入编号,即可运行。
我查看了bat文件,没有太多的配置,代码来看,是依赖了MVS\Development\Samples\Java\Library\MvCameraControlWrapper.jar,反编译jar,查看MvCameraControl.class背后依赖的是C:\Program Files (x86)\Common Files\MVS\Runtime\Win64_x64\\Runtime\\Win32_i86\\MvCameraControlWrapper.dll。而这个dll还依赖了同文件夹其他的dll文件。
都运行起来了,为什么还要写上面一段呢?理清楚依赖关系干什么?因为涉及Java Native Interface(Java 本地接口,简称 JNI),对于我们后续自己写代码开发时,要搞清楚,否则容易出现找不到dll等情况。
(三)java代码抓取及存储画面
参看MVS\Development\Samples\Java目录下面的ImageSave示例,导入到项目中,简单修改我获取一帧的代码。我的实验电脑没有在身边,代码就不贴了。简单的。
四、实验小结
1.线扫相机不如一般相机好测试,因为图像在没有补光灯的情况下,可能看不到图像,难以区别是正常还是异常。
2.JNI容易出现位置问题,特别是在自己的开发工具中开发时要注意。而且直接依赖的dll文件还有间接依赖的dll文件。
3.线扫相机接口拿到的图片并不是1条线,而是组装好的完整图片,即便只拍了1帧,拿到的还是1个完整的图片。
4.海康的文件中规中矩,但没有从二次开发者的角度来编写文档,可读性不强。