這頁內容已整合到新的說明頁:循行者 16 路 › EV3 › EV3-G 官方軟體

LEGO® MINDSTORMS® EV3 官方軟體 (EV3-G)

回到 EV3 主機選單

EV3 Hub + EV3 Official App

警告

請注意:您目前觀看的是 【EV3-G 官方軟體】 環境的教學。 如果您使用的是 SPIKE 或是其他 EV3 軟體,請點擊上方按鈕回到主機選單重新選擇。

適用於 LEGO® MINDSTORMS® EV3 官方軟體(LabVIEW 風格介面,常稱為 EV3-G)。在此環境下,循行者 16 路感應器會被樂高系統完美識別為官方的 Infrared Sensor(紅外線感應器)。

重要

EV3 硬體重要通訊延遲警告 由於樂高原廠 EV3 主機的硬體通訊機制限制,當程式在不同積木模式(例如從 Proximity 切換至 Remote)進行切換讀取時,主機會產生約 0.5 秒的物理通訊等待延遲,這在高速比賽中可能導致車體失控。 強烈建議:請依據您的任務需求(例如:只用 Remote 進行 PID 循線),在程式一開始選定一種積木,整趟任務請勿中途切換讀取種類!

模擬說明 在 EV3 官方軟體中,感應器會被辨識為 Infrared Sensor。請依照下方說明選擇 Proximity / Beacon / Remote 模式來讀取不同資料。


讀取線位置 — Proximity 模式

EV3 Proximity 模式積木

使用感應器積木,選擇 Proximity(接近)模式,讀取 數值 即可取得線位置。

回傳值 範圍 說明
線位置 -16 ~ +16 👉 0 = 黑線在正中央,負數偏左,正數偏右;±16 表示線在感應器最邊緣。

讀取 16 路光電反射值 — Beacon 模式

EV3 Beacon 模式積木

使用感應器積木,選擇 Beacon(信標)模式,讀取 數值列表(8 bytes)。

Byte 內容 範圍 解碼方式
0 光電反射值0 + 1 11 ~ 99 十位數=通道0,個位數=通道1
1 光電反射值2 + 3 11 ~ 99 十位數=通道2,個位數=通道3
2 光電反射值4 + 5 11 ~ 99 十位數=通道4,個位數=通道5
3 光電反射值6 + 7 11 ~ 99 十位數=通道6,個位數=通道7
4 光電反射值8 + 9 11 ~ 99 十位數=通道8,個位數=通道9
5 光電反射值10 + 11 11 ~ 99 十位數=通道10,個位數=通道11
6 光電反射值12 + 13 11 ~ 99 十位數=通道12,個位數=通道13
7 光電反射值14 + 15 11 ~ 99 十位數=通道14,個位數=通道15

每路光電反射值已被量化為 1 至 9(1=最暗,9=最亮),兩路合併為一個兩位數(11 至 99)。 👉 解碼範例:若讀取到某個 Byte 數值為 83**,其十位數 (8)** 代表偶數通道(如通道 0)的量化光值,個位數 (3) 代表奇數通道(如通道 1)的量化光值。這能完美避開樂高 EV3 的 100 數值限制!


讀取位置 + 寬度 + 邊界防禦 — Remote 模式 (競技戰術推薦!)

EV3 Remote 模式積木

使用感應器積木,選擇 Remote(遙控)模式,讀取 數值列表(4 bytes)。

Byte 內容數據 數值範圍 戰術解讀說明
Byte 0 高解析位置平移 -100 ~ +100 👉 0 代表正中央,負值偏左,正值偏右。超平滑 of PID 誤差輸入首選!
Byte 1 特徵線寬 0 ~ 16 👉 觸發的感測器數量。可用於偵測十字路口或 T 字路口。
Byte 2 左邊界實體光值 0 ~ 100 👉 dataIrCalib[0](第 1 路)最左邊感測器的反射光。0=純黑,100=純白。可用於偵測賽道邊界或分岔。
Byte 3 右邊界實體光值 0 ~ 100 👉 dataIrCalib[15](第 16 路)最右邊感測器的反射光。0=純黑,100=純白。可用於偵測賽道邊界或分岔。

戰術防呆技巧:Remote 模式的 Byte 2 與 Byte 3 能讓您在 EV3-G 官方軟體中直接獲得感測器兩側的最邊緣光值。如果兩個數值同時小於 20,表示車頭完全進入十字路口的橫線中;如果其中一邊數值突變,表示即將進入分岔,是防掉線的終極法寶!


範例程式下載

LEGO® MINDSTORMS® EV3-G 官方軟體範例程式圖控積木範例

上圖為 16路循線感應器於 LEGO® MINDSTORMS® EV3-G 官方軟體中的經典 PID 循線程式結構示範

下載後用 EV3 官方軟體開啟即可使用。


EV3 專屬自訂積木 (My Blocks) 說明

為了讓 EV3 官方軟體(EV3-G)的程式撰寫更為簡潔直覺,MBC 16 路循線感應器提供了三個強大的「自訂積木(My Blocks)」。開發時不需要額外安裝繁瑣的擴充包,只需在主程式中呼叫對應的函數,系統就會自動在背景解析硬體封包,並將最新的感應器數據存入專屬變數中,供馬達控制邏輯直接使用。

以下為三個核心函數的功能與使用時機介紹:

1. 基礎循線函數:LinePos16_dataUpdate

  • 功能目的:快速讀取最基礎的 16 段循線位置,適合新手入門教學與基礎左右轉向判斷。
  • 更新變數:執行此函數後,系統會自動更新變數 0_LinePos16。
  • 數值解析:範圍落在 -16 到 +16 之間。
  • 物理直覺:黑線在左邊為負值、在正中央為 0、在右邊為正值。

2. 競技高精度函數:LinePos100_dataUpdate

  • 功能目的:取得高解析度次像素級插值位置,最佳 PID 循線選擇。專為高階 PID / PD 循線控制演算法(適用於各類競速賽事)所設計,能提供極致平滑的修正動力。使用前提是必須確實完成感應器校準,校準越精確數值越準確。
  • 更新變數:執行此函數後,會同步更新多個關鍵變數:
    • 0_LinePos100:高精度位置,範圍 -100 到 +100(同樣維持左負右正的標準)。
    • 0_LineWidth16:即時線寬偵測,數值代表目前觸發的感應器數量(範圍 0 到 16)。可用於精準判斷十字路口、T 型路口或終點停止線。
    • 最左 / 最右邊界數值:同步讀取最左邊與最右邊感應器的實體光值,方便使用者作防掉線或交叉路口等進階策略調整。

3. 單一通道解碼函數:LineCh16_dataUpdate

  • 功能目的:將 16 顆感應器徹底解碼為獨立狀態,適用於撰寫自訂的特殊路口判斷演算法、特定位置的感應器觸發監控,或是將感應器狀態直接繪製於 EV3 主機的螢幕畫面上。
  • 參數與回傳值:採用高效率的「指定通道解碼」機制。使用者只需在積木輸入端指定想讀取的通道編號(輸入範圍 1 到 16),副程式便會即時解析,並由輸出端回傳對應通道的量化光值(數值範圍 1 至 9,1=最暗,9=最亮)。

提示

開發小提醒 這三個函數的底層技術,是巧妙利用了 EV3 內建紅外線感應器(設定於 Port 4)的多頻道切換(Channel 1~4)來傳輸大量資料。實際開發時,只要將這些自訂積木放入「無限迴圈(Loop)」中,即可確保循線車隨時掌握最即時的賽道資訊!


提示

想要學更厲害的循線控制方法嗎? 可以找這幾位厲害的教練上課唷!他們有非常豐富的比賽與教學經驗,保證讓你收穫滿滿~ 💯

LINE 詢價選購指南