top of page
想一想
相撲是指兩人在土表中角力的一項格鬥競技,一方將 對手扳倒或推出土表外即為勝者。機械人相撲比賽(bottle sumo),也是一項熱門的機械人比賽項目,吸引眾多機械人愛好者去參與。
圖3.3.1 相撲
挑戰任務
製作相撲機械人,與同學進行相撲機械人比賽,把對手或得分物件推出比賽場外,爭取好成績。
為了能更適應比賽,可以將bit:Rover進行適當的改裝。
任務一
尋找賽場中間的得分物件,並將它推出場外。
需要用到超聲波感應器和紅外線感應器。開始前,先在擴展中搜索並添加“sonar”和”PCA9685”。重置馬達功率和把行走的動作定義函式,並檢測賽場內和賽場外的反射光數值,計算其平均值以用於邏輯模塊。
優先保證機械人不跌出場外,需使用紅外線感應器,所以紅外線感應器的優先等級最高。
優先處理當任何一個紅外線感應器檢測到場邊時,機械人立即後退
當超聲波檢測到前方有物件時,向物件方向前行把物件推出場外。否則不斷轉動尋找目標。
完成
video3.3.1 相撲機械人
任務二
尋找賽場中間的得分物件或對手,並推出場外。
思考
當長時間找不到得分物件或對手時,是要等待對手還是主動出擊呢?
如果主動出擊該怎麼做?
進階
如果長時間找不到目標,會在比賽中處於被動的一方,對手有可能已經把得分物件推出場外。
所以,我們需要在一個位置如果一段時間找不到目標時,要轉換到另一個位置繼續尋找目標,我們需要主動出擊。
建立一個時間變數
當bit:Rover不在場地邊沿和不在推物件或對手,且開始時間經過5秒時,紀錄這個時間設為變數。
當時間每經過5秒時,即開始時間﹣紀錄的時間 > 5秒時,bit:Rover前行1秒以調整位置。
調整位置後,紀錄一個新的時間。
完成
video3.3.2 進階相撲機械人
bottom of page