树莓派4B摄像头的详细使用教程(拍照+录像+监控)
本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用。

排线连接
硬件连接时我们首先需要使用树莓派摄像头FFC排线,连接树莓派摄像头与树莓派开发板。其中排线连接的接口被称为CSI(Camera Serial Interface)接口。

树莓派开发板的CSI接口位于USB和以太网接口旁边。我们先将CSI接口的黑色挡板拔开,之后将排线蓝色一端正对以太网接口方向插入,之后按下黑色挡板进行固定。

用同样的方法连接摄像头一端,排线的蓝色端与摄像头背面保持相同方向。

注意接线时务必保持电源断开。

摄像头功能的激活

首先打开树莓派终端,对树莓派进行更新:

sudo apt-get update
sudo apt-get upgrade

之后输入指令打开树莓派的配置界面:

sudo raspi-config

按照以下步骤找到摄像头选项,打开树莓派的摄像头功能

打开后使用reboot命令重启树莓派,至此摄像头已经能够在树莓派上使用啦.

拍照功能

想使用树莓派摄像头拍照很简单,在终端输入命令即可。这里使用的是树莓派系统中的raspistill命令

raspistill -o a.jpg -t 1000

这行命令的作用是在一秒钟的延迟之后,拍下一张名为a.jpg的照片,保存在树莓派的主目录下。-t的延迟选项后的参数是以毫秒为单位,1000便表示1秒。延时选项在输入命令时可以不加,但-o后的名称是一定要有的。下面放一张效果图:

要学习其参数及命令:(更多参数使用raspistill --help

-w, –width : 设置图像宽度 <尺寸>
-h, –height : 设置图像高度 <尺寸>
-q, –quality : 设置jpeg品质 <0到100>
-t, –timeout : 拍照和关闭时的延时指定,未指定时默认是5s,毫秒为单位,1000便表示1秒
-o, –output : 输出文件名 <文件名>,如果要写到stdout,使用-o -,如果不特别指定,图像文件不会被保存
-rot:图像旋转角度,只支持 0、90、180、270 度
专业摄影参数:

曝光参数:

-ss:后跟的是微秒
-ss 9000000:9s
-ISO 125:感光
-ex verylong:焦距,无限远;
-awb off:自动白平衡,awb:auto white balance

-awbg 1,1
-bm(burst mode), –burst : 运行burst capture mode

延时拍摄参数:

-tl(–timelapse ):raspistill 进入 -tl 模式,则排到的便不是一副图像,而是通过一定的时间间隔的多幅图像;
注意:

照片将会保存在当前路径下,使用MobaXterm可以传输到windows桌面打开
参考博文:

【树莓派】简单配置CSI摄像头

树莓派进阶之路 (018) - raspberryPi摄像头命令行软件raspistill帮助文档

录像功能

同样是使用输入命令的方式实现。命令如下:

raspivid -o b.h264 -t 10000 -w 1280 -h 720

该命令的意思是录制一段十秒钟的名为b.h264的视频,且分辨率为1280x720。同样,如果不带名称后的参数的话,系统会默认录制时间为5秒,分辨率为1920x1080。
此时录制的视频虽然能够在树莓派上播放,但并非是能够在一般播放器上运行的常规视频文件,且录制的视频是没有声音的。要想将.h264格式的视频转换为mp4格式的视频,需要使用一个叫做gpac的工具。

sudo apt-get install -y gpac

安装后输入以下命令对刚才的视频进行格式转换,转换后的视频为每秒30帧。

MP4Box -fps 30 -add b.h264 b.mp4

监控功能

简介:Motion是Linux下一款轻量级的监控软件。在日常工作模式下,Motion可以提供网络摄像头的功能。当拍摄过程中画面发生变动时,Motion可以保存动作发生时的图片和视频。

输入命令进行安装:

sudo apt-get install motion

首先将motion软件的后台进程改为开启,让它能够一直在后台运行。输入以下命令,将文件中 “start_motion_daemon=no” 的no改为yes。执行 CTRL + O 并按 ENTER 保存更改,按 CTRL + X退出

sudo nano /etc/default/motion

之后输入命令打开motion的配置文件:

sudo nano /etc/motion/motion.conf

这个文件中保存了许多motion的基本设置,文件内容很多,感兴趣的话可以慢慢研究。因为选项比较多,下面只写出一些比较重要的选项的值,其他可以用默认值,或者参考motion官网上的documents,那里面写得很详尽,每个参数的解释都有。motion.conf里自带的注释也很完整。

daemon on                #off改成on,在后台运行。设置为off将在前台运行
width 640
height 480              #摄像头像素宽高
framerate 50                #帧率fps,解决卡顿问题
stream_maxrate 100              #默认是1,不改的话监控视频会很卡,将其参数改大
stream_localhost off                #设为off,允许外网访问视频流(on为不允许)#如果要检测到运动的物体可以加:
locate_motion_mode on           #将off修改为on,探测到实时视频中有物体运动时,运动区域被矩形框起来#如果要修改视频流端口:
stream_port 8081            #端口号#如果要修改Motion存储文件的目标文件夹
target_dir /var/lib/motion           #所存储文件包括了运动捕捉产生的图片或视频,用户motion必须对该目标文件夹有写入权限#通过motion可以实现当监控到有运动物体时,截取图片。
output_pictures best # 将off改为best,还可以选first和center

当然要想获得最佳的效果,文档中的参数需要多次根据自己的设备进行相应的调整。
修改完成后保存并退出。

若你之前打开过motion,那么在每次更改完配置后,需要先关闭motion进程,并再次打开,相当于对motion进行一次重启。关闭motion服务的命令如下:

sudo killall -TERM motion

接着输入命令重新打开motion:

sudo motion

motion运行成功打印:

[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [ALR] [ALL] conf_cmdparse: Unknown config option "
"
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)

打开后便可以通过在浏览器内访问地址http://树莓派IP:8080,看到相应的监控画面了。

可以设置开机自动启动motion,执行下面命令,在exit 0前添加 motion

sudo nano /etc/rc.local

场景1:

如果在浏览器访问显示灰色内容且摄像头也没亮,说明少驱动bcm2835-v4l2

执行cat /etc/modules查看modules是否包含bcm2835-v4l2

如果没有则按照如下解决方法:查看下面的《添加UVC驱动》

原因分析:

添加UVC驱动

有些程序采用V4L2编程,会访问到/dev/videoX设备,因此需要添加UVC驱动,针对树莓派3B/3B+可以采用如下的方法添加bcm2835-v4l2驱动:

执行

sudo vim.tiny /etc/modules在最后一行添加bcm2835-v4l2
pi@raspberrypi:~$ sudo 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)的驱动

场景2:

报错:Failed to run camera app. Please check for firmware updates

报错具体内容如下:

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

原因分析:

查了很多资料,教程说:树莓派有进程没有kill,但是找了好多不知道到底是什么进程没有kill

解决方案:

原来试错好久,之前安装了motion,设置成后台运行监控模块。我运行了如下命令:

sudo killall -TERM motion

再次创建照片,运行如下命令:

sudo raspistill -o 123.jpg

问题解决。

后来我直接把;motion后台运行给关了,免得下次再次出现这种问题:

sudo nano /etc/default/motion

树莓派3B摄像头的详细使用教程(拍照+录像+监控)相关推荐

  1. 树莓派4B摄像头的详细使用教程(拍照+录像+监控)

    树莓派4B摄像头的详细使用教程(拍照+录像+监控) 本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用. 排线连 ...

  2. 智能家居 —— 树莓派下载安装mjpg-streamer(完成拍照+录像+监控)

    文章目录 摄像头硬件安装 mjpg-streamer功能介绍 mjpg-streamer安装 步骤一: 报错: 方案一: 方案二: 步骤二: 步骤三: 步骤四: 步骤五: 使用rapistill命令拍 ...

  3. 树莓派3B+摄像头使用picamera库

    本文为参加无人驾驶车课程学习整理的笔记,致谢毕滢老师! 一.测试摄像头是否可用 打开树莓派的终端程序,输入 cd Desktop raspistill -o imagejpg     #注意是字母o, ...

  4. 树莓派进行摄像头实验保姆级教程

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

  5. 树莓派3B 系统安装及初始化配置教程

    本文仅供学习交流使用,如侵立删! 相关软件下载链接 SD卡格式化工具.系统烧录工具.Raspbian系统镜像 https://pan.baidu.com/s/1o5j_uD31hxLsPP–GRZ4B ...

  6. 用树莓派官方摄像头做丝滑般流畅的监控!

    1.安装辅助工具 在树莓派上执行: sudo apt-get install libjpeg8-dev sudo apt-get install cmake 2.解压master,zip 在树莓派上执 ...

  7. 树莓派3b+简单入门

    树莓派3B+简单入门 - panday - 博客园 树莓派3B+远程登录详细配置方法_落晓o的博客-CSDN博客_树莓派ssh配置 1.外观和基本情况 树莓派3b+开箱测试 树莓派3B+ 开箱测试 - ...

  8. 土壤湿度使用详细教程(基于树莓派3b+)

    案列: 本案列是:根据土壤湿度自动打开水泵浇水 前言: 土壤湿度传感器,直接读取具体土壤湿度使用AO口,目前树莓派AO不能直接使用,所以需要借用PCF8591读取具体具体数值(PCF8591必须使用) ...

  9. 烟雾传感器(mq-2)使用详细教程(基于树莓派3b+实现)

    经验: 网上大部分关于mq-2的代码,实现的功能判断是否有烟雾值,而具体的烟雾值无法读取.由于树莓派无法直接读取模拟信号A0值,所以得借助PCF8591(读取烟雾值关键adc)读取,这个PCF8591 ...

最新文章

  1. jQuery发送含有数组参数的ajax请求以及后台Struts2的OGNL解析错误
  2. 生猛!PDF 版本 万赞 Java 手册开放下载!
  3. 基于超声波升压中周构建的150kHz的单管选频放大电路
  4. MXNet学习:试用卷积-训练CIFAR-10数据集
  5. python小乌龟行走轨迹_旋转傻乌龟——几何变换实践|python爬虫|python入门|python教程...
  6. laravel文件存储Storage
  7. [源码和文档分享]基于FFMEPEG-MATLAB和C#-SQL SERVER构建的手机录音数据库及特征分析...
  8. python中的format方法和int方法
  9. c语言左移15位,关于c语言中左移右移运算符的问题
  10. mybatis 用Log4j输出日志
  11. python怎么接收前端参数_Python常驻任务实现接收外界参数代码解析
  12. 【机器学习实战】第2章 k-近邻算法(kNN)
  13. Google Protocol Buffers 2.3.0 for java 快速开始
  14. 在Oracle 数据类型中如何使用dump函数
  15. vue父子组件生命周期执行顺序_Vue.js 父子组件生命周期调用顺序
  16. vue 项目路由配置
  17. 中原建业在港上市首日破发,基石投资者祥来及楼公望亏780万港元
  18. 各家关节机器人示教器特点
  19. 最小生成树算法(普利姆算法和克鲁斯卡尔算法)---抄自天勤数据结构高分笔记
  20. 英雄联盟数据分析专题(二)

热门文章

  1. 马克飞象 Markdown 语法,对应上一篇
  2. 【链 闻】北京共识区块链研究院揭牌成立;荣成市运用区块链构建智慧城市;俄亥俄州认定区块链记录可成为永久电子记录
  3. Win10搜索/Windows search卡顿解决办法
  4. 深度人工神经网络模拟单个皮层神经元6
  5. 化妆品软件测试,肌肤测试
  6. 下雨天,留客天,天不留,我留七种设计原则!
  7. 【vue】vue组件传值的三种方式
  8. 钉钉解散重复群的方法
  9. 语义分割系列11-DAnet(pytorch实现)
  10. CAD入门学习攻略:CAD软件中对象捕捉功能使用技巧汇总