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

三個步驟用 Arduino 讀神攝手 WRO 版

寫 Arduino 程式照這個順序:先接好線、貼上小幫手,再在 setup() 開始通訊、等神攝手準備好,最後在 loop() 用 mbcReadMany() 一次讀 12 個色點。左邊一步一步做,右邊的程式會跟著長出來;點模擬畫面上的格子換顏色,就能看到序列埠監控視窗會印出什麼。

1

接線,貼上小幫手

Arduino 用 I2C(4 條線)跟感應器講話,不用安裝函式庫。程式最上面寫 2 行、最下面貼一段「小幫手」,之後就能用 mbcRead() 讀值、mbcWrite() 送命令。

你用哪一塊板子?(只差 SDA/SCL 接哪兩腳,程式完全一樣)

  1. 接線前先拔掉 USB 線。要用 通用 I2C 版(SPIKE 版、EV3 版的韌體不同,不能接 Arduino)。
  2. 感應器 VCC → 5V、GND → GND
  3. 感應器 SDA → A4、SCL → A5
  4. 神攝手接頭上的 IO3 = SDA、IO1 = SCL。神攝手要燒 WRO 版(HUE12)的 I2C 版韌體:EV3 版、SPIKE 版用同一組腳走串口,只能二選一。
  5. 色點先在神攝手上設定好:用背面的螢幕和按鍵開啟要用的色點 S1~S12,並對準場地。設定存在機身,Arduino 只負責讀結果,程式改不了。
  6. 打開 Arduino IDE:檔案 → 新增,把原本的內容刪掉。
  7. 最上面寫第 1、2 行;最下面貼「小幫手」(右邊程式標 ① 的地方,按「複製程式」會一起拿到)。
2

開始通訊,等感應器準備好

setup() 是開機時只跑一次的地方:打開序列埠、開始 I2C、等感應器說「準備好了」。ADDR 是感應器的「門牌號碼」(I2C 位址),之後每次讀值都寫它。

感應器的 I2C 位址:

找不到感應器的時候:

3

使用功能

讀值寫「mbcRead(ADDR, 編號)」,送命令寫「mbcWrite(ADDR, 命令)」。點一個功能,程式和序列埠監控視窗會換成它的範例。

模擬神攝手畫面(12 格排成一排):點格子換顏色,看右邊序列埠監控視窗怎麼變
要塗的顏色(先選顏色,再點上面的格子):

模擬畫面是示意:每種顏色用一個代表數字,實際的顏色碼、鮮豔度會跟著燈光和物塊變。12 格的位置是你在神攝手上設定的,這裡排成一排方便看(第 1 格 S1 在最左邊);紅框 = 範例讀的第 1 格。格子下面第一排是第幾格、第二排是顏色碼(0x10~0x1B)、第三排是鮮豔度(0x20~0x2B)。拔掉感應器時,Arduino 讀到的每個值都是 -32768。

每個功能的範例

13 個功能(12 個色點的顏色碼與鮮豔度、每款 MBC 感應器都有的共用編號),每個都有一段範例。按「試試看」會切到第 3 步,右邊的程式和序列埠監控視窗會換成這個範例。

完整範例

按「複製」拿到的是完整程式(最下面已經接好小幫手),貼進 Arduino IDE 就能上傳。

12 個色點一次看

        

!每 0.5 秒把 12 個色點印成 12 行:0x10~0x1B 顏色碼一次讀 12 個、0x20~0x2B 鮮豔度一次讀 12 個,每行印顏色名字+顏色碼+鮮豔度。顏色的分界在最下面的 printCodeName,可以依場地光線調整。

依第 1 格的顏色轉向(L298N 馬達驅動板)

        

!第 1 格(S1)看到紅色原地右轉、綠色原地左轉,其他顏色停車;讀不到神攝手也停車。只改最上面「可以改的參數」就好:綠色沒反應,先用「12 個色點一次看」看你的綠色碼是多少,再改 GREEN_MIN、GREEN_MAX。哪個輪子轉反了,就把那一顆的 REVERSE 改成 true。L298N 的 GND 要跟 Arduino 的 GND 接在一起。

跟神攝手打招呼(分辨學校版/WRO 版)

        

!每次接新的神攝手先跑這一個:印出出廠位址、是學校版還是 WRO 版(0xF0 高 byte 1/2)、協議版本、韌體版本、開機秒數。兩版位址都是 0x4C,靠這個分。

使用注意

  1. 拔線不會讓程式停。讀不到時 mbcRead() 回傳 -32768(MBC_NONE),mbcReadMany() 回傳 false;插回去就恢復。WRO 版沒有的編號(例如學校版的 0x01~0x0A)也會讀到 -32768。在右邊勾「拔掉感應器」可以看到這個情形。
  2. 小幫手裡的 delay(2) 不能刪。神攝手是 ESP32 做的從機,不能把 I2C 時脈拉住(時脈延展)等資料,所以寫完編號要等 2 ms 它才準備好;拿掉會讀到上一次的資料。神攝手開機要幾秒(鏡頭初始化+螢幕),所以 mbcWaitReady() 最多等 8 秒。序列埠監控視窗的速度要選 115200。
  3. 顏色碼怎麼看(0x10~0x1B):0~239 彩色:色相 0~255 等比縮成 0~239,乘 360 再除 240 就是色相環的角度(紅在頭尾:0~9 和 220~239、黃約 40、綠約 80、青約 120、藍約 160、紫約 180~219);240~245 白(飽和度低於 30,越不鮮豔數字越大);246~250 黑(明度低於 30,越暗數字越大);255 = 這個色點沒開。255 只代表「沒開」:色點有開但沒對到東西時,仍會回那一點目前的顏色。
  4. 鮮豔度(0x20~0x2B)是那一點的飽和度 0~255:越大越鮮豔;黑色固定是 1;色點沒開是 0。白色的鮮豔度很低(低於 30),可以拿來分「白色」和「很淡的顏色」。
  5. 12 個一次讀。第 N 格的顏色碼是 0x10 + (N − 1)、鮮豔度是 0x20 + (N − 1)。兩群各 12 個連號,用 mbcReadMany(ADDR, 0x10, 12, code) 一次讀 12 個,保證是同一瞬間(神攝手每 10 ms 更新一次);一次最多讀 16 個,所以顏色碼和鮮豔度分兩次讀。