原文地址:http://blog.sina.com.cn/s/blog_5fe2e9b10100cz9v.html
标签: boa, arm, 网页按钮,it
要用到的软件包
摄像头驱动:http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz
服务器视频采集:http://mxhaard.free.fr/spca50x/embedded/Servfox/servfox-R1_0_0.tar.gz
客户端播放视频:ftp://ftp5.linuxeden.com/hardware/spcaview-20061208.tar.gz
浏览器java plugs:http://software.lupaworld.com/data/upload/jre-1_5_0_06-linux-i586-rpm.bin
(1)安装摄像头驱动
将usb-2.4.31LE06.patch.tar.gz复制到/armlinux/kernel/driver/usb下,解压,打补丁
此时就会在此目录下看到spca5xx文件夹了.不知是何原因,估计是KERNEL版本的原因,在/armlinux/kernel/driver/usb的目录中的Makefile 和config.in中找不到对应的关键字,此时会有一些错误,并将错误放在Makefile.rej和config.in.rej 两文件中,打开两个文件,分别将其中前面有+的文字加到 Makefile和config.in中
对应的分类中即可. 我做的时候,没有生成config.in.rej ,只需处理一下Makefile.rej 。
(2)编译内核
进入armlinux
首先<*>选择Multimediadevice->下的Video for linux,
然后 USB support ---> USB Multimedia devices选项下应该有
<M> USB SPCA5XX Sunplus VimicroSonix Cameras,要把它配置成module。
(3)#make clean //删除以前的编译结果
在linux-2.4.19-rmk7/driver/usb/spca5xx目录下生成spca5xx.o,spcadecoder.o,spca_core.o。这就是我们要的驱动.实际使用时,只需spca5xx.o就可以了。
(4)烧写新的内核到开发板
(5)移植视频采集程序servfox
(6)客户端spcaview

(7)window浏览器安装jre-1_5_0_06-windows-i586-p.exe
下载,安装即可。
安装好后,启动开发板,将摄像头驱动spca5xx.o,服务器视频采集程序servfox,boa服务器程序,以及boa服务器的三个文件夹:lib,etc,var。
开发板的启动步骤:
windows下启动IE,输入地址:http://192.168.0.11/java/index-sample/html

在windows在线观看采集的视频的同时,通过网页上的10个按钮给安放摄像头的小车发送命令,以控制摄像头的动作。动作:开始,停止,向上,向下,向左,向右,向前,向后,左转,右转。发送命令的方式:通过开发板的串口向单片机发送命令数据。
<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<center><h1>Spcaserv(c) Servfox (c) Michel Xhaard &&JWebcamPlayer(c) Alvaro Salmador Andrea Partinico</h1></center>
<center>
<table border=2 cellspacing=10 cellpadding=10align="center">
<tr>
<td width="62%">
<applet codebase="." archive="JWebcamPlayer.jar"code="JWebcamPlayer.class" name="JWebcamPlayer" ID="JWebcamPlayer"align="center" width="400" height="400"MAYSCRIPT>
<param name="Color"value="#ffffff">
<param name="Server"value="192.168.0.11">
<param name="Port"value="7070">
<PARAM NAME="scriptable"value="true">
<PARAM NAME="mayscript"value="true">
<strong>You need to downloadJava.<br>
Click <a href="http://www.java.com/en/download/manual.jsp">here:
http://www.java.com/en/download/manual.jsp</a></strong><br>
</applet>
<br>
click on the window surface to set brightness and contrast<br>
when done, click again to remove the control box.
</td>
<td width="38%">
<table width="100%"align="center">
<td width="33%" align="right">
<tdwidth="34%"></td>
<td width="33%" align="left">
<td></td>
<td align="center">
</center></tr>
<td align="center">
<td align="center">
<td align="center">
<tr><td><br></td></tr>
<tr><td><br></td></tr>
</table>
</td>
</tr>
</table>
</center>
</body>
</html>
//action="http://192.168.0.11/cgi-bin/serialSendData.cgi?Start"表示:后面的按钮的发送命令发生后,服务器自动调用服务器下的/var/www/cgi-bin/serialSendData.cgi可执行的c程序。?Start:向c程序传递参数,即argv[1]的值。
服务器下的串口程序开发:
加这个的目的是为了,在点击服务器网页按钮给服务器发送命令,服务器调用cgi程序(放在boa服务器的/var/www/cgi-bin目录下)时,网页的页面不发生转,即不变化。
c的串口程序交叉编译好后,放在boa服务器的/var/www/cgi-bin目录下,名字可以是serialSendData。不一定需要.cgi后缀的,这个不相干的。
关键的一步是:执行视频采集程序servfox前,改变开发板串口的权限:#chmod 777/dev/ttyS1 。如果,你用的是开发板的串口0,执行:#chmod 777/dev/ttyS0。即可这个原因困扰我两天的时间,终于在半小时前得到解决。小欣慰一下...