這份程式碼主要分為 「初始化」、「手控模式」 與 「自動腳本」 三大區塊。
1. 頂部初始化 (setup)
這是機器人的「大腦開機」程序,只會執行一次。
Mini.begin(): 設定板子版本與通訊速度。
Mini.PS2.begin(): 喚醒遙控器接收器。
Mini.M1.set(0): 確保開機時馬達是靜止的,避免小車暴衝。
2. 核心迴圈 (loop)
這是機器人的「神經中樞」,每秒鐘會重複執行約 50 次。
🕹️ A區:手動行走與死區處理
程式會不斷判斷:學生是在按 「十字鍵」 還是推 「蘑菇頭」?
優先權:十字鍵比蘑菇頭優先。如果按住「上」,馬達就全速前進。
map() 映射:將遙控器的訊號 (0~255) 轉換成馬達的動力 (-100~100)。
abs(moveL) < 15:這就是死區設定。如果訊號太小,程式會當作沒推,強制馬達停止,解決蘑菇頭自走的問題。
🚀 B區:自動化腳本 (if SQUARE)
當學生按下 方塊鍵 (□) 時,會進入這個「劇本模式」。
順序執行:程式會一列一列執行裡面的指令。
delay(ms):這是最重要的部分,代表「這個動作要持續多久」。例如 delay(1000) 就是跑 1 秒。
set(0):每個動作結束都會強制停止馬達,確保機器人停在精確的位置。
🛑 C區:緊急停止與舵機配置
圓圈鍵 (○):被設計為最高權限,按下立刻執行 set(0) 讓車子停下。
按鈕映射:例如 if (Mini.PS2.R1) Mini.RC1.set(180),就是把手把訊號直接導向舵機角度。
💡 提示懂了嗎?:
調整距離:如果 30 秒自動模式下,車子走得不夠遠,要改哪個數字?(答:delay 的毫秒數)
修正自走:如果沒動手把,車子卻在慢慢爬,要調整哪裡?(答:abs 後面的死區數值)
動力方向:如果推左搖桿,左邊輪子沒動反而是右邊動,該改哪個馬達代號?(答:把 M1 與 M2 對調)