先前在初階篇中介紹過,Dobot可以透過Blockly寫程式控制,但像Dobot這台這麼專業的機械手臂,如果只能玩積木程式就顯得太幼稚了,在Dobot Studio的第四個應用"腳本控制",就是讓使用者可以用Python語言對手臂進行控制。 ![image](https://hackmd.io/_uploads/r1U3pHgn6.png) 點進應用後會進入新的介面,正中間是寫python程式的地方,並且已經有兩個範例程式,而底下的子視窗輸出程式執行的狀況。 ![image](https://hackmd.io/_uploads/r1pe0Hg26.png) 如果讀者完全沒有Python的基礎,看不懂中間的範例程式在幹嘛是正常的,建議可以先去看"入門首選Python程式設計與ChatGPT應用",讓好的入門書搭配ChatGPT幫助你建立Python基處知識。 ![image](https://hackmd.io/_uploads/BJlzbOxha.png) 如果你已經會寫Python程式,在來看中間的範例程式可能還是一頭霧水,裡面有好多語法是看不懂的,尤其是綠色字的那些根本沒見過,其實這些綠色字體都是連接Dobot的API,也就是連接Pyhton語言與Dobot手臂的橋,使用者直接用些函數就能控制Dobot,不需要去理解更底層的軟硬體邏輯。 ![image](https://hackmd.io/_uploads/SJD4nOl2a.png) 初學Python開始,你接觸了變數、資料類型、條件判斷、循環迴圈、函式等概念,以及文字檔案的輸入輸出,這些都還是在最基礎的Python環境,當你需要與外部作構通,例如控制硬體、抓取網路或雲端資料,這些都會需要用到API,每個軟體硬體的廠商都會提供你需要的API。 ![image](https://hackmd.io/_uploads/SkoBs_gn6.png) 用Blockly的世界來理解,從Logic到Function的類別都是基礎的程式功能,在這之外的就需要API,例如圖中的DobotAPI。 總之API就是用於溝通一個硬體的一堆函示所組成,因此每接觸一個新的硬體,就要先學會他的API如何使用,這聽起來很麻煩,但Dobot已經幫我們想好解決方案了,在左側的子視窗中,詳細收錄了Dobot每個功能的函式,對文字的部分點兩下就會自動跑進輸入框,連自己打都不用省去了可能會打錯字的問題。 ![image](https://hackmd.io/_uploads/HJZh3_g3p.png) 函式打出來之後不知道每個參數要怎麼寫,點擊每個函式前方的問號就會有詳細的解釋,告訴你每個參數的意義與用法,是不是超級貼心。 如果情況很緊急,沒有時間慢慢研究每個函式怎麼用了,不要忘記我們還有Blockly介面,不是要你放棄Python退回去使用Blockly,而是把Blockly環境當成學習的輔助。 ![image](https://hackmd.io/_uploads/H1IKgKg26.png) 例如只我需要將手臂移動到一個固定的位置,我可以拉出MoveTo積木,右邊的GeneralCode中就會出現相對應的Python程式碼,連函式裡的每一個參數都已經設定好了,直接將產生出來的這段程式碼複製貼上到腳本控制應用中,執行出來的效果一模一樣。 觀察MoveTo積木會硬的函示就是dType.SetPTPCmdEx(),其中XYZ三個可以輸入數字的位置,在函式中都可以找到相應參數的位置,甚至函式中還有很多其他可調整的參數是積木中所沒有的,更不用說Blockly環境中所提供的積木數量,相比於Python環境中函式的數量差了一大截。 所以我們可以瞭解Blockly,每個積木都有對應的一段程式碼,執行Blockly程式其實是先翻譯成對應的Python程式,再去執行這些Python程式,使用Blockly寫程式雖然很方便,但是有很多的功能都被限制住了,使用Python控制Dobot手臂雖然困難了一些,但使用上相對更自由開放,能玩的花樣也就更多,這也是為甚麼我們要跳脫Blockly環境,進入Python的世界。