開始:程式開始+一直重複
讀感應器要一直重複讀。先放黃色的「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 裡,測距者 2 路會被當成顏色感應器,所以不用匯入函式庫,直接用「更多感應器」的原始紅/綠/藍積木讀,再換算成左、右和平均距離。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從官方網頁版 App(spike.legoeducation.com)拼好匯出的,跟你在 App 裡看到的一樣。
讀感應器要一直重複讀。先放黃色的「when program starts」,下面接「forever(一直重複)」,裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。
官方 App 用「更多感應器」的原始紅、原始綠、原始藍三顆積木讀測距者,每顆積木最前面都有孔的下拉選單,要選測距者插的那個孔。讀到的數字要換算才是距離:
| 官方積木 | 讀到的是 | 換算 |
|---|---|---|
| raw red(原始紅色) | 左距離 × 256 | ÷ 256 再取整數(floor 積木)→ 左距離 0 ~ 120 公分 |
| raw green(原始綠色) | 右距離 × 256 | ÷ 256 再取整數 → 右距離 0 ~ 120 公分 |
| raw blue(原始藍色) | 平均距離 × 256 | ÷ 256 再取整數 → 平均距離 0 ~ 120 公分 |
這三顆積木在「More Sensors(更多感應器)」擴充裡:先按 App 左下角的擴充按鈕,加入「More Sensors」。「取整數」用 Operators 裡的「floor of」(無條件捨去)。120 = 前面沒東西。
在「Variables」新增變數(例如「左距離」「右距離」),用「set … to …」把換算好的值存進去,等於幫這個值取名字;之後顯示、判斷都用這個變數。點一個功能,積木和結果會換成它的範例。
模擬畫面是示意:距離直接用畫面上障礙物的位置換算,實際雷射會有 1~2 公分的誤差,大約每 0.1 秒才更新一次。120 = 前面沒東西(或超過 120 公分)。
官方 App 能讀到的功能,每個都有一組可以照著拼的積木(C 孔)。按「試試看」會切到第 3 步。
官方 App 讀不到的功能:官方 App 只讀感應器的「組合資料」,所以測距者的 雷射正常、開機狀態、故障狀態、毫米距離、感應器身分、韌體版本、感應器有接好 這些讀不到。要用這些功能,改用 MBC SPIKE 積木網站(有「雷射正常」)或 Pybricks(全部都有;主機要換 Pybricks 韌體)。