91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RK3576開發板的USB攝像頭使用

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-06 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. USB簡介

USB:Universal Serial Bus(通用串行總線)。是一種常用于電子設備間通訊的通用標準接口。USB 總線作為一種高速串行總線,其極高的傳輸速度可以滿足高速數據傳輸的應用環境要求。

具有供電簡單(可總線供電)、安裝配置便捷(支持即插即用和熱插拔)、 擴展端口簡易(通過集線器最多可擴展127 個外設)、傳輸方式多樣化(4 種傳輸模式),以及兼容良好(產品升級后向下兼容)等優點。

1.1 EASY EAI Orin-Nano USB資源介紹

EASY EAI Orin-Nano有一路直出的USB3.0 HOST接口,還有一路直出的OTG接口。

wKgZPGgZuxqACBYgABBiD586vlU820.png

若不了解【USB HOST】、【USB Device】以及【OTG】的含義,又或者有【必須使下層USB作為HOST】的需求,可參考《USB_HOST與USB_Device》一文。

1.2 USB攝像頭接入方案

wKgZO2gZuxqAUI47AADdNgPRzl4093.png

注意:雖然USB支持熱插拔,但在沒給底板加裝外殼保護的情況下,很容易觸碰到底板上的器件,甚至板卡附近有金屬零件很容易造成板卡短路。因此也建議在插拔外設時,最好確保電源已經完全切斷。

【建議】USB攝像頭【直接】接入到底板的【上層】USB接口上。

wKgZPGgZuxuADpbUABBATP1PZ6M198.png

雖然采用多路擴展方案,理論上可擴展127個設備,但在實際接入多個USB攝像頭時需要考慮USB通道的帶寬,USB集線層數,以及要解決設備ID相同的問題,因此非必要【不建議】這么接。

USB的理論最大層數為7層(含RootHub)。

1.3 USB設備的接入管理介紹

在USB攝像頭或者USB Hub進行物理連接后,我們需要知道這些USB設備是否被系統識別出來,則需要通過lsusb命令查看。

lsusb
wKgZO2gZuxuANRxGAACn3rUsY54565.png

另外,在文件系統中,USB Device管理目錄為/sys/bus/usb/devices,可在此處查看到從root_hub開始掛載的USB設備以及Hub設備的拓撲關系。

USB設備的設備命名方式規則如下:

設備對象的命名規則
設備 命名規則 描述
總線對象 usb1、usb2 處理器自帶的USB硬件,0號hub設備,所以其接口對象是由0開始計算。
直連的USB設備 root_hub-hub_port
注:以“-”段橫杠分割
root_hub為所在的總線號碼;
hub_port為處于該總線的第幾個設備,0號設備總線本身,新接入的設備從1開始。
連在外擴hub的設備 root_hub-hub_port.device
注:以“.”句號分割
新接入的設備作為hub的子設備,編號從1開始
設備對象的接口命名規則
設備 命名規則 描述
設備對象的接口對象 device_object:config.interface
注:以“:”冒號分割設備對象和后續元素。后續元素有配置和接口,二者以“.”句號分割
device_object:設備對象,上面總線對象、質量設備、經過hub的設備統稱為設備對象
config:USB設備的配置描述符,一個USB設備可在不同系統、不同架構下運行的前提就是使用了不同的配置描述符
interfece:USB設備的接口描述符,例如一個USB對講機,有負責處理播音的接口以及負責錄音的接口。

1.4 尋找可用的設備節點

rockchip平臺,一個MIPI-CSI接口會對應20多個video節點(設備樹定了就會生成這么多個),如下圖所示。

wKgZPGgZuxuAWLNlAADvzgIeWh8195.png

而且MIPI-CSI camera對應的節點,會在修改內核設備樹的時候固定下來(即:內核配好了MIPI-CSI Camera個數,無論MIPI-CSI攝像頭是否有接上,它的video節點情況都是不會根據MIPI-CSI Camera的接入情況而【動態】改變)。

而一個USB camera會對應2個video節點,【一般會】排列在MIPI-CSI camera的后面。舉個例子:內核配置了1路MIPI-CSI camera,那USB camera的節點就是/dev/video25和/dev/video26;內核配置了2路MIPI-CSI camera,那USB camera的節點就是/dev/video49和/dev/video50。以此類推。

但是【最準確】的方法,還是要看一下這個video節點的【描述信息】。Linux的v4l2框架會把這些節點的描述信息統一放在/sys/class/video4linux/目錄下,如下圖所示。

wKgZO2gZuxuADWWiAADHhD6GKVk928.png

隨便進入一個描述,如video22。

wKgZPGgZuxyAX3T5AACoy7qNgMI403.png

通過cat命令,可以用查看這個name的內容是什么。

cat /sys/class/video4linux/video22/name
wKgZO2gZuxyANJVEAABr2viLxJY006.png

那么,我們則需要使用以下命令,對【所有video節點】進行掃描與【篩選】。

grep -i "usb" /sys/class/video4linux/video*/name
wKgZPGgZuxyALbIPAACAZjgI-oo737.png

2. 快速上手

2.1 例程源碼下載

到【百度網盤】上下載相關的單例程序:

鏈接:https://pan.baidu.com/s/1RXHMGpmGSEfFy0rb1VkXSg?pwd=1234

提取碼: 1234

比如在windows環境中,就把單例程序下載到:此電腦D:BaiduNetdisk (無規定,用戶可自主選擇),如下圖所示。

wKgZO2gZuxyAcL2tAACzjzn_OTw582.png

然后把例程【復制粘貼】到nfs掛載目錄中。(不清楚目錄如何構建的,可以參考《入門指南/開發環境準備/nfs服務搭建與掛載》)

wKgZPGgZuxyAdw_5AAEDr7CBhzE034.png

2.2 例程編譯&運行

通過adb shell進入開發板環境,執行下方命令定位到demo目錄,并且執行編譯操作。

cd /home/orin-nano/Desktop/nfs/02_camera/
./build.sh
wKgZO2gZux2ALcfhAARnkhV_id4539.png

編譯成功后,相關的demo會生成在Release目錄下。

執行下方命令以運行demo,如下所示。

sudo ./Release/test-usbCam-single 49  ##需要root權限

執行效果如下所示。

wKgZPGgZux2AAXg8AABMW6Vj5_0978.png

然后把/tmp/photo拷貝到當前目錄下的Release內

cp /tmp/photo ./Release/

再通過組合鍵【Ctrl+Shift+T】創建一個新窗口,定位到nfs服務器的對應位置。

wKgZO2gZux2AEmOxAACKiBD90sU960.png

最后使用mplayer工具播放圖片,命令如下所示。

mplayer -demuxer rawvideo -rawvideo w=1280:h=720:format=bgr24 ./Release/photo -loop 0
wKgZPGgZux2AL77CABMCYsJUSss055.png

例程默認分辨率為1280x720,故w和h的參數對應填入1280和720。當出現圖片異常時,說明分辨率等不太對應于手頭的攝像頭,所以需要調整usbcamera_init()的分辨率,例如640x480。

3. 測試USB攝像頭API案例

示例代碼路徑為:02_camera/test-usbCam/single-cam.c。USB Camera API的測試案例代碼邏輯流程如下所示:

wKgZO2gZux6AL281AABSz27uAFE832.png

3.1 源碼說明

int main()
{
    if(1 == argc){
        printf("nerr: Missing parameter!n");
        printf("================= [usage] ==================n");
        printf("example:n");
        printf("t%s n", argv[0]);
        printf("--------------------------------------------n");
        return 0;
    }
    int cameraIndex = atoi(argv[1]);
    
	char *pbuf = NULL;
	int ret = 0;
	int skip = 0;
	FILE *fp = NULL;

	ret = usbcamera_init(CAMERA_INDEX, CAMERA_WIDTH, CAMERA_HEIGHT, 0);
	if (ret) {
		printf("error: %s, %dn", __func__, __LINE__);
		goto exit3;
	}

	pbuf = (char *)malloc(IMAGE_SIZE);
	if (!pbuf) {
		printf("error: %s, %dn", __func__, __LINE__);
		ret = -1;
		goto exit2;
	}

	//跳過前10幀
	skip = 10;
	while(skip--) {
		ret = usbcamera_getframe(CAMERA_INDEX, pbuf);
		if (ret) {
			printf("error: %s, %dn", __func__, __LINE__);
			goto exit1;
		}
	}

	/* tips: 可以在Ubuntu下用mplayer播放錄制圖像
	*	mplayer -demuxer rawvideo -rawvideo w=1280:h=720:format=bgr24 photo -loop 0
	*/
	fp = fopen("/tmp/photo", "w");
	if (!fp) {
		printf("error: %s, %dn", __func__, __LINE__);
		ret = -1;
		goto exit2;
	}
	fwrite(pbuf, 1, IMAGE_SIZE, fp);
	fclose(fp);

exit1:
	free(pbuf);
	pbuf = NULL;
exit2:
	usbcamera_exit(CAMERA_INDEX);
exit3:
    return ret;
}

其中usbcamera_init(),usbcamera_getframe(),usbcamera_exit()是對v4l2接口調用的易用化封裝。具體實現于02_camera/commonApi/usb_camera/usb_camera.c。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    8180

    瀏覽量

    272782
  • 攝像頭
    +關注

    關注

    61

    文章

    4976

    瀏覽量

    98335
  • 開發板
    +關注

    關注

    25

    文章

    5676

    瀏覽量

    104582
  • rk3576
    +關注

    關注

    1

    文章

    173

    瀏覽量

    716
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于RK3576開發板的WDT看門狗使用說明

    RK3576開發板的WDT使用說明
    的頭像 發表于 05-06 17:15 ?626次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的WDT看門狗使用說明

    基于RK3576開發板的TF卡槽使用說明

    RK3576開發板使用TF卡槽
    的頭像 發表于 05-07 09:24 ?747次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的TF卡槽使用說明

    基于RK3576開發板的PWN使用說明

    RK3576開發板使用PWN教程及Demo
    的頭像 發表于 05-07 14:07 ?1273次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PWN使用說明

    基于RK3576開發板的RTC使用說明

    文章主要展示RK3576開發板的RTC信息和快速上手例程
    的頭像 發表于 05-07 15:04 ?804次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的RTC使用說明

    基于RK3576開發板的人臉識別算法

    RK3576開發板展示人臉識別算法例程和API說明
    的頭像 發表于 05-07 16:48 ?1931次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人臉識別算法

    【米爾RK3576開發板評測】帶你初步了解米爾RK3576這塊開發板

    這幾天剛收到米爾郵寄過來的米爾RK3576開發板,收到板子的拆箱的第一感覺就是驚艷。巴掌大小的一塊開發板上集成度非常高,布線很合理,元件布局也很整齊,黑色的板子也非常高端。 給大家看一下收到
    發表于 12-18 20:35

    【米爾RK3576開發板評測】+項目名稱【米爾RK3576開發板評測】一個視頻和你共同認識一下米爾RK3576開發板

    收到米爾RK3576開發板后,也對米爾RK3576開發板進行了了解,米爾這款開發板真的很不錯,下面是官方的一些參數介紹: MYC-LR
    發表于 12-18 20:50

    米爾瑞芯微RK3576實測輕松搞定三屏八攝像頭

    推出的MYD-LR3576開發板開發了一個三屏異顯,8路攝像頭輸入的DEMO, 實測下來,RK3576輕松搞定了該任務。 MYD-LR
    發表于 01-17 11:33

    新品發布 ▏全網首發!瑞芯微RK3576開發板:智能設備革新的AI核心引擎

    近期,合眾恒躍繼推出HZ-CORE-RK3576核心后,再次發布了HZ-EVM-RK3576開發板,該開發板集成了
    的頭像 發表于 08-29 13:59 ?2014次閱讀
    新品發布 ▏全網首發!瑞芯微<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>:智能設備革新的AI核心引擎

    米爾RK3576開發板特惠活動!

    近日,米爾電子發布基于瑞芯微RK3576核心開發板RK3576作為國產熱門處理器,其高性能數據處理能力、領先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發表于 11-12 01:00 ?852次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>特惠活動!

    迅為RK3576開發板核心與底板接口硬件介紹

    迅為RK3576開發板核心與底板接口硬件介紹
    的頭像 發表于 01-14 15:15 ?1511次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    RK3576有多強?實測三屏八攝像頭輕松搞定

    的MYD-LR3576開發板開發了一個三屏異顯,8路攝像頭輸入的DEMO,實測下來,RK3576輕松搞定了該任務。MYD-LR
    的頭像 發表于 01-16 08:06 ?658次閱讀
    <b class='flag-5'>RK3576</b>有多強?實測三屏八<b class='flag-5'>攝像頭</b>輕松搞定

    基于RK3576開發板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯盟下的Display工作組指定的DSI(Display Serial Interface)的接口標準。rk3576開發板使用mipi-dsi教程
    的頭像 發表于 05-06 16:11 ?369次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的MIPI-DSI使用

    迅為RK3576開發板攝像頭實時推理測試-ppseg?圖像分割

    迅為RK3576開發板攝像頭實時推理測試-ppseg 圖像分割
    的頭像 發表于 07-11 14:31 ?285次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b><b class='flag-5'>攝像頭</b>實時推理測試-ppseg?圖像分割

    迅為八核高算力RK3576開發板攝像頭實時推理測試?ppyoloe目標檢測

    迅為八核高算力RK3576開發板攝像頭實時推理測試 ppyoloe目標檢測
    的頭像 發表于 07-14 15:18 ?215次閱讀
    迅為八核高算力<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b><b class='flag-5'>攝像頭</b>實時推理測試?ppyoloe目標檢測
    主站蜘蛛池模板: 色婷婷九月| 男人午夜网站 | 天天摸天天做天天爽水多 | 欧美在线一区二区三区 | 天天操天天干天天舔 | 久久刺激视频 | 亚洲婷婷综合中文字幕第一页 | 国产黄色在线视频 | www.亚洲色图.com | 人人干人人艹 | 男人和女人做免费做爽爽视频 | 午夜看片在线观看 | 婷婷成人丁香五月综合激情 | 天天摸天天干 | 亚洲a区视频 | 禁漫画羞羞动漫入口 | 四虎国产 | 欧美特黄三级在线观看 | 天天色综合色 | 久久精品视频5 | 99热久| 欧美色网在线 | 国产一级特黄高清在线大片 | 91视频综合网 | 美女黄网站人色视频免费国产 | 朱元璋传奇1998王耿豪版 | 九九美剧 | 韩国a级床戏大尺度在线观看 | 午夜免费视频福利集合100 | 俄罗斯美女在线观看一区 | 国产成人综合久久 | 啪啪中文字幕 | 99久久99久久 | 日韩一级欧美一级 | 黄色免费看视频 | 欧美一级精品 | 日本午夜大片免费观看视频 | 最近2018年在线中文字幕高清 | 尤物蜜芽福利国产污在线观看 | 国产黄色在线网站 | 亚洲欧美网 |