新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C2410的輔助倒車(chē)數(shù)字圖象系統(tǒng)設(shè)計(jì)

基于S3C2410的輔助倒車(chē)數(shù)字圖象系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2009-02-26 來(lái)源:網(wǎng)絡(luò) 收藏

1 、引言

本文引用地址:http://www.2s4d.com/article/152634.htm

  據(jù)統(tǒng)計(jì),由于車(chē)后盲區(qū)所造成的交通事故在中國(guó)約占30%,美國(guó)20%。前兩代產(chǎn)品,一種是喇叭,一種是雷達(dá)。前者只能提醒路人自行躲閃,而司機(jī)卻一無(wú)所知,固定的障礙物更是無(wú)法探測(cè),起到的作用微乎其微,后者雖能把固定的障礙物通過(guò)報(bào)警的形式告知司機(jī),但司機(jī)還是無(wú)法判斷障礙物的確切位置,更不能探測(cè)地坑或低矮障礙物。

  目前,國(guó)內(nèi)外的研究趨勢(shì)是在倒車(chē)?yán)走_(dá)的基礎(chǔ)上采用圖像處理技術(shù),利用強(qiáng)大的嵌入式處理器,開(kāi)發(fā)用于檢測(cè)車(chē)后物距和監(jiān)視車(chē)后圖像的優(yōu)點(diǎn)相結(jié)合的車(chē)載可視倒車(chē)裝置。

  因此本文提出一種0倒車(chē),該不但使駕駛員可以在車(chē)內(nèi)觀(guān)察到汽車(chē)車(chē)尾的真實(shí)場(chǎng)景,而且可以通過(guò)所帶的測(cè)距報(bào)警模塊可以實(shí)時(shí)測(cè)距,并在車(chē)與障礙物過(guò)近時(shí),對(duì)駕駛員實(shí)施語(yǔ)音報(bào)警,從而克服了后試鏡小,視野窄的缺點(diǎn),使倒車(chē)變得更加快速高效,增強(qiáng)倒車(chē)的安全性。

  2、系統(tǒng)概述

  系統(tǒng)以0為主控制器,主頻最高可達(dá)266MHz,選用Linux2.6.14.1操作系統(tǒng),系統(tǒng)總體可以被分為三個(gè)部分:

1) 圖像數(shù)據(jù)實(shí)時(shí)
2) 測(cè)距報(bào)警模塊設(shè)計(jì);
3) 人機(jī)交互界面設(shè)計(jì)。

  圖像數(shù)據(jù)實(shí)時(shí)主要是實(shí)現(xiàn)圖像數(shù)據(jù)實(shí)時(shí)采集并顯示在顯示器上,系統(tǒng)通過(guò)裝在汽車(chē)尾部的攝像頭采集車(chē)后實(shí)時(shí)圖像,并將圖像顯示在終端 上。測(cè)距報(bào)警模塊以超聲波測(cè)距電路來(lái)進(jìn)行測(cè)距,當(dāng)所測(cè)距離值超過(guò)系統(tǒng)設(shè)定的安全距離時(shí)實(shí)施語(yǔ)音報(bào)警,人機(jī)交互界面模塊為系統(tǒng)提供了一個(gè)良好的人機(jī)交互界面,配合觸摸屏,操作便利、簡(jiǎn)潔。其系統(tǒng)框架結(jié)構(gòu)圖如圖1所示。

3、圖像數(shù)據(jù)實(shí)時(shí)實(shí)現(xiàn)

  圖像數(shù)據(jù)實(shí)時(shí)顯示模塊采用Linux內(nèi)核公開(kāi)支持ov511芯片的網(wǎng)眼公司的v3000USB攝像頭來(lái)采集圖像,其實(shí)現(xiàn)分為兩部分,Linux內(nèi)核中攝像頭驅(qū)動(dòng)程序模塊的加載和Qt的可視倒車(chē)應(yīng)用程序設(shè)計(jì)。

  3.1 USB驅(qū)動(dòng)模塊動(dòng)態(tài)加載

  在嵌入式Linux的內(nèi)核定制和編譯時(shí),加入對(duì)Video4Linux模塊及OV511設(shè)備的支持,通過(guò)Video4Linux模塊提供的編程接口(API)從OV511設(shè)備中獲取圖像幀。如下配置Linux內(nèi)核:Multimedia device-> M >VideoforLinux; usb support->M>usb camera ov511,采用模塊方式編譯video4Linux驅(qū)動(dòng)和OV511攝像頭驅(qū)動(dòng),用命令insmod加載USB及OV511設(shè)備驅(qū)動(dòng)模塊。加載驅(qū)動(dòng)后將 OV511攝像頭插入U(xiǎn)SB接口,攝像頭將被正確識(shí)別并生成 /dev/v4l/video設(shè)備。

  3.2 可視倒車(chē)程序設(shè)計(jì)

  倒車(chē)過(guò)程中駕駛員與軟件交互操作較少,因此無(wú)需設(shè)計(jì)復(fù)雜的用戶(hù)操作界面。程序的設(shè)計(jì)主要集中在攝像頭圖像的采集上。Linux下進(jìn)行視頻采集是通過(guò)Video4Linux驅(qū)動(dòng)提供的接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu)來(lái)完成,使用Video4Linux操作USB攝像頭的流程如圖2所示。

 在程序設(shè)計(jì)中,與攝像頭相關(guān)的操作和數(shù)據(jù)結(jié)構(gòu)都被封裝在VideoCapture類(lèi)中。其成員函數(shù)通過(guò)Video4Linux提供的接口完成對(duì)攝像頭的具體操作。VideoCapture類(lèi)設(shè)計(jì)如下:

Class VideoCaPture
{ Public:

bool hasCamera() const
//判斷是否有可用的攝像頭
Void getCameralmage(Qlmage img),
//獲取攝像頭的圖像數(shù)據(jù)
QSize captureSize()const;//返回?cái)z像使用的分辨率
Void setCaptureSize(QSizesize);//設(shè)置攝像使用的分辨率
int minimumFramePeriod() const;
Private:

struct video_mbuf mbuf;//進(jìn)行內(nèi)存映射的幀信息

void setupCamera(QSize size);//攝像頭初始化及參數(shù)設(shè)置函數(shù)
void shut down();//關(guān)閉攝像頭
};

  VideoCapture類(lèi)中的void setupCamera(QSize size)成員函數(shù)來(lái)初始化USB攝像頭設(shè)備,根據(jù)系統(tǒng)顯示器的特點(diǎn),主要參數(shù)設(shè)置為:圖像色彩模式設(shè)置為 VIDEO_PALETTE_RGB565 格式;圖像分辨率設(shè)置為640*480;圖像位深設(shè)置為16位。每采集一幀數(shù)據(jù)后調(diào)用ioctl(fd,VIDIOCSYNC,frame)函數(shù)等待采集結(jié)束,然后根據(jù)需要繼續(xù)采集下一幀圖像或關(guān)閉攝像頭。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉