' ============================================================
' TOF2 雙眼雷射測距感應器 EV3 新手範例 06：用公釐精準停車：20 公分前停
' 軟體：clev3r
' 接法：TOF2 雙眼雷射插 1 號孔；左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼：模式 0 的距離 1 格＝1.2 公分，比賽要停在「剛好 20 公分」不夠準。模式 5 直接給左右兩眼的公釐（1 格＝1 公釐），這個範例把兩眼平均（跟模式 3 一樣），一邊往前開一邊顯示公釐，小於 200 公釐就停。用模式 5 是因為 EV3 原廠韌體切到模式 3 偶爾切不過去，模式 5 每次都切得過去。
' 讀值：leftMm＝左眼距離（公釐）（0 ~ 1200 mm）；rightMm＝右眼距離（公釐）（0 ~ 1200 mm）
' ============================================================
folder "prjs" "MBC_tof2_ex06"

' TOF2 雙眼雷射插 1 號孔，使用模式 5
Sensor.SetMode(1, 5)
LCD.Clear()

' 清除螢幕
LCD.Clear()
' 兩輪用 30 的力量往前開
Motor.StartPower("B", 30)
Motor.StartPower("C", 30)
' mm ＝ 左右兩眼公釐的平均（跟模式 3 一樣）
mm = (Sensor.ReadRawValue(1, 0) + Sensor.ReadRawValue(1, 1)) / 2
' 一直往前，直到距離小於 200 公釐（20 公分）
While mm >= 200
  ' 第 1 行顯示目前距離（公釐）
  LCD.Text(1, 0, 0, 1, "MM " + mm + "      ")
  ' 再讀一次左右兩眼，重新算平均
  mm = (Sensor.ReadRawValue(1, 0) + Sensor.ReadRawValue(1, 1)) / 2
EndWhile
' 停車
Motor.Stop("BC", "True")
' 嗶一聲
Speaker.Tone(50, 1000, 100)
Speaker.Wait()
' 停下來後再讀一次
mm = (Sensor.ReadRawValue(1, 0) + Sensor.ReadRawValue(1, 1)) / 2
' 停下來後再顯示一次距離，看停得準不準
LCD.Text(1, 0, 0, 1, "MM " + mm + "      ")
