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,今天的課程就上到這裡,給大家幾個作業,如何讓機器人慢慢減速呢?如何讓機器人倒數呢?
祝大家玩得快樂高興!
延伸閱讀:
沒有留言:
張貼留言
探奇歡迎大家留言討論!謝謝分享你的意見。