国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    8440

    瀏覽量

    284547
  • 攝像頭
    +關注

    關注

    61

    文章

    5091

    瀏覽量

    103128
  • 開發板
    +關注

    關注

    26

    文章

    6291

    瀏覽量

    118145
  • rk3576
    +關注

    關注

    1

    文章

    267

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

    RK3576開發板展示人臉識別算法例程和API說明
    的頭像 發表于 05-07 16:48 ?2740次閱讀
    基于<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開發板測評

    米爾RK3576開發板測評作品合集 產品介紹: RK3576 是瑞芯微一款面向AI市場推出的高性能處理器,它配備了四核Cortex-A72和四 核Cortex-A53 的 CPU,集成了6TOPS
    發表于 09-11 10:19

    【作品合集】靈眸科技EASY EAI Orin Nano(RK3576開發板測評

    試用體驗】--WiFi連接與nfs共享 【EASY EAI Orin Nano(RK3576開發板試用體驗】--USB攝像頭使用 【EASY EAI Orin Nano(
    發表于 09-09 09:59

    360環視硬件平臺為什么推薦使用米爾RK3576開發板

    。憑借先進的 SoC 架構與完善的多媒體引擎,它不僅具備 12路攝像頭 的高清視頻接入能力,還能將編碼與 RTSP 低延遲推流 組合成體系化方案,為360環視提供穩定可靠的底座。 米爾RK3576開發板
    發表于 09-19 17:38

    RK3576機器人核心:三屏異顯+八路攝像頭,重塑機器人交互與感知

    開發板的實際演示證明,RK3576能夠輕松處理三屏顯示和八路攝像頭輸入的復雜任務,同時保持低功耗和低發熱特性,為機器人應用提供了理想的性能基礎。 實測見證:RK3576輕松駕馭三屏八
    發表于 10-29 16:41

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

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

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

    迅為RK3576開發板攝像頭實時推理測試-ppseg 圖像分割
    的頭像 發表于 07-11 14:31 ?876次閱讀
    迅為<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 ?1276次閱讀
    迅為八核高算力<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b><b class='flag-5'>攝像頭</b>實時推理測試?ppyoloe目標檢測

    迅為八核高算力RK3576開發板攝像頭實時推理測試?RetinaFace人臉檢測

    迅為八核高算力RK3576開發板攝像頭實時推理測試 RetinaFace人臉檢測
    的頭像 發表于 07-21 15:29 ?1120次閱讀
    迅為八核高算力<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b><b class='flag-5'>攝像頭</b>實時推理測試?RetinaFace人臉檢測

    RK3576基于UVC協議USB攝像頭配置指南,手把手教你搞定

    瑞芯微RK3576芯片平臺基于UVC協議,配置USB攝像頭實現即插即用的適配采集功能,基于觸覺智能RK3576開發板PurplePiOH2演
    的頭像 發表于 01-16 17:11 ?820次閱讀
    <b class='flag-5'>RK3576</b>基于UVC協議<b class='flag-5'>USB</b><b class='flag-5'>攝像頭</b>配置指南,手把手教你搞定