2014-04-23

兩種EV3馬達「Power Level設定」與「輸出轉速」之間的關聯測試

EV3馬達的Power Level是一個重要的控制參數,如果參考EV3軟體的Help File,在Large Motor與Medium Motor Action Blocks的說明文件中,都提到馬達轉速大致與設定的Power Level值成正比:
"The rotation speed of a motor will be roughly proportional to the power level specified, although rotation speed is also affected by how much load is put on the motor."

而Danny在哨兵機器人(SENTIN3L)的專題中,更進一步的說明EV3馬達每一單位Power Level值對應的馬達轉速等於:每0.1秒1度 或 每秒10度,所以當Power Level=10,對應的馬達轉速也就是100 度/秒。

對於Danny所提供的參考數據,雖然大部分的專題很少有機會會直接使用到馬達的轉速值,通常只要能理解「Power Level值越大,馬達就會轉得越快」這樣的觀念就足夠了,
不過剛好手上有一個HiTechnic的角度感應器(Angle Sensor),可以用來測量不同Power Level下馬達RPM值的變化,而再將RPM值轉換成每秒旋轉度數,這樣就可以實際觀測到Danny所提到的比例關係。同時,測試數據也可以當作EV3馬達的特性記錄,用來佐證EV3 Help File的說明。

測試過程摘要

  • 測試的方式很直覺,就是以十字軸連接EV3馬達與HiTechnic的角度感應器,同時因應兩種馬達特性的差異,所以也分開進行測試。

  • 測試時,先由Power Level=10設定開始,每次增加10,直到Power Level=100止,共分成10個階段測量馬達的RPM值。
  • 測量同時並立即將RPM值換算成每秒旋轉速度:
    RPM值 * 360度 / 60秒  = RPM值 * 6
    這樣可能會放大角度感應器的誤差,不過如果只是作為觀察變化趨勢與關聯性,實際並不致於對結果有顯著的影響。
  • 使用NXC的Screen Capture記錄測試過程,
    由EV3 LCD顯示:Power Value(%)、RPM以及轉速(Degrees / Second)三項資訊。

2014-04-16

Danny EV3 Lab:使用Math Block處理複雜的邏輯運算


EV3軟體的Logic Block對於基本的邏輯運算,如:ANDORXORNOT等,一般而言功能足夠同時也很容易使用。不過如果是較為複雜的運算,則會需要組合數個Logic Block,包含Data Wire的連接以及Block執行順序的安排,程式難免會變得比較龐雜,以下面的運算式為例,就需要四個Logic Block來完成:
Result = (A AND B) OR (C AND NOT (B))
(DannyEV3Lab_ComplexLogicOp)
過去NXT-G的數值運算也有類似的問題,而如今EV3改進了Math Block,增加提供Advanced Mode的功能,可以自行建立組合的數值計算式,簡化不少編寫程式的工作。
但是對邏輯運算如何能夠有類似Advanced Mode的功能?Danny在他的EV3 Lab書中,提到一個透過簡單步驟的方法,也一樣可以組合邏輯運算式,而且還是使用Math BlockAdvanced Mode做出來的,很值得學習。

2014-04-13

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

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


(SUP3R-CAR_CoolView)

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

 (SUP3R-CAR_R3MOTE)

2014-04-10

Danny EV3 哨兵機器人(SENTIN3L)的可程式化功能示範影片

Danny的哨兵機器人(SENTIN3L)最主要的主題就是可程式化的功能,這個功能如果用文字形容,不外就是使用Color Sensor再加上特製的顏色方塊(Color Cube)輸入代表指令的顏色之後再去執行,但無論如何,總比不上實際的示範影片來得生動。

所以,重新整理了SENTIN3L機器人關於操作可程式化功能的整個過程的記錄影片,
由一開始啟動程式之後,SENTIN3L會先活動一下四隻前腳讓它們都確實著地,
接著使用顏色方塊依序輸入:白/黑/紅三種顏色指令;
從影片中可以看到,SENTIN3L會以喇叭說出所辨識到的顏色,相當的人性化 ^^,
啊! 在錄這段影片的同時正好收音機在播一首有版權的音樂,所以連同SENTIN3L回報顏色的聲音都被YouTube消音了,
之後接下來就是執行這些指令。

因為是使用手機拍的影片,品質不是很好,不過盡可能透過旁白註解補充說明,還是可以瞭解Danny設計這個機器人的構想與概念。

在這本書的五個機器人專案都相當有原創性,有許多值得借鏡之處,所以盡可能留下影片,以便將來回顧書中內容時,可以相互參照。

2014-04-09

Danny EV3 Lab: 可程式化哨兵機器人(SENTIN3L)

機器哨兵(SENTIN3L)Danny EV3 Lab書中的另一個專案。

外觀上雖然看似三足,事實上這是一個四足步行機器人;另外在頭部有一個IR Sensor,身體有一對可以前後擺動的雷射槍手臂,分別裝有Touch Sensor以及Color Sensor
(SENTIN3L_Robots)
SENTIN3L
後面接一個萬向輪,它的四足步行機構是利用兩個並列的L-Motor以凸輪(Cam)方式各自驅動一對腳,將馬達輸出的連續旋轉運動轉換成為往復擺動的步行動作,所以SENTIN3L可以使用EV3Move SteeringMove Tank Block來控制機器人的前進/後退與轉彎,只不過一開始需要先調整四隻腳的初始位置能夠完全著地(*1),這樣開始步行之後才不致於產生搖晃以及兩對腳不協調的情形。
(SENTIN3L_Foots)
至於雷射槍手臂的擺動動作也是相同的原理,以M-Motor驅動一對球型接頭連結的凸輪,再加上音效和Color Sensor LED的顏色變換(*2),聲光效果十足。
(SENTIN3L_HeadAndArms)