色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內(nèi)不再提示

基于RK3576開發(fā)板的USB攝像頭使用

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-06 15:30 ? 次閱讀

1. USB簡介

USB:Universal Serial Bus(通用串行總線)。是一種常用于電子設備間通訊的通用標準接口。USB 總線作為一種高速串行總線,其極高的傳輸速度可以滿足高速數(shù)據(jù)傳輸?shù)膽铆h(huán)境要求。

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

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支持熱插拔,但在沒給底板加裝外殼保護的情況下,很容易觸碰到底板上的器件,甚至板卡附近有金屬零件很容易造成板卡短路。因此也建議在插拔外設時,最好確保電源已經(jīng)完全切斷。

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

wKgZPGgZuxuADpbUABBATP1PZ6M198.png

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

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

1.3 USB設備的接入管理介紹

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

lsusb
wKgZO2gZuxuANRxGAACn3rUsY54565.png

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

USB設備的設備命名方式規(guī)則如下:

設備對象的命名規(guī)則
設備 命名規(guī)則 描述
總線對象 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開始
設備對象的接口命名規(guī)則
設備 命名規(guī)則 描述
設備對象的接口對象 device_object:config.interface
注:以“:”冒號分割設備對象和后續(xù)元素。后續(xù)元素有配置和接口,二者以“.”句號分割
device_object:設備對象,上面總線對象、質(zhì)量設備、經(jīng)過hub的設備統(tǒng)稱為設備對象
config:USB設備的配置描述符,一個USB設備可在不同系統(tǒng)、不同架構下運行的前提就是使用了不同的配置描述符
interfece:USB設備的接口描述符,例如一個USB對講機,有負責處理播音的接口以及負責錄音的接口。

1.4 尋找可用的設備節(jié)點

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

wKgZPGgZuxuAWLNlAADvzgIeWh8195.png

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

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

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

wKgZO2gZuxuADWWiAADHhD6GKVk928.png

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

wKgZPGgZuxyAX3T5AACoy7qNgMI403.png

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

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

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

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

2. 快速上手

2.1 例程源碼下載

到【百度網(wǎng)盤】上下載相關的單例程序:

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

提取碼: 1234

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

wKgZO2gZuxyAcL2tAACzjzn_OTw582.png

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

wKgZPGgZuxyAdw_5AAEDr7CBhzE034.png

2.2 例程編譯&運行

通過adb shell進入開發(fā)板環(huán)境,執(zhí)行下方命令定位到demo目錄,并且執(zhí)行編譯操作。

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

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

執(zhí)行下方命令以運行demo,如下所示。

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

執(zhí)行效果如下所示。

wKgZPGgZux2AAXg8AABMW6Vj5_0978.png

然后把/tmp/photo拷貝到當前目錄下的Release內(nèi)

cp /tmp/photo ./Release/

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

wKgZO2gZux2AEmOxAACKiBD90sU960.png

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

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

例程默認分辨率為1280x720,故w和h的參數(shù)對應填入1280和720。當出現(xiàn)圖片異常時,說明分辨率等不太對應于手頭的攝像頭,所以需要調(diào)整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接口調(diào)用的易用化封裝。具體實現(xiàn)于02_camera/commonApi/usb_camera/usb_camera.c。

審核編輯 黃宇

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

    關注

    60

    文章

    8150

    瀏覽量

    271219
  • 攝像頭
    +關注

    關注

    61

    文章

    4959

    瀏覽量

    97775
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5570

    瀏覽量

    102894
  • rk3576
    +關注

    關注

    1

    文章

    153

    瀏覽量

    602
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    基于RK3576開發(fā)板的WDT看門狗使用說明

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

    基于RK3576開發(fā)板的TF卡槽使用說明

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

    基于RK3576開發(fā)板的PWN使用說明

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

    基于RK3576開發(fā)板的RTC使用說明

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

    基于RK3576開發(fā)板的人臉識別算法

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

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

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

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

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

    【米爾RK3576開發(fā)板評測】+項目名稱值得購買的米爾RK3576開發(fā)板

    米爾依然是核心加擴展板的模式,我拿到手的開發(fā)板,核心已經(jīng)通過LGA貼片,焊好了。 開發(fā)板做工很好,布線細致工整。 RK3576
    發(fā)表于 01-08 22:59

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

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

    新品發(fā)布 ▏全網(wǎng)首發(fā)!瑞芯微RK3576開發(fā)板:智能設備革新的AI核心引擎

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

    米爾RK3576開發(fā)板特惠活動!

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

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

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

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

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

    基于RK3576開發(fā)板的MIPI-DSI使用

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

    基于RK3576開發(fā)板的揚聲器和耳機使用說明

    RK3576開發(fā)板的揚聲器和耳機使用說明
    的頭像 發(fā)表于 05-06 16:36 ?262次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的揚聲器和耳機使用說明
    主站蜘蛛池模板: 大地影院免费观看视频 | 欧美午夜福利主线路 | 国产偷国产偷亚洲高清SWAG | 久久91精品国产91久久户 | 国产综合自拍 偷拍在线 | 把内衣脱了把奶露出来 | 国产白丝精品爽爽久久久久久蜜臀 | 日本一本二本三区免费免费高清 | qvod 电影| 久久视频这里只精品99热在线 | 良家人妻无码专区九色颜射 | 猫咪www958ii| 午夜AV内射一区二区三区红桃视 | 欧美18videosex性欧美老师 | 国产嫩草影院精品免费网址 | 一区二区三区福利视频 | 2023极品少妇XXXO露脸 | 日韩伦理电影秋霞影院 | 久久只有这里有精品4 | 岛国大片在线播放免费 | 丝袜诱惑qvod | 日日夜夜操操操 | 高h 大尺度纯肉 np快穿 | 男人桶女人j的视频在线观看 | 国语自产视频在线 | 久久精品黄AA片一区二区三区 | 回复术士人生重启在线观看 | metart中国撒尿人体欣赏 | 福利社影院 | 欧美性爱-第1页 | 野花韩国高清完整版在线观看5 | 国产AV精品久久久毛片 | 直插下身完整的欧美版 | 少妇精品无码一区二区三区 | 精品人妻伦一二三区久久AAA片 | 日本最新在线不卡免费视频 | 狠狠色噜噜狠狠狠狠米奇777 | 亚洲国产中文字幕在线视频综合 | 国产WW高清大片免费看 | 美女丝袜夹b | 亚洲中字幕永久在线观看 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品