這頁內容已整合到新的說明頁:循行者 8 路 › EV3 › EV3 Classroom

LEGO® MINDSTORMS® EV3 Classroom

回到 EV3 主機選單

EV3 Hub + EV3 Classroom App

警告

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

適用於 LEGO® MINDSTORMS® EV3 Classroom App(Scratch 積木風格)。在此環境下,循行者 8 路感應器會被樂高系統完美識別為官方的 Infrared Sensor(紅外線感應器)。

重要

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

與官方 EV3 軟體的差異 Classroom App 的積木外觀是 Scratch 風格,但感應器讀取模式與官方 EV3 軟體完全一樣:Proximity / Beacon / Remote 三種模式,回傳數值範圍也完全相同。


讀取線位置 — Proximity 模式

EV3 Classroom Proximity 模式積木

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

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

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

EV3 Classroom Beacon 模式積木

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

Byte內容範圍怎麼讀
0 第 1 路反射值 0 ~ 100 信標 頻道 1 的「方向」
1 第 2 路反射值 0 ~ 100 信標 頻道 1 的「近接(距離)」
2 第 3 路反射值 0 ~ 100 信標 頻道 2 的「方向」
3 第 4 路反射值 0 ~ 100 信標 頻道 2 的「近接(距離)」
4 第 5 路反射值 0 ~ 100 信標 頻道 3 的「方向」
5 第 6 路反射值 0 ~ 100 信標 頻道 3 的「近接(距離)」
6 第 7 路反射值 0 ~ 100 信標 頻道 4 的「方向」
7 第 8 路反射值 0 ~ 100 信標 頻道 4 的「近接(距離)」

每一路都是校準後的反射值:0=最暗(黑線)、100=最亮(白底)。第 1 路在最左邊(站在車子後面、面向車頭看)。


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

EV3 Classroom Remote 模式積木

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

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

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


範例程式下載

LEGO® MINDSTORMS® EV3 Classroom 範例程式圖控積木範例

上圖為 8路循線感應器於 LEGO® MINDSTORMS® EV3 Classroom 中的經典 PID 循線程式結構示範


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

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

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

1. 基礎循線函數:LinePos8_dataUpdate

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

2. 競技高精度函數:LinePos100_dataUpdate

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

3. 全陣列展開函數:LineCh8_dataUpdate

  • 功能目的:將 8 顆感應器徹底解碼為獨立狀態,適用於撰寫自訂的特殊路口判斷演算法、特定位置的感應器觸發監控,或是將 8 顆感應器的狀態直接繪製於 EV3 主機的螢幕畫面上。
  • 更新變數:執行此函數後,會一氣呵成地更新 s1 到 s8 共 8 個獨立變數,完美對應感應器由左至右每一顆的即時讀數。

提示

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


提示

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

LINE 詢價選購指南