本帖最后由 XM明 于 2013-12-19 10:45 编辑
基本上到目前「小怪獸」的硬體算是完成了。原來規劃還有 LED與紅外線感測器部分,我們等到「小怪獸」可以行走了之後再來加裝。現在請開啟 InnoBASIC Workshop 2環境,到「動作編輯器」的主畫面(圖A)。機器人最基本的行走原理就類似早期的卡通影片,將許多的靜態畫面連續播放,就形成了動態的畫面。這時候如何正 確而精準地將一個動作拆成幾個分解動作,就是機器人運動能力優劣的關鍵了。現在就先讓「小怪獸」學會暖身來個「伏地挺身」吧。我把「伏地挺身」分成二個分解動作。第一就是標準站姿,第二就是腹部貼近地面。目前畫面上所顯示的初始值都是1500,也正好就是我們所要的標準站姿,注意要先將所有的核取盒打勾, 這樣才有啟動控制功能。接著我們就直接按下「儲存」鍵,將此動作儲存到SC8控制板裡。
圖A
微調的重要性
通 常這時候就會發現明明每個伺服機都按照要求設成1500的位置,但站姿好像不是很正,左看右看每個伺服機都想給它調整一下,這時候我們就需要做「微調」了 (圖B)。造成這各現象的原因有二:第一,伺服機輸出軸與「搖臂」結合處的齒數是有限的,所以不論如何鎖,一定會有機械性的角度誤差;第二,整體性的機構 偏差,例如支架歪斜,使得我們必須靠「微調」來補償機構上的偏差。動作編輯器主畫面的右上角有「設定微調值」的按鍵,按下後即可進入「設定微調值」的主畫 面。其中可以進行微調的通道,即為剛才所核取的通道。基本操作方式與動作設定相同,只是數值範圍較小從-128到+127。邊微調邊觀察伺服機是否轉動到 要求的位置了。當各通道微調值設定好了之後,記得要按下「儲存到模組」按鍵,目前的設定值才會正式被儲存到SC8控制板,否則下次使用SC8控制板會發現 微調值還是舊的。現在大家了解「微調」的用處之後,我們繼續剛才的動作設定。
圖B
完成伏地挺身的動作設定
接 著我們要調整出第二個動作,讓身體貼近地面。其實只要轉動外側的四個伺服機就可以了。現在請慢慢拉動CH1、CH3、CH5、CH7的捲軸或填入數值。這 時候就可以觀察是否有符合您的動作要求。這裡我使用的位置是1200與1800,從中心位置前後大約擺動各30度。因為伺服機安裝的方向不同,左前腳與右 後腳會是同一個數值,右前腳與左後腳會是另一個數值。動作若是一致的,就是要降低身體高度。如果覺得姿態沒問題就先將畫面左上方的動作編號改成1(圖 C),然後按下「儲存」鍵,將此動作儲存到SC8控制板裡。
每次儲存新的動作時一定要記得改變動作編號,否則之前所設計的動作就會被覆蓋掉 了。因為你所設計的動作都儲存在SC8控制板裡,如果想檢視某一個編號的動作,只要改按「讀取」鍵,並輸入動作編號,例如編號0。這時候「小怪獸」就會呈 現原先設定的站立姿態了。好了,動作設定完成,現在開始寫程式吧。
圖C
開始寫程式
首 先從「檔案」/「開新檔案」選單之下開啟一個新檔案,然後輸入下列程式。單引號「’」之後的文字稱之為「註解」,方便自己或他人閱讀程式之用,對程式執行 沒有任何影響。練習的時候如果想省事,「註解」的部份是可以省略。但是正式寫程式的時候可千萬別偷懶,否則現在引以為傲的「武功祕笈」下次在閱讀時,套句 俏皮話,就變成諸葛亮的「出師表」,「臨表涕泣,不知所云」了。
‘================================================== ‘ 小怪獸伏地挺身五次 ‘================================================== Peripheral mySer As ServoRunner8A @ 0 ‘ 預設內建模組ID為0 Sub Main () Dim I As Byte ‘ 宣告變數 For I=1 to 5 ‘ FOR NEXT 迴圈開端,迴圈執行5次 mySer.LoadFrame(0) ‘ 載入編號0動作的資料 mySer.RunAllServo() ‘ 執行編號0之動作 Pause 1000 ‘ 程式等待一秒,等待伺服機完成動作 mySer.LoadFrame(1) ‘ 載入編號1動作的資料 mySer.RunAllServo() ‘ 執行編號1之動作 Pause 1000 ‘ 程式等待一秒,等待伺服機完成動作 Next I ‘ FOR NEXT 迴圈末端 End Sub
程 式輸入完畢之後(圖D),請在「建立」選單中選取「建立」功能然後開始進行程式編譯與通過USB線下載編譯後的程式碼至SC8控制板。此時「小怪獸」就會 每秒一次「上」或「下」進行「伏地挺身」,而且因為For…Next指令的指定,「小怪獸」將會執行5次「伏地挺身」。
圖D
好啦!伏地挺身還算是簡單,我們現在開始設計步行的動作。原則上愈多分解動作可以達成較好的平衡性與流暢度。但是既然是「入門 級」的機器人,步態設計還是以簡單易懂為原則。這裡就整理出八個分解動作,經由不同的分解動作組合,可以做出前進、後退、轉彎等動作。下面就是這八個動作 的示意圖。首先大家會注意到每隻腳都有對應到三個圓圈,說明足部是在「前」、「中」、「後」哪個位置,這些位置是由內側伺服機控制。虛線的圓圈只是方便辨 識相對位置,實際落腳會以一個「實心圓」與「空心圓」分別表示不同高度,這些高度是由外側的伺服機控制,圖的上方為頭部的方向(圖E)
圖E
|