開始:程式開始+一直重複
讀感應器要一直重複讀。先放黃色的「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 裡,測距者 8 路會被當成顏色感應器,所以不用匯入函式庫,直接用顏色感應器的積木讀,再拆開成第 1~8 路的距離。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從官方網頁版 App(spike.legoeducation.com)拼好匯出的,跟你在 App 裡看到的一樣。
讀感應器要一直重複讀。先放黃色的「when program starts」,下面接「forever(一直重複)」,裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。
官方 App 用顏色感應器的五顆積木讀測距者 8 路,每顆積木最前面都有孔的下拉選單,要選測距者插的那個孔。8 路的距離(公分)分散在這五顆積木裡,後面三顆一顆裝兩路,要拆開:
| 官方積木 | 讀到的是 | 怎麼拆 |
|---|---|---|
| color(顏色,在 Sensors) | 第 1 路(正左邊) | 直接用 |
| reflected light(反射光,在 Sensors) | 第 2 路(左前 60°) | 直接用 |
| raw red(原始紅色,在「More Sensors」擴充) | 第 3 路 + 第 4 路 × 256 | 除以 256 的餘數 = 第 3 路;÷ 256 取整數 = 第 4 路 |
| raw green(原始綠色) | 第 5 路 + 第 6 路 × 256 | 餘數 = 第 5 路;取整數 = 第 6 路 |
| raw blue(原始藍色) | 第 7 路 + 第 8 路 × 256 | 餘數 = 第 7 路;取整數 = 第 8 路 |
要用原始紅/綠/藍,先按 App 左下角的擴充按鈕,加入「More Sensors」。「餘數」用 Operators 的「… mod …」,「取整數」用「floor of …」包住「… / 256」。
在「Variables」新增變數(例如「第4路」),用「set … to …」把拆好的值存進去,等於幫這個值取名字;之後顯示、判斷都用這個變數。點一個功能,積木和結果會換成它的範例。
模擬畫面是示意:方向和距離用畫面上的位置簡單換算,實際感應器可能差一兩格。紅色扇形 = 那一路量到東西;灰色扇形 = 讀到 120(那個方向沒有東西)。第 4、5 路都朝正前方。
官方 App 能讀到的功能,每個都有一組可以照著拼的積木(C 孔)。按「試試看」會切到第 3 步。
官方 App 讀不到的功能:官方 App 只讀感應器的「組合資料」(8 路的公分距離),所以測距者的 最近目標方向/距離、最空曠方向 要像上面的範例自己用積木一路一路比;每一路正常/故障、毫米距離、感應器身分、韌體版本、感應器有接好 這些完全讀不到。要直接用這些功能,改用 MBC SPIKE 積木網站或 Pybricks(主機要換 Pybricks 韌體)。