神攝手舊版已停止支援:2026-10 以前出貨的神攝手(學校版/WRO 版)已停止支援,說明與範例保留供參考。需要升級成目前的神攝手:請聯繫原購買的經銷商寄回,韌體更新免費,來回運費由買家負擔。

神攝手 ESP32CAM × EV3 × clev3r

互動教學EV3

第一次用?先跟著互動教學在網頁上做一遍,再照下面的步驟接主機。

這一頁只講 clev3r(EV3 BASIC):在 MINDSTORMS EV3 上用它讀神攝手 ESP32CAM的安裝步驟、每個值怎麼讀、能用的命令與範例。要換產品、主機或軟體,用上方的切換列。

安裝與設定

你需要

  • 感應器:神攝手 ESP32CAM(EV3 版,RJ12 接頭)。
  • 主機:LEGO MINDSTORMS EV3。
  • 軟體:clev3r(EV3 的 BASIC 語言開發環境,也叫 EV3 Basic)。本站測試的版本是 v1.7.1.0。已經在用 clev3r 的人選這個。

安裝軟體

  1. 安裝 clev3r(建議 v1.7.1.0)。
  2. 打開範例:在 clev3r 開啟 .bp 檔 → 按「編譯並下載」→ 在 EV3 的檔案選單找到 MBC_ 開頭的資料夾執行。

讓軟體認得感應器

不用裝擴充。感應器在 EV3 上會模擬成樂高原廠感應器(多數產品是「紅外線感應器」),讀取模式跟 EV3 官方軟體完全一樣:Proximity/Beacon/Remote 三種,數值範圍也相同。

  • 用 BASIC 的 IR_PROXIMITY/IR_BEACON/IR_REMOTE 等指令讀取,看下面的讀值。
  • clev3r 也讀得到 EV3-G、Classroom 讀不到的模式,標「僅 Pybricks/EV3 MicroPython/clev3r」的範例也能跑。
  • 有些產品附 MBC 專屬副程式(Subroutines),已經放在範例檔裡。

重要

不要在程式中途切換模式。 EV3 主機每次切換感應器模式都會卡住一下(約 1 秒)。程式一開始選定一種模式,整趟任務都用它。

接線

  1. 用連接線把感應器插在 EV3 的 1 號孔(1~4 任一孔都可以,程式裡用同一個孔)。
  2. EV3 先開機,再插感應器。
  3. 接頭卡榫朝上,輕輕推進去。

先在感應器上設定顏色

神攝手的設定都在感應器背面的彩色螢幕與按鍵上完成,不用電腦:

  1. 感應器要接上已經開機的主機才會啟動(螢幕先顯示「LEGO Sync...」),出現鏡頭畫面就可以使用。
  2. 短按側鍵進入設定選單,用左/右鍵選擇、確認鍵進入;在選單中長按側鍵 1 秒清除該組顏色。
  3. 設定好的顏色與鏡頭參數(亮度、對比、飽和度、曝光、白平衡、翻轉、鏡像)會自動保存,下次開機直接使用。

兩種 EV3 韌體

韌體 EV3 上顯示成 能用的軟體
學校老師創意賽版(取色+色塊追蹤+動態偵測) 紅外線感應器 EV3-G、EV3 Classroom、Pybricks、clev3r
WRO 2026 版(HUE12,12 個色點) 第三方感應器(type 95) EV3-G(MBC 自訂積木)、clev3r、Pybricks;EV3 Classroom 讀不到

第一次測試

  1. 開啟本頁範例 1 的 .bp,按「編譯並下載」。
  2. 在 EV3 檔案選單找到 MBC_ 開頭的資料夾執行。
  3. EV3 螢幕上的數字跟著感應器前方的東西變化,就是接好了。

常見問題

  • 在 EV3 上找不到程式? 到 EV3 的檔案選單,找 MBC_ 開頭的資料夾。
  • 數字一直不變? 拔掉感應器重插一次(EV3 要先開機再插)。
  • 程式跑一跑會頓一下? 程式裡切換了感應器模式,改成只用一種模式。

讀值(學校版)

程式假設感應器插 1 號孔:Sensor.SetMode 選模式、Sensor.ReadRawValue 讀第幾個值。

色相 hue

色相
範圍 意思
-1~100 S1 取樣點色相 0100(色相環 0240 等比縮放);−1 = 黑白灰(飽和度 < 10);S1 沒設定 = 0
' clev3r (BASIC)
Sensor.SetMode(1, 0)
hue = Sensor.ReadRawValue(1, 0)
Sensor.SetMode(1, 1)
hue = Sensor.ReadRawValue(1, 0)
Sensor.SetMode(1, 2)
hue = Sensor.ReadRawValue(1, 0)
Sensor.SetMode(1, 3)
hue = Sensor.ReadRawValue(1, 0)
Sensor.SetMode(1, 5)
hue = Sensor.ReadRawValue(1, 0)

模式 0 · int8 · IR-PROX 1×int8;模式 1 · int8 · IR-SEEK [色相, 飽和, 明度, 動態, X, Y, W, H];模式 2 · int8 · IR-REMOTE [色相, 飽和, 明度, 動態];模式 3 · int16 · IR-REM-A 1×int16(#65 已修成正確符號延伸,−1 = 0xFFFF);模式 5 · int16 · IR-CAL [色相, 飽和] 2×int16(已鎖住的模式,韌體與主機端都不再改)

飽和度 saturation

飽和度
範圍 意思
0~100 S1 取樣點飽和度 0~100
' clev3r (BASIC)
Sensor.SetMode(1, 1)
saturation = Sensor.ReadRawValue(1, 1)
Sensor.SetMode(1, 2)
saturation = Sensor.ReadRawValue(1, 1)
Sensor.SetMode(1, 5)
saturation = Sensor.ReadRawValue(1, 1)

模式 1 · int8;模式 2 · int8;模式 5 · int16(已鎖住的模式,韌體與主機端都不再改)

明度 value

明度
範圍 意思
0~100 S1 取樣點明度 0~100
' clev3r (BASIC)
Sensor.SetMode(1, 1)
value = Sensor.ReadRawValue(1, 2)
Sensor.SetMode(1, 2)
value = Sensor.ReadRawValue(1, 2)

模式 1 · int8;模式 2 · int8(已鎖住的模式,韌體與主機端都不再改)

動態 motion

動態
範圍 意思
0~100 全畫面動態量 0~100(畫面變化越多越大)
' clev3r (BASIC)
Sensor.SetMode(1, 1)
motion = Sensor.ReadRawValue(1, 3)
Sensor.SetMode(1, 2)
motion = Sensor.ReadRawValue(1, 3)

模式 1 · int8;模式 2 · int8(已鎖住的模式,韌體與主機端都不再改)

色塊 X blobX

色塊 X
範圍 意思
0~100 色塊中心 X 0~100,左 = 0;沒找到 = 0
' clev3r (BASIC)
Sensor.SetMode(1, 1)
blobX = Sensor.ReadRawValue(1, 4)
Sensor.SetMode(1, 4)
blobX = Sensor.ReadRawValue(1, 0)

模式 1 · int8;模式 4 · int8 · IR-S-ALT [X, Y, W, H](已鎖住的模式,韌體與主機端都不再改)

色塊 Y blobY

色塊 Y
範圍 意思
0~75 色塊中心 Y 0~75,下 = 0、上 = 75;沒找到 = 0
' clev3r (BASIC)
Sensor.SetMode(1, 1)
blobY = Sensor.ReadRawValue(1, 5)
Sensor.SetMode(1, 4)
blobY = Sensor.ReadRawValue(1, 1)

模式 1 · int8;模式 4 · int8(已鎖住的模式,韌體與主機端都不再改)

色塊寬 blobW

色塊寬
範圍 意思
0~100 色塊寬 W 0~100;0 = 沒找到
' clev3r (BASIC)
Sensor.SetMode(1, 1)
blobW = Sensor.ReadRawValue(1, 6)
Sensor.SetMode(1, 4)
blobW = Sensor.ReadRawValue(1, 2)

模式 1 · int8;模式 4 · int8(已鎖住的模式,韌體與主機端都不再改)

色塊高 blobH

色塊高
範圍 意思
0~75 色塊高 H 0~75;沒找到 = 0
' clev3r (BASIC)
Sensor.SetMode(1, 1)
blobH = Sensor.ReadRawValue(1, 7)
Sensor.SetMode(1, 4)
blobH = Sensor.ReadRawValue(1, 3)

模式 1 · int8;模式 4 · int8(已鎖住的模式,韌體與主機端都不再改)

這個軟體讀不到:色塊面積、有找到色塊。要用這些值請改用 Arduino/mBlock/micro:bit。

讀值(WRO 版)

程式假設感應器插 1 號孔:Sensor.SetMode 選模式、Sensor.ReadRawValue 讀第幾個值。

色點 1~12 顏色碼 spotColor

色點 1~12 顏色碼
範圍 意思
0~255 101B = S1S12 顏色碼:0239 彩色(色相 0255 等比縮成 0239)、240245 白(飽和度 < 30,越低越大)、246~250 黑(明度 < 30,越暗越大)、255 = 色點沒開
' clev3r (BASIC)
Sensor.SetMode(1, 0)
spotColor1 = Sensor.ReadRawValue(1, 0)   ' 第 1 筆;第 N 筆改成 0 + N - 1

模式 0 · int32×8 · HUE12 8×int32 LE(32 B):24 byte = [色相, 鮮豔度]×12,每 3 byte 塞一個 int32(byte3 = 0);格 n 色相 = byte 2(n−1) → int32 k = idx/3、byte = idx%3;鎖住(已鎖住的模式,韌體與主機端都不再改)

色點 1~12 鮮豔度 spotVivid

色點 1~12 鮮豔度
範圍 意思
0~255 202B = S1S12 鮮豔度(飽和度)0~255:黑 = 1、白/彩色 = 實際飽和度;色點沒開 = 0
' clev3r (BASIC)
Sensor.SetMode(1, 0)
spotVivid1 = Sensor.ReadRawValue(1, 0)   ' 第 1 筆;第 N 筆改成 0 + N - 1

模式 0 · int32×8 · 同 10~1B:格 n 鮮豔度 = byte 2(n−1)+1;鎖住(已鎖住的模式,韌體與主機端都不再改)

範例(學校版)

範例 1:相機看到了什麼?8 個數字一次看

這個範例會做什麼: 模式 1 一次送出 8 個數字:顏色、鮮豔度、亮度、動態、色塊的 X、Y、寬、高。全部顯示在 EV3 螢幕上,對照相機畫面就能看懂每個數字的意思。

要準備什麼:

  • 神攝手(學校版)(EV3 版)
  • EV3 主機

怎麼接: 神攝手(學校版)插 1 號孔。相機設定:側鍵短按進選單 → 左右鍵選「2:TRACK」→ 確認 → 把十字對準球,依序調好位置、容許範圍與最小面積 → 按確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(學校老師創意賽版) EV3 新手範例 01:相機看到了什麼?8 個數字一次看
' 軟體:clev3r
' 接法:神攝手(學校版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:模式 1 一次送出 8 個數字:顏色、鮮豔度、亮度、動態、色塊的 X、Y、寬、高。全部顯示在 EV3 螢幕上,對照相機畫面就能看懂每個數字的意思。
' 讀值:hue1=顏色(色相)(0 ~ 100,-1=黑白灰);sta=顏色鮮豔度(0 ~ 100);val=亮度(0 ~ 100);motion=畫面動了多少(0 ~ 100);x=色塊左右位置(0 ~ 100(左 → 右),沒找到=0);y=色塊上下位置(0 ~ 75(下 → 上),沒找到=0);w=色塊寬度(0 ~ 100,0=沒找到);h=色塊高度(越近越大)(0 ~ 75,0=沒找到)
' ============================================================
folder "prjs" "MBC_esp32cam_ex01"

' 神攝手(學校版)插 1 號孔,使用模式 1
Sensor.SetMode(1, 1)
LCD.Clear()

' 清除螢幕
LCD.Clear()
' 一直重複
While "True"
  ' 顏色:紅 0 或 100、黃約 17、綠約 33、藍約 67,-1=黑白灰
  LCD.Text(1, 0, 0, 1, "HUE " + Sensor.ReadRawValue(1, 0) + "      ")
  ' 鮮豔度 0~100
  LCD.Text(1, 0, 16, 1, "STA " + Sensor.ReadRawValue(1, 1) + "      ")
  ' 亮度 0~100
  LCD.Text(1, 0, 32, 1, "VAL " + Sensor.ReadRawValue(1, 2) + "      ")
  ' 畫面動了多少 0~100
  LCD.Text(1, 0, 48, 1, "MOTION " + Sensor.ReadRawValue(1, 3) + "      ")
  ' 色塊左右位置 0~100
  LCD.Text(1, 0, 64, 1, "X " + Sensor.ReadRawValue(1, 4) + "      ")
  ' 色塊上下位置 0~75
  LCD.Text(1, 0, 80, 1, "Y " + Sensor.ReadRawValue(1, 5) + "      ")
  ' 色塊寬度,0=沒找到
  LCD.Text(1, 0, 96, 1, "W " + Sensor.ReadRawValue(1, 6) + "      ")
  ' 色塊高度,越近越大
  LCD.Text(1, 0, 112, 1, "H " + Sensor.ReadRawValue(1, 7) + "      ")
  ' 等 0.1 秒
  Program.Delay(100)
EndWhile

一步一步看懂程式:

  1. 清除螢幕
  2. 一直重複
    • 顏色:紅 0 或 100、黃約 17、綠約 33、藍約 67,-1=黑白灰
    • 鮮豔度 0~100
    • 亮度 0~100
    • 畫面動了多少 0~100
    • 色塊左右位置 0~100
    • 色塊上下位置 0~75
    • 色塊寬度,0=沒找到
    • 色塊高度,越近越大
    • 等 0.1 秒

跑起來應該看到: 把球在鏡頭前左右移動,X 跟著變;拿近,W、H 變大;拿走,X、Y、W、H 全部變 0。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • X、Y、W、H 一直是 0? 還沒設定 2:TRACK,或球的顏色不在容許範圍內。

範例 2:紅綠燈車:看到綠色才走

這個範例會做什麼: 用模式 0 只讀「顏色」。看到綠色就往前開,其他顏色(紅色)就停。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(學校版)(EV3 版)
  • 紅色、綠色的紙卡各一張

怎麼接: 神攝手(學校版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選「1:COLOR」→ 確認 → 把十字對準要認的顏色,依序調好位置與容許範圍 → 按確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(學校老師創意賽版) EV3 新手範例 02:紅綠燈車:看到綠色才走
' 軟體:clev3r
' 接法:神攝手(學校版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:用模式 0 只讀「顏色」。看到綠色就往前開,其他顏色(紅色)就停。
' 讀值:hue=顏色(色相)(0 ~ 100(紅 0 或 100、黃約 17、綠約 33、藍約 67),-1=黑白灰)
' ============================================================
folder "prjs" "MBC_esp32cam_ex02"

' 神攝手(學校版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 一直重複
While "True"
  ' 如果顏色在 25~45 之間(綠色)
  If (Sensor.ReadRawValue(1, 0) >= 25) And (Sensor.ReadRawValue(1, 0) <= 45) Then
    ' 是綠色:往前開
    Motor.StartPower("B", 30)
    Motor.StartPower("C", 30)
  Else
    ' 不是綠色:停車
    Motor.Stop("BC", "True")
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 如果顏色在 25~45 之間(綠色)
      • 是綠色:往前開
      • 否則:
        • 不是綠色:停車

跑起來應該看到: 鏡頭前放綠色卡,車子往前開;換成紅色卡,車子停下來。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 綠色卡也不走? 先跑範例 1 看綠色卡實際的 HUE 是多少,再改程式裡的 25 和 45。

範例 3:防盜警報:有東西動就叫

這個範例會做什麼: 模式 1 的第 4 個數字是「畫面動了多少」。相機對著門口,有人經過數字就會變大,超過 20 就嗶嗶叫。這個範例相機不用做任何設定。

要準備什麼:

  • 神攝手(學校版)(EV3 版)
  • EV3 主機

怎麼接: 神攝手(學校版)插 1 號孔,鏡頭對著要看守的地方,放穩不要晃。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(學校老師創意賽版) EV3 新手範例 03:防盜警報:有東西動就叫
' 軟體:clev3r
' 接法:神攝手(學校版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:模式 1 的第 4 個數字是「畫面動了多少」。相機對著門口,有人經過數字就會變大,超過 20 就嗶嗶叫。這個範例相機不用做任何設定。
' 讀值:motion=畫面動了多少(0 ~ 100)
' ============================================================
folder "prjs" "MBC_esp32cam_ex03"

' 神攝手(學校版)插 1 號孔,使用模式 1
Sensor.SetMode(1, 1)
LCD.Clear()

' 一直重複
While "True"
  ' 螢幕顯示動態值
  LCD.Text(1, 0, 0, 1, "MOTION " + Sensor.ReadRawValue(1, 3) + "      ")
  ' 如果動態值大於 20
  If Sensor.ReadRawValue(1, 3) > 20 Then
    ' 有東西在動:嗶!
    Speaker.Tone(50, 1000, 100)
    Speaker.Wait()
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 螢幕顯示動態值
    • 如果動態值大於 20
      • 有東西在動:嗶!

跑起來應該看到: 畫面靜止時不叫;手在鏡頭前揮一下,EV3 就嗶嗶叫。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 沒人也一直叫? 日光燈閃爍或相機在晃。把 20 改大(例如 35)。

範例 4:看球轉頭

這個範例會做什麼: 車子原地轉,讓球一直保持在畫面中間:球在左邊就往左轉、在右邊就往右轉、在中間就停;看不到球就原地轉圈找。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(學校版)(EV3 版)
  • 一顆顏色鮮豔的球

怎麼接: 神攝手(學校版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選「2:TRACK」→ 確認 → 把十字對準球,依序調好位置、容許範圍與最小面積 → 按確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(學校老師創意賽版) EV3 新手範例 04:看球轉頭
' 軟體:clev3r
' 接法:神攝手(學校版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:車子原地轉,讓球一直保持在畫面中間:球在左邊就往左轉、在右邊就往右轉、在中間就停;看不到球就原地轉圈找。
' 讀值:w=色塊寬度(0 ~ 100,0=沒找到);x=色塊左右位置(0 ~ 100(左 → 右),沒找到=0)
' ============================================================
folder "prjs" "MBC_esp32cam_ex04"

' 神攝手(學校版)插 1 號孔,使用模式 1
Sensor.SetMode(1, 1)
LCD.Clear()

' 一直重複
While "True"
  ' 如果色塊寬度=0(沒找到球)
  If Sensor.ReadRawValue(1, 6) = 0 Then
    ' 看不到球(寬度=0):原地慢慢轉圈找
    Motor.StartPower("B", 15)
    Motor.StartPower("C", -15)
  ' 如果 X 小於 40(左邊)
  ElseIf Sensor.ReadRawValue(1, 4) < 40 Then
    ' 球在左邊:往左轉
    Motor.StartPower("B", -15)
    Motor.StartPower("C", 15)
  ' 否則,如果 X 大於 60(右邊)
  ElseIf Sensor.ReadRawValue(1, 4) > 60 Then
    ' 球在右邊:往右轉
    Motor.StartPower("B", 15)
    Motor.StartPower("C", -15)
  Else
    ' 球在中間:停住
    Motor.Stop("BC", "True")
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 如果色塊寬度=0(沒找到球)
      • 看不到球(寬度=0):原地慢慢轉圈找
      • 否則:
        • 如果 X 小於 40(左邊)
          • 球在左邊:往左轉
          • 否則:
            • 否則,如果 X 大於 60(右邊)
              • 球在右邊:往右轉
              • 否則:
                • 球在中間:停住

跑起來應該看到: 拿著球在車子前面左右移動,車頭會跟著球轉。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 左右顛倒? 把兩個 tank 的 -15 和 15 對調。

範例 5:追球:靠近到一定距離就停

這個範例會做什麼: 把範例 4 改成會往前開:一邊對準球一邊前進,球的高度 H 夠大(夠近)就停下來。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(學校版)(EV3 版)
  • 一顆顏色鮮豔的球

怎麼接: 神攝手(學校版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選「2:TRACK」→ 確認 → 把十字對準球,依序調好位置、容許範圍與最小面積 → 按確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(學校老師創意賽版) EV3 新手範例 05:追球:靠近到一定距離就停
' 軟體:clev3r
' 接法:神攝手(學校版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:把範例 4 改成會往前開:一邊對準球一邊前進,球的高度 H 夠大(夠近)就停下來。
' 讀值:w=色塊寬度(0 ~ 100,0=沒找到);h=色塊高度(越近越大)(0 ~ 75,0=沒找到);x=色塊左右位置(0 ~ 100(左 → 右),沒找到=0)
' ============================================================
folder "prjs" "MBC_esp32cam_ex05"

' 神攝手(學校版)插 1 號孔,使用模式 1
Sensor.SetMode(1, 1)
LCD.Clear()

' 一直重複
While "True"
  ' 如果寬度=0(沒找到球)
  If Sensor.ReadRawValue(1, 6) = 0 Then
    ' 看不到球:原地轉圈找
    Motor.StartPower("B", 15)
    Motor.StartPower("C", -15)
  ' 否則,如果 H 大於 30
  ElseIf Sensor.ReadRawValue(1, 7) > 30 Then
    ' 球的高度大於 30(夠近了):停車
    Motor.Stop("BC", "True")
  Else
    ' 轉彎力量 turn =(X − 50)× 0.6:球偏右是正數
    turn = (Sensor.ReadRawValue(1, 4) - 50) * 0.6
    ' 左輪=25+turn、右輪=25-turn:邊對準邊前進
    Motor.StartPower("B", 25 + turn)
    Motor.StartPower("C", 25 - turn)
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 如果寬度=0(沒找到球)
      • 看不到球:原地轉圈找
      • 否則:
        • 否則,如果 H 大於 30
          • 球的高度大於 30(夠近了):停車
          • 否則:
            • 轉彎力量 turn =(X − 50)× 0.6:球偏右是正數
            • 左輪=25+turn、右輪=25-turn:邊對準邊前進

跑起來應該看到: 把球放在地上,車子會轉向球、開過去,在球前面停下來。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 還很遠就停了? 把 30 改大。

還有問題?歡迎到 聯絡我們 留言,附上你用的軟體和程式截圖,我們會幫你看。

範例(WRO 版)

範例 1:色點 S1 看到什麼顏色?

這個範例會做什麼: WRO 版有 12 個色點,每個色點回報「那一個位置現在的顏色」。先設定 S1,把它的顏色碼和鮮豔度顯示在螢幕上。

要準備什麼:

  • 神攝手(WRO 版)(EV3 版)
  • EV3 主機
  • 各種顏色的積木

怎麼接: 神攝手(WRO 版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選 S1 → 確認 → 移動十字游標到要看的位置(X、Y)→ 調容許範圍 → 確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(WRO 2026 版 HUE12) EV3 新手範例 01:色點 S1 看到什麼顏色?
' 軟體:clev3r
' 接法:神攝手(WRO 版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:WRO 版有 12 個色點,每個色點回報「那一個位置現在的顏色」。先設定 S1,把它的顏色碼和鮮豔度顯示在螢幕上。
' 讀值:hue1=色點 S1 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開);sta1=色點 S1 的鮮豔度(0 ~ 255(黑色固定 1))
' ============================================================
folder "prjs" "MBC_esp32cam_wro_ex01"

' 神攝手(WRO 版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 清除螢幕
LCD.Clear()
' 一直重複
While "True"
  ' 第 1 行:S1 的顏色碼
  LCD.Text(1, 0, 0, 1, "S1 " + Math.Remainder(Sensor.ReadRawValue(1, 0), 256) + "      ")
  ' 第 2 行:S1 的鮮豔度
  LCD.Text(1, 0, 16, 1, "T1 " + Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 0) / 256), 256) + "      ")
  ' 等 0.1 秒
  Program.Delay(100)
EndWhile

一步一步看懂程式:

  1. 清除螢幕
  2. 一直重複
    • 第 1 行:S1 的顏色碼
    • 第 2 行:S1 的鮮豔度
    • 等 0.1 秒

跑起來應該看到: 在 S1 的位置放不同顏色的積木,顏色碼會跟著變:紅約 0、黃約 40、綠約 80、藍約 160。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 數字一直是 255? 那個色點還沒設定(沒啟用)。照上面的相機設定做一次 S1。
  • 顏色數字的意思? 0239 是彩色:紅 0(或 239)、黃 40、綠 80、青 120、藍 160、紫 200;240245 白;246~250 黑。
  • 相機畫面上下顛倒? 到選單把 V-Flip 打開。改完方向後,色點的位置要重新設定一次。
  • 原本燒的是學校版,改燒 WRO 版後色點怪怪的? 兩版的設定存在同一個地方,請先在選單做一次 Reset Default,再重新設定色點。

範例 2:顏色播報:螢幕顯示顏色名稱

這個範例會做什麼: 把顏色碼分成幾段,判斷是紅、綠、藍、白、黑,在螢幕上顯示英文名稱並嗶一聲。

要準備什麼:

  • 神攝手(WRO 版)(EV3 版)
  • EV3 主機
  • 紅、綠、藍色積木

怎麼接: 神攝手(WRO 版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選 S1 → 確認 → 移動十字游標到要看的位置(X、Y)→ 調容許範圍 → 確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(WRO 2026 版 HUE12) EV3 新手範例 02:顏色播報:螢幕顯示顏色名稱
' 軟體:clev3r
' 接法:神攝手(WRO 版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:把顏色碼分成幾段,判斷是紅、綠、藍、白、黑,在螢幕上顯示英文名稱並嗶一聲。
' 讀值:hue1=色點 S1 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開)
' ============================================================
folder "prjs" "MBC_esp32cam_wro_ex02"

' 神攝手(WRO 版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 一直重複
While "True"
  ' 把 S1 的顏色碼存進 hue
  hue = Math.Remainder(Sensor.ReadRawValue(1, 0), 256)
  ' 清除螢幕
  LCD.Clear()
  ' 如果是紅色
  If (hue < 15) Or ((hue > 225) And (hue < 240)) Then
    ' 0~14 或 226~239:紅色
    LCD.Text(1, 0, 0, 1, "RED      ")
  ' 否則,如果是綠色
  ElseIf (hue >= 60) And (hue <= 100) Then
    ' 60~100:綠色
    LCD.Text(1, 0, 0, 1, "GREEN      ")
  ' 否則,如果是藍色
  ElseIf (hue >= 140) And (hue <= 180) Then
    ' 140~180:藍色
    LCD.Text(1, 0, 0, 1, "BLUE      ")
  ' 否則,如果是白色
  ElseIf (hue >= 240) And (hue <= 245) Then
    ' 240~245:白色
    LCD.Text(1, 0, 0, 1, "WHITE      ")
  ' 否則,如果是黑色
  ElseIf (hue >= 246) And (hue <= 250) Then
    ' 246~250:黑色
    LCD.Text(1, 0, 0, 1, "BLACK      ")
  Else
    ' 其他顏色
    LCD.Text(1, 0, 0, 1, "OTHER      ")
  EndIf
  ' 等 0.3 秒
  Program.Delay(300)
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 把 S1 的顏色碼存進 hue
    • 清除螢幕
    • 如果是紅色
      • 014 或 226239:紅色
      • 否則:
        • 否則,如果是綠色
          • 60~100:綠色
          • 否則:
            • 否則,如果是藍色
              • 140~180:藍色
              • 否則:
                • 否則,如果是白色
                  • 240~245:白色
                  • 否則:
                    • 否則,如果是黑色
                      • 246~250:黑色
                      • 否則:
                        • 其他顏色
    • 等 0.3 秒

跑起來應該看到: 把紅、綠、藍積木放到 S1 的位置,螢幕分別顯示 RED、GREEN、BLUE。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 數字一直是 255? 那個色點還沒設定(沒啟用)。照上面的相機設定做一次 S1。
  • 顏色數字的意思? 0239 是彩色:紅 0(或 239)、黃 40、綠 80、青 120、藍 160、紫 200;240245 白;246~250 黑。
  • 相機畫面上下顛倒? 到選單把 V-Flip 打開。改完方向後,色點的位置要重新設定一次。
  • 原本燒的是學校版,改燒 WRO 版後色點怪怪的? 兩版的設定存在同一個地方,請先在選單做一次 Reset Default,再重新設定色點。

範例 3:交通號誌柱:紅停綠走

這個範例會做什麼: WRO 未來工程師常見的紅綠柱子:S1 對準前方,看到紅色就停車、看到綠色就往前開。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(WRO 版)(EV3 版)
  • 紅色、綠色的柱子或積木

怎麼接: 神攝手(WRO 版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選 S1 → 確認 → 移動十字游標到要看的位置(X、Y)→ 調容許範圍 → 確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(WRO 2026 版 HUE12) EV3 新手範例 03:交通號誌柱:紅停綠走
' 軟體:clev3r
' 接法:神攝手(WRO 版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:WRO 未來工程師常見的紅綠柱子:S1 對準前方,看到紅色就停車、看到綠色就往前開。
' 讀值:hue1=色點 S1 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開)
' ============================================================
folder "prjs" "MBC_esp32cam_wro_ex03"

' 神攝手(WRO 版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 一直重複
While "True"
  ' 把 S1 的顏色碼存進 hue
  hue = Math.Remainder(Sensor.ReadRawValue(1, 0), 256)
  ' 如果是綠色(60~100)
  If (hue >= 60) And (hue <= 100) Then
    ' 綠色:往前開
    Motor.StartPower("B", 30)
    Motor.StartPower("C", 30)
  ' 否則,如果是紅色
  ElseIf (hue < 15) Or ((hue > 225) And (hue < 240)) Then
    ' 紅色:停車
    Motor.Stop("BC", "True")
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 把 S1 的顏色碼存進 hue
    • 如果是綠色(60~100)
      • 綠色:往前開
      • 否則:
        • 否則,如果是紅色
          • 紅色:停車

跑起來應該看到: 前面放綠色柱子,車子往前開;換成紅色,車子停下來。其他顏色會維持原本的動作。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 數字一直是 255? 那個色點還沒設定(沒啟用)。照上面的相機設定做一次 S1。
  • 顏色數字的意思? 0239 是彩色:紅 0(或 239)、黃 40、綠 80、青 120、藍 160、紫 200;240245 白;246~250 黑。
  • 相機畫面上下顛倒? 到選單把 V-Flip 打開。改完方向後,色點的位置要重新設定一次。
  • 原本燒的是學校版,改燒 WRO 版後色點怪怪的? 兩版的設定存在同一個地方,請先在選單做一次 Reset Default,再重新設定色點。

範例 4:看到黑線就停車

這個範例會做什麼: 把 S1 設在畫面下方對著地面,車子往前開,S1 看到黑色(246~250)就停。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(WRO 版)(EV3 版)
  • 白色地面上貼一條黑膠帶

怎麼接: 神攝手(WRO 版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:側鍵短按進選單 → 左右鍵選 S1 → 確認 → 移動十字游標到畫面下方(對著地面)(X、Y)→ 調容許範圍 → 確認存檔。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(WRO 2026 版 HUE12) EV3 新手範例 04:看到黑線就停車
' 軟體:clev3r
' 接法:神攝手(WRO 版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:把 S1 設在畫面下方對著地面,車子往前開,S1 看到黑色(246~250)就停。
' 讀值:hue1=色點 S1 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開)
' ============================================================
folder "prjs" "MBC_esp32cam_wro_ex04"

' 神攝手(WRO 版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 往前開
Motor.StartPower("B", 25)
Motor.StartPower("C", 25)
' 等到 S1 的顏色碼在 246~250(黑色)
While (Math.Remainder(Sensor.ReadRawValue(1, 0), 256) < 246) Or (Math.Remainder(Sensor.ReadRawValue(1, 0), 256) > 250)
  Program.Delay(10)
EndWhile
' 停車
Motor.Stop("BC", "True")
' 嗶一聲
Speaker.Tone(50, 1000, 100)
Speaker.Wait()

一步一步看懂程式:

  1. 往前開
  2. 等到 S1 的顏色碼在 246~250(黑色)
  3. 停車
  4. 嗶一聲

跑起來應該看到: 車子往前開,壓到黑線時停下來並嗶一聲。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 數字一直是 255? 那個色點還沒設定(沒啟用)。照上面的相機設定做一次 S1。
  • 顏色數字的意思? 0239 是彩色:紅 0(或 239)、黃 40、綠 80、青 120、藍 160、紫 200;240245 白;246~250 黑。
  • 相機畫面上下顛倒? 到選單把 V-Flip 打開。改完方向後,色點的位置要重新設定一次。
  • 原本燒的是學校版,改燒 WRO 版後色點怪怪的? 兩版的設定存在同一個地方,請先在選單做一次 Reset Default,再重新設定色點。

範例 5:左中右三個色點:紅色在哪邊?

這個範例會做什麼: 設定 S1(左)、S2(中)、S3(右)三個色點,看紅色出現在哪一個,車子就往那邊轉。

要準備什麼:

  • EV3 主機+教育版基本車(左輪接 B、右輪接 C)
  • 神攝手(WRO 版)(EV3 版)
  • 一個紅色積木

怎麼接: 神攝手(WRO 版)插 1 號孔,裝在車頭、鏡頭朝前。相機設定:把 S1 設在畫面左邊、S2 中間、S3 右邊,三個點高度一樣。

下載程式(選你用的軟體):

⬇ clev3r

clev3r 程式碼
' ============================================================
' 神攝手 ESP32CAM 視覺感應器(WRO 2026 版 HUE12) EV3 新手範例 05:左中右三個色點:紅色在哪邊?
' 軟體:clev3r
' 接法:神攝手(WRO 版)插 1 號孔;左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼:設定 S1(左)、S2(中)、S3(右)三個色點,看紅色出現在哪一個,車子就往那邊轉。
' 讀值:hue1=色點 S1 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開);hue3=色點 S3 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開);hue2=色點 S2 的顏色碼(0 ~ 239 彩色(紅 0/239、黃 40、綠 80、青 120、藍 160、紫 200);240~245 白;246~250 黑;255=色點沒開)
' ============================================================
folder "prjs" "MBC_esp32cam_wro_ex05"

' 神攝手(WRO 版)插 1 號孔,使用模式 0
Sensor.SetMode(1, 0)
LCD.Clear()

' 一直重複
While "True"
  ' 如果 S1 是紅色
  If (Math.Remainder(Sensor.ReadRawValue(1, 0), 256) < 15) Or ((Math.Remainder(Sensor.ReadRawValue(1, 0), 256) > 225) And (Math.Remainder(Sensor.ReadRawValue(1, 0), 256) < 240)) Then
    ' 紅色在左邊(S1):往左轉
    Motor.StartPower("B", -15)
    Motor.StartPower("C", 15)
  ' 否則,如果 S3 是紅色
  ElseIf (Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 1) / 256), 256) < 15) Or ((Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 1) / 256), 256) > 225) And (Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 1) / 256), 256) < 240)) Then
    ' 紅色在右邊(S3):往右轉
    Motor.StartPower("B", 15)
    Motor.StartPower("C", -15)
  ' 否則,如果 S2 是紅色
  ElseIf (Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 0) / 65536), 256) < 15) Or ((Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 0) / 65536), 256) > 225) And (Math.Remainder(Math.Floor(Sensor.ReadRawValue(1, 0) / 65536), 256) < 240)) Then
    ' 紅色在中間(S2):往前開
    Motor.StartPower("B", 25)
    Motor.StartPower("C", 25)
  Else
    ' 沒看到紅色:停住
    Motor.Stop("BC", "True")
  EndIf
EndWhile

一步一步看懂程式:

  1. 一直重複
    • 如果 S1 是紅色
      • 紅色在左邊(S1):往左轉
      • 否則:
        • 否則,如果 S3 是紅色
          • 紅色在右邊(S3):往右轉
          • 否則:
            • 否則,如果 S2 是紅色
              • 紅色在中間(S2):往前開
              • 否則:
                • 沒看到紅色:停住

跑起來應該看到: 紅色積木放在車子左前方,車子往左轉;放右前方往右轉;正前方就往前開。

常見問題:

  • 相機螢幕一直停在「LEGO Sync...」? 相機要接上「已經開機」的 EV3 才會啟動。EV3 先開機,再插相機的線。
  • 數字一直是 255? 那個色點還沒設定(沒啟用)。照上面的相機設定做一次 S1。
  • 顏色數字的意思? 0239 是彩色:紅 0(或 239)、黃 40、綠 80、青 120、藍 160、紫 200;240245 白;246~250 黑。
  • 相機畫面上下顛倒? 到選單把 V-Flip 打開。改完方向後,色點的位置要重新設定一次。
  • 原本燒的是學校版,改燒 WRO 版後色點怪怪的? 兩版的設定存在同一個地方,請先在選單做一次 Reset Default,再重新設定色點。

還有問題?歡迎到 聯絡我們 留言,附上你用的軟體和程式截圖,我們會幫你看。

其他問題

  • EV3 顯示成紅外線感應器? 正常:感應器模擬成樂高原廠感應器,用原廠積木就能讀。
  • 切換模式時卡一下? EV3 每次換模式要等約 1 秒。整趟任務盡量只用同一個模式的積木。

還有問題?到 聯絡我們 附上你用的軟體和程式截圖。

下載

本頁依據

  • 主機與軟體清單:_build/guides.json
  • 值與命令:_build/protocol/cam_school.json、_build/protocol/cam_wro.json(單一真相來源)
  • 安裝與設定:_build/guides/software/ev3-clev3r.zh.md、_build/guides/product/esp32cam/ev3-clev3r.zh.md
  • 範例:sensors/esp32cam/ev3-examples(-wro).md
LINE 詢價選購指南