利用树莓派最新系统连接摄像头所出现的问题总结
前言
最近做一个项目的时候需要通过进行目标检测并且对目标进行比对然后进行后续实验
于是最近花了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这个命令
官方也给出了几个截图和录像的命令
- 1、libcamera-hello
- 2、libcamera-still -e png -o test.png
- 3、libcamera-jpeg -o test.jpg
但是这几个命令我用的都不行,后续会提到:
我们首先用以下命令先测试一下能不能用吧:
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
应该是能够显示出录像的画面了
文章来源:https://www.toymoban.com/news/detail-402781.html
最后
如果要进行监控等功能的话,可以参考网上一些教程,那些是可行的这里就不再重新赘述了文章来源地址https://www.toymoban.com/news/detail-402781.html
到了这里,关于树莓派进行摄像头实验保姆级教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!