機械手臂與程式實作

發佈日期:2022-04-04

楊子鋐

環境與生態學院

綠色能源科技學系

       星期日的下午開始了重頭戲中的重頭戲--機械手臂與程式實作,昨天定義完初始化之後今天的課程較為複雜,如果有一些程式基礎會好一些,但如果沒有程式基礎也沒關係,老師會帶著我們一步一步完成,底座上有一塊控制板,控制板上面有一個搖桿,有前後左右四個方向,另外還有四個按鈕,今天的目標是利用控制板上面的按鈕或搖桿來控制機械手臂,第一步先定義變數,如果先定義變數,之後在執行時會很有幫助去撰寫,我們定義了X軸、Y軸的角度,X軸、Y軸的搖桿移動數值,定義這幾個數值前者的原因是為了記住現在的X分量和Y分量的數值,超過臨界值會不再轉動或移動,後者是因為搖桿在移動時會發出類比的訊號,落在0~1023之間,因此機械手臂接收到這個訊號不知道是甚麼意思,定了這個變數後再利用程式讓機械手臂知道落在哪些區間值要做甚麼動作、要旋轉多少角度,接下來我們定義按鍵A、B、C、D四個,原因是因為真正的實體按鍵也是類比訊號,按下去後訊號值會縮小,但機械手臂不知道這顆按下去要做甚麼事情,但定義後代表往後寫程式時不需要一直找按鍵接在甚麼角位,可以直覺的寫出按鍵名稱,定義完變數之後要定義自由積木,在程式語言中叫做副函式,函式的輸出是一種動作,而會友副函式的產生是因為可以不用把全部的步驟在主函式寫出來,把一件較為單獨的事情拉出來寫,到最後再把副函式名稱打再主函式就可以了,這樣看起來不會這麼雜亂而式分門別類的歸類,如果要抓錯也較為容易,我們定義了初始化、剪刀、石頭、布、隨機猜拳、讀取搖桿、防止重複觸發等等,剪刀、石頭、布主要是手指關節的變化,小馬達的轉動會使手指頭伸直或彎曲,比如剪刀就是讓食指和中指伸直,其他手指頭彎曲,其他的依此類推,如果定義這些動作後,接下來如果還想要執行此動作就不用大費周章想馬達該如何轉動,把自訂積木(副函式)拿來用即可,讀取搖桿的程式撰寫蠻有意思的,先前定義的X分量和Y分量只要不在中間直(搖桿沒動),就另X軸、Y軸的角度旋轉一度,其中有些小巧思是為了不讓機械手臂執行過於猛烈,因此設個等待時間,與副函式「防止重複觸發」有一曲同工之妙,讀取搖桿則是把所設的變數與角位綁在一起,隨機猜拳最為複雜,需要用到隨機變數,再利用假設(if)去寫,是個多工層層堆疊的函式,老師有給出時間讓我們想想看,我也確實寫了出來,感覺非常有成就感。最後就是把所有的副函式丟到主函式裡面做最後的撰寫,主要的架構是假設(if),比如我假設碰到了此按鈕,我會怎麼做,再來搖桿的部分有一點必須注意,就是類比的東西不是很穩定,為了避免沒有使用而自動觸發的問題,範圍會設比較小﹐把這些問題解決後就大功告成啦,很感謝這個營隊讓我受益良多,玄到了很多課堂上學不到的東西,也推薦還沒上過的同學趕快來報名,保證你收穫滿滿。