之前看到牛人用各種“外掛”--Python,尺子,Arduino,甚至大殺器喵星人等等來玩“跳一跳”,放假后剛好有點時間,決定也用LabVIEW來玩一下。
先看視頻:
由于程序還不夠完善,200+分的時候就陣亡了,完全不用當心騰訊封號啥的。想要刷到幾千分估計得多花一兩天時間,畢竟我們不是專業(yè)玩游戲的,意思一下就行。程序相對于以往的項目略顯復雜,所以決定把源代碼分享出來供大家參考學習。當然本人時間和精力超級有限,用的是最簡單粗暴的方法,大家有時間就自己去研究和加以改善。
意思一下之主界面:
簡單粗暴之硬件接線:
沒錯,只要一部屌絲手機,一個舵機(原諒我用紅酒瓶來固定),一塊鋰電池或者5V電源,一條長導線,長導線一端接著濕棉花,紙巾,觸控筆或者其他亂七八糟的東西都行,另外一端直接甩地上就可以。Arduino只用到5號引腳發(fā)信號,控制舵機轉動一定的角度,實現(xiàn)按壓動作。
亂七八糟之程序部分:
參考我百度云網(wǎng)盤分享的源程序,這里只大致講一下思路。
1.采集圖像,先使用Total Control把手機界面映射到電腦顯示器,用其他軟件也可以,再用VCam錄制選中區(qū)域的圖像,VCam會同時生成幾個虛擬攝像頭,隨便選一個即可,這里我選擇映射到“e2e soft VCam 01”。打開NI MAX,可以看到我選擇的虛擬攝像頭被識別成“cam11”。
2.識別出“棋子”,使用視覺助手,“Image Mask 2”選擇感興趣部分,用“Color Plane Extraction 1”提取出亮度部分,用“Pattern Matching 1”制作模板后進行模式匹配。
3.識別出“物品”,由于物品種類繁多,背景顏色還在不斷的變化,這些都會引起干擾,所以用最笨的方法,建了一個模板庫,每一個模板都去匹配算出得分,最后篩選出得分最高的模板。這樣做還會引進一個運行速度慢的問題,所以我開了5個While循環(huán)來并行的進行模式匹配工作,最后把結果匯總起來再篩選出得分最高的模板,提高效率。
4.用步驟2和步驟3,通過識別出來的坐標,用勾股定理算出斜邊,也就是距離,乘以一個系數(shù)Coefficient,通過調試,結合效果,調整Coefficient的大小,算出每次按壓的時間。
5.舵機動作,按壓時間為步驟4算出的時間,這里“1000”微秒的脈寬對應按下的角度。
6.進入下一次循環(huán)。
時間精力有限,講解略顯粗糙,請見諒!
最后總結一下所需軟件與工具包,附上下載地址:
Total Control:
http://tc.sigma-rt.com.cn/download/client/Total_Control_6_5_5_Install.zip
e2eSoft VCam:
http://sqdownb.onlinedown.net/down/VCam_v5.2.zip
LabVIEW 2014:
http://download.ni.com/evaluation/labview/ekit/other/downloader/2014LV-WinEng.exe
VDM視覺工具包:
http://download.ni.com/evaluation/labview/ekit/other/downloader/VISION_2014_F1.exe
VAS視覺采集工具包:
http://download.ni.com/support/softlib/vision/Vision%20Acquisition%20Software/August%202014%20f1/VAS_2014_08_F1.zip
聯(lián)系客服