' ============================================================
' IMU 陀螺儀感應器 EV3 新手範例 03：走正方形
' 軟體：clev3r
' 接法：IMU 陀螺儀插 1 號孔；左輪馬達接 B、右輪馬達接 C
' 這個範例會做什麼：把「直走 2 秒＋右轉 90 度」重複 4 次，就是一個正方形。
' 讀值：angle＝機器人轉了幾度（連續累加（轉一圈＝360，可超過 360））
' ============================================================
folder "prjs" "MBC_imu_ex03"

' IMU 陀螺儀插 1 號孔，使用模式 0
Sensor.SetMode(1, 0)
' 陀螺儀歸零的指令（送 0x11 給感應器）
gyroReset[0] = 17
LCD.Clear()

' 下面的動作重複 4 次
For i = 1 To 4
  ' 直走
  Motor.StartPower("B", 30)
  Motor.StartPower("C", 30)
  ' 走 2 秒
  Program.Delay(2000)
  ' 停一下
  Motor.Stop("BC", "True")
  ' 角度歸零
  Sensor.SendUARTData(1, 1, gyroReset)
  Program.Delay(100)
  ' 左輪往前、右輪往後：原地向右轉（慢一點比較準）
  Motor.StartPower("B", 20)
  Motor.StartPower("C", -20)
  ' 等到角度的絕對值大於等於 90
  While Math.Abs(Sensor.ReadRawValue(1, 0)) < 90
    Program.Delay(10)
  EndWhile
  ' 轉到 90 度：停車
  Motor.Stop("BC", "True")
EndFor
' 走完嗶一聲
Speaker.Tone(50, 1000, 100)
Speaker.Wait()
