一、背景
????????興趣愛好來了,決定研發一個產品。涉及到電工和機械等知識,所以記錄一下相關的基礎知識。本期主題是初嘗線掃相機,雖然又回到了編程,但是對于我來說,硬件集成的經驗不足,缺乏相機、鏡頭的專業知識。但是與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.海康的文件中規中矩,但沒有從二次開發者的角度來編寫文檔,可讀性不強。