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