最近做一个项目的时候需要通过进行目标检测并且对目标进行比对然后进行后续实验
于是最近花了20块买了个摄像头,先通过进行摄像头的录像照相等功能进行实现
后续可能会出一篇树莓派在ROS系统下利用该摄像头进行物体识别等等功能的实现
接下来就开始正文部分啦
我用的时树莓派4B板子来进行此次实验
摄像头由于资金有限,所以买的是淘宝的CSI视频接口的摄像头,因为只有500W像素,有钱的可以考虑更好的设备:
摄像头购买地址
当连接好摄像头和树莓派之后,就可以进行后续的实验啦!!
首先我们打开终端输入以下两行命令:
sudo apt-get update
sudo apt-get upgrade
但是我们输入第一行命令后可能会出现以下报错:
W: Failed to fetch http://archive.raspberrypi.org/debian/dists/jessie/Release.gpg Could not resolve 'archive.raspberrypi.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
针对此问题的解决方法
//输入以下命令
sudo nano /etc/resolv.conf
//然后内容可能是以下的东西
nameserver 192.168.3.1
//我们将后面的ip地址改成
114.114.114.114
这样第一个命令的执行就没问题了
但是第二个命令执行的时候可能会有以下错误
E: 无法下载 http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2q-1~deb9u1_armhf.deb 无法发起与 mirrors.opencas.cn:80 (2001:cc0:2020:4075::211) 的连接 - connect (101: 网络不可达)
E: 无法下载 http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl/libssl1.1_1.1.0j-1~deb9u1_armhf.deb 无法发起与 mirrors.opencas.cn:80 (2001:cc0:2020:4075::211) 的连接 - connect (101: 网络不可达)
E: 无法下载 http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl/openssl_1.1.0j-1~deb9u1_armhf.deb 无法发起与 mirrors.opencas.cn:80 (2001:cc0:2020:4075::211) 的连接 - connect (101: 网络不可达)
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
这是因为树莓派默认的下载源在国外,下载速度过慢所导致的,我们需要更改下载源解决方法如下
首先备份源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
然后进行更改
sudo nano /etc/apt/sources.list
修改后这个文件内容应为如下:
deb http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib
然后更改另外一个文件的内容
sudo nano /etc/apt/sources.list.d/raspi.list
更改如下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ stretch main ui
这样第一步的问题应该就解决了
这一步用VNC连接或者PUTTY或者XSHELL连接都可以我这里选择用putty进行连接
输入命令
sudo raspi-config
然后保存退出,重启树莓派(这边我建议是直接电源重启)
可能在其他文章中会让你们用这个命令:
raspistill -o hello.jpg -t 1000
但是在最新系统中,2021年10月以后这个命令就失效了,取而代之的是libcamera这个命令
官方也给出了几个截图和录像的命令
但是这几个命令我用的都不行,后续会提到:
我们首先用以下命令先测试一下能不能用吧:
libcamera-hello
如果能用的话说明你的摄像头已经配置好啦,不能用的话接着往后看:
我们首先运行这个命令
vcgencmd get_camera
如果摄像头能使用的话应该会是以下的结果:
support=1,detected=1
如果support=0,detected=0 前面等于零是因为摄像头驱动没开,只需要用raspi-config重新开一下摄像头就行
解决detected的方法如下(前提是你的摄像头安装正确)
执行如下命令
sudo nano /boot/config.txt
//注释掉原来的摄像头自动检测语句,并添加"start_x=1"和"gpu_mem=128"
#camera_auto_detect=1
gpu_mem=128
start_x=1
然后:
sudo nano /etc/modules
在最后面添加bcm2835-v4l2 //这里是V4L2,是L不是1
这样的话再重新启动树莓派后执行:
vcgencmd get_camera
后应该会出现
support=1,detected=1
这就说明配置成功了
接着运行以下命令:
ffplay -f v4l2 -framerate 60 -video_size hd720 /dev/video0
需要注意,目前无法通过libcamera访问,会提示no camera available
应该是能够显示出录像的画面了
如果要进行监控等功能的话,可以参考网上一些教程,那些是可行的这里就不再重新赘述了