《实现摄像头实验的树莓派保姆级教程》

文章目录

  • 利用树莓派最新系统连接摄像头所出现的问题总结
  • 前言
  • 前期工作准备:
  • 第一步:软件驱动的更新操作:
  • 第二步:开启摄像头的照相功能:
  • 第三步:开启摄像头
  • 最后
  • 利用树莓派最新系统连接摄像头所出现的问题总结

    前言

    最近做一个项目的时候需要通过进行目标检测并且对目标进行比对然后进行后续实验

    于是最近花了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
    应该是能够显示出录像的画面了
    请添加图片描述

    最后

    如果要进行监控等功能的话,可以参考网上一些教程,那些是可行的这里就不再重新赘述了

    物联沃分享整理
    物联沃-IOTWORD物联网 » 《实现摄像头实验的树莓派保姆级教程》

    发表回复