開始:程式開始+一直重複
讀感應器要一直重複讀。先放黃色的「when program starts」,下面接「forever(一直重複)」,裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。
- 打開樂高官方 SPIKE App,新增專案,選「Word Blocks(文字積木)」。
- 從「Events」拖出「when program starts」,從「Control」拖出「forever」接在下面。
- 再拖一顆「wait 1 seconds」放進 forever,數字改成 0.1。
在樂高官方 SPIKE App 裡,神攝手會被當成顏色感應器,所以不用匯入函式庫,直接用顏色感應器的積木讀:「顏色」就是色相、「反射光」是動態值、「原始紅/綠/藍」是色塊的 X、Y、面積。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從官方網頁版 App(spike.legoeducation.com)拼好匯出的,跟你在 App 裡看到的一樣。
讀感應器要一直重複讀。先放黃色的「when program starts」,下面接「forever(一直重複)」,裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。
官方 App 用顏色感應器的五顆積木讀神攝手,每顆積木最前面都有孔的下拉選單,要選神攝手插的那個孔。讀到的數字直接就能用,不用換算:
| 官方積木 | 讀到的是 | 範圍 |
|---|---|---|
| color(顏色,在 Sensors) | 色相(取色點的顏色) | -1、0 ~ 100:紅 0(100 也是紅)、黃約 17、綠約 33、青約 50、藍約 67、洋紅約 83;-1 = 黑白灰 |
| reflected light(反射光,在 Sensors) | 動態值(畫面變了多少) | 0 ~ 100 |
| raw red(原始紅色,在「More Sensors」擴充) | 色塊 X(左右) | 左 0 ~ 右 98,中間約 50;沒找到是 0 |
| raw green(原始綠色) | 色塊 Y(上下) | 下 1 ~ 上 75;沒找到是 0 |
| raw blue(原始藍色) | 色塊面積(多大) | 0 ~ 100,0 = 沒找到色塊 |
要用 raw red/green/blue,先按 App 左下角的擴充按鈕,加入「More Sensors」。家用版(Robot Inventor)的顏色只有 0 ~ 10(教育版的十分之一)。
在「Variables」新增一個變數(例如「色相」),用「set … to …」把讀到的值存進去,等於幫這個值取名字;之後顯示、判斷都用這個變數。點一個功能,積木和結果會換成它的範例。
模擬畫面是示意:數值換算簡化過,實際感應器會因為光線差幾格。十字 = 取色點(感應器上「設定 1:COLOR」選的位置),顏色積木讀的是十字那一點;綠框 = 感應器追到的色塊(「設定 2:TRACK」選的顏色)。
官方 App 能讀到的功能,每個都有一組可以照著拼的積木(C 孔)。按「試試看」會切到第 3 步。
官方 App 讀不到的功能:官方 App 只讀感應器的「組合資料」,所以神攝手的 飽和度、明度、色塊寬、色塊高、感應器身分、韌體版本、感應器有接好 這些讀不到。飽和度、明度、色塊寬高可以改用 MBC SPIKE 積木網站;全部的功能用 Pybricks 都讀得到(兩種都要把主機換成 Pybricks 韌體)。
area()(寬 × 高,0 ~ 7500)單位不一樣。