基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx

上传人:b****6 文档编号:15896922 上传时间:2022-11-16 格式:DOCX 页数:18 大小:229.42KB
下载 相关 举报
基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx_第1页
第1页 / 共18页
基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx_第2页
第2页 / 共18页
基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx_第3页
第3页 / 共18页
基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx_第4页
第4页 / 共18页
基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx

《基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

基于MJPGStreamer的嵌入式WEB视频监控小车的设计报告Word格式.docx

B/S结构,基于linux,要有视频画面,实现无线传送数据,可移动。

1.2目标实现方式

a)S3C2440(ARM9)可以运行linux系统,手上正好有TQ2440开发板。

b)视频画面通过USB摄像头获取,网页上的视频画面由视频服务器获取。

c)通过USB无线网卡连接无线路由器,实现无线传送数据。

d)把整个系统放在可移动的小车上,实现可移动要求。

1.3系统总体设计

1.4总结

用到linux系统,就会涉及到U-boot,文件系统,内核;

用USB类型的摄像头和无线网卡就要移植相应的驱动;

要实现B/S结构,需要WEB和视频服务器;

要实现对直流电机和舵机的控制,需要编写I/O字符驱动;

网页部分需要网页编程和javascript。

总之,要把该目标实现,需要多方面的知识,虽然每部分用的知识不是很深,但是要把多方面的知识结合起来就有点难度,特别对于linux初学者来说,本着求知的态度,一部分一部分学,一边学一边做。

二.系统硬件部分

2.1小车车体

通过改装电动玩具坦克车,保留坦克车的车底。

2.2小车电源部分

1.功率计算:

A.开发板电压:

4.8V,电流:

0.6P=2.88W(无线网卡和USB集线器包含在内)

B.舵机电压:

5V,电流:

0.06AP=0.6W(备注:

两个辉盛SG90)

C.直流电机电压:

5V,电流:

0.2AP=2W(备注:

2个直流电机)

D.L298N电机驱动模块,L7805电源转换芯片。

总功率:

P>

=5.48W

电池:

1.2V*4(8800ma)给开发板供电;

1.2V*8(8000ma)给L298N模块和L7805电源模块供电;

舵机的输入电源为经L7805转换后的5V。

2.电路原理图

L7805转换电路

L298N电机驱动模块电路

三.网页部分

1.WEB服务器boa

1.BOA服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。

2.boa移植到linux

①tarxzfboa-0.94.14.tar.gz解压

②cdboa-0.94.14/src,修改Makefile文件,CC=arm-linux-gcc,

CPP=arm-linux-gcc–E

③make编译出可执行文件

④修改boa.conf。

在/etc目录下建立一个boa目录,复制boa.confg到该目录;

在/var/log/下建立boa目录,该目录下可以查看boa服务器的日志;

默认是/var/www下的内容可以访问(DocumentRoot/var/www);

默认cgi:

ScriptAlias/cgi-bin//usr/lib/cgi-bin/(cgi可执行程序放在/usr/lib/cgi-bin/目录下)例如http:

//201.201.201.249/cgi-bin/cgi-test.cgi

2.网页设计及javascript

1.网页设计

网页分三部分:

视频显示区、小车控制按键区、摄像头转动按键区;

2.javascript

Javascrpt也分为三部分:

视频图片处理脚本、按键处理脚本、AJAX异步通信脚本。

重点脚本说明:

/*异步访问提交处理*/

functioncarstop()

{

xhr=createXHR();

if(xhr)

{

xhr.onreadystatechange=callbackFunction;

//调用callbackFunction()返回信息

xhr.open("

GET"

"

/cgi-bin/car.cgi?

carstop=1&

cur_time="

+newDate().getTime());

//cgi后面跟个cur_time参数是为了防止Ajax页面缓存

xhr.send(null);

}

else

//XMLHttpRequest对象创建失败

alert("

浏览器不支持,请更换浏览器!

"

);

}

用ajax异步通信可以使页面无刷新的向服务器提交数据和返回数据。

这样直流电机和舵机响应的速度就很快,延迟很小。

3.CGI程序

本次使用的是cgic库,cgic库的特点:

分析数据,并自动校正一些有缺陷的浏览器发来的数据;

透明接收用GET或POST方法发来的From数据;

能接受上传文件;

能够设置和接收cookies;

用一致的方式处理From元素里的回车;

提供字符串,整数,浮点数,单选或多选功能来接收数据;

提供数字字段的边界检查;

能够将CGI环境变量转化成C中的非空字符串;

提供CGI程序的调试手段,能够回放CGI程序执行时的CGI状态;

1.直流电机的控制程序

#include"

cgic.h"

#include<

stdio.h>

stdlib.h>

unistd.h>

sys/ioctl.h>

fcntl.h>

string.h>

time.h>

intfd;

//保存打开文件返回值

intcgiMain()

{

fd=open("

/dev/leds"

0);

//打开设备文件

if(fd<

0)//返回值=-1

perror("

opendeviceleds"

printf("

ledsshow,pleasectrl+ctoexit"

/*******************前进:

左轮、右轮前进*************************/

if(cgiFormSubmitClicked("

carforward"

)==cgiFormSuccess)

//若"

按下

ioctl(fd,0,0);

//GPB5=0

ioctl(fd,1,1);

//GPB6=1

ioctl(fd,0,2);

//GPB7=0

ioctl(fd,1,3);

//GPB8=1

Contenttype:

text/html\n\n"

//ajax返回信息时必须用到,说明返回是个网页

printf("

carfoward......"

//<

divid="

x"

>

区域输出"

/***************右转:

控制左轮,右轮停止********************/

carright"

ioctl(fd,0,2);

turnright......"

/***************左转:

控制右轮,左轮*************************/

carleft"

//GPB5=0

//GPB6=1

turnleft......"

/*****************停止:

右轮、左轮停止****************************/

carstop"

ioctl(fd,0,1);

//GPB6=0

ioctl(fd,0,3);

//GPB8=0

printf("

carstop......"

}

2.舵机控制程序

舵机程序不列出,大概和直流电机控制程序类似。

cgic库的移植及编译cgic程序过程省略

4.视频服务器MJPG-steamer移植

1.首先需要移植jpeg库,版本是:

jpeg-6b;

和boa一样,首先使用./configure--build=i386-linux,--host=arm-linux--prefix=/home/wendi/jpeg-6b/jpeg--enable-shared--enable-static

其中“--prefix=/home/wu/jpeg-6b/jpeg”指定,makeinstall时jpeg库的安装位置,然后make,makeinstall,拷贝库到文件系统中。

2.移植mjpg-streamer

第一步下载源码tarxvfmjpg-streamer-r63.tar.gz

第二步解压

第三步修改源码

cdmjpg-streamer-r63

修改顶层makefile及plugins目录中的各级makefile将所有

 

CC=gcc

修改为

CC=arm-none-linux-gnueabi-gcc

修改plugins/input_uvc/Makfile

修改

CFLAGS+=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1