提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
文章目录
前言
一、相机的接线
二、驱动及环境安装
2.1树莓派上环境设置
2.2树莓派上内核安装
2.3安装MV_camera驱动
2.4相机驱动本地编译
三、相机的采取与实时显示
3.1 相机的采取
3.2图像的实时显示
四、总结
前言
本文章针对v4l2模式下的操作。
参考文档:
Mv series camera appnotes 4 rpi/zh
参考其VLC工具,实现对UYVY图像格式的实时显示
veye GitHub首页
树莓派内核编译
提示:以下是本篇文章正文内容,下面案例可供参考
一、相机的接线
记住,外接树莓派gpio口5v电压。
可参考此图,然后利用万用表测试在进行接线。mipi接口则千万别接反。
二、驱动及环境安装
2.1树莓派上环境设置
开启树莓派时,必须开启i2c功能,和关掉legacy模式。
sudo raspi-config
然后在进入Interface Options,启用I2C,关闭legacy模式,在重启。
2.2树莓派上内核安装
可先不安装内核,如果2.3中报错,在执行此操作,命令如下:
sudo apt install git bc bison flex libssl-dev make
git clone --depth=1 https://github.com/raspberrypi/linux #下载默认分支的linux版本
cd linux
KERNEL=kernel8
make bcm2711_defconfig
CONFIG_LOCALVERSION="-v7l-MY_CUSTOM_KERNEL"
make -j4 Image.gz modules dtbs #这步时间很长,需耐心等待
sudo make modules_install
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm64/boot/Image.gz /boot/$KERNEL.img
sudo reboot
2.3安装MV_camera驱动
首先先下载驱动包
wget https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz
tar -xzvf raspberrypi_v4l2.tgz
cd raspberrypi_v4l2/release/
chmod +x *
然后执行下面这个命令时,如果提示没有这个版本驱动在,则需自行安装驱动
sudo ./install_driver.sh veye_mvcam
自行驱动安装,需先安装本地内核, 参考2.2中树莓派内核安装
2.4相机驱动本地编译
我们需要在下面这个文件中进行操作。这里以你的内核为5.15.92为例。
sudo apt install git bc bison flex libssl-dev make #Prepare environment
sudo apt install raspberrypi-kernel-headers #Download the kernel headers for the local piOS
git clone https://github.com/veyeimaging/raspberrypi_v4l2.git #如果显示已有同样文件夹,可不执行
uname -a
cd ~/raspberrypi_v4l2/driver_source/cam_drv_src/rpi-5.15_all
make #生成ko文件
cd ~/raspberrypi_v4l2/driver_source/dts/rpi-5.15.y
./build_dtbo.sh #生成dtbo文件
下面我们要把编译好的ko文件和dtbo放在raspberrypi_v4l2/release//driver_bin/$(uname -r)下,然后进行安装即可。
这里如果.sh脚本无法执行,可以执行如下命令
chmod u+x xxx.sh
好了,开始下面正式操作,命令如下:
cd raspberrypi_v4l2/release/
mkdir driver_bin/$(uname -r)
将编译得到的驱动的驱动ko文件和dtbo放到此目录下。
然后执行安装命令即可:
chmod +x *
sudo ./install_driver.sh veye_mvcam #提示安装了驱动,按y确定重启
提示界面如下:
ok,重启以后,驱动安装成功了,我们可以执行如下命令,获得相机设备信息:
dmesg | grep mvcam
显示,如上信息,说明安装已经成功,接下来安装v4l2的工具包:
#安装v4l2-utils
sudo apt-get install v4l-utils
#yavta安装
git clone git://git.ideasonboard.org/yavta.git
cd yavta;make
v4l2操作指南,参考如下链接 6.5--6.7
http://wiki.veye.cc/index.php/Mv_series_camera_appnotes_4_rpi/zh
三、相机的采取与实时显示
3.1 相机的采取
这里介绍软触发采集,其它方式,参考以下链接6.5--6.7
Mv series camera appnotes 4 rpi/zh - wiki_veye
指令如下:
export WIDTH=1440
export HEIGHT=1088
export FPS=60
#设置ROI和帧率
v4l2-ctl --set-selection=target=crop,top=0,left=0,width=$WIDTH,height=$HEIGHT
v4l2-ctl --set-ctrl frame_rate=$FPS
#设置模式
v4l2-ctl --set-ctrl trigger_mode=1
v4l2-ctl --set-ctrl trigger_src=0
#开始取图,生成8位灰度图像,这里长宽要与设置ROI一致
v4l2-ctl --set-fmt-video=width=1440,height=1088,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=1.raw
#切记,再生成一个新的终端窗口,执行软触发,默认图片保存在当前路径
v4l2-ctl --set-ctrl soft_trgone=1
下面提供一个脚本,可采集10张8位灰度raw图片,图片保存在桌面photos文件夹内。
操作如下:
#创建.sh文件
touch test.sh
sudo nano test.sh
将下面内容复制到shell文件中
#! /bin/bash
cd ~/Desktop
mkdir photos
cd photos
export WIDTH=1440
export HEIGHT=1088
export FPS=60
v4l2-ctl --set-selection=target=crop,top=0,left=0,width=$WIDTH,height=$HEIGHT
v4l2-ctl --set-ctrl frame_rate=$FPS
v4l2-ctl --set-ctrl trigger_mode=0
a=1
for((i=1;i<11;i++))
do
v4l2-ctl --set-fmt-video=width=1440,height=1088,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=$a.raw
let a=a+1
done
接下来执行如下命令:
chmod u+x test.sh
./test.sh
3.2图像的实时显示
这里需要借助如下这篇文档第6部分的知识,利用相机UYVY格式进行显示,链接如下:
V4L2 mode for Raspberry Pi/zh - wiki_veye
操作如下,先配置ROI
export WIDTH=1440
export HEIGHT=1088
export FPS=60
v4l2-ctl --set-selection=target=crop,top=0,left=0,width=$WIDTH,height=$HEIGHT
v4l2-ctl --set-ctrl frame_rate=$FPS
在设置vlc
命令行中输入vlc,进行如下图操作:
记住,这里仅需改变第5步,改成width=1440,height=1088。接着播放就可显示实时图像了。
四、总结
本文档实现了MV_MIPI_IMX296相机在64位树莓派上的采集,以及实时显示,建议大家多多参考以下链接文档。如有错误之处或者更好的方法,欢迎各位留言指教。
Mv series camera appnotes 4 rpi/zh
参考其VLC工具,实现对UYVY图像格式的实时显示
veye GitHub首页
树莓派内核编译
文章来源
发表评论