2014-08-23

EV3 教學 -- Loop 迴圈的計數功能

探奇在很久以前曾經發表一篇文章:『NXT-G教學:Loop命令方塊的Counter使用方法』,不知何故,只有一些標題,沒有內容。(大概是邱老師老糊塗....^^)

現在立即補上內容,請慢慢觀賞,歡迎分享討論。

Loop 迴圈,就是重複執行的指令,將需要重複的命令方塊拉入Loop迴圈中,就能重複執行相同的命令。

重複執行可以一直持續下去,有四種狀況才會結束執行:

1. 機器人沒電。

2. 停止執行程式。

3. 達成某些對應的條件。

4. EV3程式獨有的『迴圈中斷』命令。

搭配Loop迴圈使用,機器人能夠做出更多複雜的動作。

今天的主題放在 Loop Index ( 迴圈次數 ) 的應用。

下圖紅圈就是迴圈次數的資料線接頭,迴圈次數是從0開始增加,每當完整執行一次迴圈內的命令方塊,迴圈次數就會加1。


利用這種從零開始遞增的數值,只要以資料線連接到Move移動命令的馬力Power資料線插座,機器人的馬達馬力就會從零開始增加。


不過迴圈的執行速度非常快速,我們可以加入等待時間命令(Wait for Time),讓馬達慢慢加速轉動。這裡設定0.05秒,馬力從0到100,總時間為5秒,你可以根據你的需求調整。


迴圈次數也可以顯示在EV3主機螢幕上,使用Display顯示命令,直接將資料線Data Wire連接 Loop Index 與顯示命令的文字輸入接頭。


執行程式後,螢幕上的數字是不是跳得超快,沒錯這就是EV3主機增強運算能力的證明。

下圖:增加等待觸碰感應器壓下放開(Bumped)的命令,就變成觸碰按鈕計數器,能夠計算觸碰感應器壓下放開的次數。快和你的同學一起比賽,看看誰能在10秒鐘按出最多次數的好成績!


NXT-G程式也是相同用法,不過拉出Loop Block時不會主動出現迴圈次數的接頭,我們必須在下方參數區選項勾選Counter選項,才會在迴圈圖示的左下顯示資料線接頭。


下圖:同樣利用資料線連接馬力接頭,機器人就會緩緩加速,每次迴圈延遲0.05秒。


下圖:NXT-G版的觸碰計數器。


OK,今天的課程就上到這裡,給大家幾個作業,如何讓機器人慢慢減速呢?如何讓機器人倒數呢?

祝大家玩得快樂高興!


延伸閱讀:


沒有留言:

張貼留言

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