wince6下usb摄像头(UVC)使用指南
轉自:http://hi.baidu.com/cahbb/blog/item/6d76093498fe0790a61e120e.html
在搭好了wince6的開發環境之后,下一步試驗一下wince6下使用攝像頭的方法。搜集了不少資料,從中學習了很多有用的東西,在這給記錄下來,方便其它人學習,和自己以后使用。
//---------以下是微軟網站內容
我看到過一些關于Windows Embedded CE的DirectShow攝像頭的支持方面的問題咨詢。所以在這篇文章里我將展示如何讓ARM平臺下的Windows Embedded CE6.0的USB攝像頭正常運行。在這個例子中我將使用我們的REGULUS平臺。
前期準備:
? CE 6.0的在Visual Studio 2005 上的Platform Builder
? CE 6.0的USB攝像頭驅動?
? 帶有 WinCE 6.0 R3 BSP的REGULUS ARM開發套件. (http://www.e-consystems.com/regulus.asp)??
? 3.2 MP USB攝像頭(http://www.e-consystems.com/3mp_cameraboard_usb.asp)
安裝:
如何安裝Visual Studio和Platform Builder for CE6.0超出了本文的范圍。在網上可以找到關于如何安裝WinCE 6.0 Platform Builder的文章。
安裝USB攝像頭驅動后,驅動的源代碼應該會自動被放在WINCE600\PUBLIC\ThirdParty目錄中。
帶著USB攝像頭驅動編譯OS:
新建或打開一個開發套件中已有的OSDesign。在我這里,我已經為我們的REGUPLUS板生成好了一個REGULUS-1_DEMO OSDesign。
由于此驅動基于DirectShow,我們需要將DirectShow過濾器加入到OS的鏡像里來讓我們的驅動和應用程序正常工作。
從catalog對話框中選擇如下組件來將已安裝好的USB攝像頭驅動加入到OS鏡像中:
下圖是DirectShow Sysgen組件:
在將所有上述的SYSGEN組件加入完畢后,從VS2005的菜單中選擇下面的命令來編譯OSDesign:
Build–>Advanced BuildCommands–>Clean Sysgen
當編譯完成后,在release目錄里檢查ce.bib和reginit.ini來確認usbcam.dll設置項是否存在。
應用程序的編譯:
現在我們已經將USB攝像頭的驅動加好了。接下來讓我們用應用程序來測試這個驅動。我們可以在WinCE的共享資源(例如PRIVATE目錄)中找到一些DirectShow攝像頭的示例應用程序。攝像頭應用程序的源代碼可以在以下目錄中找到:
WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP
為編譯生成應用程序的可執行文件,進行以下幾步工作:
? 從workspace的Build菜單中選擇"Open release Directory in Build Window"
? 將路徑改變到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\COMMON\LIBS
? 輸入命令 ‘build -c’.
? 當這些路徑中的編譯過程結束后,將路徑改變至 WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA
? 輸入命令 ‘build -c’.
? 編譯將在這些路徑中進行, 不過最后會有"kato.lib"不可用的錯誤。 ? 現在轉移路徑到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP\
? 輸入命令 ‘build -c’
? 應用程序二進制文件"CameraDshowApp.exe"將生成于OSDesign的Release目錄下。
下載并執行:
在編譯完帶有usbcam.dll和CameraDshowApp.exe的OS鏡像后我們就可以把此鏡像下載到開發板里了。當下載結束并啟動之后,將USB攝像頭連結到REGULUS開發板的USB Host port上。
當程序連結好設備之后,我們就可以運行我們之前編譯好的程序(CameraDshowApp.exe)了。這將會顯示可供選擇的用于生成過濾圖的過濾器列表。如果攝像頭驅動被正確地加載,設備名"CAM1:"將會顯示在這個組合對話框中。
選擇需要的過濾器并點擊OK,這將會以攝像頭支持的、接近于注冊表設置項"PreferredWidth"中數值的尺寸大小來運行攝像頭的預覽功能。你可以 檢查$(_WINCEROOT)\PUBLIC\ThirdParty\Catalog\USBCam\Driver\usbcam.reg這個注冊表文 件來確定"PreferredWidth"注冊表項。
同時請根據Webcam支持的輸出格式來設置如下的注冊表項。我的攝像頭支持YUV無壓縮輸出,所以我的相應的注冊表項設置為:
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Video_Class]"UncompressedSupport"=dword:1 "MJPEGSupport"=dword:0
轉自Tony嵌入式論壇,地址:http://www.cevx.com/bbs/thread-38322-1-1.html
//=====以上是微軟網站內容
借薦的最好的一個網站:http://www.msembed.com/,有介紹怎么使用的。按照它的步驟來做,在加入了usb攝像頭驅動后會在編譯wicne6系統時出現一個錯誤。Error - variable"PCI_BUS_ROOT" not defined。要去掉這個錯誤。要到如下目錄中:
根盤符:wince600\PLATFORM\SMDK6410\FILES\platform.reg????加入如下定義:
#define BUILTIN_ROOTHKEY_LOCAL_MACHINE\Drivers\BuiltIn
#define PCI_BUS_ROOT $(BUILTIN_ROOT)\PCI
再重新編譯就可以正常了,寫到開發板中,再插上攝像頭,就不會再出現提示要輸入usb設置名稱的框子了。說明驅動加入了。在開發板的windows目錄下,有一個測試程序,也不知怎么系統好像自帶的,打開運行,會發現可以打開攝像頭了。
其 中有一個小插曲,用網上介紹的方法,去編譯攝像頭程序時,找不到它的測試用源代碼。介紹說可能是裝wince6時沒有選上,我想了想確定是選上了。后來又用同事帶的wince6的安裝文件裝,就有了。說明我現在用的wince6這個安裝包沒有這個源碼,還有在使用修復安裝時,用我從開發板廠家買來的這個 盤,提示無法進行修復安裝。但用同事的那個安裝文件就可以正常的修復安裝。再次說明開發板廠家提供的這個安裝盤有點小小的問題。總結
以上是生活随笔為你收集整理的wince6下usb摄像头(UVC)使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惊险一幕:男子划龙舟被雷击中 落水失联
- 下一篇: 《黑袍纠察队》第三季首播IGN评分8分