IMX462 2MP Starlight Camera
| ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
简介
产品介绍
IMX462 2MP Starlight Camera是一款星光级摄像头,搭载1/2.8英寸索尼星光级传感器,IMX462 采用Sony被找背照式像素技术,在可见光和近红外段有高质量的成像效果。IXM462 2MP Starlight Camera最大分辨率为1920*1080,板载IR-CUT,可以自由切换日夜模式。摄像头板载ISP处理电路从而进一步增强摄像头成像效果。提供99°和127°两种视场角选项,用户可以根据自己的需求选择。
产品规格
IMX462-99 | IMX462-127 | |
---|---|---|
图像传感器 | ||
感光芯片 | SONY IMX462LQR-C STARVIS | |
像素 | 2.07MP | |
分辨率 | 1920×1080 | |
像素尺寸 | 2.9um×2.9um | |
快门方式 | 卷帘快门 | |
ISP图像处理 | ||
帧率 | 1080p@25fps、1080p@30fps | |
曝光 | AE(自动曝光)/手动 | |
白平衡 | AWB(自动白平衡), 手动 | |
快门 | 1/25(1/30)s to 1/50,000s (支持慢快门) | |
降噪 | 2D/3D降噪 | |
图像设置 | 亮度、对比度、锐度、饱和度、GAMMA可调、图像翻转、图像镜像 | |
图像增强 | 背光补偿、DOL-WDR、去雾 | |
日夜切换 | 外触发同步转换,手动强制彩色、黑白 | |
镜头 | ||
视场角(FOV) | 99.1°(D) / 83.5°(H) / 44.6°(V) | 127.9°(D) / 106.9°(H) / 56.9°(V) |
光圈 | F1.0 | F1.61 |
焦距 | 4.0mm | 3.18mm |
畸变 | -33.8% | -51% |
对焦方式 | 手动 | |
工作参数 | ||
工作温度 | -10℃~60℃ | |
工作湿度 | <=95%无凝结 |
尺寸图
PCBA尺寸
PCBA 3D图纸
树莓派使用说明
使用说明
由于IMX462不是树莓派默认支持的摄像头型号,因此无法使用树莓派自带的libcamera或者raspicam库。需要另外安装驱动和控制脚本使用。
提供的驱动仅支持树莓派Raspberry PI OS系统,暂时未对其他系统做支持。
配置i2c
打开树莓派终端,输入指令
sudo raspi-config
选择Interface Options -> I2c -> Yes
下载安装驱动
下载驱动前,请确保已经正常烧写最新的树莓派系统,连接好摄像头,并完成开机配置。
打开树莓派终端,并输入以下指令进行安装
wget https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz tar -xzvf raspberrypi_v4l2.tgz cd raspberrypi_v4l2/release/ chmod +x *
安装驱动
树莓派5
cd ~/raspberrypi_v4l2/release/ sudo ./install_driver_rpi5.sh veyecam2m
由于在树莓派5上,驱动程序现在使用media control API,必须先正确设置media graph才可以正常使用。这包括正确设置media pad的格式并正确链接它们。 在rpi5_scripts目录提供了一系列脚本实现这个功能。 因此每次重新上电后,需要运行以下指令配置一下,然后才能正常使用。
cd ~/raspberrypi_v4l2/rpi5_scripts/ sudo ./find_entity.sh sudo ./media_setting_rpi5.sh veyecam2m
其他树莓派
cd ~/raspberrypi_v4l2/release/ sudo ./install_driver.sh veyecam2m
卸载驱动(可选)
如果需要更换其他摄像头型号的额驱动,可以卸载现在的驱动
sudo ./uninstall_driver.sh veyecam2m
测试摄像头
注:如果你是通过远程终端操作摄像头,在使用预览指令前请先输入export DISPLAY=:0指令指定一下屏幕输出。
使用qv4l2预览图像
- 安装工具
sudo apt-get install qv4l2
- 运行工具
在终端命令行界面输入以下工具打开软件
qv4l2
运行后,点击左上角的播放图标进行预览即可
使用Gstreamer预览
安装Gstreamer
打开树莓派终端,并输入以下指令进行安装:
sudo apt-get install gstreamer1.0-tools sudo apt-get install libx264-dev libjpeg-dev sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-tools gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
抓拍图片
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 io-mode=dmabuf device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2convert capture-io-mode=dmabuf output-io-mode=dmabuf ! 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 ! videoscale ! clockoverlay time-format="%D %H:%M:%S" ! video/x-raw, width=640, height=360 ! autovideosink sync=false -v
录制视频 (mkv文件)
gst-launch-1.0 -e v4l2src io-mode=dmabuf device=/dev/video0 num-buffers=300 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2h264enc capture-io-mode=dmabuf output-io-mode=dmabuf extra-controls="controls, h264_profile=4, video_bitrate=6200000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! matroskamux ! filesink location=output.mkv
录制视频(mp4文件
gst-launch-1.0 -e v4l2src io-mode=dmabuf device=/dev/video0 num-buffers=300 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2h264enc capture-io-mode=dmabuf output-io-mode=dmabuf extra-controls="controls, h264_profile=4, video_bitrate=6200000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! mp4mux ! filesink location=video.mp4
TCP视频流传输
- 树莓派端, 监听端口为5000
gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=-1 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2h264enc extra-controls="controls, h264_profile=4, video_bitrate=4000000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=x.x.x.x port=5000
- 从机端获取
gst-launch-1.0 -v tcpclientsrc host=x.x.x.x port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! autovideosink sync=false
注意:x.x.x.x需要根据实际的树莓派IP地址更换,比如gst-launch-1.0 -v tcpclientsrc host=192.168.1.10 port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! autovideosink sync=false
使用Opencv获取视频
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! videoscale ! "video/x-raw,width=640,height=480" ! videoconvert ! "video/x-raw, format=(string)BGR" ! appsink
注意:这里不是直接在树莓派中单运行的,而是最为video.Capture(str)str的参数做调用。
使用Compute Module 计算模块
如果用户使用的是树莓派的CM3或者CM4计算模块,需要安装dtb和设备树文件。
加载设备树
sudo wget https://datasheets.raspberrypi.com/cmio/dt-blob-dualcam.bin -O /boot/dt-blob.bin sudo cp ~/raspberrypi_v4l2/release/driver_bin/$(uname -r)/veyecam2m.dtbo /boot/overlays/veyecam2m.dtbo sudo reboot
设备说明
CM4采用两路i2c分别与两个摄像头通信,分别是i2c-0和i2c-10。
如果同时接入两路摄像头,会在系统成识别成video0和video2两个节点。
CAM0预览
gst-launch-1.0 v4l2src io-mode=dmabuf device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2convert capture-io-mode=dmabuf output-io-mode=dmabuf ! autovideosink sync=false -v
CAM1预览
gst-launch-1.0 v4l2src io-mode=dmabuf device=/dev/video2 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=(fraction)30/1" ! v4l2convert capture-io-mode=dmabuf output-io-mode=dmabuf ! autovideosink sync=false -v
Jetson Nano 使用说明
版本说明
IMX462 摄像头在英伟达平台使用要安装相关驱动,加载新的设备树文件。目前支持Jetson Nano, Jetson Xavier NX, Jetson TX2 NX, Jetson AGX Xavier.
注:AGX Xavier等接口封装不同的,需要自己另外购买或做转接板支持。
目前支持的Jetapck版本:
- Jetpack4.2.2,L4T版本r32.2.1
- Jetpack4.3,L4T版本r32.3.1
- Jetpack4.4,L4T版本r32.4.3
- Jetpack4.4.1,L4T版本r32.4.4
- Jetpack4.5,L4T版本r32.5
- Jetpack4.5.1,L4T版本r32.5.1
- Jetpack4.6,L4T版本r32.6.1
- Jetpack4.6.1,L4T版本r32.7.1
- Jetpack4.6.2,L4T版本r32.7.2
- Jetpack5.0.1DP,L4T版本r34.1.1
查看JetPack版本
如果你不确定你的软件版本是否在支持范围内,可以用以下指令查看。
cat /etc/nv_tegra_release
如果显示 R32 (release), REVISION: 4.3 代表当前的版本为R32.4.3
硬件连接
说明
请将摄像头排线,金手指接触面朝向核心板一侧,接入jetson开发板。
- Jetpack4.x版本
使用IMX462摄像头,需要更新Jetson系统的Image和dtb部分。Image部分,增加了摄像头驱动,dtb部分则指明了使用的摄像头型号。一般情况下,只需使用已编译好的Image和dtb,非必要情况下,无需根据代码进行编译。
- JetPack5.0以后的版本(针对Xavier NX和AGX Xavier以及更高性能的模组)
驱动不再编译进Image,而是以独立module的形式加载到系统中。dtb现在依然是采用整体编译到一起的方式以方便进行替换。dtb也可以以overlay形式动态加载。
BSP包
- 下载路径:
- bsp包内容:
- 预编译好的不同平台下的dtb
- driver源码
- dts源码
- i2c通信工具集
- DTB包文件和板卡的对应关系:
- Nano B01
- tegra210-p3448-0000-p3449-0000-b00.dtb
- Nano eMMC
- tegra210-p3448-0002-p3449-0000-b00.dtb
- AGX XAVIER
- tegra194-p2888-0001-p2822-0000.dtb
- XAVIER NX
- tegra194-p3668-all-p3509-0000.dtb
- (Jetpack5.0.1) tegra194-p3668-0000-p3509-0000.dtb
- AGX Orin
- tegra234-p3701-0000-p3737-0000.dtb
- Orin NX
- Jetson Orin NX 16G(P3767-0000):tegra234-p3767-0000-p3768-0000-a0.dtb
- Jetson Orin NX 8G (P3767-0001):tegra234-p3767-0001-p3768-0000-a0.dtb
- Orin Nano
- Jetson Orin Nano 8G(P3767-0003) and Jetson Orin Nano Devkit(P3767-0005):tegra234-p3767-0003-p3768-0000-a0.dtb
- Jetson Orin Nano 4G (P3767-0004):tegra234-p3767-0004-p3768-0000-a0.dtb
安装驱动
直接在jetson主板上升级。
wget https://github.com/veyeimaging/nvidia_jetson_veye_bsp/releases/latest/download/nvidia_jetson_veye_bsp.tar.gz tar -xzvf nvidia_jetson_veye_bsp.tar.gz
升级Image(适用JetPack4.x)
- 备份原来的Image
cp /boot/Image /boot/Image.backup cp /boot/Image.sig /boot/Image.sig.backup
- (Jetson Nano)在下载的bsp包中,找到对应的Image压缩包,进行解压,然后执行指令
sudo cp <path to your Image dir>/Image /boot/Image -f
- 注意这里要将<path to your Image dir>替换成你实际解压出来的Image文件的路径。
- (NX) 如果你使用的是Xavier NX,需要使用签名版本,也就是带signed字眼的包。
sudo cp <path to your Image dir>/Image /boot/Image -f sudo cp <path to your Image dir>/Image.sig /boot/Image.sig -f
安装module是(适用JetPack5.x)
- 查看linux版本
uname -r
- 在nvidia_jetson_veye_bsp/ko目录下找到对应的驱动版本目录, 运行指令
sudo cp nvidia_jetson_veye_bsp/ko/$(uname -r)/* /lib/modules/$(uname -r)/kernel/drivers/media/i2c/ -f sudo depmod
升级dtb
- 在bsp包目录下,找到对应摄像头(VEYE-MIPI-CAM2M)型号和L4T版本号的dtb文件。进行拷贝
sudo mkdir /boot/veyecam/ sudo cp <path to your dtb dir>/<DTB file name> /boot/veyecam -f
- 备份extlinux.conf文件
cp /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.back
- 编辑 /boot/extlinux/extlinux.conf文件,在最下面增加如下一行
FDT /boot/veyecam/<DTB file name>
注:<DTB file name>应当替换为主板对应的dtb名称,确保FDT一行所指明的文件确实正确存在。
- 重启系统:
sudo reboot
测试摄像头
检查摄像头是否正常连接
在系统升级成功后,可以在Jetson nano终端输入以下指令检测摄像头是否正常连接
dmesg | grep veye
有IMX462等提示即可。同时查看ls /dev/ 有videox设备节点
测试摄像头(Gstreamer)
- 视频预览1080P
export DISPLAY=:0 gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! "video/x-raw(memory:NVMM),format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)NV12" ! nvoverlaysink sync=false
gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! "video/x-raw(memory:NVMM),format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvoverlaysink sync=false
- 视频预览1080p (xvimagesink)
export DISPLAY=:0 gst-launch-1.0 -e v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1920, height=1080, framerate=30/1, format=UYVY' ! xvimagesink sync=false
- 同时预览两路摄像头
WIDTH=960 HEIGHT=540 CAPS="video/x-raw(memory:NVMM),format=(string)UYVY, width=1920, height=1080" gst-launch-1.0 nvcompositor name=comp sink_0::xpos=0 sink_0::ypos=0 sink_0::width=$WIDTH sink_0::height=$HEIGHT sink_1::xpos=$WIDTH sink_1::ypos=0 sink_1::width=$WIDTH sink_1::height=$HEIGHT ! nvoverlaysink nvv4l2camerasrc device=/dev/video0 ! $CAPS ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420"! comp. nvv4l2camerasrc device=/dev/video1 ! $CAPS ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420"! comp
- 用Opencv调用Gstreamer
gst-launch-1.0 nvv4l2camerasrc ! video/x-raw(memory:NVMM), format=(string)UYVY, width=(int)1920, height=(int)1080 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)I420 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink
- 视频录制1080p
gst-launch-1.0 nvv4l2camerasrc num-buffers=300 ! "video/x-raw(memory:NVMM),format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)NV12" ! nvv4l2h264enc control-rate=1 bitrate=10000000 ! h264parse ! qtmux ! filesink location=filename.mp4 -e
- 播放录像
gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! queue ! h264parse ! nvv4l2decoder ! nvoverlaysink -e
- 抓拍图片
gst-launch-1.0 v4l2src num-buffers=1 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvjpegenc ! filesink location=jpgname.jpg
- Jetpack5.x系统上测试摄像头
- 视频预览1080p
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY,width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)NV12" ! nv3dsink -e
- 视频录像1080p
gst-launch-1.0 v4l2src num-buffers=300 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)NV12" ! nvv4l2h264enc control-rate=1 bitrate=10000000 ! h264parse ! qtmux ! filesink location=filename.mp4 -e
- 抓拍图像
gst-launch-1.0 v4l2src num-buffers=1 ! "video/x-raw,format=(string)UYVY, width=(int)1920, height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvjpegenc ! filesink location=jpgname.jpg
测试摄像头(v4l2-ctl)
- 安装v4l2-utils
sudo apt-get install v4l-utils
- 查看摄像头支持的数据格式
v4l2-ctl --list-formats-ext
- 帧率统计
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY--stream-mmap --stream-count=-1 --stream-to=/dev/null
- 保存图片到文件
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=uyvy-1920x1080.yuv
测试摄像头(yavta)
- 安装yavta
git clone https://github.com/veyeimaging/yavta.git cd yavta sudo make
- 保存图片到文件
./yavta -c1 -FUYVY-1920x1080.yuv --skip 0 -f UYVY -s 1920x1080 /dev/video0
Opencv例程
- 这里提供了三个加单的Opencv例程,例程将摄像头数据从V4l2设备导入到opencv,可以作为参考
参数调节
参数调节
由于IMX462 摄像头板载ISP电路,用户可以通过提供的脚本对摄像头参数进行配置。Jetson nano的脚本可以在下载的bsp包中找到
下载并配置脚本
- 下载脚本
git clone https://github.com/veyeimaging/raspberrypi.git cd raspberrypi/i2c_cmd/bin/
- 配置脚本(非树莓派主板可跳过此步骤)
cd raspberrypi/i2c_cmd/bin/ ./enable_i2c_vc.sh
- 如果是树莓派主板
./camera_i2c_config
- 如果是树莓派计算模块
./camera_i2c_config 0 #CAM0 ./camera_i2c_config 1 #CAM1
配置摄像头
设置wdrmode
- 读取当前的wdrmode
./veye_mipi_i2c.sh -r -f wdrmode
- 修改当前的wdrmode
./veye_mipi_i2c.sh -w -f wdrmode -p1 [value]
[value]的数值可以为:
- 0x00: 背光模式关闭
- 0x01: 低背光模式
- 0x02: 高背光模式
- 0x03: 使能DOL WDR宽动态模式
videoformat
- 读取当前视频格式
./veye_mipi_i2c.sh -r -f videoformat
- 设置视频格式
./veye_mipi_i2c.sh -w -f videoformat -p1 [value]
[value]参数:
- PAL : 设置为PAL(50Hz)模式,该模式下, 帧率为25fps
- NTSC: 设置为NTSC(60Hz)模式,该模式下,帧率为30fps
mirrormode
- 读取镜像模式
./veye_mipi_i2c.sh -r -f mirrormode
- 设置镜像模式
./veye_mipi_i2c.sh -w -f mirrormode -p1 [value]
[value]参数:
- 0x00: 正常
- 0x01: 镜像
- 0x02: 竖直翻转(旋转180度)
- 0x03: 镜像并做竖直翻转(旋转180度)
denoise
- 读取降噪模式
./veye_mipi_i2c.sh -r -f denoise
- 设置降噪模式
./veye_mipi_i2c.sh -w -f denoise -p1 [value]
[value]参数:
- 0x00: NR 2D Mode = OFF; NR 3D Mode = OFF
- 0x01: NR 2D Mode = OFF; NR 3D Mode = LOW
- 0x02: NR 2D Mode = OFF; NR 3D Mode = MIDDLE
- 0x03: NR 2D Mode = OFF; NR 3D Mode = HIGH
- 0x04: NR 2D Mode = LOW; NR 3D Mode = OFF
- 0x05: NR 2D Mode = LOW; NR 3D Mode = LOW
- 0x06: NR 2D Mode = LOW; NR 3D Mode = MIDDLE
- 0x07: NR 2D Mode = LOW; NR 3D Mode = HIGH
- 0x08: NR 2D Mode =MIDDLE; NR 3D Mode = OFF
- 0x09: NR 2D Mode =MIDDLE; NR 3D Mode = LOW
- 0x0A: NR 2D Mode = MIDDLE; NR 3D Mode = MIDDLE
- 0x0B: NR 2D Mode = MIDDLE; NR 3D Mode = HIGH
- 0x0C: NR 2D Mode =HIGH; NR 3D Mode = OFF
- 0x0D: NR 2D Mode =HIGH; NR 3D Mode = LOW
- 0x0E: NR 2D Mode = HIGH; NR 3D Mode = MIDDLE
- 0x0F: NR 2D Mode = HIGH; NR 3D Mode = HIGH
agc
- 读取agc参数
./veye_mipi_i2c.sh -r -f agc
- 设置agc (增益上限)
./veye_mipi_i2c.sh -w -f agc -p1 [value]
[value]参数:
- 0x00 ~ 0x0F : AGC强度
lowlight
- 读取低照度模式参数
./veye_mipi_i2c.sh -r -f lowlight
- 设置低照度模式
在低照度模式下,可以通过配置改参数来延长摄像头曝光时间,降低帧率,从而获得更高的低照度成像效果
./veye_mipi_i2c.sh -w -f lowlight -p1 [value]
[value]参数;
- 0x01: 1/2*(帧率)
- 0x03: 1/4*(帧率)
- 0x05: 1/6*(帧率)
- 0x07: 1/8*(帧率)
- 0x09: 1/10*(帧率)
- 0x0B: 1/15*(帧率)
- 0x0D: 1/20*(帧率)
- 0x0F: 1/25*(帧率)
- 0x11: 1/30*(帧率)
- 0x00: 固定帧率(25/30)
daynightmode
- 读取日夜模式
./veye_mipi_i2c.sh -r -f daynightmode
- 设置日夜模式
./veye_mipi_i2c.sh -w -f daynightmode -p1 [value]
[value]参数:
- 0xFF: 彩色模式,该模式下,摄像头为彩色模式,切IR-CUT 阻隔红外波段
- 0xFE: 黑白模式,该模式下,摄像头为彩色模式,同时IR-CUT 可以通过红外光
- 0xFC: 外触发模式, 该模式下,用户可以通过板载控制引脚 切换摄像头为彩色模式或者黑白模式。
ircutdir
- 读取IR-CUT控制引脚电平方向
./veye_mipi_i2c.sh -r -f ircutdir
- 设置IR-CUT控制电平
./veye_mipi_i2c.sh -w -f ircutdir -p1 [value]
设置IR-CUT控制电平,[value]可以是0或者1
irtrigger
- 读取日夜切换外触发模式引脚的极性设置
./veye_mipi_i2c.sh -r -f irtrigger
- 设置日夜切换外触发模式引脚的极性设置
./veye_mipi_i2c.sh -w -f irtrigger -p1 [value]
[value]参数:
- 0x00: 默认
- 0x01: 反转
mshutter
- 读取曝光模式
./veye_mipi_i2c.sh -r -f mshutter
- 设置曝光时间 (关闭自动曝光)
./veye_mipi_i2c.sh -w -f mshutter -p1 [value]
[value]的单位为s, value大于0x4B的时候摄像头进入低帧率模式
Value | 说明 |
---|---|
NTSC (PAL) | |
0x40 | 自动曝光 |
0x41 | 1/30(25) |
0x42 | 1/60(50) |
0x43 | 1/120(100) |
0x44 | 1/240(200) |
0x45 | 1/480(400) |
0x46 | 1/1000 |
0x47 | 1/2000 |
0x48 | 1/5000 |
0x49 | 1/10000 |
0x4A | 1/50000 |
0x4B | 1/30(25)*2 |
0x4C | 1/30(25)*4 |
0x4D | 1/30(25)*6 |
0x4E | 1/30(25)*8 |
0x4F | 1/30(25)*10 |
0x50 | 1/30(25)*15 |
0x51 | 1/30(25)*20 |
0x52 | 1/30(25)*25 |
0x53 | 1/30(25)*30 |
cameramode
- 读取摄像头模式
./veye_mipi_i2c.sh -r -f cameramode
- 设置摄像头模式 需要hdver >=0x03
./veye_mipi_i2c.sh -w -f cameramode -p1 [value]
[value]参数:
- 0x0: stream模式
- 0x01: capture 模式
nodf
注: 该参数设置 丢帧数量,只在hdver ≥ 0x03, Stream 流模式下有效
这是用来控制帧率的一种方法,在输出一帧数据后,会丢弃掉nodf 帧,然后再输出下一个有效帧。
因此,在实际使用中, 实际的帧率 = 原始帧率/(1+nodf)
例如,如果原来的帧率为30fps, nodf设置为2, 最终摄像头输出的帧率为10fps.
- 读取nodf参数
./veye_mipi_i2c.sh -r -f nodf
- 设置nodf
./veye_mipi_i2c.sh -w -f nodf -p1 [value]
[value]参数:
- nodf 的范围为 [0,0xFF], 默认为0
capture
注:该设置只在hdver ≥ 0x03, Capture 拍照模式下有效.
./veye_mipi_i2c.sh -w -f capture
这个设置用来输出下一帧图像。 这个指令用来输出最新的一帧,且不会干扰传感器。这个输出方式不同于触发模式。这个指令在输出帧数据的时候,和帧曝光之间会有一个延迟[0, 1/framerate].
这个指令适应于对实时传输性能要求不高的应用。
brightness
- 读取亮度值
./veye_mipi_i2c.sh -r -f brightness
- 设置亮度值
./veye_mipi_i2c.sh -w -f brightness -p1 0x32
AE的亮度值范围为[0, 0x64]
aespeed
- 读取AE调节速度值
./veye_mipi_i2c.sh -r -f aespeed
- 设置AE调节速度值
./veye_mipi_i2c.sh -w -f aespeed -p1 0x32 -p2 0x32
p1 为agc速度, p2问shutter速度,在[0, 0x64]由快到慢
contrast
- 读取对比度
./veye_mipi_i2c.sh -r -f contrast
- 设置对比度
./veye_mipi_i2c.sh -w -f contrast -p1 0x32
设置范围为[0, 0xFF], 默认为0x80
saturation
- 读取饱和度
./veye_mipi_i2c.sh -r -f saturation
- 设置饱和度
./veye_mipi_i2c.sh -w -f saturation -p1 0x32
饱和度的设置范围为[0, 0x64]
sharppen
- 读取锐度值
./veye_mipi_i2c.sh -r -f sharppen
- 设置锐度值
./veye_mipi_i2c.sh -w -f sharppen -p1 [val1] -p2 [value]
p1设置 开启锐化(0x1)和关闭锐化(0x00)
p2设置锐度值,范围为[0, 0xA]
wdrtargetbr
- 读宽动态模式下整体亮度目标值
./veye_mipi_i2c.sh -r -f wdrtargetbr
- 设置宽动态模式下,整体亮度值
./veye_mipi_i2c.sh -w -f wdrtargetbr -p1 0x80
使用这个指令设置宽动态亮度值会使宽动态WDR模式生效, 亮度值范围为[0, 0xFF], 默认值为0x30. 数值越大,亮度越高
wdrbtargetbr
- 读取WDR模式下亮区亮度目标值
./veye_mipi_i2c.sh -r -f wdrbtargetbr
- 设置WDR模式下亮区亮度目标值
./veye_mipi_i2c.sh -w -f wdrbtargetbr -p1 0x80
这个指令会使WDR模式生效,亮度值范围为[0, 0xFF],默认值为0x30, 数值越大,亮区越亮。
注:这个参数的效果于实际场景有关,会存在一个[0-X]的无效区,X和实际场景有关,不代表将亮度值调为0, 亮区会变黑。
awbgain
- 读取白屏he的Rgain和Bgain数值
./veye_mipi_i2c.sh -r -f awbgain
wbmode
- 读取当前的wb模式
./veye_mipi_i2c.sh -r -f wbmode
- 设置wb模式
./veye_mipi_i2c.sh -w -f wbmode -p1 [value]
[value]参数:
- 0x18: 自动白平衡
- 0x1B:手动白平衡
mwbgain
- 读取手动白平衡模式下的rgain和bgain
./veye_mipi_i2c.sh -r -f mwbgain
- 设置手动白平衡模式下的rgain和bgain
./veye_mipi_i2c.sh -w -f mwbgain -p1 [rgain] -p2 [bgain]
rgain和bgain的设置范围为[0, 0xFF]
相关链接
FAQ
gcc -Wall -o i2c_read i2c_read.c strfunc.c gcc -Wall -o i2c_write i2c_write.c strfunc.
将生成的i2c_read,i2c_write复制粘贴到raspberrypi/i2c_cmd/bin/后就能正常使用