轉載自:http://blog.sina.com.cn/s/blog_5fe2e9b10100cz9v.htmljavascript
相關文獻:http://www.linuxsir.org/main/?q=node/221html
http://hi.baidu.com/zhxust/blog/item/059bfa876955dc23c65cc31c.htmljava
要用到的軟件包
攝像頭驅動: 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)安裝攝像頭驅動node
將usb-2.4.31LE06.patch.tar.gz 複製到/armlinux/kernel/driver/usb下,解壓,打補丁linux
此時就會在此目錄下看到spca5xx文件夾了.不知是何緣由,估計是KERNEL版本的緣由,在/armlinux/kernel/driver/usb 的目錄中的Makefile 和config.in中找不到對應的關鍵字,此時會有一些錯誤,並將錯誤放在Makefile.rej 和config.in.rej 兩文件中,打開兩個文件,分別將其中前面有+的文字加到 Makefile和config.in中
對應的分類中便可. 我作的時候,沒有生成config.in.rej ,只需處理一下Makefile.rej 。瀏覽器
(2)編譯內核服務器
進入armlinuxapp
首先<*>選擇Multimedia device->下的Video for linux,
而後 USB support ---> USB Multimedia devices 選項下應該有
<M> USB SPCA5XX Sunplus Vimicro Sonix 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//DTD HTML 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=10 align="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 download Java.<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">
<td width="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後綴的,這個不相干的。