1.摄像头介绍
https://www.waveshare.net/wiki/IMX477_12.3MP_Camera,以这个网址为主。
https://github.com/ArduCAM/MIPI_Camera/tree/master/Jetson/IMX477/driver,这作为补充。
https://www.hackster.io/SaadTiwana/embedded-diaries-how-to-use-rpi-hq-camera-with-jetson-e2063e,后来找到的,还没有详细研究。
https://zhuanlan.zhihu.com/p/343750880,可以参考是否安装成功。
- 传感器
- IMX477R
- 1230万像素: 4056(H) x 3040(V)
- CMOS对角线长度: 7.9mm
- 单像素尺寸: 1.55μm(H) x 1.55μm (V)
- 输出格式:RAW12 / 10 / 8,COMP8
- 镜头标准
- C-mount
- CS-mount(包括C/CS连接环)
- 红外滤光片:集成
- 三脚架安装:1/4" -20
注意:1.IMX477 12.3MP Camera目前只适用于树莓派Compute Module系列板,不适用于树莓派主板。
2.IMX477 12.3MP Camera可使用于Jetson Nano, 使用在Jetson Nano上需要另外安装驱动。
安装了驱动之后,会对原IMX219摄像头的使用有干涉,安装驱动前建议先备份系统
2.安装驱动之前
和摄像头技术客服沟通后知道一个版本的对应情况。如果是树莓派官方的的摄像头,最好刷相对应的驱动,目前nVidia官网上只有jetson nano 2GB的驱动。
我使用的是Nano A02 4G的板子,如果只是更新教程里面的驱动,是可以正常调用摄像头的。但是图像是灰暗的,需要使用GStreamer调参数。
当我刷NVidia官网上jetson nano 2GB的驱动后,系统就卡在开机NVidia界面。只能重新刷驱动。jetson nano 2GB的驱动是针对最新jetpack441,应该是内核不对导致的。
所以只能重新刷机。
自己写了个简单的刷机教程:https://blog.csdn.net/PC1022/article/details/112872412
3.nano安装驱动
https://github.com/RidgeRun/NVIDIA-Jetson-IMX477-RPIV3
JetPack 4.4安装说明,JetPack主要用于刷系统的,教程把这个贴出来, 目的一是裸机开始驱动这个摄像头,二是通过JetPack 打补丁也可以实现驱动程序的安装。
教程提供了两种方式:A和B。A最简单和最快,所以采用A。
A:安装内核和dtb debians(推荐)
下载Debian内核软件包需要 科学上网 ,这里有下载地址:https://download.csdn.net/download/PC1022/14141785
- 在您的开发板上安装debian软件包:
sudo apt-get install --reinstall ./nvidia-l4t-kernel_4.9.140-tegra-32.4.3-20200625213809_arm64.deb
sudo apt-get install --reinstall ./nvidia-l4t-kernel-dtbs_4.9.140-tegra-32.4.3-20200625213809_arm64.deb
- 通过修改
/boot/extlinux/extlinux.conf
文件来启用dtb更改:
echo "FDT /boot/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb" | sudo tee -a /boot/extlinux/extlinux.conf
最后重启。
4.驱动确认
1.最简单的指令,确认有几个摄像头
ls /dev/video*
2.打开摄像头
#4032*3040像素,在1536*864窗口显示
SENSOR_ID=0 # 0 for CAM0 and 1 for CAM1 ports
FRAMERATE=30 # Framerate can go from 2 to 30 for 4032x3040 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=$SENSOR_ID ! "video/x-raw(memory:NVMM),width=4032,height=3040,framerate=$FRAMERATE/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvoverlaysink
SENSOR_ID=0 # 0 for CAM0 and 1 for CAM1 ports
FRAMERATE=60 # Framerate can go from 2 to 60 for 1920x1080 mode
gst-launch-1.0 -e nvarguscamerasrc sensor-id=$SENSOR_ID ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=rpi_v3_imx477_cam$SENSOR_ID.mp4