XYZRobot高階人型機器人「火流星Y-01」 遙控操作篇

繼上一篇開箱組裝篇後,接下來就是開機操作囉,火流星的操作體驗囉,首先按下在背後的開關(如下圖),會先聽到8Bit style的小星星旋律後,火流星就會站立起來。

robot2_1

下圖左是一般卸力的姿態,未通電開機或者被強制卸力時,此時馬達是鬆的,可以隨意搬動關節,一旦通電以後,預設會呈現半跪姿如下圖右,這時候馬達是鎖住的,要避免用蠻力去掰動,以免馬達受損。

robot2_2

這個標準半跪姿側面與背後面也補一下,當我們開始操作他以後,基本上所有動作結束後大部分都會回到這個姿勢(Pose),就像歸零一樣,只有少數幾個動作,會停留在最後一個姿勢(Pose)。

robot2_3

連接火流星的方式有兩種,一種是使用內建附的手把,一種是透過安裝APP來操作。

robot2_4

兩種連線方式都是透過藍芽連接,主要的差異在於,手把控制器的按鍵數量有限,所以當我們要置換每個按鍵對應的功能時,必須透過軟體進行更換與燒錄的動作(後面會提到),直接將手把按鈕對應的指令寫入程式碼,才能得到修改後的結果,而手機APP則可以透過置換按件組和按鈕對應功能編號的方式,等於一次預載較多的功能組合,稍後小樽也將一一介紹。

預設火流星內建的動作除了基本的移動(前進、後退與左右旋轉)、揮手、敬禮、詠春拳(誤)以外,大概可以分為兩大類:跳舞與演武,其他很酷的姿勢小樽認為大概是伏地挺身,因為可以做完以後又站起來,覺得相當不容易,因為不要破梗太多,簡單節錄幾個進行中的動作給大家聞香一下。

robot2_5

而最酷的是,無論你怎麼玩,基本上他都是穩若泰山,但如果兩隻機器人PK、或者使用自己編的動作時,勢必一定會常常遇到機器人跌倒的狀況,一般其他機器人倒了多數只能靠操作者扶正,然而火流星非常帥氣,無論你在甚麼姿勢跌倒,由於內建平衡感測器,只要使用者按任意鍵,他都能自己判斷如何站起來,非常厲害。

操作用的APP在iOS和Android都有上架,以下小樽用Android手機來講解操作,下面是開始LOGO畫面(左)和進入畫面(右)。

robot2_6

一開始要進行連結,因為是透過藍芽來連線,所以要打開手機的藍芽設備,只要機器人有開機,就可在介面中掃瞄到,每一台火流星都有自己唯一的識別號,搜索到的畫面如下,此APP允許紀錄多台不同的機器人,可以組成自己的機器人大軍(當然口袋要夠深XD)!隨時用同一台手機切換操作,很方便。

robot2_7

進入操作畫面後很直覺的就是對應手把的控制介面,左邊的控制組可以控制移動和旋轉,上方式切換藍芽的功能,方便我們隨時回到上一步切換不同的機器人,右方的A~F可以提供六個動作輸入,與手把基本上是對應的,但APP多了可以自定和切換動作組的功能。

robot2_8

左側的MODE是方便使用者切換動作組,由於一次顯示在畫面上的按鈕是六顆,但是我們可能在不同的情境下可能會希望套用不同的動作組,這個MODE就是方便我們切換的頁籤,點開後畫面如下,基本功能配置了三個ICON在左側,右邊的A~F鈕會因為MODE的不同變成對應不同的動作,並且也可以在此置換不同MODE下各按鈕對應的動作,相當彈性。

robot2_9

在此狀態下點選任意按鈕,就可以自定在此MODE下按鈕對照的動作,Action下拉選單就是所有被定義好的動作,可以直接選擇套用,Rename的地方可以修改招式名字,Action目前的設置方法是對照編輯器內提供的動作ID,所以我們可以將自己用編輯器自定的動作指定給一個動作ID,接著透過這個介面把按鈕賦予這個動作ID即可完成設定。

robot2_10

APP有提供很親切的解說,所以如果忘記怎麼操作,介面HELP都有提供完整的講解如下圖:

robot2_11

操作的部分基本上的配置如上敘述,相當簡單直覺,而相信各位看官最關心的就是那所謂自定的動作(Action)吧,畢竟火流星除了可以靠3D列印改變外觀以外,最酷的就是可以透過編輯器自定動作來提供手把或手機遙控APP來操作,這樣如果舉行機器人格鬥大賽一定相當熱血。

火流星是基於Arduino開發出來的人形機器人,所以對於熟悉Arduino的朋友來說會非常親切,而對於沒有接觸過Arduino的朋友來說也不用擔心,因為相較於需求較複雜的機械運動,火流星的程式結構相對簡單,入門門檻很低,並且官方提供了很親切的動作編輯器,讓一般使用者可以先用很圖形化的方式來編輯自己獨一無二的動作。

小樽首先來介紹一下這個入門者使用的動作編輯器,使用時請透過隨機附贈的MINI USB連接機器人與電腦,如果機器人原本就是開機狀態,會發現他重新開機回到基本POSE。

接下來打開動作編輯器,介面非常的直覺如下:

robot2_12

預設是開啟英文介面,當然可以從Help>Languages裡面切換,另有繁體中文/日語/簡體中文可選,界面左方畫著機器人的畫面可以明顯看到,每一個部位都是由特定ID的馬達所控制,因此每一個馬達都有對應的角度數值,預設起始值都是在中間512的角度,使用者可以從0~1023的範圍來調整馬達的選轉角度,近而達成改變動作的目標。

機器人圖像介面的下面有一排功能,Relax是可以放鬆機器人,方便使用者用直覺扳動的方式來調整機器人的姿勢(POSE),擺放好後按下Capture可以捕捉當下機器人的馬達旋轉數組,也可以透過介面輸入要轉動的數值按下Set讓機器人擺動至符合數值的角度,最讚的是Live Pose Update功能,可以直接調整機器人的動作同時記錄POSE。

右側的Pose List可以記錄所有由使用者定義的姿勢(POSE),按Add可以增加,也可以用Remove移除或透過Rename重新命名。

透過POSER EDITOR建立好各種POSE後,我們可以把這些POSE串起來變成動作(ACTION),從Tool>Sequence Editor可以切換到動作編輯界面如下:

robot2_13

在這個狀態下我們主要的編輯區域會在右方,我們可以在右上的Sequence List上,從其新增(Add)新的動作,建立後,便可在下方的Pose List中,選擇方才在POSER EDITOR產生的姿勢,並且輸入過渡到這個動作的持續時間(Delay),單位是毫秒,動作Fly是由POSE Fly1~Fly3組成。

robot2_14

當動作編輯完後,可以從Tool>Export to AVR輸出動作檔,輸出後是一個.h檔,用任何文字編輯器打開這個檔案,無論你有沒學過程式都不需要太擔心,你會看到一些英文和數字串如下:

robot2_15

上圖就是透過上述編輯器例子中,由Fly1~Fly3三個pose以不同的Delay時間構成的Action,中間三行PROGEMEM prog_uint16_t開頭的指令依照我們命名的POSE來宣告動作的陣列,所以後面{}中的數字,其實就是對應儲存我們在編輯器中給予的馬達旋轉數值,是不是非常非常的簡單,在這三行POSE陣列下方的transition_t就是把上面宣告好的POSE陣列,賦予順序、過渡時間與動作名稱的宣告,依此類推我們可以透過動作編輯器,在不寫程式的狀況下,將動作所需要的程式碼產生出來。

前文有提到,火流星是基於Arduino開發,因此動作產生後,我們還需透過Arduino的編輯器(IDE)將動作燒錄到火流星中才算完成,別擔心,這個步驟也非常簡單,不過當然你要先裝好Arduno的IDE,將專案和所需的外掛放至到對應資料夾,將ArduinoSetting下的hardware與libraries放到Arduino的預設資料夾中。

環境設定完成後,第一次啟動要先到Tool>Board中找到XYZrobot-BOLIDE,如下圖

robot2_16

為了方便沒有程式經驗的使用者操作,開發團隊很貼心的已經整理好一份專門給使用者自訂修改的檔案和一組出廠預設檔案,後者可以避免自定動作出現甚麼找不到的錯誤時,可以用出場設定值覆蓋,不用擔心弄壞機器人,自訂的檔案組中包含Bolide_Y-01_UserMotion_v1.0(Arduino編輯檔案)和BOLIDE.h與USER_MOTION.h兩個.h檔,我們第一個要做的步驟就是將剛剛從編輯器產生好的所有指令,先放入USER_MOTION.h這個檔案內,可以用任意文字編輯器進行此動作,承剛剛的例子,小樽就將自訂好的Fly這個動作放到上方==User Motion==的範圍內,等於將這組動作宣告在機器人的動作設定中,由於我們有將動作設定了一個名字叫Fly,因此第二步就是到下方的== User Sequence Setup ==中,將你命名的動作名稱定義給任意一個編號,例如小樽將Fly這組動作給予New115,這一串編輯結果如下所示:

robot2_17

這個步驟完成後,用Arduino IDE打開Bolide_Y-01_UserMotion_v1.0.ino檔,找到// Sample Motion Function這行如下圖:

robot2_18

這個地方可將按鈕與動作建立關聯,就操作層面有兩個選擇,如果是使用手把,由於手把的按鈕有限,只能使用替換的方式將現有按鈕的動作置換掉,按鈕輸入是以N的數值編號作為輸入,例如原本N數值為28時被賦予的動作是Bow,如果我門要將剛剛設定的Fly複寫上去,就是改成:

else if(N == 28) XYZrobot.playSeq(New115);

因為Fly這個動作是被定義在New115。

若我們之後是透過手機操作機器人就更簡單啦,基本上不需要作上面的置換動作,只要打開APP透過編輯的功能就可以直接從選單中將編號對應給按鈕,這是因為為了讓使用者快速替換動作,開發團隊已經預留115~250的使用者自定義欄位在APP中,所以你也可以一口氣將動作全部燒入機器人後,直接透過APP修改按鈕的對應關聯,如下圖,可以直接從行動的選單找到New 115置換:

robot2_19

當所有編輯的動作都完成後,就要進行最重要的上傳動作將程式寫入機器人,確定機器人是開機狀態並且有透過USB連在電腦上後,按下UPLOADrobot2_20,程式就會被上傳到機器人身上,完成後移除USB線並將機器人重新開機,你就得到一隻充滿新招式的個性化機器人了!

由於開發團隊很用心的將程式需編輯的複雜度降至最低,因此相信沒有寫過程式的使用者也能很快理解自己在編輯甚麼指令,如果熟悉Arduino的使用者,也可以直接跳過使用編輯器的步驟,透過Arduino IDE直接修改其他程式碼,例如上述的操作目前只涵括關於動作的部分,其實LED、音樂、紅外線距離感測器的程式碼也可以修改、或編寫其它指令,甚至將機器人改裝成其他的結構,非常彈性,相當適合作為透過Arduino入門開發機器人的首選,如果看完小樽的開箱文覺得非常手癢,不要懷疑馬上帶一隻回家,無論你是初學者或HACKER,相信都能在火流星上找到可發揮的空間。未來開發團隊還會繼續添加其他更新與功能,敬請期待囉。