一、首先在某东上购买树莓派摄像头

我的买的硬件张这个样子的(CSI接口摄像头):

正视图                                                        后视图

  

当然我买的不是正版的,价格在50多块钱吧。所以也不算很贵,买回来看看,电路也不算特别的复杂,自己做的话应该也是没有问题的~(注意买回来的摄像头前面都是有一个小的透明薄膜的,但是很影响摄像头的成像效果,用的时候撕掉它,不用的时候可以去掉。)

简单阐述了解CSI接口摄像头参考:http://www.cnblogs.com/lifan3a/articles/5010633.html):

  • 全称CMOS Sensor Interface(CSI)
  • 前端-配置逻辑接口以便支持大多数通用的可用的CMOS摄像头接口。
  • 支持CCIR656视频接口以及传统的摄像头接口。
  • 8位数据口,支持方便YCC,YUV,Bayer或者是RGB的数据格式输入。
  • 完全可控的8-bit或16-bit数据到32-bit的FIFO进行打包
  • 32*32大小的FIFO存储接受到的的图像像素数据,该FIFO可以通过可编程的IO或者是DMA进行读取.
  • 后端-提供了直接到eMMA的预处理PrP块接口(PrP和PP组成了MX27图形加速器eMMA,PrP和PP能够用来给视频做预处理和后期处理,例如,放大,缩小,颜色转换)
  • 提供sensor的可屏蔽中断源,该中断源也是中断可控的: 开始Frame,结束Frame,Change of Field,FIFO Full
  • 提供给外部sensor用的,可配置的主时钟频率
  • 由统计数据产生的自动曝光(AE)和自动白平衡(AWB)控制。

二、接下来开始安装驱动使能树莓派的相关模块:

首先使用 ls指令来查看是否加载到了对应的video device设备:

ls -al /etc

所以没有发现我们的设备,接下来要做的是添加摄像头的驱动程序.ko文件和对应的raspiberry B3+的硬件使能问题:

1、添加驱动程序文件进来:

sudo vim /etc/modules

在最后添加如下的代码:

bcm2835-v4l2

这样就完成了在启动过程中加载camera驱动的前提,注意一个问题就是/etc/modules文件的修改权限是super admin所以,记得使用sudo vim /etc/modules.

2、修改Raspberry的启动配置使能项:

sudo raspi-config

得到如下的配置界面:

选择Interfacing Option,选中Select然后Enter进入,如下图所示:

接下来机会问你是否同意使能Pi camera,选择是然后会让你重启,,重启就好了:

  选择 “是”

3、重启完之后,我们的基本的操作就完成了,下来来看看/dev下面是否存在摄像头设备的问题:

ls -al /dev/ | grep video

好得,没问题了,找到了我们想要的看到的设备:video0 device

注:可能提示这样的问题(如果在以上工作都完成的情况下,摄像头还是不能正常的使用或者驱动,请先检查硬件的连接的问题,可能是排线没有很好的插稳,或者是摄像头本身的问题。):

mmal mmal_vc_component_create failed to create component 'vc ril camera' (1:ENOMEM)
mmal mmal_component_create_core could not create component 'vc ril camera' (1) mmal Failed to create camera component
mmal main Failed to create camera component
mmal Camera is not detected. Please check carefully the camera module is installed correctly

上面的问题参考这里:http://blog.sina.com.cn/s/blog_e4008c660101hkd9.html

三、下面简单的使用操作树莓派的摄像头:

1、我们使用rapistill指令来截图(当你在运行此指令的时候,树莓派上的指示灯会亮哦~):

raspistill -o image.jpg

采集的效果如下所示:

这里我们看到采集的图片的大小是2592X1944=5038848大约就是500W的像素了。看起来也是非常的清晰啦~确实很满意的啊!!

这里讲一下raspistill命令的相关参数和实验的具体效果:

-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取

执行下面的指令:

raspistill -o image%d.jpg -rot  -w  -h  -t  -tl  -v

接着下面就会输出一系列的捕获的信息,

如图片的大小

图片的总捕获时间

图像是否旋转,

是否水平反转垂直反转:

下面是最后的捕获的结果:

注:这里解释一下图片的采集数量和-t参数以及-tl参数的相关关系:N_Picture = -t(获取图像前等待时间)/-tl(多久执行一次抓取时间) + 1。所以有20000/5000+1 = 5张图片

2、使用raspivid指令来生成.h246的文件

raspivid -o mykeychain.h264 -t  -w  -h   

这样就会在当前文件夹下面生成mykeychain.h264的文件:

如果你想改变拍摄时长,只要通过 "-t" 选项来设置你想要的长度就行了(单位是毫秒)。

如果你想改变图像的分辨率,使用 "-w" 和 "-h" 选项将分辨率降为 1280x720等等。

四、使用VLC等来实现http的视屏流传输:

1、首先需要在你的树莓派上面安装VLC的软件

sudo apt-get update
sudo apt-get install vlc --fix-missing
sudo apt-get install vlc

2、启动你的树莓派摄像头

sudo raspivid -o - -rot  -t  -fps |cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264  

3、打开你PC机电脑上的VLC软件,选择打开网络串流(Ctrl+N),输入上面指令的端口号以及对应的树莓派的IP地址

(如下图所示我的树莓派的IP地址是192.168.1.129),运行结果如下图所示,当然也发现http的视频流的确比较卡,当然我采用的视频的画质是500W像素的画质,所以视频的质量比较差,当我将视频的画质调节到720*360时,感觉非常的流畅。(@局域网测试环境)

http://192.168.1.129:8080

 

后续在使用Python Opencv来控制调用树莓派的摄像头做些有意思的东西~

五、使用Raspiberry自带的摄像头python接口picamera库+Opencv来控制调用Camera

官网的Document参考:http://picamera.readthedocs.io/en/release-1.13/index.html

可以参考这里的完整教程:https://robocoderhan.github.io/

也可以参考我的另一篇博客:http://www.cnblogs.com/uestc-mm/p/7606855.html

        完~

树莓派3 B+ 的摄像头简单使用(video-streamer)的更多相关文章

  1. 树莓派3 之 USB摄像头安装和使用

    需求 如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头(有点贵).如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头.你可能已经在PC上安装过了.我买的如图的这 ...

  2. 树莓派安装kali后的简单配置

    树莓派可以说是极客的最爱,可以根据不同的需求去做定制. 前文<使用树莓派和kali Linux打造便携式渗透套件>讲了一些使用树莓派的基础,主要侧重于将树莓派当作一个物理后门使用.我则更喜 ...

  3. 利用树莓派跑python爬虫的简单教程——从无到有

    因为学校项目的原因入手了树莓派,到手先折腾了两天,发现网上的教程大都是拿他搭建服务器,mail,或者媒体服务器之类,对于在学校限时的宽带来说有点不太现实,不过低功耗适合一直开着的确启发了我.所以想到拿 ...

  4. Qt Opencv 在Linux下摄像头简单示例(转)

    下面写的文章也许网上也有类似的,但是大多数都没有给出思路及背景,让初学者每次都只能学到一点皮毛,不少知识需要大量搜索零碎地拼凑起来.题外话,虽然现在是碎片化信息时代,但正是这样信息整合能力也显得非常重 ...

  5. 【智能无线小车系列九】在树莓派上使用USB摄像头

    材料准备: 1.树莓派 2.AS 4WD小车 3.WebCam 4.小米移动电源 5.TP—LINK 高增益150MUSB无线网卡 操作流程: 1.将WebCam插上树莓派后,首先要确认树莓派是否支持 ...

  6. Android Things:树莓派3上手就是这么简单

    http://blog.csdn.net/p106786860/article/details/54566620 ——————————————————————————————————————————— ...

  7. 树莓派:使用OpenCV调用自带的摄像头.

    总所周知,树莓派上,调用摄像头的指令有raspistill和raspivid.若要使用opencv对摄像头进行调用,不少人会出现 cvCaptureFromCAM(0)函数无法找到Pi Cam的错误情 ...

  8. html 通过input video canvas 打开摄像头 定制相机

    在机缘巧合之下,了解到用HTML5和javascript调用摄像头来实现拍照功能,今天就把大致原理写下来.页面布局很简单,就是一个input标签,两个HTML5元素video.canvas和一个but ...

  9. Python实现树莓派摄像头持续录像并传送到主机

    关于树莓派,想必从事嵌入式开发的开发者都有听过,树莓派原名为Raspberry Pi,也就是它的英文读法,树莓派诞生于英国,由"Raspberry Pi 基金会"这个慈善组织注册开 ...

随机推荐

  1. BotVS开发基础—2.7 指标MA

    代码 #计算一小时 MA5均线 # 时间 2017-06-29 00:00:00 -2017-06-30 00:00:00 1小时 实盘级Tick # 平台 OCKCoin BTC def main( ...

  2. Javascript是单线程的深入分析(转)

    http://www.cnblogs.com/Mainz/p/3552717.html

  3. MySQL插入、更新、删除数据

    1.插入数据:由于下表的id会自增,故赋值null. 注意:字符串用'   '单引号,不能双引号,英文状态下. 可以写上部分属性名进行插入操作,如bookTypeId没写,默认NULL. 也可以写上所 ...

  4. 查询session内容

    Enumeration enumsession = request.getSession().getAttributeNames(); while(enumsession.hasMoreElement ...

  5. 支付宝小程序PHP全栈开发--前端样式的设计.acss样式详解

    关于.acss文件 在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面.当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由样式来决定的.我们 ...

  6. springboot 入门三- 读取配置信息二(读取属性文件方式)

    在上篇文章中简单介绍自带读取方式.springboot提供多种方式来读取 一.@ConfigurationProperties(value="my") 支持更灵活的绑定及元数据的支 ...

  7. 玩一把JS的链式调用

    链式调用我们平常用到很多,比如jQuery中的$(ele).show().find(child).hide(),再比如angularjs中的$http.get(url).success(fn_s).e ...

  8. 软件工程(GZSD2015)学生博客列表

    2015年贵州师范大学软件工程课程学生博客列表 陈小丽 郑倩 唐洁 周娟 李利思 肖俊 罗文豪 周静 徐明艳 毛涛 邓洪虹 岳庆 李盼 安坤 何亚 涂江凤 张义平 杨明颢 杨家堂 胡贵玲 寿克霞 吴明 ...

  9. 【2017集美大学1412软工实践_助教博客】团队作业7——Alpha冲刺之事后诸葛亮

    题目 团队作业7: http://www.cnblogs.com/happyzm/p/6827853.html 团队成绩 评分项目 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 全组 ...

  10. 【Alpha】Daily Scrum Meeting——Day7

    站立式会议照片 1.本次会议为第7次Meeting会议: 2.本次会议在上午大课间09:40,在禹州楼召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 燃尽图 每个人的工作分配 成 ...