2014-04-13

Danny EV3 Lab: 使用電子式差速器的 SUP3R CAR

雖然Danny形容SUP3R CAR是一部有著邪惡外觀的裝甲車(我倒覺得比較像「汽車總動員(Cars)」的卡通車),實際上就是一部典型的前輪轉向、後輪驅動的四輪車。


(SUP3R-CAR_CoolView)

在車上駕駛座位置裝有一個IR Sensor,讓它具有障礙偵測以及使用Remote IR Beacon遙控的功能,同時為了能夠更順手地操控,所以改造了成為具有控制前進/後退與左右轉彎兩個搖桿功能的遙控器。

 (SUP3R-CAR_R3MOTE)

另外在車子前端保險桿有裝了一個Color Sensor,用途是留待讀者自行使用EV3零售版所附的Test Pad 循跡、定位方面的測試,在書中並沒有實際的應用。














從下圖SUP3R CAR的底盤,可以見到它的動力系統包含了以M-Motor驅動前輪的轉向機構,以及比較特別的是兩個後輪各自以一顆L-Motor直接驅動,不是常見的單顆馬達加齒輪的用法。

(SUP3R-CAR_BottomView)

會這樣配置的原因在於EV3零售版並沒有差速齒輪零件,所以Danny才會構想透過精確控制兩個後驅馬達轉速的電子式差速器功能。
實作方法則是求出兩個公式,能夠相關聯「車速」及「前輪轉向角度」兩個因素,而分別計算出外緣輪(Outer wheel)內圈輪(Inner wheel)所需的轉速


而由於EV3馬達的特性,轉速會與Power Value成正比,所以計算所得到轉速就可以直接作為兩顆L-Motor Power Value的設定值。

至於公式的導出步驟,則是參考下圖車輛轉向的運動模型:

 (SUP3R-CAR_ElectricalDifferential)

在模型中,車體尺寸,如:軸距( H ) 輪距( 2*D ) 在建構時即為已知,
所以當 前輪轉向角度為 a,則車輛的 迴轉半徑(S) 會等於:軸距( H )/ tan( a )

如果把角度 a 轉換成弧度(radians)為單位,就是將 a 乘以 Pi/180,大約是:a*0.017
同時去查一下正切函數表,若角度 a 小於30度以內,則tan(a)的值會接近其弧度值(a*0.017),所以,旋轉半徑 S 就大約是:軸距( H )/(a*0.017)

當得知了車輛的旋轉半徑(S),車輛轉彎的角速度(W)就會等於:車速( V ) / 旋轉半徑( S )

所以,最後得到的公式就會是:
外緣車輪(Outer Wheel)的轉速( VR )等於:W * (S + D)
      亦即: 
V * (1 + D * 0.017 * a/H)
內圈車輪(Inner Wheel)的轉速(VL) 等於:W * (S - D)
      亦即: 
V * (1 - D * 0.017 * a/H)

這兩個公式剛好可以利用 EV3Math Block – Advanced Mode設定計算式,相當方便。

 (SUP3R-CAR_MoveMyBlock_Detail)

7 則留言:

  1. 請問上面流程內的灰色色塊(power)是如何建立的?謝謝

    回覆刪除
    回覆
    1. 那是MyBlock, 建立的步驟與方式大概是這樣:
      1. 先將所需要的程式區塊建立好, 包含資料線都先連結正確
      2. 選擇所有需要轉換成MyBlock的程式區塊
      3. 這樣就可以透過由Tools功能中選擇My Block Builder選項來建立
      這裡有一個教學影片可以參考:
      https://www.youtube.com/watch?feature=player_detailpage&v=CApCoGQJRcU

      刪除
    2. 成了,敘述非常詳盡,花了您的時間,真的感謝。

      刪除
    3. 成了,敘述非常詳盡,花了您的時間,真的感謝。

      刪除
    4. 不客氣! 也恭喜你測試成功

      刪除