本文讲讲树莓派如何正常安装CSI摄像头以及一些基础的配置和简单的使用
测试环境
硬件:树莓派3B/3B+
系统:Raspberry Debian 9 / Debian 10
硬件连接
1、找到 CSI 接口(树莓派3B的CSI接口在HDMI接口和音频口中间),需要拉起 CSI 接口挡板,如下:
2、将摄像头排线插入CSI接口。记住,有蓝色胶带的一面应该面向音频口或者网卡方向, 确认方向并插紧排线,将挡板压下去,如下所示:
安装好的效果图大致如下:
使能摄像头
1、首先使用"ls"指令来查看是否存在vchiq设备节点:
linux@ubuntu:~$ ls /dev
pi@raspberrypi:~ $ ls /dev/
autofs disk gpiomem loop3 mmcblk0 ptmx ram15 random stdout tty15 tty23 tty31 tty4 tty48 tty56 tty7 vchiq vcs6 vcsa7
block dri hwrng loop4 mmcblk0p1 pts ram2 raw tty tty16 tty24 tty32 tty40 tty49 tty57 tty8 vcio vcs7 vcsm
btrfs-control fb0 initctl loop5 mmcblk0p2 ram0 ram3 rfkill tty0 tty17 tty25 tty33 tty41 tty5 tty58 tty9 vc-mem vcsa vhci
bus fd input loop6 mqueue ram1 ram4 serial0 tty1 tty18 tty26 tty34 tty42 tty50 tty59 ttyAMA0 vcs vcsa1 watchdog
cachefiles full kmsg loop7 net ram10 ram5 serial1 tty10 tty19 tty27 tty35 tty43 tty51 tty6 ttyprintk vcs1 vcsa2 watchdog0
char fuse log loop-control network_latency ram11 ram6 shm tty11 tty2 tty28 tty36 tty44 tty52 tty60 ttyS0 vcs2 vcsa3 zero
console gpiochip0 loop0 mapper network_throughput ram12 ram7 snd tty12 tty20 tty29 tty37 tty45 tty53 tty61 uhid vcs3 vcsa4
cpu_dma_latency gpiochip1 loop1 mem null ram13 ram8 stderr tty13 tty21 tty3 tty38 tty46 tty54 tty62 uinput vcs4 vcsa5
cuse gpiochip2 loop2 memory_bandwidth ppp ram14 ram9 stdin tty14 tty22 tty30 tty39 tty47 tty55 tty63 urandom vcs5 vcsa6
pi@raspberrypi:~ $
如果没有,则可能是内核或者设备硬件存在问题,可尝试重刷系统或更换硬件。
2、运行"vcgencmd get_camera"查看当前摄像头是否可用:
pi@raspberrypi:~$ vcgencmd get_camera
supported=1 detected=1"
如果detected=0,说明摄像头模块没接好,重新排查下硬件。detected=1则说明CSI摄像头接入正常。supported=1说明摄像头已经使能,摄像头已经可以使用。supported=1则说明CSI摄像头没有使能。需要使能下摄像头模块。
3、运行"sudo raspi-config"命令使能树莓派CSI摄像头
pi@raspberrypi:~ $ sudo raspi-config
然后重启下树莓派
添加UVC驱动
有些程序采用V4L2编程,会访问到/dev/videoX设备,因此需要添加UVC驱动,针对树莓派3B/3B+可以采用如下的方法添加bcm2835-v4l2驱动:
pi@raspberrypi:~$ vim.tiny /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-dev
bcm2835-v4l2
然后重启即可在/dev/目录下看到videoX(X为数字编号,如0)的驱动
使用rapistill命令拍照
运行"raspistill -o image.jpg"即可成功拍照并保存,更多参数使用raspistill --help
pi@raspberrypi:~ $ raspistill -o image.jpg
将image.jpg图片传输到windows桌面打开, 即可看到拍照出来的效果,如