配置好树莓派的基本环境之后,就可以使用树莓派的摄像头模块了,接下来我会教你一些关于树莓派摄像头的基本操作:摄像头拍照,并实现摄像头的远程监控。
配置摄像头
首先将树莓派与摄像头模块插好:
插法是将蓝色的那边对着USB接口,而金手指对着Type-C接口,如下图:
然后插上树莓派的电源并远程登录SSH,打开树莓派的命令行窗口:
输入以下指令进入树莓派的系统配置:
sudo raspi-config
然后依次选择5 Interfacing Options,进入之后选择P1 Camera,然后在 Would you like the camera interface to be enabled? 对话框上选择 Yes 。最后通过 Finish 退出,并重启树莓派。
重启完了之后,我们可以输入以下命令测试树莓派的摄像头模块:
ls -al /dev/ | grep video
如果配置成功,我们会有以下界面:
找到video0,也就是我们的树莓派摄像头设备。
【注】:可能提示这样的问题(如果在以上工作都完成的情况下,摄像头还是不能正常的使用或者驱动,请先检查硬件的连接的问题,可能是排线没有很好的插稳,或者是摄像头本身的问题。)
拍照
输入以下指令,可以使用树莓派摄像头的拍照功能:
然后在树莓派的应用界面打开文件夹,找到imageDemo.jpg,大概就是如下的样子(这里我拍摄的是一本书):
这里可以讲解一下raspistill命令的相关参数和实验的具体效果:
-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取
具体操作可以自己去实践一下,很容易上手的。
摄像+远程监控
首先下载和安装motion:
motion 是一款开源的支持多种摄像头的监控软件。本文也通过它来把树莓派变成监控摄像头~
不过官方的定义中,motion 是一款“运动检测”软件,因为它支持当图像中一部分发生变化时拍照,或者触发脚本。不过这些功能不在这次文章讨论的范围内。
打开树莓派的命令行窗口,输入以下指令:
sudo apt-get install motion
首先是安装motion
然后等待下载motion完成。
下载完成之后,就可以进行下一步配置motion。
输入以下指令,配置motion daemon 守护进程
sudo nano /etc/default/motion
将start_motion_daemon=no改为start_motion_daemon=yes,让他可以一直运行,修改完后按^X退出。
输入以下指令,修改motion的配置文件:
sudo vim /etc/motion/motion.conf
【注意】如果你是第一次使用树莓派的话,可能会提示vim指令错误,这是因为没有安装vim的缘故,在树莓派的命令行输入sudo
apt-get install motion安装vim之后,在执行上面的步骤。
同时注意树莓派里面默认的编辑器是nano,这里提供一个基本使用的参考文章:nano文本编辑器使用教程。
打开以后是这个样子,motion的配置文件很多很长,但是我们只需要修改几个关键部分即可。
扣下E,进入编辑模式,然后将11行的daemon off改为daemon on,让 motion 后台运行,如下图:
到了445行,你可以找到端口号8081,我们可以通过这个端口来读取视频数据,这里无需修改!如下图:
然后到第461行将stream_localhost on改成off,即关闭 localhost 的限制,允许通过非 localhost 来查看视频,如下图:
当然,你也可以设定图片的分辨率,在第79行进行修改,这里我没有修改,选择默认的设置,如下图:
最后,vim编辑器下按esc然后输入:wq,即保存退出。
关于vim编辑器操作的一些命令的解释,这里提供一篇参考文章:vi/vim编辑器指令。
至于motion 的更多设置,以下都有描述,这里就不一一示范了。
- rotate 旋转画面,如果需要90°、180°旋转,可以在这里配置。
- width 和 height 修改画面分辨率(默认为 320*240 像素),这里可以修改,如 1024 和 768。
- framerate 捕获的帧率,如修改为 30。
- stream_maxrate 修改流的帧率,如果需要实时查看的话,建议修改这个的值,因为这个默认值是 1,会导致画面非常卡顿,如修改为 30。
配置好了motion的基本设置之后,我们可以开始启动motion:
输入以下指令,其中第一条命令是启动服务,第二条命令是开启motion:
sudo service motion start
sudo motion
然后我们就可以通过浏览器或者手机查看树莓派摄像头的内容了
打开网址http://[你的树莓派IP地址]:8081,观察,如下图:
【注意】
- 可以修改画面分辨率来提高画质,但是画面分辨率越高越消耗资源!
- 如果画面非常卡,可以调整 stream_maxrate 和 framerate 找到一个合适你的值。
- 树莓派供电不足也会影响视频质量,就像我上面的视频不是很清楚,我是直接用笔记本的USB供电的,一般来说笔记本USB口电流一般为500mA,所以如果需要视频清晰的话建议使用移动电源进行供电,或者使用有源USB hub。
当 motion 运行以后,可以通过 SIGHUP 信号来重新加载配置文件
sudo killall -SIGHUP motion
也可以直接关闭掉,然后重新启动
sudo killall -w motion
sudo motion
当你关闭motion时,可以输入如下指令,然后画面就会定格到最后一刻:
sudo killall -TERM motion
至此,关于摄像头的基操就介绍完了。
下一篇,将教你怎么样安装C和python的环境
为玩转树莓派的摄像头做好准备