本篇文章要教大家如何在 i.MX8QM MEK 板上架設 NXP 提供的 Surround View 3D 1.1 (SV3D-1.1) 版本 Demo。
一、硬體需求:
- MX8QM MEK (CPU Board)
- MAX9286 Deserializer with miniSAS Cable
- OV10635 Camera with FAKRA Cable
- LVDS-to-HDMI Converter with miniSAS Cable
- HDMI Monitor
二、軟體需求:
- NXP Linux BSP L4.14.98_2.0.0_GA
- OpenCV 3.4
- GCC 7.3.0
三、Host CP 環境設定:
1、Yocto 專案設定:
請依照 NXP L4.14.98_2.0.0_GA Yocto Project User’s Guide 架設好編譯環境,並且使用 XWayland 的編譯設定:
$ DISTRO=fsl-imx-xwayland MACHINE=imx8qmmek source fsl-setup-release.sh -b build |
2、設定 conf 檔案,如下:
MACHINE ??= 'imx8qmmek' DISTRO ?= 'fsl-imx-xwayland' PACKAGE_CLASSES ?= "package_rpm" EXTRA_IMAGE_FEATURES ?= "debug-tweaks" USER_CLASSES ?= "buildstats image-mklibs image-prelink" PATCHRESOLVE = "noop" BB_DISKMON_DIRS ??= "\ STOPTASKS,${TMPDIR},1G,100K \ STOPTASKS,${DL_DIR},1G,100K \ STOPTASKS,${SSTATE_DIR},1G,100K \ STOPTASKS,/tmp,100M,100K \ ABORT,${TMPDIR},100M,1K \ ABORT,${DL_DIR},100M,1K \ ABORT,${SSTATE_DIR},100M,1K \ ABORT,/tmp,10M,1K" EXTRA_IMAGE_FEATURES += " tools-sdk eclipse-debug" BB_NUMBER_THREADS = "32" PARALLEL_MAKE = "-j 32" PACKAGECONFIG_append_pn-qemu-native = " sdl" PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" CONF_VERSION = "1" DL_DIR ?= "${BSPDIR}/downloads/" ACCEPT_FSL_EULA = "1" |
3、修改 Source Code 將 OV10635 的輸出格式,從 UYVY 改為 YVYU:
diff --git a/drivers/media/platform/imx8/max9286.c b/drivers/media/platform/imx8/max9286.c index 0fb52f3..b1210eb 100644 --- a/drivers/media/platform/imx8/max9286.c +++ b/drivers/media/platform/imx8/max9286.c @@ -2061,7 +2061,7 @@ static struct reg_value ov10635_init_data[] = { { 0xc4bd, 0x60, 0 },
{ 0x4709, 0x10, 0 },/* dvp swap */ - { 0x4300, 0x3a, 0 },/* YUV order UYVY */ + { 0x4300, 0x39, 0 },/* YUV order UYVY */ { 0x3832, 0x01, 0 },/* fsin */ { 0x3833, 0x1A, 0 }, { 0x3834, 0x03, 0 }, |
4、將 Yocto 專案內的 OpenCV 4.0.1 改成 OpenCV 3.4
下載 WPI 提供的設定檔,並取代 Yocto 專案原有的檔案:
https://mega.nz/#!HvplxSQA!m-_A6fLumzt8ORWQPAMELELWnQriLVfUPQAo_IQ8LRU
檔案路徑:
/sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-graphics/opencv
檔案名稱:
opencv_4.0.1.imx.bb
指令:
$ cp opencv_4.0.1.imx.bb /sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-graphics/opencv/opencv_4.0.1.imx.bb |
5、編譯映像檔:
$ bitbake fsl-image-validation-imx |
四、Target OS 設定
1、添加 Include 檔案:
下載 WPI 提供的 Include 壓縮檔,並且複製到 SD 卡中的 /usr/inc 路徑下:
壓縮檔連結:
https://mega.nz/#!2iwX2SIY!aoDCaOAjIsoCf4mmIYMk7iIcKc5VKJIXWvCjsMUMQnY
解壓縮指令:
# tar xf imx8_inc.tar.gz |
2、添加 Library 檔案:
下載 WPI 提供的 Library 壓縮檔,並且複製到 SD 卡中的 /usr/lib 路靜下:
壓縮檔連結:
https://mega.nz/#!mjghxASD!vY0S-rg-D8rH8eUnW9h4Zg5zKd_kX1v8kCyc5SxIIB8
解壓縮指令:
# tar xf imx8_lib.tar.gz |
3、下載 SV3D-1.1 Source Code:
下載路徑:
https://www.nxp.com/webapp/sps/download/preDownload.jsp
解壓縮指令:
# unzip surround-view-3D_1.1_beta.zip -d . |
4、打上 WPI 提供的 Patch:
下載路徑:
https://mega.nz/#!mmByFCqB!tDsz2a2H1vgUaLGs_1_MRJ9PcLEBaRhQA4NZOhrQYVY
將 Patch 複製到 Demo Source 的根目錄:
# cp WPI_SV3D_Patch_Ver1.1_20191004.patch < APP_ROOT_DIR > |
打 Patch 指令:
# patch -p1 < WPI_SV3D_Patch_Ver1.1_20191004.patch |
五、編譯 APP:
1、移動到 APP Source Code 目錄:
# cd /App/Source |
編譯指令:
# make -f Makefile.wl DEVICE=IMX8QM -j4 |
六、i.MX8QM MEK 硬體環境設定:
- 將 MAXIM9286 解串器板連接到MX8QM MEK J10
- 將 LVDS-to-HDMI 轉板連接到MX8QM MEK J7
- 將 USB Type-C Hub 連接到MX8QM MEK J18
- 將 USB 鍵盤與滑鼠連接到 USB Type-C Hub
七、執行 Capturing APP
1、移動到 Tool 路徑:
# cd /Tools/CamCapture |
a)執行 Capturing APP
# ./capturing |
b)執行結果:
2、執行 Auto Calibration APP
a)移動到 Build 路徑
# cd /APP/Build |
b)執行 the Auto Calibration APP
# ./ auto_calib_1.1 |
c) 使用鍵盤右鍵往下一步驟,鍵盤左鍵往上一步驟
d)執行結果
四分割畫面
執行魚眼校正
尋找標定板
標示 3D 網格
最終結果
3、執行 SV3D-1.1 APP
a)請先執行完 Auto Calibration APP 再執行 SV3D-1.1 APP
b)移動到 Build 路徑
# cd /APP/Build |
c)執行 SV3D-1.1 APP
# ./ SV3D-1.1 |
d)執行結果:
按下滑鼠左鍵並拖曳可更改視角,使用滑鼠滾輪可以放大縮小
The End
大联大旗下世平集团 ATU 部门可以提供相关设计方案和技术支持,需要请联系 atu.cn@wpi-group.com
評論
Alex_160216
2021年8月4日