Difference between revisions of "V4L2 mode for Raspberry Pi/zh"
Line 67: | Line 67: | ||
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]<br />[[CS-MIPI-X for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|CS系列参数控制软件包使用说明]] | [[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]<br />[[CS-MIPI-X for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|CS系列参数控制软件包使用说明]] | ||
=== 源代码编译方法 === | === 源代码编译方法 === | ||
+ | 本节主要参考资料为[https://www.raspberrypi.org/documentation/linux/kernel/building.md 官方piOS编译方法]。我们采用交叉编译的方法,5.4.72版本32bitOS为例进行说明。 | ||
+ | |||
+ | 以下操作均在ubuntu PC上进行。 | ||
+ | |||
+ | ==== 开发环境准备 ==== | ||
+ | <code>sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev</code> | ||
+ | |||
+ | <code>sudo apt install crossbuild-essential-armhf</code> | ||
+ | |||
+ | ==== 下载标准版本 ==== | ||
+ | |||
+ | ===== 首先,请确认自己的树莓派上的piOS版本: ===== | ||
+ | <code>$ uname -a</code> | ||
+ | |||
+ | <code>Linux raspberrypi 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l GNU/Linux</code> | ||
+ | |||
+ | ===== 有两种方法可以得到自己想要的版本的源码: ===== | ||
+ | 在PC上: | ||
+ | |||
+ | 1. 采用git获取到对应branch上的对应tag版本代码 | ||
+ | |||
+ | <code>git clone --branch rpi-5.4.y <nowiki>https://github.com/raspberrypi/linux</nowiki></code> | ||
+ | |||
+ | <code>git checkout raspberrypi-kernel_1.20201022-1</code> | ||
+ | |||
+ | 2. 直接从如下链接手动下载对应tag的版本代码 | ||
+ | |||
+ | https://github.com/raspberrypi/linux/tags | ||
+ | |||
+ | ==== patch我们的驱动代码 ==== | ||
<br /> | <br /> | ||
+ | |||
+ | ==== 编译输出 ==== | ||
=== 参考资料 === | === 参考资料 === |
Revision as of 17:01, 30 December 2020
1 如何在树莓派平台使用VEYE和CS系列摄像头模组(V4L2模式)
1.1 概述
针对VEYE系列和CS系列摄像头模组在树莓派平台的使用方式,我们提供了类似raspicam模式的应用层开源软件——veye_raspicam软件。该系列软件,无需驱动支持,对piOS不同版本的兼容性好。但是,我们认为V4L2驱动模式,也有比较广泛的应用场合。两种模式不能同时使用,具体体现在驱动是否安装上。后文会有详细描述。
本文描述怎样在树莓派平台,通过V4L2方式调用VEYE系列和CS系列的摄像头模组。
1.2 硬件准备及安装
1.3 树莓派系统配置
1.4 驱动安装
1.4.1 下载驱动包
git clone https://github.com/veyeimaging/raspberrypi_v4l2.git
1.4.2 安装驱动 cd raspberrypi_v4l2/release/
chmod +x *
sudo ./install_driver.sh [camera module]
camera module:可以是veye327,csimx307,cssc132等。
然后重启树莓派。
1.4.3 卸载驱动
如需更换为raspicam模式,或者想要更换成其他摄像头模组型号的驱动,必须要先卸载现在的驱动。
sudo ./uninstall_driver.sh [camera module]
camera module:可以是veye327,csimx307,cssc132等。
1.5 摄像头状态验证
以veye327为例:
dmesg | grep veye
可以看到:
veye327 camera probed
并且/dev/video0 节点存在,证明摄像头状态正常。
1.6 Gstreamer应用范例
export DISPLAY=:0
- 抓拍一张图片
gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, format=(string)UYVY, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg
- 视频预览
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! videoconvert ! autovideosink sync=false -v
- 帧率测试
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! videoconvert ! fpsdisplaysink video-sink=fakesink -v
1.7 参数控制软件包使用
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
https://github.com/veyeimaging/raspberrypi/tree/master/i2c_cmd
VEYE系列参数控制软件包使用说明
CS系列参数控制软件包使用说明
1.8 源代码编译方法
本节主要参考资料为官方piOS编译方法。我们采用交叉编译的方法,5.4.72版本32bitOS为例进行说明。
以下操作均在ubuntu PC上进行。
1.8.1 开发环境准备
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
sudo apt install crossbuild-essential-armhf
1.8.2 下载标准版本
1.8.2.1 首先,请确认自己的树莓派上的piOS版本:
$ uname -a
Linux raspberrypi 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l GNU/Linux
1.8.2.2 有两种方法可以得到自己想要的版本的源码:
在PC上:
1. 采用git获取到对应branch上的对应tag版本代码
git clone --branch rpi-5.4.y https://github.com/raspberrypi/linux
git checkout raspberrypi-kernel_1.20201022-1
2. 直接从如下链接手动下载对应tag的版本代码
https://github.com/raspberrypi/linux/tags
1.8.3 patch我们的驱动代码
1.8.4 编译输出
1.9 参考资料
- 树莓派的piOS编译方案:
https://www.raspberrypi.org/documentation/linux/kernel/building.md。