---
# System prepended metadata

title: 2-1 Dobot Studio中的Script模式
tags: [Dobot進階]

---

先前在初階篇中介紹過，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的世界。

