摄像头驱动
插入摄像头
按照下面的图片里面的动画将CSI摄像头插入树莓派,插入的时候要将树莓派的电给断掉,然后再上电,安装的时候注意触电的位置面向hdmi接口。
安装摄像头驱动
因为树莓派安装的是Ubuntu 18.04 LTS而不是树莓派的系统,所以需要安装raspi-config来对摄像头进行配置。具体步骤如下:
wget http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20201108_all.deb //下载raspi-config的deb包
sudo apt install lua5.1 libfftw3-single3 libsamplerate0 alsa-utils //安装相关依赖包
sudo dpkg -i raspi-config_20201108_all.deb //安装deb包
df -h//挂载
正常会出现下面的输出
之后按照以下步骤进行
mount /dev/mmcblk0p1 /boot
sudo usermod -aG video usename//添加到用户群组 这里usename处填写自己的用户名 例如 我的就是ubuntu
sudo raspi-config //打开raspi-config配置
然后按照下面的图示执行
用⬆和⬇来进行选择到3,按回车进入
然后选择P1 Camera按Enter进入,这时系统问你要不要使能摄像头,按Enter即可。
然后退出即可,结束终端。之后运行下面的命令
sudo apt-get install v4l-utils //安装V4l2工具包
v4l2-ctl --list-devices //显示设备列
正常会显示上面的这张图片。
CM4
树莓派无法连接csi摄像头的问题分析(cm4)
检查是否连接上摄像头
我看网上都是使用这条命令
vcgencmd get_camera
来检测是否连接上摄像头的,但是当我运行这条命令时会报以下错误
那就说明我们没有安装这个东西,需要安装,于是我参考了这里
首先使用su命令进入root用户模式下,接着执行以下命令
cd /tmp
git clone https://github.com/raspberrypi/userland.git
cd userland
如果是32位OS,就输入
./buildme
如果是64位OS就输入(我的树莓派是aarch64)
可以通过设置-详细信息-About进行查看
./buildme --aarch64
接着,在/opt/vc/bin目录下就有vcgencmd了。直接运行,可能导致报错:
./vcgencmd: error while loading shared libraries: libvchiq_arm.so: cannot open shared object file: No such file or directory
在root用户下执行:
echo "/opt/vc/lib" >> /etc/ld.so.conf
ldconfig
其次如果需要,可以/opt/vc/bin加入到环境变量PATH内,方法可以参考这里
将 export PATH=/opt/vc/bin:$PATH 这句话添加到 ~/.bashrc 的文件下面
可以通过vim进入
//通过修改.bashrc文件:
sudo vim ~/.bashrc
//在最后一行添上:
export PATH=/opt/vc/bin:$PATH
具体的vim命令可以看这里
具体的nano命令可以看这里
当我不添加到环境变量里面时,还是会出现vcgencmd:未找到命令
当我添加到环境变量里时,运行下下面这个语句,结果为
vcgencmd get_camera
安装这个连接进行尝试解决,最后不仅重启了一下耽误几分钟,结果还是这样。
于是我就尝试执行以下命令
cd /opt/vc/bin/
sudo ./vcgencmd get_camera
结果就是这样对的,说明摄像头已经连接成功
这里如果不加sudo结果会跟上边一样 VCHI initialization failed
总之,不管怎样能够检测了,勉强能够接受。
这说明我们已经连接上了摄像头,下面进行拍照测试或者查看视频流
查看摄像头
raspistill、libcamera、fswebcam
查看网上大多使用的是
raspistill -v -o test.jpg
这条语句进行拍摄的,而当我运行时,出错了
经过查阅 查看了这里还有这里说配置或者升级系统出现问题,在最新的树莓派系统中已经从基于专有 Broadcom GPU 代码的传统相机软件堆栈过渡到基于 libcamera 的开源堆栈,也就说未来会使用libcamera来替代
然后我运行下面的这个命令
libcamera-hello
然后找到了libcamera的安装教程,在这里
git clone https://git.libcamera.org/libcamera/libcamera.git
cd libcamera
meson build
ninja -C build install
首先第一步就被绊住了,一直克隆不下来,最后通过其他机子克隆下来了然后上传到云盘下载下来了,结果到第三步就又不行了meson命令没找到,反正装这装那一顿操作后,没解决,然后只能另寻出路了。这时找到了fswebcam这个工具,安装教程在这里安装好后执行以下命令进行拍摄
fswebcam --no-banner -r 640x480 image3.jpg
结果成功,也可以参考这里但是我尝试了许多,均不能查看视频流。于是找到了motion
motion
motion是一个提供视频监控解决方案的开源软件,支持Linux/FreeBSD/MacOS等多个平台。可以将USB等摄像头转换成网络摄像头。
安装教程在这里
安装完成后通过 ifconfig 查看当前机子的ip地址,然后输入并加端口即可进入查看视频流,但是会卡,因此我们调节一下帧率就可以缓解卡顿。可以参考这里或者这里
这里的教程都没有说的一点就是 如果打开网页后只显示下面这个图片而没有视频 那就换一下端口别设置成8081 换一个 比如8085这个时候你可以试试 进8081和8085会有不一样的效果
8081是这样
8085是这样
另外因为它已经是一个网络摄像头 你只要在同一个网关下 都是可以进去的。
ROS功能包调调用摄像头并发布话题
在ubuntu18下和ros版本melodic下安装usb_cam功能包
sudo apt-get install ros-melodic-usb-cam
roslaunch usb_cam usb_cam-test.launch
如果有报错就请参考这里
可以查看话题,并使用rviz查看具体图像,rqt也可以。
文章来源:https://www.toymoban.com/news/detail-418773.html
参考
【树莓派4B】测试Ubuntu Mate20.04搭载CSI摄像头文章来源地址https://www.toymoban.com/news/detail-418773.html
到了这里,关于【树莓派4B或CM4】ubuntu 18.04 CSI摄像头的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!