更多

    製作 MeArm 機械臂(三)

    進入撰寫程式前,先回顧一下 MeArm 機械臂的操作,它將會由兩粒 Analog JoyStick 控制,當移動手掣的上下左右時,代表了機械臂中四個 Servo,進而產生仿人類的動作。

    代入程式觀念,Analog JoyStick 控制會有由兩組上下左右方向所組成,因此需要建立兩組四項變數。接著就是將變數配合後,會產生的操作效果。

    [row][double_paragraph]

    Step1:承上期,首先需要建立四個變數用作設定伺服馬達的角度。按左上方的「 Data&Blocks 」,然後按「 Make a Variable 」,然後逐一建立變數 a、b、c 和 d。
    Step 1:承上期,首先需要建立四個變數用作設定伺服馬達的角度。按左上方的「 Data&Blocks 」,然後按「 Make a Variable 」,然後逐一建立變數 a、b、c 和 d。

    [/double_paragraph][double_paragraph]

    Step 2:建立四個變數後,變數下方會出現設定方塊,從左方抽出四個「 set a to 0 」,按序排列設定 a、b、c 和 d。
    Step 2:建立四個變數後,變數下方會出現設定方塊,從左方抽出四個「 set a to 0 」,按序排列設定 a、b、c 和 d。

    [/double_paragraph] [/row]

    [row][double_paragraph]

    Step 3:接著是改變數字,由0設定為45,即代表把所有伺服馬達起初設定為45度,之後於左上方的「Control」下拉出「forever」方塊。
    Step 3:接著是改變數字,由 0 設定為 45,即代表把所有伺服馬達起初設定為 45 度,之後於左上方的「Control」下拉出「forever」方塊。

    [/double_paragraph][double_paragraph]

    Step 4:重覆上述三個步驗,加入 x、y、q 和 w 變數,這四個變數稍後用作代入控制桿移動的讀數。
    Step 4:重覆上述三個步驗,加入 x、y、q 和 w 變數,這四個變數稍後用作代入控制桿移動的讀數。

    [/double_paragraph] [/row]

    [row][double_paragraph]

    Step 5:接著於左上方的「 Robot 」下拉出「 read analog pin (A) 」方塊,如圖顯示把方塊分別放入所設定的 x、y、q 和 w 變數, 再把對應的數字按序改為 0、1、5 和 4,即代表用 x 代表 A0 的讀數,y 代表 A1 的讀數,q 代表 A5 的讀數,w 代表 A4 的讀數。
    Step 5:接著於左上方的「 Robot 」下拉出「 read analog pin (A) 」方塊,如圖顯示把方塊分別放入所設定的 x、y、q 和 w 變數, 再把對應的數字按序改為 0、1、5 和
    4,即代表用 x 代表 A0 的讀數,y 代表 A1 的讀數,q 代表 A5 的讀數,w 代表 A4 的讀數。

    [/double_paragraph][double_paragraph]

    Step 6:「 Control 」下拉出「 if then 」方塊,然後到左上方的「 Operators 下拉出「 > 」方塊。左邊空格放入變數 x ,右邊輸入 1020 ,表示當控制桿變數 x 大於 1020 時就進行任務,由於控制桿讀數範圍是由0至 1025 ,當控桿高於 1020 即接近到達控制桿的另一端。
    Step 6:「 Control 」下拉出「 if then 」方塊,然後到左上方的「 Operators 下拉出「 > 」方塊。左邊空格放入變數 x ,右邊輸入 1020 ,表示當控制桿變數 x 大於
     1020 時就進行任務,由於控制桿讀數範圍是由 0 至 1025 ,當控桿高於 1020 即接近到達控制桿的另一端。

    [/double_paragraph] [/row]

    [row][double_paragraph]

    Step 7:「 Robot 」下拉出「 set servo pin 」方塊,把 pin9 更改為 pin12 ,並於「 Data&Blocks 」下拉出「 change a by 」,把 1 改為 0.03 。此段方塊代表控制桿變數 x 大於 1020 時, pin12 的伺服馬達會每次增加 0.03 度。
    Step 7:「 Robot 」下拉出「 set servo pin 」方塊,把 pin9 更改為 pin12 ,並於「 Data&Blocks 」下拉出「 change a by 」,把 1 改為 0.03 。此段方塊代表控制桿變數 x 大於 1020 時, pin12 的伺服馬達會每次增加 0.03 度。

    [/double_paragraph][double_paragraph]

    Step 8:複製上述 if then 方瑰,把六角形方塊換為 x 少於 5 , 0.03 改為 -0.03 。此段方塊代表如控制桿變數 x 少於 5, pin12 的伺服馬達會每次減速 0.03 度。
    Step 8:複製上述 if then 方瑰,把六角形方塊換為 x 少於 5 , 0.03 改為 -0.03 。此段方塊代表如控制桿變數 x 少於 5, pin12 的伺服馬達會每次減速 0.03 度。

    [/double_paragraph] [/row]

    Step 9:把上述兩組循環方塊放入 forever 內,如圖顯示,今期已經成功編寫一個控制桿控制一個伺 服馬達的程式。
    Step 9:把上述兩組循環方塊放入 forever 內,如圖顯示,今期已經成功編寫一個控制桿控制一個伺服馬達的程式。

    下星期待續……

    您會感興趣的內容

    相關文章