2014-04-04

樂高機器人軟體的數學運算功能

你如何說明一件事?

這個房間裡有多少人,桌上有幾隻筆,邱老師有多重,台北到高雄有多遠,上課的時間有多久,樂高十字軸多長,聲音多大聲。


一般我們都是用形容詞回答上面的問題,很多,很久,很大,很長。但是每個人心中的基準都不相同,於是你的『很多』跟我的『很多』就很可能產生差異。

如果以上的狀況都是利用數字表示,房間有10個人,邱老師有100公斤重,上課時間一小時。將一件事物量化後,大家在溝通上就有比較的標準。

機器人的運作需要相同精確的標準,所以感應器、馬達都是使用數值進行控制。數值搭配數學運算就能產生更多變化。

不論是光源感應器的數值計算,機器人超音波的距離,機器人轉動方位,馬達轉動角度,都需要數學運算的配合。讓我們瞭解樂高機器人軟體的數學運算功能。

EV3軟體 X3

EV3樂高機器人的圖控軟體中(X3),數學運算是如何撰寫的呢?我們以最簡單的四則運算為例,將兩個數值先相加再除以二,資料的傳遞都是透過資料線,程式如下:


由於圖控的特性,每個運算子都需要用到一個數學命令方塊,程式很容易就會迅速膨脹。這時我們可以使用EV3軟體的新功能簡化數學運算,縮小圖控所佔的空間。這就是Math – Advanced 功能。

 

EV3軟體的Math – Advanced功能最多可以輸入四個變數代號ABCD,運算功能表列如下:

Add
- Subtract
X Multiply
÷ Devide
% Modulo 模數
^ Exponent 指數
- Negate 負數
floor – Floor 傳回無條件捨去小數的整數值
ceil – Ceil傳回無條件捨去小數的加1整數值
round - Round傳回四捨五入的整數值
abs – Absolute 絕對值
log- Log 常用對數
ln – Ln 自然對數
sin – Sin 正弦值 Sine
cos – Cos 餘弦值 Cosine
tan – Tan 正切值 Tangent
asin – Asin 反正弦值 ArcSine
acos – Acos 反餘弦值 ArcCosine
atan – Atan 反正切值ArcTangent
sqrt - Square Root 平方根值


NXT軟體 NXT-G

NXT-G的數學運算也是需要一堆命令方塊,(如下圖上半部程式),後來有人提供MathScript Block,可以一次輸入六個變數,提供整數運算的加減乘除(+-x/)、模數(%)、次方(^)等功能。(如下圖下半部程式)



讀友若是有需要,請參考探奇文章:超級好用的MathScript Block

至於三角函數,就需要安裝其他的命令方塊才能運作,請參考探奇文章:HiTechnic部落格新文章:New HiTechnic blocks for Sin, Cos, and ATan2


另外,最早的NXT-G 1.0只支援整數運算,後期的NXT-G 2.0以後已經支援浮點運算,有時候反倒需要整數運算。讀友可以參考探奇文章:NXT-G 2.0 (2.1) 的整數運算







沒有留言:

張貼留言

探奇歡迎大家留言討論!謝謝分享你的意見。