瓦力視覺控制程式

2021-07-02 06:17:36 字數 849 閱讀 3303

上位機是採用了aforge.net framework-2.2.3和ez-b sdk windows v2011.11.09.00的結合。aforge真的很強大,不過沒有涉及到控制這塊,ezb就有現成的參考,但ezb沒有提供核心部分的**,而它只支援本地攝像頭,所以我只能反編譯獲取需要的**,移植到aforge的motiondetectorsample這個例子裡面。

工程檔案

源**解讀

motiondetector也很簡單,主要就是process_frame方法,用來做運動檢測,比如對比2個畫面,有哪些畫素的改變等等。我移植ezb的3個motiondetector和原來的detector有一點點不同。由於需要對運動的區域定位,並控制瓦力頭部的轉動,我寫了乙個父類detector.cs,這裡我們在processframe之前,先用drawquad方法畫幾條線,把畫面分成9塊。在processframe之後,我們就會得到乙個位置,在畫面哪一塊發現了顏色(運動),然後呼叫controller去控制瓦力頭部運動。

controller.cs是控制瓦力運動的,這個檔案也要根據你的舵機修改,它會呼叫sender去傳送指令,這裡我們不直接呼叫socketsender,因為考慮到我們還有很多方法傳送控制指令,比如藍芽,當我們寫了乙個新的bluetoothsener後,只需換乙個呼叫就可以了。controller會在mainform初始化的時候被建立,但是只有在sender連線後才會傳送指令。

logtimer是每秒10次的定時器,定時去detector把找到運動區域的資訊,還有去sender把傳送的指令顯示在mainform。

至於zb的3個motiondetector的原理,我也只是反編譯了然後直接拿來用,沒有認真研究,大概的原理,其實也是2個畫面的畫素比較吧。

使用說明

瓦力視覺控制程式

2012 01 30 上位機是採用了aforge.net framework 2.2.3和ez b sdk windows v2011.11.09.00的結合。aforge真的很強大,不過沒有涉及到控制這塊,ezb就有現成的參考,但ezb沒有提供核心部分的 而它只支援本地攝像頭,所以我只能反編譯獲取...

Access使用巨集控制程式

巨集是指乙個或多個www.cppcns.com操作的集合,其中每個操作實現特定的功能,例如開啟某個窗體或列印某個報表。巨集可以使某些普通的任務自動完成。例如,可設定某個巨集,在使用者單擊某個命令程式設計客棧按鈕cvpbmstdwj時執行該巨集,以開啟某個窗體程式設計客棧。巨集可以是包含操作序列的乙個...

ABAP中控制程式原始碼

如何將report程式的原始碼讀入內錶,並進行修改操作?abap中提供一系列指令來實現此功能。語法如下 insert report prog from itab.根據內錶內容更新程式 read report prog into itab.將程式讀入內錶 delete report prog.刪除程式...