请教树莓派 摄像头连接摄像头的问题

树莓派瑞士军刀扩展板(SAKS)
树莓派瑞士军刀扩展板是由一系列元件经过精心构建而成的多功能扩展板,适用于40Pin GPIO口的树莓派系列。您可以基于树莓派主机和本产品学习树莓派GPIO的使用,开发出各种的上层软件,软硬件结合,研发出功能丰富的功能和应用。
您对这儿的内容还有疑问?
是否想深入了解?
实践上是否需要支持?
欢迎加入我们的社区,这里有热心技术宅倾力支持!
菲尔宾 (Carrie Anne Philbin)著,方可(树莓派实验室)译
您对这儿的内容还有疑问?
是否想深入了解?
实践上是否需要支持?
欢迎加入我们的社区,这里有热心技术宅倾力支持!
实验室QQ群:
(C群,空闲)
(B群,已满)
(A群,已满)
赞助与合作
“树莓派实验室”欢迎同类网站、社区与我们展开各类形式的合作,同时也在寻求有节操的硬件供应商的赞助。
请邮件联系 7355861[使用树莓派制作近距离遥控摄像机(无线网卡+摄像头,手机或平板等移动终端控制)
Categories:
其实早就做好了,只不过一直坑着……
先说一下我这篇文章说的东西做出来是啥,就是一个树莓派+无线网卡+摄像头+移动电源的东西。
基本用法就是只要树莓派开机,就可以用无线设备随时进行视频监控或者视频采集,或者同时做,可移动的无线摄像头。与其他教程不太相同的是,这回树莓派不再是接入无线路由或者其他接入点,而是直接自己作为接入点,不再有依赖外在接入点信号范围的束缚。
其实没啥用,没啥实际用途,真的。做这玩意其实就是想随意弄个随身摄像机啥的,但是又没小屏幕,于是就对手机和平板起了邪念(啥?)
炫耀展示:
点击查看大图
基本思路:
装一台Raspbian系统的Raspberry Pi,使用无线网卡配合hostapd作为无线接入点,使用摄像头配合MJPG-Streamer进行图像的实时监控、录制保存或监控录制同时进行,使用移动电源进行移动供电,使用手机或其他移动设备进行无线遥控。
文章目录:
A、开始前准备
B、准备材料
C、制作步骤
一、安装系统 (已安装系统的可以跳过此步)
二、编译网卡驱动和hostapd
三、安装DHCP服务
四、安装mjpg-streamer
五、变成接入点
六、脚本准备
七、遥控器准备:
D、已知缺陷
F、资源下载(百度盘)
G、文档更新日志
(请大家根据自己的情况选择跳过个别步骤)
开始前准备:
如果您确定想要着手操作的话,首先您应该了解linux的一些基础知识、ssh,shell和bash基本操作、基本编译等,并且要有一定的英语基础。这是一篇面向有一定基础的读者的文章,文中部分知识在本文中不会详细解释,如果您有什么不懂的地方,你来打我啊,咳咳,建议您先从基础学起。
准备材料:
1、树莓派B型(因为要用到2个USB口)+4G或以上SD卡一张
2、USB无线网卡一根(需要支持无线AP)
3、USB摄像头一个(需要支持MJPG)
4、移动电源一块
5、PC一台,路由器一台,网线一根(这些材料用于第一次安装)
6、无线设备一台(用于无线遥控)
附博主使用的材料:
1、树莓派B型+不太结实的亚克力外壳+8G class10东芝SD卡
2、EDUP MS8512 USB无线网卡
3、罗技C270 USB摄像头
4、爱国者充电宝D5
5、支持无线网络的笔记本一台,无线路由器一台
6、支持wifi的安卓手机一台,Ipad4(4G)一台
博主建议:
1、树莓派的盒子请尽量选择结实的以免携带的时候损坏
2、无线网卡请尽量选择linux下支持的比较好的,博主用的是Realtek芯片的,系统自带的hostapd不支持,MAC修改不支持,BSSID指定不支持(所以3DS无线擦建站一直搞不定)。至于是否外置天线,就随各位爱好吧,无天线的便携性就高,但是无线操作距离就会变低,大家自由取舍。
3、摄像头不是很了解,C270太火了哪的教程都用,虽然我是2010年就买了。
制作步骤:
大家注意到了这个教程中没有显示器,也就是说这次是要在无显示器的情况下安装系统。
一、安装系统 (已安装系统的可以跳过此步)
1、SD卡插读卡器上,读卡器插电脑上,刷raspbian上去,没啥说的
2、SD卡再插到树莓派上,先别急着加电,先用网线把树莓派用网线连接到路由器上,再开机。
3、一段时间后用PC登陆到路由器界面,看树莓派用DHCP获取的IP是多少。
(博主是因为已经长时间在用树莓派了,所以在路由器上写了静态DHCP)
4、使用PC的ssh客户端(推荐用putty,也可脸皮厚点用SecureCRT)登陆到树莓派,根据提示进行首次设置。
(系统装完,搞不定也别来求我)
5、虽然不是必须,不过还是建议大家运行一次rpi-update和apt-get update(没准你的不能用的摄像头就能用了,当然,也没准你的无线网卡就不能用了。)
二、编译网卡驱动和hostapd
虽然raspbian自带非常多的驱动,而且官方源也包含hostapd,然而却并不能支持每一款无线网卡。我手里的这款EDUP-MS8512就是,虽然能驱动起来,可以连wifi,但是hostapd却无法正常工作(芯片是Realtek的,支持不好)。所以建议大家还是自己编译网卡驱动和hostapd。至于教程,参见您网卡驱动中的README。(坑)
小技巧:编译驱动需要内核代码,还需要各种乱七八糟的东西
需要.config文件么,只要998!
gzip -dc /proc/config.gz &.config
需要Module.symvers文件么,只要你够了
wget /raspberrypi/firmware/raw/master/extra/Module.symvers
别忘了make modules_prepare
中途可能会报错找不到openssl/opensslv.h,装一个libssl-dev搞定
三、安装DHCP服务
因为接下来要将树莓派作为接入点,使用其他无线设备进行遥控,所以需要DHCP-server为”遥控器”分配IP,具体的,嗯,总之你只要安装isc-dhcp-server这个包就行了。(安装完成时会自行启动,自行启动会因为没有正确的配置文件报错,无视之)
四、安装mjpg-streamer
mjpg-streamer是用于视频的录制和监控的,消耗资源也少,安装步骤,嗯,虽然网上一大堆,不过还是发出来吧蛤蛤。当然也是因为网上很多教程缺胳膊少腿,自己想补充一下,这回就不那么坑了。
1、安装依赖
sudo apt-get install libv4l-dev libjpeg8-dev imagemagick
2、下载源码:
(比较坑爹的就是Raspbian虽然自带git,但是却不带svn,所以没有安装svn的请先安装svn客户端,包名:subversion)
svn死活抠不下来的朋友,(请感谢我们伟大的方校长并祝愿病魔早些战胜校长),您可以在本文最下方找到我的压缩包,Checked out revision 182.
(在网上搜mjpg-streamer的话可能会搜出一个mjpg-streamer-r63,这个包我在树莓派上亲测编译不成功,看报错应该是环境问题,没有过多尝试,有兴趣的朋友可以研究研究)
3、编译安装:
根据mjpg-streamer的文档,编译需要libjpeg,但是mjpg-streamer的代码依赖是libjpeg7的,我们使用的是libjpeg8,文件名不同,所以要做一个软连接。不然会报错:
mjpg_streamer.c:27:28: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make: *** [mjpg_streamer.o] Error 1
软连接:sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
进入目录并编译:
cd mjpg-streamer
make USE_LIBV4L2=true clean all
4、功能测试:
sudo ./mjpg_streamer -i “./input_uvc.so -d /dev/video0
-r 0 -f 12” -o “./output_http.so -p 8090 -w ./www”
(-r后是分辨率参数,-f后面是帧率,请根据您的摄像头参数进行调整)
之后在PC上打开浏览器,在地址栏填写树莓派的地址+:8090,如果成功的话就会打开mjpg-streamer提供的页面:
证明mjpg_streamer成功编译并运行了,恭喜,您已经搞定一个核心功能点了。
还可以进入stream页面看一下效果
五、变成接入点
要把树莓派的无线网卡变成接入点,其实并不是很难,很多地方都有教程,这里只列出一些必要步骤或基本命令,不做解释。每条命令的具体意义希望大家自己学习。
1、准备无线网卡基本配置
sudo vi /etc/network/interfaces
iface wlan0 inet static
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
address 10.5.5.1
netmask 255.255.255.224
2、准备hostapd的配置文件(一般是rtl_hostapd_2G,具体请参考网卡驱动中的文档)
vi rtl_hostapd_2G
##### hostapd configuration file ##############################################
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=rtwap
wpa_passphrase=
#bridge=br0
3、准备DHCP的配置文件
sudo vi /etc/dhcp/dhcpd.conf
保证这段生效(具体怎么做请自行领悟)
subnet 10.5.5.0 netmask 255.255.255.224 {
interface wlan0;
range 10.5.5.26 10.5.5.30;
option domain-name-servers 8.8.8.8 , 8.8.4.4;
option domain-name “pi.”;
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
4、准备启动脚本:
(这段其实不应该这么写,这段应该写在无线网卡的配置文件里,也就是interface,使之当插入无线网卡的时候载入,拔出无线网卡的时候卸载。我还没时间仔细研究,所以就对付到启动脚本里了)
sudo vi /etc/init.d/rc.local
在最下方新增两行:
/home/pi/hostapd /home/pi/rtl_hostapd_2G.conf
&& /var/log/hostapd.log
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(这样AP和NAT就都有了,DHCP开机如果有无线网卡的话会自己载入)
5、开启路由转发
/etc/sysctl.conf
将net.ipv4.ip_forward=0修改为net.ipv4.ip_forward=1
6、功能测试:
重启树莓派,重启后使用无线设备搜索无线信号rtwap,密码,接入,测试是否可以获取IP和DNS,并且确认是否可以上网。
六、脚本准备
根据前面的内容,现在我们的树莓派可以作为无线路由器了,也可以作为视频监控了,那么我们现在只要只要同时启用这两个功能,我们就已经接近目标了。
现在我们的树莓派在接入无线网卡的情况下开机,就可以作为无线路由使用,所以关于连接方面我们可以不再操心了,只要一心关注如何进行视频的监控和采集即可。
这里提供三个脚本(可在文章末尾打包下载)
pi@raspberrypi ~ $ cat 1_start-mjpeg_streamer.sh
cd ~/src/mjpg-streamer/
sudo nohup ./mjpg_streamer -i “./input_uvc.so -d /dev/video0
-r 0 -f 12” -o “./output_http.so -p 8090 -w ./www” &
pi@raspberrypi ~ $ cat 2_start-record.sh
cd ~/src/mjpg-streamer/
sudo nohup ./mjpg_streamer -i “./input_uvc.so -d /dev/video0
-r 0 -f 12” -o “./output_file.so -f /home/pi/tmp/” &
sudo nohup ./mjpg_streamer -i “./input_file.so -f /home/pi/tmp/” -o “./output_http.so -p 8090 -w ./www” &
pi@raspberrypi ~ $ cat 3_stop-mjpeg_streamer.sh
sudo killall mjpg_streamer
pi@raspberrypi ~ $
第一个脚本是后台开启视频监控,只能进行监控,不做记录;
第二个脚本是后台开启视频采集并进行实时监控,在做记录的同时可以开浏览器进行监控。记录的文件存放在 /home/pi/tmp/ 中
第三个是干掉楼上两个关闭已开启的视频监控和采集
脚本意义请自行理解并修改,这里不再多述。
七、遥控器准备:
一般的无线设备都可以作为遥控器,带有无线网卡的笔记本,安卓手机或平板,ios设备,只要有SSH客户端和支持stream的浏览器即可。
浏览器推荐:
实测PC的Firefox、Chrome可用,IE10不可用;ipad的Safari可用。因为我手机不清楚浏览器核心是什么就不提了。
移动设备ssh客户端推荐:
安卓系统如果有终端模拟器则可以直接用ssh,没有的话可以安装一款名叫connectbot的应用()
ipad可以安装一款名叫vSSH Lite的应用(),本人没有iphone和WP,这里就不乱推荐了。
无线监控:
重启过的树莓派应该已经可以进行无线接入了(不能的话就请自行排错吧,这个只能靠经验累积了)
使用无线设备接入树莓派,并确认接入成功。
使用SSH客户端打开地址:pi@10.5.5.1
进入到放置三个脚本的目录:
执行./1_start-mjpeg_streamer.sh (这里说一个小技巧,输入./1之后直接按下tap键&如果有的话&,bash会自动补全,这也是为什么3个脚本都是用数字开头的原因)
进程运行起来了。
再打开浏览器,输入地址:
再点击Stream进入监控页
如果想片平查看可以点上面那个here链接
点击查看大图
近乎大功告成
录制+监控:
回到ssh,执行./3_stop-mjpeg_streamer.sh把刚才那个仅监控不录制的进程干掉
之后执行./2_start-record.sh,执行之后树莓派就开始录制了,同时可以继续进入http://10.5.5.1:8090进行监控,堪比一台小型录像机。
录制的文件保存在/home/pi/tmp下,是一堆图片文件,需要进一步转换才能编程视频,请自行解决。
注:在不干掉录制进程的情况下,mjpeg_streamer会一直写文件,请人工保证别把分区写爆了。有一定基础的话可以再搞一个分区专门做存储。
无限递归递归递归递归递归递归递归递归
现在,拔掉电源,拔掉网线,把移动电源准备好,树莓派往你喜欢的地方随便一扔吧。
请不要用於非法用途。
已知缺陷:
1、连接到树莓派之后会因为占用wifi资源,无线设备将无法上网。笔记本可以在接入有线网络的情况下调整路由规避,但平板和手机就没办法了。
2、有些情况下摄像头或无线网卡会因为耗电过大,导致树莓派主板供电不足,系统或网卡重启,导致IP丢失。大家按心情自行解决吧
3、整套东西都只关心图像,对声音完全没有获取,很是遗憾。
4、因为没有使用usb hub,所以一个接口接了无线网卡,一个接口接了摄像头,没有空余的接口再连接U盘或者其他存储设备了,所以请准备好足够的SD卡空间。不过720p 12fps,每秒的大小不足1M,io不是问题。
5、操作方面现在只能靠ssh进行操作。其实mjpeg_streamer已经提供了web模板,只要稍微改改模板就可以完全依靠浏览器进行控制了。未来神马的就交给你拯救了。
其实不写网卡编译教程的原因很简单,一家网卡一个方法,写的不好反而会误导人,干脆不写。编译东西,大家应该首先看每个包的README。被奶大的孩子永远长不大。
另外近期发现树莓派的内核从3.6+更新到3.10+了,导致一大堆驱动都不能用了,包括个人编译的和内核自带的,话说系统自带的驱动在内核升级之后就不能用是个什么鬼逻辑啊,难道不知道先祖产品都是怎么死的了么?
另外我并没有打算把这个提交到git或者svn的想法。
这个实在太小了,编程的精华在于思路,而不是代码。能理解我要做的是什么,哪里做得好,哪里更待优化,才是正道。单纯的在那抄写代码,农民都不如。
这个东西的扩展性很高,如果有实力和条件的话就可以继续加做遥控车甚至是机器人,相比之下一个小小的视频录制功能只够塞牙缝的。
资源下载(百度盘):
(Checked out revision 182.)
(这是从git上抠下来的,在windows上测试没问题,但是在pi上解压就报错,估计他们打包的时候脑残的把权限也打进去了)
最后(有完没完啊),如果文中有什么写的不够详细或者错误之类的地方,请在评论下留言。
欢迎转载,转载请注明出处:
文档更新日志:
2013 年 11 月 13 日上午 1:36:文档新建
2013 年 11 月 13 日下午 12:18:附件上传
2013 年 12 月 04 日上午 1:34:更新文档目录结构,修改部分措辞。不影响文章理解。
埋于樱花树下 肉体归为尘土
剩下的灵魂
慢慢 慢慢 沉到地底下去
渐渐 渐渐 纯化为石樱
Powered byLinux系统入门学习:如何在树莓派上安装USB网络摄像头_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Linux系统入门学习:如何在树莓派上安装USB网络摄像头
来源:Linux中国&
作者:Linux
Question: 我可以在树莓派上使用标准的USB网络摄像头么?我该如何检查USB网络摄像头与树莓派是否兼容?另外我该如何在树莓派上安装它?
如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头板。如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头。你可能已经在PC上安装过了。
本教程中,我会展示如何在树莓派上设置摄像头。我们假设你使用的系统是Raspbian。
在此之前,你最好检查一下你的摄像头是否在已知与树莓派兼容的摄像头之中。如果你的摄像头不在这个兼容列表中,不要丧气,仍然有可能树莓派能检测到你的摄像头。
检查USB摄像头是否雨树莓派兼容
要检查你的摄像头是否可以被树莓派检测到,将它插入到树莓派的USB口中,然后输入下面的命令。
如果输出中没有你的摄像头,那么有可能你的树莓派的电源无法供应足够的电力给你的摄像头。这时你可以给你的摄像头用独立的电源线,比如,并重新输入lsusb命令。如果摄像头还是不能被识别,我们只有建议你购买其他树莓派支持的摄像头了。
在上面的截屏中,USB摄像头被识别为&1e4e:0102&,但是没有显示摄像头的制造商。当你在笔记本的 20中使用它时,它可以成功的检测到&1e4e:0102 Cubeternet GL-UPC822 UVC WebCam&。
另外一个可以检查摄像头是否被树莓派支持的方法是检查/dev目录。如果有/dev/video0,那么这暗示树莓派支持你的摄像头。
用USB Webcam拍照片
当USB摄像头成功挂载到树莓派上之后,下一步就是拍一些照片来验证它的功能了。
要想拍摄照片,你要安装fswebcam,这是一款小型摄像头程序。你可以直接通过Raspbian的仓库来安装fswebcam。
$ sudo apt-get install fswebcam
fswebcam安装完成后,在终端中运行下面的命令来抓去一张来自摄像头的照片:
$ fswebcam --no-banner -r 640x480 image.jpg
这条命令可以抓取一张640x480分辨率的照片,并且用jpg格式保存。它不会在照片的底部留下任何水印.
这就是fswebcam下640x480分辨率的结果。
下面的例子是没有定义分辨率的照片。图片是偏蓝的,并且默认的分辨率是358x288。
在(Raspberry Pi)树莓派上安装NodeJS&
Raspberry Pi 树莓派上安装Weston
用于Raspberry Pi 的Linux 操作系统已经可用
Raspberry Pi(树莓派)试用小记
Raspberry Pi(树莓派)的安装、配置IP及软件源等入门
本文永久更新链接地址:
相关资讯 & & &
& (09月26日)
& (09月26日)
& (09月26日)
& (09月26日)
& (09月26日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款博客访问: 76161
博文数量: 25
博客积分: 45
博客等级: 民兵
技术积分: 323
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 嵌入式
&&& 相信大家入手的树莓派都玩起来了,买了摄像头模块的也demo起来的网上都有的几个例子,但是真正自己写程序的时候就会出现各种各样的问题,我是用树莓派的camera来实现一个远程视频传输的过程,就是这么一个简单的例子,然而一切准备就绪之后运行起来就会发现找不到/dev/video0设备,但是树莓派官方自带的raspistill却能够用起来,这怎么回事呢?
&&& 先放个wiki的地址:,这里讲了很多关于启动的问题,其中Raspberry Pi camera module这一章节就是说如何起camera。树莓派中的camera module是放在/boot/目录下以固件的形式加载的,不是一个标准的v4l2的摄像头ko驱动,所以加载起来之后会找不到/dev/video0的设备节点,这是因为这个驱动是在底层的,v4l2这个驱动框架还没有加载,所以要在/etc/下面的modules-load.d/rpi-camera.conf里面添加一行bcm,这句话意思是在系统启动之后会加载这个文件中模块名,这个模块会在树莓派系统的/lib/modules/xxx/xxx/xxx下面,添加之后重启系统,就会在/dev/下面发现video0设备节点了。这个文件名可能不是叫modules-load.d/rpi-camera.conf,也有可能直接就是/etc/modules,我用的是树莓派2,就是/etc/modules。
&&& OK,祝大家玩的愉快。
阅读(4846) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 树莓派 摄像头 的文章

 

随机推荐