Skip to content
🔐

專班教材存取限制

請輸入授權密碼以繼續閱覽

2. 軟體精熟篇

相信大家藉由基階課程中都已經學到軟體的基本操作方式了,因此在這篇中階教材中,我們將會以更快的速度來說明更多比賽必備的操作,要是能把這些東西都玩熟,一定能在初賽中取得好成績!

變數

要在專案中建立變數,要先到畫面上方 管理員變數 來開啟變數管理的頁面,要注意,我們所有建立的變數都只會用到 專案變數,小心不要建立到 全域變數 而造成命名污染。

我們在 專案變數變數 畫面,就可以建立一個變數了,變數型別有很多,可以在 型別 的下拉選單中,選擇一種資料類型,相信這些東西對於會寫程式的人來說再熟悉不過了,但若沒學過程式的人也不要緊張,我們在大多數情況下,變數都只是為了計數,因此直接選擇 int(整數)即可。名稱 同樣也要遵守稱式中變數命名規則,即只用英文、數字、底線,且不能有空格。最後的 實際上是選填的,若空著不填,它預設就會是 0(在 int 時),因此若是為了計數,不用特別去輸入任何數值。打完這些後,記得點擊 新增 按鈕,才算建立好變數,建立好後即可關閉變數管理頁面。

Display

顧名思義,Display 節點就是用來顯示資訊的,有點類似傳統程式語言中的輸出函式。

這個節點可以設定的東西都很直觀,文字顏色背景顏色 的設定應該不用多說,比賽時若會用到 Display,也不會特別要求這部分。標題內文 的輸入格式就比較特別了,一般的文字要使用 " 來包住,並且在連接變數時,會使用 +;輸入變數或特殊功能文字(如換行使用的 newline)則可以使用 內文 旁的鉛筆符號來插入;而連接這些元素的,則是使用 +

舉個例子,若我想要輸出變數 abc 的值,並成三行,我就可以把 內文 寫成:

text
"a: " + var_a + newline + "b: " + var_b + newline + "c: " + var_c

小提示

雖然 Display 設定起來自由度很高,不過通常比賽中也只會要求諸如「輸出某個資訊」等,不必過於拘泥形式。

Set(變數)

前面我們已經學過利用 Set 節點來控制夾爪的開閉了,這章我們就來說如何利用 Set 來控制變數。

Set 編輯畫面中,點擊 變數 右邊的 選擇,並點擊右邊跳出來的變數設定視窗上方 新增變數控制圖示,它會跳出一個新的 運算式編輯器 視窗,選擇左側 變數 類別,就可以利用 插入 鍵將變數插入右側輸入框中。

右側分成了三個框框,分別是上方被操作值、中間運算子、下方操作值,它們三個共同組成一個表達式,如同程式中變數控制那般。舉個例子,若我想要把變數 a 設為 0,我就可以在上方插入 var_a、中間選擇 =、下方輸入 0;或者我想把變數 a 加一,就可以在上方插入 var_a、中間選擇 +=、下方輸入 1

操作完成後,記得點擊 確定 以儲存操作,就完成了變數控制的操作,可以關閉 Set 設定視窗了。

小提示

其實在 常數函式數學 類別中,也提供了許多內建好用的值或函數可供使用,有空可以自己玩玩看。此篇教材將不會特別介紹它。

另外,其實 Set 也可以同時控制好幾件事,例如同時控制兩個變數,或者同時控制變數和末端模組等,只需要用 新增變數控制圖示 建立一個以上的設定,就可以只用一個 Set 同時控制不止一個行為。

If

在學會了建立和控制變數後,接下來我們還得要讓機器因應不同變數狀態去執行不同任務,而為了讓機器判斷變數狀態,就得用到 If

If 的設定方式和用 Set 控制變數的流程其實有一定相似度,開啟 If 編輯畫面,點擊 變數 右邊的 選擇,並點擊右邊跳出來的變數設定視窗上方 新增變數控制圖示,它會跳出一個新的 運算式編輯器 視窗,和 Set 的設定視窗極為相似,選擇左側 變數 類別,就可以利用 插入 鍵將變數插入右側輸入框中。

右側分成了三個框框,分別是上方被判斷值、中間運算子、下方判斷值,它們三個共同組成一個表達式,如同程式中判斷變數的方式。舉個例子,若我想看變數 a 是不是不等於 5,就可以在上方插入 var_a、中間選擇 !=、下方輸入 5

小提示

其實 If 節點不止可以判斷變數,也可以判斷末端模組狀態等等,這些都可以自己研究看看,決賽有機會會用到。此篇教材將不會特別介紹它,但若不會操作,可以至網站說明找我的聯繫方式來詢問。

另外,其實 If 也可以同時判斷好幾件事,例如同時判斷兩個變數,或者同時判斷變數和末端模組狀態等,只需要用 新增變數控制圖示 建立一個以上的設定,並在 變數判斷規則 中選擇 ,就可以只用一個 If 同時判斷不止一件事。

Gateway

Gateway 的設定方式與 If 極為相似,但在設定 Gateway 時,可以一次設定數個不同分支,有點像 C 語言的 switch-case 或 Python 的 match-case 語法。

要設定 Gateway,我們可以點擊 Gateway 節點的鉛筆按鈕,打開它的編輯視窗,再點擊 新增條件設定圖示 來新增條件,存在的條件會顯示在下方,可以透過它個各自的鉛筆圖示來設定不同條件,全部設定完後,即可完成 Gateway 的設定。

Wait for(變數)

Wait for 除了等待「時間」外,也可以用類似 If 的表達式來等到某條件達成後再繼續,不過通常這會配合其他硬體設備的狀態,比較不常用來判斷變數,故此章不詳細展開。

Pallet

大家在自己玩手臂時,不知道有沒有試過想要把那塊放麻將的小板子放滿呢?但你會發現,如果要達成這件事,在只用 Point 的情況下非常麻煩,而此時,本章介紹的 Pallet 就能派上用場了!

Pallet 可以讓使用者只需要對好三個位置,它就能夠依比例自動計算出一個長方形各點的坐標,對於放麻將的小板子而言,要設的點從原來的六個減少為了三個,還不需要手動控制變數和 If,可謂是相當方便。

打開 Pallet 的設定頁面後,在 請選取放置模式 的地方會有四種模式選,這四種放置的方式就如同它圖示展示般,很是直觀,有興趣的同學可以在自由練習時,把四種模式都設定來玩玩看。底下的 請教導三點以創造棧板放置組態 則可依照上方 請選取放置模式 圖標中的 ①、②、③ 相對位置對照設置即可。例如以 請選取放置模式 的第一種模式而言,對應板子就要設定右上角左上角左下角,直接把手臂拉過去對三個點後,再按下對應的 取得第一點取得第二點取得第三點 以設置點位。

再更底下的 行數與列數,以放麻將的板子的情況來說,就要在 輸入 3 輸入 2

剩下的設定都不用動它,直接點擊 確定 後關閉視窗,即完成 Pallet 節點的設定。

Manual-Decision

簡稱 M-Decision,是流程編輯軟體中,少數可以達成人機交互的功能,也就是讓別人在跑你專案時,有辦法透過選擇來控制手臂的行為。

M-Decision 節點底下,還會出現數個子節點,表示不同選擇,不過,所有的設定都直接點進主要 M-Decision 的鉛筆圖示即可。標題內文 的設定就如同 Display,重點是底下的 判斷設定條件 要設定好,那裡就相當於「選項」的部分,你可以點擊 新增選項圖示 來加入更多選擇,並用各選擇的鉛筆圖示來設定它們,其實只要設定好 標題 即可,它會成為選項顯示出來的文字。

你可以執行寫好的專案以測試 M-Decision,選擇選項時,可以用滑鼠直接點擊,或者控制器上 +- 來調整選項,並用 PLAY 選擇。

Set(坐標參數化)

我們先前已經學過 Set 的兩種應用了,也就是末端模組和變數的控制,現在我們再來看一個和變數十分相似的功能——坐標參數化。從它的名字中,我們大概可以猜到它和變數控制的操作是很像的,只不過現在,這個變數不是我們自己設定的變數,而是坐標的數值。

為什麼要控制坐標數值?其實這個主要是應用在當你要擺放數個工件在同樣的地方時的情況,因為若夾取物件到達一模一樣的位置,那結果可想而之,它必然會撞機,因此我們可以讓它往上或是往四周移動一小段距離,使兩個工件不會撞到,無論要向哪個方向調整,都要用到坐標參數化的觀念。

Set 的設定頁面中,我們一樣要選擇 變數選擇,並進入到和控制變數一樣的介面,不過,這次我們要開啟左側 參數化 選單。它會依賴於一個點位,也就是我們想要它偏移的那個點,在 選擇 選單中可以設定要參數化的 Point屬性 的部分不用動它,直接看到下方的 機器人項目,它就是用來控制坐標的,在下拉選單中,我們可以看到從 float/Value[0]float/Value[5],分別對應 x、y、z、Rx、Ry、Rz 六個軸,例如我們想要往上疊,就選擇 float/Value[2],再點擊 插入

後面的操作就和變數控制一樣了,格子中分別填入 float/Value[2]+=20(單位:mm),如此,我們就設定好了坐標的參數化。

陽明高中 AI 專班專屬教材