【vfp开源代码栏目提醒】:以下是网学会员为您推荐的vfp开源代码-通过Web远程浏览并控制Mini6410上的摄像头 - 电子设计,希望本篇文章对您学习有所帮助。
第 - 1 - 页 通过Web远程浏览并控制Mini6410上的摄像头 2011-01-14 本手册适用于Mini6410/Tiny6410 Copyright ?? 2007-2010 FriendlyARM All rights reserved. 第 - 2 - 页 简 介 本手册由广州友善之臂
计算机科技有限公司简称“友善之臂”创建和维护并作为标准用户手册的一个补充仅供嵌入式爱好者学习参考使用友善之臂目前并不对本手册的内容提供任何解释和解答服务用户可以在论坛中反馈你所遇到的问题和疑问我们将在以后的更新中修正或者采纳您的建议本手册主要以首页日期为版本标志。
本手册由友善之臂软件开发工程师编写制作以Mini6410和Tiny6410作为开发平台介绍如何在PC上通过网页浏览器浏览并控制Mini6410和Tiny6410上的USB摄像头 暂不支持CMOS摄像头 。
Mini6410是一款十分精致的低价高品质一体化ARM11开发板由广州友善之臂设计、生产和发行销售。
它采用三星S3C6410作为主处理器在设计上承袭了 Mini2440“精于心简于形”的风格而且布局更加合理接口更加丰富十分适用于开发MID、汽车电子、工业控制、导航系统、媒体播放等终端设备也可适用于 高校教学、嵌入式培训、个人研究
学习和DIY等。
Tiny6410是由友善之臂出品的一款以ARM11芯片三星S3C6410作为主处理器的嵌入式核心板它采用高密度6层板设计尺寸为64 x 50mm它集成了128M DDR RAM256M/1GB SLC Nand Flash存储器采用5V供电在板实现CPU必需的各种核心电压转换还带有专业复位芯片通过2.0mm间距的排针引出各种常见的接口资源以供不打算自行设计CPU板的开发者进行快捷的二次开发使用。
因为 Mini6410和 Tiny6410 的硬件接口和资源都是基本相同的所以本手册完全适用于 Tiny6410开发板。
为了方便用户本手册的所用到的软件包放在光盘A的“开发文档和教程专题04 通过Web远程浏览并控制Mini6410上的摄像头”目录下用户可以不需要自已去下载。
我们欢迎各位网友复制传播本手册但不得擅自摘抄部分或全部内容用作商业用途违者必究友善之臂保留本手册的解释和修改权。
友善之臂公司网址http://www.arm9.net 本手册由ARM9之家论坛http://www.arm9home.net发布转载请注明出处手册内难免有遗漏和不足之处欢迎大家提出宝贵意见请发邮件至qt_friendlyarm163.com。
本手册内容参考了Mini2440的手册《基于 Mini2440通过网络浏览和控制 CMOS 或 USB 摄像头》。
第 - 3 - 页 更新说明 2011-01-14 本手册第一次发布 第 - 4 - 页 目 录 通过WEB远程浏览并控制MINI6410上的摄像头 ............................................................................................ - 1 - 目 录 ......................................................................................................................................................... - 4 - 第一章 MINI6410和TINY6410开发板简介 ..................................................................................................... - 5 - 1.1 MINI6410开发板 .................................................................................................................................. - 5 - 1.2 TINY6410开发板 .................................................................................................................................. - 6 - 第二章 准备工作 ............................................................................................................................................... - 8 - 2.1 安装FEDORA9 ....................................................................................................................................... - 8 - 2.2 安装交叉编译器 ................................................................................................................................... - 8 - 2.3 烧写最新LINUX系统的IMAGE到开发板 .......................................................................................... - 9 - 第三章 在MINI6410上实现摄像头监控服务端 ........................................................................................... - 10 - 3.1 实现原理说明 ..................................................................................................................................... - 10 - 3.2 获取并修改MJPEG-STREAM的源
代码 ............................................................................................... - 10 - 3.3 交叉编译MJPEG-STREAM .................................................................................................................... - 11 - 3.4 在MINI6410上安装MJPEG-STREAM .................................................................................................. - 11 - 3.5 在MINI6410上运行MJPEG-STREAM .................................................................................................. - 12 - 3.6 在电脑上浏览摄像头上的图像 ......................................................................................................... - 12 - 3.7 在电脑上控制摄像头 ......................................................................................................................... - 13 - 第四章 常见
问题与解答 ................................................................................................................................. - 15 - 4.1 为什么我的USB摄像头没有显示 .................................................................................................... - 15 - 第 - 5 - 页 第一章 mini6410和tiny6410开发板简介 1.1 Mini6410开发板 Mini6410是一款十分精致的低价高品质一体化ARM11开发板由广州友善之臂
设计、生产和发行销售。
它采用三星S3C6410作为主处理器在设计上承袭了Mini2440“精于心简于形”的风格而且布局更加合理接口更加丰富十分适用于开发MID、汽车电子、工业控制、
导航系统、媒体播放等终端设备也可适用于高校教学、嵌入式培训、个人研究学习和DIY等。
第 - 6 - 页 具体而言Mini6410具有双LCD接口、4线电阻触摸屏接口、100M标准
网络接口、标准DB9五线串口、Mini USB 2.0-OTG接口、USB Host 1.1、3.5mm音频输出口、在板麦克风、标准TV-OUT接口、弹出式SD卡座、红外接收等常用接口另外还引出4路TTL串口、CMOS Webcamera接口、40pin总线接口、30pin GPIO接口可复用为SPI、I2C、中断等另含3路ADC、1路DAC、SDIO2接口可接SD WiFi、10pin Jtag接口等在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8按键可引出、4LED等所有这些都极大地方便了开发者的评 估和使用再加上我们按照Mini6410尺寸专门定制的4.3LCD模块真正做到让您“一手掌握所有” 我们还充分地发挥了6410支持SD卡启动这一特性使用我们精心研制的superboot无需连接电脑只要把目标文件拷贝到SD卡中可支持大于 2G的高速大容量卡你就可以在开发板上极快极简单地自动安装或运行各种嵌入式系统WindowsCE6/Linux/Android/Ubuntu 等甚至无需烧写就可以在SD卡上直接运行它们这一切简直太酷了 要了解Mini6410开发板的详细信息请访问http://www.arm9.net/mini6410-feature.asp 1.2 Tiny6410开发板 第 - 7 - 页 Tiny6410是一款以ARM11芯片三星S3C6410作为主处理器的嵌入式核心 板该CPU基于ARM1176JZF-S核设计内部集成了强大的多媒体处理单元支持Mpeg4 H.264/H.263等格式的视频文件硬件编解码可同时输出至LCD和TV显示它还并带有3D图形硬件加速器以实现OpenGL ES 1.1 2.0加速渲染另外它还支持2D图形图像的平滑缩放翻转等操作。
Tiny6410采用高密度6层板设计尺寸为64 x 50mm它集成了128M DDR RAM256M/1GB SLC Nand Flash存储器采用5V供电在板实现CPU必需的各种核心电压转换还带有专业复位芯片通过2.0mm间距的排针引出各种常见的接口资源以供 不打算自行设计CPU板的开发者进行快捷的二次开发使用。
Tiny6410SDK是采用Tiny6410核心板的一款参考设计底板它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。
该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、Mini USB 2.0接口、USB Host 1.1、3.5mm音频输入输出口、标准TV-OUT接口、SD卡座、红外接收等
常用接口另外还引出4路TTL串口另1路TV-OUT、SDIO2接 口可接SD WiFi接口等在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。
在布局上安排上我们尽量考虑把常用尺寸的LCD模块能够固定在底板上比如3.5”4.3”LCD 7”LCD等这样用户在使用时不至于把各种电线搅在一起更增加了开发套件的便携性。
我们还充分地发挥了6410支持SD卡启动这一特性使用我们精心研制的Superboot无需连接电脑只要把目标文件拷贝到SD卡中可支持高达32G 的高速大容量卡你就可以在开发板上极快极简单地自动安装各种嵌入式
系统WindowsCE6/Linux/Android/Ubuntu /uCos2等甚至无需烧写就可以在SD卡上直接运行它们 要了解Tiny6410开发板的详细信息请访问http://www.arm9.net/tiny6410.asp 第 - 8 - 页 第二章 准备工作 在开始之前读者需要先做好以下工作 1 安装Fedora9 2 安装友善之臂提供的mini6410交叉编译器 3 烧写最新Linux系统的Image到开发板 2.1 安装Fedora9 本教程中的所有开发
工作都是在发行版为Fedora9的Linux桌面环境下进行的所以在开始之前读者需要先在PC上安装Fedora9安装方法可以参考FriendlyARM mini6410光盘A中的用户文档中的“安装并设置Fedora9章节。
2.2 安装交叉编译器 从光盘上拷贝mini6410上的交叉编译器到 /opt 下目前最新的mini6410交叉编译器是arm-linux-gcc-v6-
vfp-20101103.tgz 如果你的mini6410A光盘中的版本比较旧建议先从友善之臂官方网站http://www.arm9.net下载最新的mini6410光盘。
在光盘上找到交叉编译后将其拷到到 /opt下然后输入以下命令进行解压 cd / tar xvzf /opt/arm-linux-gcc-v6-
vfp-20101103.tgz 交叉编译器会解压到 /opt/FriendlyARM/toolschain/4.5.1/ 目录下现在将编译器路径添加到 PATH 环境变量中 export /opt/FriendlyARM/toolschain/4.5.1/bin/:PATH 执行以下命令能成功显示编译器版本信息表明编译器已安装成功。
arm-
linux-gcc -v 第 - 9 - 页 2.3 烧写最新Linux系统的Image到开发板 本手册并不介绍如何移植Linux Kernel和Bootloader因此需要首先在mini6410开发板上烧写用于Linux系统的Images。
不会烧写的读者请参考友善之臂提供的光盘上的mini6410用户手册。
第 - 10 - 页 第三章 在Mini6410上实现摄像头监控服务端 3.1 实现原理说明 要在Linux上实现通过WEB远程浏览和控制摄像头可以使用一个
开源软件mjpg-streamer来实现而很早之前国外就已经有爱好者将mjpg-streamer移植到了mini2440并运行并创建一个
开源项目名为mjpg-streamer-mini2440该项目的网址为http://code.google.com/p/mjpg-streamer-mini2440/。
本手册将讲解如何将它移植到Mini6410和Tiny6410上。
3.2 获取并修改mjpeg-stream的源
代码 在 /opt/mini6410目录下创建目录 webcamera 来作为我们本次移植工作的工作目录输入以下命令创建 mkdir –p /opt/mini6410/webcamera 进入
webcamera目录下通过SVN下载最新的mjpg-streamer-mini2440项目源
代码 cd /opt/mini6410/webcamera/ svn checkout http://mjpg-streamer-mini2440.googlecode.com/svn/trunk/ mjpg-streamer-mini2440-read-only 输入以下命令进行mjpg-streamer-mini2440-read-only目录 cd mjpg-streamer-mini2440-read-only 根据以下指示修改 1 用vi编辑start_uvc_yuv.sh 将内容 ./mjpg_streamer -o output_http.so -w ./www -i input_uvc.so -y 修改成 ./mjpg_streamer -o output_http.so -w ./www -i input_uvc.so -y -d /dev/video2 2 用vi编辑Makefile a 在clean:处删除 make -C plugins/input_s3c2410 b 再删除以下内容 input_s3c2410.so: mjpg_streamer.h utils.h make -C plugins/input_s3c2410 all CCCC 第 - 11 - 页 cp plugins/input_s3c2410/input_s3c2410.so . c 再到package:处删除以下两行 input_s3c2410.so start_s3c2410.sh 注如果无法下载源
代码可以在Mini6410光盘A中的“开发
文档和教程专题04 通过Web远程浏览并控制Mini6410上的摄像头源
代码”目录下找到文件名为mjpg-streamer-mini2440-read-only.tar.gz。
3.3 交叉编译mjpeg-stream 执行以下命令进行编译并打包 cd /opt/mini6410/webcamera/mjpg-streamer-mini2440-read-only/ export CCarm-linux-gcc make make package 在当前目录下会生成 mjpg-streamer-mini2440-bin.tar.gz 将它拷入SD卡备用。
注如果编译失败可以在Mini6410光盘A中的“开发
文档和教程专题04 通过Web远程浏览并控制Mini6410上的摄像头Bin”目录下找到我们编译好的可执行文件文件名为mjpg-streamer-mini6410-bin.tar.gz。
3.4 在Mini6410上安装mjpeg-stream 将SD卡插到开发板上在开发板的终端上输入以下命令安装mjpeg-stream mkdir /mjpg-streamer cd /mjpg-streamer tar xvzf /sdcard/mjpg-streamer-mini2440-bin.tar.gz 第 - 12 - 页 3.5 在Mini6410上运行mjpeg-stream 在开发板的终端上输入以下命令启动mjpeg-stream cd /mjpg-streamer ./start_uvc_yuv.sh 此时可以在终端看到如下的输出信息这说明已经成功启动mjpeg-stream程序 MJPG Streamer Version.: 2.0 i: Using V4L2 device.: /dev/video2 i: Desired Resolution: 640 x 480 i: Frames Per Second.: 5 i: Format............: YUYV i: JPEG Quality......: 80 o: www-folder-path...: ./www/ o: HTTP TCP port.....: 8080 o: username:pass
word.: disabled o: commands..........: enabled 3.6 在电脑上浏览摄像头上的图像 在电脑上打开网页浏览器在浏览器的地址栏中输入http://192.168.1.230:8080/stream_simple.html 即可看到摄像头的动态画面了如下图所示 第 - 13 - 页 说明开发板默认的IP地址是192.168.1.230 如果你修改过IP地址则根据实际情况输入相应的ip地址。
3.7 在电脑上控制摄像头 在浏览器中输入http://192.168.1.230:8080/stream.html 出现如下界面 第 - 14 - 页 点页面左侧的“Control“会出来一个控制页面窗口如图 通过页面上的提示可以控制USB摄像头的对比度亮度等参数用户可以自行测试一下。
说明开发板默认的IP地址是192.168.1.230 如果你修改过IP地址则根据实际情况输入相应的ip地址。
第 - 15 - 页 第四章 常见问题与解答 4.1 为什么我的USB摄像头没有显示 如果你使用的USB摄像头在使用时出现了如下信息 rootFriendlyARM /mjpg-streamer ./start_uvc_yuv.sh MJPG Streamer Version.: 2.0 i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 640 x 480 i: Frames Per Second.: 5 i: Format............: YUV i: JPEG Quality......: 80 Pixel format is unavailable using JPEG should never arrive exit fatal i: init_VideoIn failed 这说明mjpeg
软件并不支持你所使用的USB摄像头类型。
解决方法有两种 1 你可以更改其他型号的USB摄像头试试 2 自行更改mjpeg源
代码以支持你所使用的USB摄像头驱动程序接口 解释虽然Linux-2.6.36等高版本的内核已经支持“万能”USB摄像头驱动但每个驱动向上层提供的图像解码接口是不同的而mjpeg软件仅能识别一部分型号的USB摄像头而我们提供的Qtopia版本的USB摄像头动态预览
程序则根据用户的不断反馈增加了更多的USB摄像头向上层提供的图像解码接口支持这也就是我们为什么会在该程序中添加了这样一个提示 第 - 16 - 页 目的就是让用户把所使用的USB摄像头样品寄给我们以便在我们的程序中增加该型号USB摄像头驱动中的图像解码支持。
对于mjpeg软件我们则不提供这样的升级改进因为mjpeg软件并不是我们开发和维护的。
更多开发相关的专题文档敬请期待… 请密切留意我们的论坛http://www.arm9home.net上发布的最新消息。