葉開 秦航 陳東紅 張偉 陳錫愛
摘 要:針對(duì)攝像頭智能車運(yùn)行時(shí)圖像數(shù)據(jù)過大,無法利用藍(lán)牙或者2.4G實(shí)時(shí)傳輸?shù)膯栴},本文設(shè)計(jì)了一款基于SD卡的智能車軌跡分析的產(chǎn)品。研究人員利用SD卡記錄小車運(yùn)行軌跡,然后使用上位機(jī)導(dǎo)出相應(yīng)的圖像和速度信息,并保存至文件夾和數(shù)據(jù)庫中。同時(shí),研究人員還可以利用上位機(jī),進(jìn)行軌跡算法的仿真,實(shí)現(xiàn)了離線調(diào)試的功能,提高了調(diào)試效率。
關(guān)鍵詞:SD卡 攝像頭 智能車 算法仿真
中圖分類號(hào):TP24 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)06(a)-0013-03
在小車的控制中,很多算法會(huì)因小車的運(yùn)行情況的不同而發(fā)生改變。所以為了對(duì)小車運(yùn)行軌跡有一個(gè)良好的規(guī)劃,研究人員往往需要小車運(yùn)行時(shí)的圖像和速度信息。
大部分藍(lán)牙支持最大波特率是115200bps,所以每毫秒傳輸?shù)淖畲笞止?jié)是120字節(jié),并且當(dāng)使用最大波特率時(shí),數(shù)據(jù)的丟包率較高,無法做到圖像和速度的實(shí)時(shí)傳輸要求。
而使用串口數(shù)據(jù)線連接時(shí),雖然支持的波特率較高,可以實(shí)時(shí)查看信息。但由于數(shù)據(jù)線拖拽的原因,小車需要靜止在賽道中,不能運(yùn)行。
本文使用了金士頓8GB的Micro SD卡,通過SPI寫數(shù)據(jù)模式,實(shí)測(cè)寫1536個(gè)字節(jié)傳輸花1.2ms,數(shù)據(jù)燒寫花3.1ms。小于攝像頭的場(chǎng)中斷時(shí)間,可以實(shí)時(shí)儲(chǔ)存當(dāng)前的圖像和速度信息。
1 整體設(shè)計(jì)
整個(gè)控制系統(tǒng)由K60主控芯片,OV7725攝像頭,SD卡存儲(chǔ)模塊和基于Visual Studio 2013的上位機(jī)平臺(tái)。首先,利用SD卡存儲(chǔ)小車的軌跡信息,然后,取下SD卡,將其插入讀卡器中,利用上位機(jī)中解碼方式導(dǎo)出圖像和數(shù)據(jù),并存入對(duì)應(yīng)文件夾中。
軌跡算法仿真時(shí),先編寫算法在Detailed_algorithm的類中,然后導(dǎo)入相應(yīng)文件夾中的內(nèi)容。運(yùn)行上位機(jī),檢查算法優(yōu)劣。
系統(tǒng)的整體結(jié)構(gòu)圖如圖1所示。
2 上下位機(jī)軟件設(shè)計(jì)
2.1 下位機(jī)軟件設(shè)計(jì)
K60主控板接通電源,首先初始化SD卡、攝像頭等模塊,然后開啟DMA傳輸攝像頭的數(shù)據(jù),直至攝像頭的場(chǎng)中斷到來,接收完一幀圖像,開始SD卡的存儲(chǔ)。然后,發(fā)送ACMD23指令,預(yù)擦除數(shù)據(jù)塊,發(fā)送CMD25指令,寫入數(shù)2.2 上位機(jī)軟件設(shè)計(jì)
啟動(dòng)上位機(jī),點(diǎn)擊“導(dǎo)出圖像和數(shù)據(jù)”按鈕,這時(shí),上位機(jī)利用其解碼格式,將讀卡器中SD的數(shù)據(jù)導(dǎo)出至選中的文件夾中,同時(shí),也將導(dǎo)出數(shù)據(jù)至對(duì)應(yīng)的數(shù)據(jù)庫中。具體流程,如圖3所示。
軌跡算法仿真時(shí),先編寫算法在Detailed_algorithm的類中,然后點(diǎn)擊“導(dǎo)入圖像和數(shù)據(jù)”按鈕,導(dǎo)入內(nèi)容至上位機(jī)。上位機(jī)根據(jù)之前的圖像和軌跡信息,判斷算法能否實(shí)現(xiàn)相應(yīng)的功能。具體流程如圖4所示。
2.3 上位機(jī)界面設(shè)計(jì)
上位機(jī)界面分為兩個(gè)部分:圖像播放和算法仿真。
圖像播放部分中,你可以選擇圖像的播放速度,然后點(diǎn)擊當(dāng)前幀播放或從頭播放。這時(shí),上位機(jī)會(huì)以設(shè)定的播放速度播放圖像,這時(shí)你將看到小車運(yùn)行時(shí)攝像頭所拍攝的視頻。
圖像的下方是返回的速度信息以及上位機(jī)中的算法所需的一些參數(shù)信息。你可以查看每一幀圖像所對(duì)應(yīng)的信息,提高了調(diào)試效率和方便了查找程度的bug。
圖像的右方是在當(dāng)前幀附近一段時(shí)間的速度和電機(jī)輸出的曲線??梢郧逦姆从吵鲕嚨倪\(yùn)行趨勢(shì)。
算法仿真部分中,你可以編寫相應(yīng)的程序在Visual Studio 2013的C#語言平臺(tái)。然后根據(jù)你之前存儲(chǔ)的大量圖片數(shù)據(jù)。首先,判斷算法是否有誤判或者漏判,然后,根據(jù)所獲得的車身姿態(tài)等數(shù)據(jù)判斷你的算法能否起到應(yīng)有的控制效果。從而可以智能的分析算法的優(yōu)劣。
3 結(jié)語
要達(dá)到一個(gè)好的結(jié)果,一個(gè)好的調(diào)試工具是必不可少的,智能化的調(diào)試方法必將取代傻瓜式的數(shù)據(jù)試驗(yàn)。
文章設(shè)計(jì)的基于SD卡的智能車軌跡分析的產(chǎn)品使得研究人員可以查看小車運(yùn)行時(shí)的圖像和軌跡信息,并以此實(shí)現(xiàn)軌跡算法的仿真,分析算法的優(yōu)劣,從而實(shí)現(xiàn)智能調(diào)試的目的。使用本產(chǎn)品方便了離線分析,使得研究人員更易查找bug,提高了調(diào)試的效率。
參考文獻(xiàn)
[1] 周立功.SD卡讀寫模塊設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004.
[2] 張潔.通用串行總線的SD卡讀寫器的設(shè)計(jì)[J].韶關(guān)學(xué)院學(xué)報(bào),2008(3):29-33
[3] 楊宗德.嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā)[M].北京:北京大學(xué)出版社,2010.
[4] NAGEL C, EVJEN B, GLYNN J, et al.C#高級(jí)編程[M]. 北京:清華大學(xué)出版社,2010.
[5] 韓翠翠.c#調(diào)用c++動(dòng)態(tài)鏈接庫的分析與解決[J].民營(yíng)科技,2013(2):67-68.
[6] 譚振林.道不遠(yuǎn)人深入解析ASP.NET2.0控件開發(fā)[M]. 北京:電子工業(yè)出版社,2007.