控制項#

介紹#

VEXcode AIR 中的控制區塊透過處理循環、條件和延遲區塊的運作來管理專案的流程。

循環是指電腦重複執行相同的步驟或步驟群組,直到收到停止指令為止。條件是計算機用來決定下一步操作的規則。例如,按下遙控器上的按鈕,無人機就可以向前飛行。

以下是可用模組列表:

  • wait — 暫停程式碼區塊運行指定的時間段。

  • wait until — 暫停程式碼區塊運行,直到滿足指定的條件。

  • repeat — 將一組程式碼區塊重複指定次數。

  • forever — 無限重複一組方塊。

  • 重複直到 — 重複執行一組程式碼區塊,直到滿足某個條件。

  • while — 當條件為真時重複執行一組程式碼區塊。

  • if — 若條件為真,則執行一組程式碼區塊。

  • if / else — 如果條件為真,則執行一組區塊,否則執行另一組區塊。

  • if / else if / else — 根據多種條件執行不同的區塊集。

  • break — 立即退出循環。

  • 停止專案 — 結束專案。

等待#

wait 堆疊區塊會在執行下一個程式碼區塊之前暫停目前程式碼區塊運行一段時間。

等待堆疊塊#
等待 (1) 秒

參數

描述

時間

等待時間,以秒為單位,表示為正整數或小數。

例子

當開始時
[Fly for 1 second.]
起飛至 (500) [mm v] ▶
等待 [1] 秒
降落 ▶

等到#

等待直到堆疊區塊會暫停程式碼區塊的運行,直到滿足指定的條件後才會執行下一個程式碼區塊。

等到堆疊塊#
等待直到 <>

參數

描述

狀態

進入下一個區塊前必須滿足的條件。如果條件為:

  • False - 繼續等待
  • 真 - 停止等待並進入下一個區塊

例子

當開始時
[Hover at 200 mm.]
起飛至 [500] [mm v] ▶
爬升 [下降 v]
等待直到 <(distance [downward v] range in [mm v]) [math_less_than v] [200]>
懸停
等待 (3) 秒
降落 ▶

重複#

repeat C 程式碼區塊會執行其內部程式碼區塊設定的次數。

重複 c 塊#
重複 [10] 次
結束

參數

描述

次

設定重複區塊運行次數的整數。

例子

當開始時
[Move back and forth four times then land.]
起飛至 [500] [mm v] ▶
重複 (4) 次
移動 [前方 v] (500) [mm v] ▶
等待 (1) 秒
移動 [backward v] (500) [mm v] ▶
等待 (1) 秒
結束
降落 ▶

永遠#

永遠運行的C程式碼區塊會不停地重複執行它內部的程式碼區塊。

永遠的 c 塊#
永遠
結束

參數

描述

該塊沒有參數。

例子

當開始時
[Move with controller.]
起飛至 [500] [mm v] ▶
永遠
以控制器移動
結束

重複直到#

repeat until C 程式碼區塊會重複執行其內部的程式碼區塊,直到滿足指定的條件為止。

重複直到阻塞#
重複直到 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果該表達式或變數為False,則程式碼區塊繼續重複執行;如果該表達式或變數為True,則循環停止。

例子

當開始時
[Move with controller until button 7 is pressed.]
起飛至 [500] [mm v] ▶
重複直到 <控制器按鈕 [7 v] 按下?>
以控制器移動
結束
降落 ▶

儘管#

while C 程式碼區塊會在滿足指定條件時重複執行其內部的程式碼區塊。

當 c 塊#
當 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果為真,則程式碼區塊繼續重複執行;如果為假,則循環停止。

例子

當開始時
[Hover at 200 mm.]
起飛至 [500] [mm v] ▶
當 <(distance [downward v] range in [mm v]) [math_greater_than v] [200]>
爬升 [下降 v]
結束
懸停
等待 (3) 秒
降落 ▶

如果#

if C 程式碼區塊會在條件為True時執行其內部的程式碼區塊。

如果塊#
如果 <> 則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果該表達式或變數為真,則執行if程式碼區塊內的程式碼區塊;如果該表達式或變數為假,則跳過這些程式碼區塊。

例子

當開始時
[Take a picture when button 5 is pressed.]
起飛至 [500] [mm v] ▶
永遠
以控制器移動
如果 <控制器按鈕 [5 v] 按下?> 則
以 [前方 v] 相機拍照
結束
結束

如果/否則#

if / else C 程式碼區塊根據條件是真還是假來決定要執行哪一組程式碼區塊。

如果則否則塊#
如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果它為真,則執行if程式碼區塊內的程式碼區塊。如果它為假,則執行else程式碼區塊內的程式碼區塊。

例子

當開始時
[Climb when the left joystick is moved up.]
起飛至 [500] [mm v] ▶
永遠
如果 <(控制器搖桿 [1 v] 位置) [math_greater_than v] [0]> 則
爬升 [上升 v]
否則
懸停
結束

如果/否則 如果/否則#

if / else if / else 可擴充 C 程式碼區塊依條件選擇要執行哪一組程式碼區塊:

  • 如果條件評估結果為True,則if 執行其程式碼區塊。

  • else if 語句僅在所有先前條件都為 False 時才會檢查其他條件。可以使用多個 else if 語句。

  • 否則,僅當前面所有條件皆不為真時,才會執行其程式碼區塊。

如果否則如果否則塊#
如果 <> 則
否則如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。第一個為真的條件會執行該組代碼區塊。如果所有條件都為假,則會執行else程式碼區塊內的程式碼區塊。

例子

當開始時
[Move the drone up or down based on the position of the joystick.]
起飛至 [500] [mm v] ▶
永遠
如果 <(控制器搖桿 [1 v] 位置) [math_greater_than v] [0]> 則
移動 [前方 v]
否則如果 <(控制器搖桿 [1 v] 位置) [math_less_than v] [0]> 則
移動 [反向 v]
否則
懸停
結束
結束

休息#

break 程式碼區塊會立即退出循環。此程式碼區塊可以用於 repeat、repeat until、while 和 forever 程式碼區塊中。當循環需要根據專案運行過程中發生的事件(例如按鈕被按下或感測器偵測到物體)提前停止時,break 非常有用。

打破堆疊塊#
中斷

參數

描述

該塊沒有參數。

例子

當開始時
[Land when button 5 is pressed.]
起飛至 [500] [mm v] ▶
永遠
以控制器移動
如果 <控制器按鈕 [5 v] 按下?> 則
中斷
結束
結束
降落 ▶

停止項目#

停止專案堆疊區塊會結束正在執行的專案。

停止項目阻止#
停止專案 :: control cap

參數

描述

該塊沒有參數。

例子

當開始時
[Stop motors after landing.]
起飛至 [500] [mm v] ▶
等待 [1] 秒
降落 ▶
停止專案