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