專業(yè)智能車上位機(jī)調(diào)試軟件
一、如果有這樣的一個功能,它可以讓你看到你所采集的圖像長什么樣,并且還可以看到經(jīng)過你各種濾波算法處理過后圖像的模樣,然后你就可以通過它輕易看出你的算法是否合理,或者分析怎么樣進(jìn)一步優(yōu)化你的算法了。你難道不興奮,不垂涎嗎?對,要實(shí)現(xiàn)這個功能就要通過上位機(jī)了。也許你可能會說那不簡單嘛,網(wǎng)上串口調(diào)試軟件一大堆,隨便拿一個來接收數(shù)據(jù)觀察保存數(shù)據(jù),然后在處理不就完了嘛。其實(shí)這種想法是可以的,也是50%以上的朋友調(diào)車時所采用的方法,但是這種調(diào)試方式實(shí)現(xiàn)起來真是的履步維艱啊,可能你已經(jīng)體會到調(diào)試過程中的艱辛了。一大堆的數(shù)據(jù),這么混亂不清,雖然看到這些數(shù)據(jù)自己已經(jīng)激動得不得了,但是真的要從這些數(shù)據(jù)中挖掘?qū)ξ覀冋{(diào)試有利的信息其實(shí)是比較很繁瑣的,多半都是在做一些無用功爾,況且你下載的串口調(diào)試軟件中如果做得不是很好的話,發(fā)送速度一加塊,數(shù)據(jù)的實(shí)時顯示功能就不行了,有甚卡死直接未響應(yīng)了。
二、到這里可能就會有些高手笑著說:“串口?速度這么慢,問題這么多,這么低端,我們不用它,我們用SD卡,SD卡高端!”。嗯,沒錯,做上位機(jī)分析數(shù)據(jù)的另一種方式就是把采集到的圖像數(shù)據(jù)信息存儲到SD卡當(dāng)中,每過一段時間取出SD卡然后放到電腦中用軟件讀取出圖像數(shù)據(jù)來再進(jìn)行分析處理等。這種方式很大程度上保證所采集數(shù)據(jù)的完整性。但有一個問題就是,你是不是得讓跑一段距離后,再拿出SD卡,然后再處理,當(dāng)你看到采集回來的圖像這么完整漂亮,說不出的喜悅之情在所難免的,但是車子方向和攝像頭角度的精確位置你真的很難憑圖像逆推出來了,而且,玩一小段路程下來,你真的是費(fèi)了不少的勁了,弄不好有的朋友真的可能已經(jīng)把好好的車子給調(diào)試壞了,真是折騰不起啊,傷不起啊。雖然說折騰無極限,折騰本身就是一種精神,沒有折騰地去實(shí)踐,車子不會跑起來的,也不可能會跑得比原來快一點(diǎn)點(diǎn)的,所以許許多多的智能車愛好者就奮不顧身地把有限的時間投入到了無限調(diào)試當(dāng)中了,就是為了愛車能跑再快一點(diǎn)、再快一點(diǎn),就這樣費(fèi)勁心思、廢寢忘食、沒日沒夜地進(jìn)行調(diào)試,不斷的修改算法、修改參數(shù),總感到不太完美,又無法取得突破,真是到了瓶頸階段了,到了最后就看運(yùn)氣了,看老天爺了,但是結(jié)局怎樣其實(shí)已經(jīng)明顯了,但這不能怪你思維不好,算法不優(yōu)秀,只能怪調(diào)試方式有問題,調(diào)試工具不夠精良。
三、所以,影響車子的最終速度在于調(diào)試階段。這款專用調(diào)試軟件就是在這種復(fù)雜的需求下應(yīng)運(yùn)而生了,它給專注于調(diào)試硬件電路、調(diào)試圖像處理算法、控制算法的朋友們提供一個操作方便,功能強(qiáng)大的上位機(jī)調(diào)試環(huán)境。通過它,你只要簡單把采集到的圖像數(shù)據(jù)發(fā)到串口,每張圖像數(shù)據(jù)開始發(fā)送時先發(fā)送個標(biāo)志位如0x01,告訴上位機(jī)一幅圖像開始了。然后設(shè)置上位機(jī)的圖像的寬度和高度跟下位機(jī)采集的一樣就行了,通過上位機(jī)就可以實(shí)時的顯示圖像信息了。然后你只要簡單的把圖像處理的那部分算法源碼加到我們提供的一個VC6.0的模板工程里頭的一個函數(shù)里面,編譯會生成一個后綴名為dll的文件,你在軟件中加載這個dll算法庫,就生成一個算法插件了。以后通過點(diǎn)擊這個插件按鈕就可以看到處理后的效果啦,邊上下瀏覽變處理,豈不快哉!
下面介紹這個調(diào)試軟件擁有的功能和使用方法。
1、實(shí)時性好,能夠非常流暢地顯示攝像頭采集的實(shí)時圖像。
2、串口數(shù)據(jù)丟失少,幾乎不存在數(shù)據(jù)丟失的情況。即便波特率設(shè)定為25000連續(xù)不斷的發(fā)送,也是沒有任何問題的,因?yàn)榻?jīng)過測試,每秒發(fā)100kb的數(shù)據(jù),軟件接收和顯示均良好。(說明:在高速接收串口數(shù)據(jù)時請不要來回拖動點(diǎn)擊軟件窗口,因?yàn)闇y試發(fā)現(xiàn)頻繁地放大縮小或者頻繁點(diǎn)擊軟件窗口會導(dǎo)致接收數(shù)據(jù)的不完整)
3、 強(qiáng)大的歷史圖像瀏覽功能,可以通過點(diǎn)擊上位機(jī)的上一張、下一張按鈕瀏覽全部的歷史圖像以及圖像數(shù)據(jù)信息。軟件內(nèi)部默認(rèn)開辟50張的圖像內(nèi)存大小,當(dāng)軟件接收到超過50張時,則以50張圖片的內(nèi)存大小遞增,軟件能夠臨時存儲的圖片數(shù)由計算機(jī)內(nèi)存決定。由于下位機(jī)采集的圖像一般像素比較低,所以臨時保存幾十萬張圖像是沒有任何問題的。
4、 圖像灰度值數(shù)據(jù)列表,對任何圖像都可以選擇查看,它就是下位機(jī)上傳上來的實(shí)際數(shù)據(jù)了。
5、 可以選擇保存當(dāng)前正在瀏覽的圖像,也可以一下子保存全部接收到的圖像。看哪張PP順眼就保存哪張這個功能就比較人性化了。
6、友好的界面設(shè)計,可以任意調(diào)節(jié)軟件窗口大小,圖像顯示區(qū)域會自動適應(yīng)窗口的大小,圖像與數(shù)據(jù)顯示區(qū)域內(nèi)部也可以通過拖動十字線進(jìn)行拉伸或者縮小,使用時非常方便。
7、 實(shí)用、豐富的界面信息顯示,動態(tài)顯示串口接收到的圖像數(shù)、當(dāng)前圖像已接收的字節(jié)數(shù)、總接收字節(jié)數(shù)、總丟失字節(jié)數(shù)(這里需要解釋一下總丟失字節(jié)數(shù),我們發(fā)送數(shù)據(jù)時為了標(biāo)志一幀圖像的開始,我們需要發(fā)一個專用字節(jié)來進(jìn)行標(biāo)志,當(dāng)上位機(jī)接收到兩個標(biāo)志位并且兩個標(biāo)志位之間的數(shù)目正好是一幅圖像的數(shù)據(jù)就表明一幀圖像接收完成,假如收到兩個標(biāo)志位之間的字節(jié)數(shù)小于一幀圖像的字節(jié)數(shù),就說明數(shù)據(jù)丟失了。所以我們的標(biāo)志位應(yīng)該設(shè)置一些極端值,也就是一些攝像頭幾乎永遠(yuǎn)不可能采集到的灰度值,比如0或者255等一些特殊值)。通過這些參數(shù)信息可以輕易看出下位機(jī)采集數(shù)據(jù)以及往串口發(fā)送數(shù)據(jù)時的工作情況。
8、 圖像灰度值抓取功能,當(dāng)啟動灰度圖抓取功能后用鼠標(biāo)指向圖片中任何部位,即可顯示當(dāng)前點(diǎn)的灰度值。對圖像每個具體細(xì)節(jié)的灰度值觀察變得簡單快捷。
9、 圖像直方圖顯示功能,通過它你可以輕易看到每個灰度值在一幅圖像中出現(xiàn)的頻率了。
10、極富魅力、震撼力的算法插件功能,該功能真的讓你從此告別盲調(diào)了。并且算法插件由你自己編寫,會提供一個vc6.0的工程模板,在里面給出一個提供有圖像數(shù)據(jù)信息的函數(shù)下寫算法代碼就可以了,實(shí)現(xiàn)非常簡單,把下位機(jī)的算法代碼拷貝到里頭基本不用修改什么就可以編譯通過,而且想添加多少個算法插件都無所謂,想怎么添加就怎么添加。這樣你就擁有了無限的算法庫了,并且可以直觀看到每種算法的實(shí)際效果了。
11、自定義幀頭協(xié)議。
12、保存灰度值數(shù)據(jù)數(shù)組txt。
開發(fā)環(huán)境:Windows7 32位 + VC6.0 。
關(guān)鍵技術(shù):1、本軟件使用MFC類庫做界面開發(fā)。
2、串口通信技術(shù),本軟件使用微軟提供的MSCOMM32.OCX控件進(jìn)行串口操作。
3、多線程技術(shù),本軟件使用三條線程進(jìn)行處理,一條線程負(fù)責(zé)接收數(shù)據(jù),一條負(fù)責(zé)數(shù)據(jù)處理操作
最后一條線程進(jìn)行界面更新操作。使得在高速接收串口數(shù)據(jù)的情況下,軟件運(yùn)行順暢。
4、緩沖區(qū)機(jī)制,本軟件使用三級緩沖區(qū)的機(jī)制,每個緩沖區(qū)采用雙向循環(huán)鏈表實(shí)現(xiàn)。
減少數(shù)據(jù)丟失的情況,而且非常靈活實(shí)現(xiàn)對這些數(shù)據(jù)進(jìn)行操作處理。
5、DLL動態(tài)鏈接庫技術(shù),實(shí)現(xiàn)算法庫的動態(tài)添加,動態(tài)算法庫使用C語言編寫,
編譯生成DLL文件,加載到軟件形成算法插件,直接點(diǎn)擊插件按鈕使用,就可以看到處理后的效果,
真正意義上實(shí)現(xiàn)了模擬單片機(jī)程序的執(zhí)行情況。
6、VC對位圖的基本操作技術(shù)。
好了,每種技術(shù)背后所實(shí)現(xiàn)的具體細(xì)節(jié)就不多說了,因?yàn)樯婕凹夹g(shù)面廣,況且每種技術(shù)都是比較繁雜的,也就不可能僅靠一兩篇文章就能說得清的。截圖上來吧,要不然又要說什么無圖無真相了,下面是軟件截圖:
0.png (282 KB, 下載次數(shù): 34)
下載附件
2018-7-11 03:22 上傳
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg
|